כותרות TheMarker >
    cafe is going down
    ';

    פרטי קהילה

    מחקר ופיתוח

    ביקורת קפה מו"פ: דבר בחזותו הסטנדרטית של בית קפה יחודי זה אינו מסגיר את היותו מקום מפגש יומי קבוע של האנשים העסוקים ברחבי המדינה – אנשי המו"פ. יחודיות המקום המותאם לדרישות הקהל שלו הוא בראש וראשונה באיכות הבלתי מתפשרת של הקפה המפותח מתערובת יחודית המיוצרת מפולי ג'אווה ועוד זנים יחודיים שיובאו מהודו,סין וארצות הבלקן. המקום עוצב כך שיתאים גם לאנשים עסוקים הממהרים לשגרת יומם ובו שולחנות גבוהים המשמשים לשיחות עמידה מהירות, וכן כורסאות נוחות לקריאה ודיונים טכניים עמוקים וארוכים יותר. בין הטיפוסים המגיעים לכאן ניתן למצוא מנהלי מו"פ, אנשי מוצר, בדיקות, מהנדסי פיתוח ואפילו אנשי אקדמיה.   אז – בואו לבקר. קפה ומאפה על חשבון הבית. טיפים טובים יתקבלו בברכה!

    אינטרנט והייטק

    פורום

    הנדסת תוכנה

    פורום זה מיועד לדיונים על עקרונות ויישום הנדסת תוכנה באירגונים

    חברים בקהילה (1520)

    אמיר לשם
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    משה ,
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    bfou
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    היזם
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    תנועת כמוך
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    לואיס קרול
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    שחר י
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    דורון טל
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    רובינזוןקרוזו
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    האם ולמה שפות התכנות מזדקנות?

    22/7/09 23:35
    1
    דרג את התוכן:
    2009-08-05 09:20:31
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

     

    האם יש שפת תכנות שתהיה תמיד רלוונטית במיינסטרים? בינתיים העבר מראה שזה לא המצב.

    שפת הסף משמשת רק בנישות, C ו-C++ שימושיות גם הן בעיקר בסיטואציות ספציפיות. חלק מהאוניברסיטאות כבר לא מלמדות אותן כקורס חובה (וחבל, אבל זו שיחה נפרדת).

     

    נשארנו בגדול עם C# (ווראיציות דוט נטיות אחרות) ו-Java. ל-Java ולסאן יש בעיות משלה - סאן משכה את השפה והספריות הנלוות לכיוון ה-enterprise והזניחה הרבה מהאיזורים האחרים. Java 7 יהיה הרבה פחות מלהיב ממה שהייתי מצפה (למשל ל-closures), אבל כל הדיון סביבם נסוב על כוח מול סיבוך השפה והסביבה. סביבת .net ו-C# נראות מתפתחות בקצב טוב ו-features חדשים נוספים בכל גרסה (אני במיוחד אוהב את yield return ואת המקבילה ב-linq ל-closures). אבל גם ל-C# יש בעיות משלה. הסינטקס שלה כבר מורכב ואחרי גרסה 4 כבר יהיה קשה לסבך אותה עוד יותר.

     

    האם דור השפות הזה מיצא את עצמו? האם אתם מרגישים שבשפות האלה עוד יש מה לחדש?

    או שאני טועה לחלוטין לגבי C/C++?

     

    מה אתם חושבים? מעתה קל יותר להוסיף תגובה. עוד...
     

    הוספת תגובה על "האם ולמה שפות התכנות מזדקנות?"

    נא להתחבר כדי להגיב.

    התחברות או הרשמה   

    23/7/09 20:05
    1
    דרג את התוכן:
    פורסם ב: 2009-07-23 20:05:04
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    השפות C ו ++C הן בהחלט mainstream בכל מערכת שהיא לא של מיקרוסופט. הקרנל של לינוקס כתוב בשפת C , מה שמבטיח שהיא לא תעלם בזמן הקרוב.

    באפליקציות Real Time ובלינוקס השפות השולטות הן C ו ++C . אפילו בסביבת Windows של מיקרוסופט ++C מאד חזקה. השפה #C היא מוצר מסחרי של מיקרוסופט ורצה רק על הפלטפורמה שלה, אז למרות הפופולריות שלה היא לא יכולה להחשב mainstrem . השפה Java היא שפת נישה בעיקר לישומי אינטרנט.

    השפות שהזדקנו הן COBOL, PASCAL, FORTRAN, BASIC וכו'.

    23/7/09 23:15
    1
    דרג את התוכן:
    פורסם ב: 2009-07-23 23:15:12
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    להערכתי, C תישאר איתנו לעוד הרבה מאד זמן.

    עוד לא הומצאה שפה אחרת שנותנת מענה ראוי לתכנות זמן-אמת, תכנות low-level לחומרה וכיוב'.

    באיזו שפה כתובות, לדעתכם, המכונות הוירטואליות של .NET ו- Java?

    ובאיזו שפה כתוב הקרנל של Windows?

    כל אימת שנדרשת רמה מדוייקת של שליטה וביצועים גבוהים, נמשיך לראות את C (לפחות עד למהפכה הבאה בארכיטקטורת מעבדים).

    23/7/09 23:59
    0
    דרג את התוכן:
    פורסם ב: 2009-07-23 23:59:52
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין


    C/C++ בוודאי יהיו איתנו עוד זמן רב, אבל לומר שפיתוח לאינטרנט הוא "נישה" גם יהיה קצת מוגזם.

    נשמע לי שאנשים יפתחו ב-C/C++ רק כאשר חייבים ממשק למערכת אחרת (ורובנו לא מפתחים kernel-ים מאפס), לא?

    ולגבי ביצועים, מתישהו ראיתי חישוב שניהול הזיכרון מוסיף עד 10-15% תקורת זמן ריצה - ולרוב האפליקציות זהו מחיר סביר.

     

    חשבתי דווקא שיהיו פה תגובות מאוהבי python, ruby וכד' :)


    --
    מנהל קהילת מחקר ופיתוח:
    http://randd.cafe.themarker.com
    24/7/09 09:05
    1
    דרג את התוכן:
    פורסם ב: 2009-07-24 09:05:49
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    צטט: גנאדי 2009-07-23 23:59:52

    האם ולמה שפות התכנות מזדקנות?

     

    האם יש שפת תכנות שתהיה תמיד רלוונטית במיינסטרים? בינתיים העבר מראה שזה לא המצב.

    שפת הסף משמשת רק בנישות, C ו-C++ שימושיות גם הן בעיקר בסיטואציות ספציפיות. חלק מהאוניברסיטאות כבר לא מלמדות אותן כקורס חובה (וחבל, אבל זו שיחה נפרדת).

     

    נשארנו בגדול עם C# (ווראיציות דוט נטיות אחרות) ו-Java. ל-Java ולסאן יש בעיות משלה - סאן משכה את השפה והספריות הנלוות לכיוון ה-enterprise והזניחה הרבה מהאיזורים האחרים. Java 7 יהיה הרבה פחות מלהיב ממה שהייתי מצפה (למשל ל-closures), אבל כל הדיון סביבם נסוב על כוח מול סיבוך השפה והסביבה. סביבת .net ו-C# נראות מתפתחות בקצב טוב ו-features חדשים נוספים בכל גרסה (אני במיוחד אוהב את yield return ואת המקבילה ב-linq ל-closures). אבל גם ל-C# יש בעיות משלה. הסינטקס שלה כבר מורכב ואחרי גרסה 4 כבר יהיה קשה לסבך אותה עוד יותר.

     

    האם דור השפות הזה מיצא את עצמו? האם אתם מרגישים שבשפות האלה עוד יש מה לחדש?

    או שאני טועה לחלוטין לגבי C/C++?

     

     

     לדעתי כדי לענות על השאלה הזאת צריך להבין מה זה שפה ולמה היא משמשת ואז להבין מתי שפה רלוונטית ומתי לא.

     

    לדעתי חלק מההגדרה של שפה זה:

    כלי להרצת תוכנה  על גבי סביבה מסוימת (חומרה + מערכת הפעלה)  למטרה מסוימת (תשתיות, זמן אמת, רשת)  , שפה גם ממשת תפיסה תיכנותית.

     

    לדעתי  שפה נהית פחות רלוונטית ברגע שאחד משלושת הגורמים משתנה ואז פחות ופחות משתמשים בה.

     

    1. סביבה - JAVA רלוונטית גם בגלל שהיא מצליחה לרוץ בצורה כמעט זהה (תוך תשלום מחיר) על רוב הסביבות היום, #C יודעת לרוץ אומנם רק על מערכות הפעלה של מיקרוסופט אבל כרגע הם הכי נפוצות. בהינתן שינוים בפרמטר הזה משתנה הרלונטיות של שפה - בהנחה (שנראת די הזויה כרגע) שמערכות הפעלה של מיקרוספט יתפסו רק חלק קטן מהשוק  #C תהיה פחות רלוונטית לדוגמה. מצד שני אם ברוב האפליקציות הביצועים יהיו הדבר הכי חשוב + נתח השוק של מיקרוסופט יגדל JAVA תהיה פחות רלוונטית.

     

    2.  מטרה - הכלים ששפה מעמידה לרשות המתכנת הם בד"כ מוכוונים למטרה מסוימת ברגע שסוגי האפליקציות משתנות הכלים של השפה פחות רלוונטים - למשל ברגע שיש הרבה אפליקציות WEB דוט נט ו JAVA שיש להם כלים טובים לנושא יותר רלוונטיות.

    ניתן תמיד להוסיף כלים נוספים וסיפריות נוספות בגירסה הבאה אבל סך הכל זה אפשרות מוגבלת ויש גבול ומחיר לזה.

     

    3. תפיסה תיכנותית - מאחורי כל שפה ישנה תפיסה תיכנותית ברגע שהתפיסה נהית פחות רלוונטית השפה פחות רלוונטית.

    לדוגמה ישנם שפות כמו JAVA שבהם האחריות על זיכרון היא של השפה ואילו ב C האחריות היא של המתכנת.

    תפיסה נוספת היא העברת ושינוי אוביקטים למתודות ו CLASSES אחריםברת המצביע) כך שכל - ב C למשל המתכנת בוחר אם להעביר את אוביקט ע"י מצביע או להעביר העתק של האוביקט. בJAVA תמיד מעובר האוביקט (ע"י העשינוי במתודה שקראנו בה ישתקף גם במי שקרא לה. לפי מה שאני יודע (ואני מקווה שאני לא טועה) ב #C מועבר העתק של האוביקט ושינוי של האוביקטים שהועברו לא משפיע על הקורא. 


    --
    hanochshy@gmail.com
    http://www.linkedin.com/pub/b/894/9b3
    24/7/09 09:44
    1
    דרג את התוכן:
    2009-07-24 09:47:41
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    דווקא בתקופה האחרונה, כשקמו להן הרבה חברות שמפתחות ל-mobile, יש תחייה מחודשת ל-C/C++ בשל דרישה לעבודה יעילה מעל מערכת דלת משאבים. אני לא חושב ש-C/C++ יעלמו, אבל היכן שיש מספיק משאבים, לא תהיה תועלת כלכלית להשתמש בהם. לפי דעתי, רוב קוד ה-server side נכתב כיום בשפות מתקדמות יותר כמו Java ו-C# או אפילו יותר כבדות (אך משוכללות) כמו PHP, python, perl וכו'.

     

    להגיד ש-JAVA זו שפת נישה זה לדעתי ממש חוטא לאמת. מפתחים בה הרבה מעבר ל-WEB. זו גם ככל הנראה אחת השפות הפופולריות בעולם (לפחות לפי מה שחיפשתי - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

     

    בחזרה לשאלה המקורית, לדעתי השוק כן יתפתח יותר ויותר לכיוון של שפות עם dynamic type checking כמו python.

    יש לכך מספר סיבות:

    1. קוד קצר יותר וברוב המקרים קריא יותר.

    2. יחסית פשוט לבצע שינויים ולהפוך את המערכת על פיה.

    3. המעבדים נעשים מהירים יותר ויותר ורוב האפליקציות לא באמת צריכות את כל הכוח של המעבד, ולכן סביבה וירטואלית יותר כבדה שהפיתוח אליה הרבה יותר מהיר תספק את הדרישות ותהיה משתלמת כלכלית.

    4. כתיבת בדיקות לקוד הופכת להיות יותר מיינסטרים ככל שעובר הזמן (בעקבות לקחים מטעויות של שנים קודמות ופרויקטים קודמים) ובמצב שלכל שורת קוד יש בדיקה מתאימה - ניתן גם בשפות דינמיות לוודא שלא נופלים על שגיאות טיפוסים ולכן היתרון של שפות כמו Java או C# במקרים כאלו הולך ומתקטן.

     

    ראוי לציין שהגישה הזו זוהתה כבר לפני כמה שנים גם ע"י SUN וגם ע"י microsoft שמשנות את הפלטפורמה שלהן כדי להאפשר תמיכה טובה יותר בשפות דינמיות (ברמת ה-bytecode או ה-CLR) ואכן אפשר למצוא שפות דינמות מעל הפלפורמות האלו.


    עוד נקודה למחשבה - בעקבות השתלטות ה-web על חלק נרחב מהתכנות, חלה עלה בפופולריות של שפות כמו javascript. גוגל הכריזה לא מכבר על מערכת הפעלה מבוססת לינוקס וכרום, שבה הדפדפן יהווה את האפליקציה המרכזית וסביבה כזו מן הסתם, תעודד תכנות ב-javascript וחבורתה.
    25/7/09 02:47
    0
    דרג את התוכן:
    פורסם ב: 2009-07-25 02:47:14
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    >> C/C++ בוודאי יהיו איתנו עוד זמן רב, אבל לומר שפיתוח לאינטרנט הוא "נישה" גם יהיה קצת מוגזם.

    >> נשמע לי שאנשים יפתחו ב-C/C++ רק כאשר חייבים ממשק למערכת אחרת (ורובנו לא מפתחים kernel-

     

    מסכים - אבל ממשקים בין מערכות הם יותר נפוצים ממה שניתן לחשוב. כל עוד יש מכונות big endian ו- little endian, יהיה צורך במניפולציות על הנתונים שעוברים בקווי התקשורת.

     

    עולם התקשורת ימשיך, לדעתי, להסתמך על C כיוון שרוב השפות הדינמיות אינן נותנות את רמת השליטה הדרושה.

    למשל, מימוש Bit fields ב- #C לעומת C (או Python לעומת C).

     

     

    3/8/09 01:11
    1
    דרג את התוכן:
    פורסם ב: 2009-08-03 01:11:11
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    אני אישית עובד ב-C# בServer, נוסטלגי לגביי C++ ומעריך את פייטון ורובי... דווקא יש לי הימור מסוים (בערבון מוגבל , כמובן):

     

    אם מסתכלים על ההיסטוריה של שפות תכנות ב-40 שנה האחרונות, בסה"כ יש תהליך טבעי של עלייה באבסטרקציה על חשבון קרבה למכונה, דבר שמשתלב עם השתפרות המעבדים והוזלת הזכרון. כיום המשאב הכי יקר בפיתוח זה זמן מתכנת, וכל שפה שתקצר זמן תכנות ותביא לזמני ריצה שעונים על הנדרש תהווה יתרון. כמובן שהמכונות הוירטואליות (CLR, JVM) ממומשים בשפות היותר low-level כמו C/C++, אבל תמיד רוב התכנות יהיה של אפליקציות, ושם קורה (לדעתי) התהליך שאני מתאר.

    פעם שמעתי טענה שבאסמבלי היו תבניות (patterns), לכתיבת לולאות וכדומה, ששפות כמו C נתנו להם תמיכה מובנית. לדעתי השפה הבאה תיתן תמיכה מובנית בכל הpatterns שאנו משתמשים היום. לדוגמא: singelton תהיה מלה שמורה וכדומה. זה כנראה מוכר למי שמכיר את WCF, ולדעתי השפה הבאה תהיה שפה  שהיא service-oriented, ושתהווה עבור WCF את מה שדוט נט היוותה עבור COM (כלומר - מימוש בוגר לאב טיפוס שדרכו למדו את הצרכים והקשיים, וכן - דוט נט נולדה לא רק כתגובה לJAVA). בעקרון אני מדבר על שפה שבה הרבה משימות תכנותיות שכולנו עושים מדי יום על פי תבניות מוכנות (מימוש singelton, סנכרון של יצרן-צרכן וכו') יהיו נתמכות בשפה.

    אגב - היסטורית אני חושב שזמן החיים של שפה כשפה הכי פופולרית בשוק הוא כ-10 שנים, מה שאומר שאנחנו לא כזה רחוקים משינוי... (ואני מדבר על פופלריות מבחינת קוד חדש ולא קוד קיים - שם אני די בטוח שC עדיין הכי פופולרית..)

     

    5/8/09 09:20
    1
    דרג את התוכן:
    פורסם ב: 2009-08-05 09:20:31
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין


    כן ולא.

     

    אתחיל כמובן בוידוי נדרש: אני איש של C++, והייתי שמח לראות אותה בכל מקום, גם אם זה מסבך את העניינים ומאריך את הלו"ז, פשוט כי אני אוהב אותה... אבל ברור שאתה לא כותב פרוייקטים רק לפי האהבה, אפילו לא בט"ו באב.

     

    זה שהרבה אפליקציות עברו לכלים של Rapid Development, זו התפתחות טבעית, ואין על כך מחלוקת.

    בחברה האחרונה בה עבדתי, כתבנו אפליקציות של VoIP ב-Java, וזו כבר התפתחות מעניינת שלוקחת את השפה לתחומי ה-Soft RT.

     

    מה שיותר מעניין הוא שכולם כאן פחות או יותר תמימי דעים לגבי העובדה שבאיזורי ה-RT וה-Embedded, ההגמוניה של C ו-C++ עדיין ברורה ולא נראה שמישהו הולך להחליף אותם. השאלה היא אם זה  נכון, ואם כן, מה הסיבה לכך. אני זוכר שעוד לפני כמה שנים, גם C++ נחשבה לכבדה מדי עבור התחום הזה, והמלכה האמיתית היתה C - אבל היום C++ היא לגיטימית לגמרי. אז האם תגיע שפה חדשה? או: האם יש בכלל מי שחושב על פיתוח שפה כזו? אני זוכר ש-Sun ניסתה בזמנו לייצר Java למערכות Embedded, וזה נכשל כמובן כישלון חרוץ. האם יש הצדקה לשפה כזו? האם ניתן להציע שפה שתתן מענה חזק יותר מ-C++ ובכל זאת לא תיקח תקורה גבוהה או תיצור איזורי אי-ודאות (כמו של ניהול זיכרון שצץ ברגע שבא לו בלי לשאול)?

    אני מניח שניתן בהחלט ליצור שפה כזו, אבל אינני מכיר (מה שלא אומר שהיא אינה). ניתן למשל ליצור שפה שבה ניהול הזכרון מתבצע בהתאם למתודות של Object Pools, Smart Pointers ועוד.

     

    --

    Michael Q. Lindner - Lecturing, Consultation and Freelance

    C++ and SW Architecture


    --
    Miqe - הרצאות וייעוץ בתחומי הנדסת תוכנה.
    Qliqa - לגלוש 2.0.


    ארעה שגיאה בזמן פרסום תגובתך. אנא בדקו את חיבור האינטרנט, או נסו לפרסם את התגובה בזמן מאוחר יותר. אם הבעיה נמשכת, נא צרו קשר עם מנהל באתר.
    /null/cdate#

    /null/text_64k_1#

    מה אתם חושבים? מעתה קל יותר להוסיף תגובה. עוד...
     

    הוספת תגובה על "האם ולמה שפות התכנות מזדקנות?"

    נא להתחבר כדי להגיב.

    התחברות או הרשמה