CSharp Vs Java Vs Cpp

galh

New member
מוזר לי לראות תגובה כזו לא רצינית..

איך בדיוק אתה משווה בין השפות? למה החלטת שאחת יותר טובה מהשניה. הסבר, פרט, נמק והבא דוגמאות. "בעלת סינטקס טבעי"? מה זה בדיוק? מה כל כך טיבעי בזה? שתוכל להגיד למחשב "תבנה לי מסד נתונים של כל האובייקטים בתמונה ותסנן (בבקשה) את הצל שהם מטילים" אז תוכל להגיד שיש סינטקס "טבעי" לשפה. יש קשר בין ++C לבין C, הממציא של השפה הגדיר אותו בתור Better C. חוץ מזה, שפה מוגדרת, בין השאר ע"י הסינטקס שלה. כך שזה קשר די ברור בין C ל- ++C. אתה כתבת יותר מ- 8 שטויות בהודעה אחת. איפה בדיוק אני מפר את הפשטות 8 פעמים בשורת קוד כמו:
return 0;​
שזו שורה חוקית לגמרי ב- ++C.
 

amiramdil

New member
תגובה רצינית

אתה באמת מצפה שאשווה בן השפות ב: 10 שורות? זה באמת תהיה תגובה לא רצינים. סינטקס 'טבעי' הוא אכן מושג קצת חמקמק אבל אפשר להגיד שהוא סינטקס הקרוב ככל האפשר לשפה מדוברת או לשפה מתמטית. למשל: s = strcat(s, t) p [לא להטפל לשטויות בבקשה מזמן לא נגעתי ב-C.] הינו סינטקס לא טבעי לעומת : s = s + t שאין צורך להסבירו לא לכותב ולא לקורא. 2. C וCPP חוץ מ"מילים שמורות, מבני בקרה וכל האלו, תכנית ב-C נראית אחרת מתכנית ב CPP מבחינת התכנון, שליטה ניהול זכרון וכל מה שאתה רוצה.. וכן עוד משהו: ממש לא מעניין אותי שמתכננן CPP הגדיר אותה כ: better C אני מניח שגם MS הגדירו את VB.NET כ: better VB אז מה?
 

אלדד28

New member
מה הפואנטה שלך?

אם אתה מתעקש לעבוד כמו s=s+t, יש לך את std::string ב-CPP. בכל אופן, s=s+t היא פעולה יותר כבדה מ-strcat, ולכן לא כדאי להשתמש בה אם לא צריך באמת. אתה מקריב את הביצועים של התוכנה שלך על מזבח "הסינטקס הטבעי". אני מצטער. סינטקס טבעי יש אצל טולקין ואצל אדאמס. שפת תכנות היא שפת תכנות, היא לא יצירה ספרותית.
 

galh

New member
תגובה רצינית?!

כן, אפשר לתת עשר נקודות להשוואה ב- 10 שורות וזה יכול להיות בסיס לתגובה רצינית. אתה, לעומת זאת, אפילו לא טרחת לעשות את זה. אפשר גם להפנות לאתר שמשווה ביניהם, וזה טיעון שלם בשורה אחת. מה כל כך נורמלי בפעולה כמו s + t? האם אתה "משרשר" שתי מחרוזות או "מחבר" את ערכי ה- ASCII של כל אות. כמו כל שפה מתמטית אתה חייב להגדיר *מראש* את חוקי השפה, האותיות החוקיות והפעולות שניתן לבצע (למידע נוסף, תעיין בחומר הקורס של "אוטומטית ושפות פורמליות"). בנוסף, אם אתה שולל קריאות לפונקציות, כי זו לא דומה לשפה מתמטית איך בדיוק אתה מצפה לכתוב תוכנית גדולה ומורכבת?! אני יכול להביא לך תוכנית חוקית לחלוטין ב- CPP שתתקפל גם ע"י קומפיילר של C, זו המשמעות של Better C. כמובן שאני לא אנצל את מה שה- ++ נותן לי וזו תהיה שטות. ההצהרה שלך, "ממש לא מעניין אותי", זו טיעון ממש נהדר לויכוח. משהו בסגנון של "Templates? לא מבין את זה וזה ממש לא מעניין אותי למה צריך את זה או למה זה טוב". כן, VB.Net זה נסיון של $M להפוך את מחולל הישומים שלהם למשהו שקצת יותר קרוב לשפת תכנות. זה בהחלט Better VB, למרות שהם נאלצו לשבור את התאימות לאחור. אז מה הטענה שלך בדיוק?
 

amiramdil

New member
תגובה רצינית

אתה באמת מצפה שאשווה בן השפות ב: 10 שורות? זה באמת תהיה תגובה לא רצינים. סינטקס 'טבעי' הוא אכן מושג קצת חמקמק אבל אפשר להגיד שהוא סינטקס הקרוב ככל האפשר לשפה מדוברת או לשפה מתמטית. למשל: s = strcat(s, t) p [לא להטפל לשטויות בבקשה מזמן לא נגעתי ב-C.] הינו סינטקס לא טבעי לעומת : s = s + t שאין צורך להסבירו לא לכותב ולא לקורא. 2. C וCPP חוץ מ"מילים שמורות, מבני בקרה וכל האלו, תכנית ב-C נראית אחרת מתכנית ב CPP מבחינת התכנון, שליטה ניהול זכרון וכל מה שאתה רוצה.. וכן עוד משהו: ממש לא מעניין אותי שמתכננן CPP הגדיר אותה כ: better C אני מניח שגם MS הגדירו את VB.NET כ: better VB אז מה?
 

ברנדל

New member
שפה טבעית

הדבר האחרון שאני רוצה משפת תכנות שבה אני משתמש זה שהיא תהיה קרובה לשפה טבעית דווקא אז אני עשוי שלא להבין אותה. למה? כי זיכרון המחשב (לפחות כיום) הוא לא טבעי בעצמו אלא מורכב מביטים. אין לי ברירה , עם זה אני מתעסק ואת זה אני צריך לתרום לטובתי, האפשרות הכי טובה שלי לעשות זאת זה לדבר בשפה שלו, רק אז אני משיג שליטה. מה עדיף ליצור מערך של char ולקרוא לה מחרוזת ולשלוט על כל פיפס שקורה בה ולדעת בדיוק מה אתה משנה , מה זה אומר מבחינת המחשב, לדעת שכשאתה מחליט שאחד ה char במערך מקבל ערך אחר, אז הפעולה מתבצעת מידית לתוך הזיכרון. או אולי עדיף להפוך את המחשב ל"שפה טבעית" של בני אדם ובעצם בכך להפוך אותו ללא טבעי. להמציא מחרוזות במבני נתונים שמדמים "טבעיות" ובכך חורגים מכל טבעיות של זיכרון המחשב עצמו, שהתעסוקה איתן משולמת בתקורה גבוהה והשליטה על שקורה בפועל בתוך הזיכרון יורדת לאפס. יכול להיות שעל הנייר (בעולם שאין בו מעשה ואין בו מחשבים אלא רק תאוריה) c$ לוקחת בגדול , אולי גם vb, איזה יופי הכל פשוט מדברים טבעי. אבל בעולם האמיתי יש ביטים איתם צריך לעבוד ועליהם לפעמים רוצים שליטה בכל אופן מה שיפה ב c++ הוא שאתה יכול לדבר עם הזיכרון בכל רמות ההפשטה. רוצה שפה טבעית של המחשב , תשתמש ב char , תרוויח יעילות ,מהירות ושליטה , תפסיד זמן ומורכבות תכנות והתרחקות משפת דיבור טבעית. רוצה שפה טבעית יותר של בני אדם, תשתמש במבני נתונים מסופקים <string> תרוויח שפה טבעית ותכנות קליל, תפסיד שליטה. ב c++ אתה בוחר, ובשפות אחרות?
 

ברנדל

New member
חוץ מזה

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

amiramdil

New member
בנינים וארגזי חול

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

DNile

New member
אתה מגלה הבנה אדירה.

של מצב השוק, של עולם התוכנה, כל הכבוד לך על זה! חבל מאוד שחסרה לך הבנה בסיסית של מה הוא בעצם שוק התוכנה בימינו. אז תגיד לי, לא לחשוב על ניהול זכרון ביטים ורגיסטרים, זה גם מה שהוביל את בורלנד כשהם בנו את JBuilder 9 שתופס לי 200MB של זכרון? או שזה מה שמיקרוסופט חשבו עליו כשהם בנו את האקספלורר שתופס לי חופשי 60MB ויותר?
 

voguemaster

New member
שכחת את האופיס המהולל

לאנשים שאני מכיר יצא כבר לעבוד עם אופיס ברמה של שילובים של מסמכים ודברים אחרים כך שניצול הזיכרון היה מעל 100 מגה בלי לחשוב בכלל
ה-overbloatness שיש בתוכנות בשנים האחרונות הוא פשוט מזויע, ואנשים פה עוד רוצים אבולוציה ואבסטרקציה נוספת. אולי, אם היו עושים את זה *כמו שצריך*
 

DNile

New member
ניסיתי לתת כמה שפחות דוגמאות MS

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

אלדד28

New member
לא תקבל כזו תשובה מהארמדיל,

כי הוא חובב MS. ממילא אמר ש-$C שמה בכיס הקטן את JAVA ואת ++C.
 
אלדד - יש לי בעיה עם הטענה../images/Emo26.gif

תראה... אני רחוק מלהסכים עם עמירם, אבל מצד שני - אני גם לא מתחבר לגישה של: יותר ספרטני
יותר טוב
יותר מקצועי... אם יש שפה שצריך שנים של נסיון בשביל לכתוב בה יעיל ולהכיר מאות ניואנסים - זה לא הופך אותה (או את אלה שמתכנתים בה) ליותר טובה. אם התוצאה של מחוללי-יישומים הייתה יעילה מספיק והם היו גמישים מספיק - סבבה. מבחינתי שלטון הדור הרביעי של שפות תכנות - הוא עניין של זמן (כמו שזה נראה כרגע - הרבה זמן, אבל יש לי סבלנות...) מבחינתי - עוד 50 שנה התסריט יהיה כזה: הלקוחות שלי יכנסו לחדר הישיבות. אני אדליק את האוריפיילר. האוריפיילר יקרא את מחשבותיהם, יעבד אותן, "יבין" איזו מערכת הם רוצים, יתרגם אותן לדרישות, יעשה design, יקודד, יקמפל ויעשה install מהרשת ישר למחשב שלהם. כל זה יקח לו בדיוק 3 ננו-שניות, והקוד שיצא יותר יעיל מכל קוד של קומפיילר שאתה מכיר היום. שכחתי להגיד שמקביל, באותן 3 ננו-שניות - הוא גם יקרא מהמחשבות שלהם איך כל אחד אוהב את הקפה שלו ו-10 שניות אחרי זה הקפה גם יהיה מוכן (כן אני יודע - 10 שניות זה המון זמן. אבל להכין קפה זה לא תכנות - זה כבר לא משחק ילדים.)
 
זה תמיד מזכיר לי...../images/Emo26.gif

המרצים אצלנו תמיד מספרים איך פעם הם היו מקודדים ע"י ניקוב כרטיסים, מוסרים את זה בדלפק של מרכז המחשבים. בסוף היום, אנשי המרכז היו מזינים את הכרטיסים של אותו יום - וביום שלמחרת, הסטודנטים היו מקבלים בדלפק את הפלט שהוציא המחשב. כך שאם שכחת ; בסוף שורה - זה היה עולה לך ביום עבודה. והוא הציג את המתכנתים של אז כיותר טובים (או לפחות יותר מדויקים) - כי כל באג היה להם הרבה יותר "כואב". בניגוד להיום, שלא ממש איכפת לך אם כתבת בטעות prinf במקום printf או אם שכחת כמה ; נו אז? אתה לוחץ עוד פעם-פעמיים על F7 ותוך שניות זה מתוקן ורץ... העובדה שלמתכנתים של פעם הייתה עבודה יותר סיזיפית - לא הופכת אותם ליותר טובים או יותר מוכשרים מאיתנו. ויש לי הרגשה שזה מה שיגידו מתכנתי (או תוכניתני בשבילך...
) העתיד. אולי יהיו מקומות בהם הם יהיו חייבים לרדת לרמה של CPP - אבל רוב התוכנית תיווצר מתוך מחולל-יישומים (בדיוק כמו שאתה היום מוצא את עצמך נוגע באמסבלר איפה שצריך - אבל עיקר העבודה של היא בשפה עילית).
 

אלדד28

New member
אוקיי, נמשיך.

זה לא "יותר ספרטני -> יותר טוב". זה "יותר שליטה -> יותר טוב". חד משמעית, כן. נכון, לא כל תוכנה צריכה את העוצמה של ++C. העניין הוא שכל תוכנה אפשר לכתוב ב-++C, ולא כל תוכנה אפשר לכתוב ב-$C. שפות אקדמיות זה טוב ויפה, אבל אני חי במציאות, בתעשייה. לגבי התוכניתנים עצמם - אז כן, שפה שלא עושה לך הנחות (שמתורגמות לפגיעה בביצועים אח"כ) היא שפה שאם אתה לומד אותה, אתה יכול להתמודד בקלות עם קלות ממנה. מחוללי יישומים לעולם לא יהיו גמישים מספיק, שכן מחוללי יישומים מיועדים למשהו ספציפי. FLASH מיועד ל-X, ו-VB מיועד ל-Y. לגבי שפות עיליות כמו JAVA, להן יש בעיות ביצועים שמונעות מהן להגיע לרמתה של ++C, וזה לעולם יישאר כך. זה כמו ההבדל בין P לבין NP. שפות שאינן מתורגמות ל-NATIVE במלואן, ומסתמכות על שכבת ביניים שעוטפת כל פקודה, לעולם תהיינה איטיות יותר משפה שהיא fully optimized ליכולת החומרה. לגבי האוריפלייר, מצוין. אני בעד קוד אוטומטי. אני לא עובד ב-NOTEPAD, אלא נעזר ב-Visual Assist. אבל יש לי את היכולת לשנות גם את מה שהוא כותב, או מה ש-WIZARD-ים שונים דחפו לי פנימה. זה ההבדל הקטן אך המשמעותי בין ++C לבין שפות כמו JAVA (שלא להזכיר צעצועים כמו VB ו-MAGIC). כמו שאמרתי בעבר, זה יהיה טמטום למחשב את המכולת השכונתית ב - ++C, אבל למרבה המזל - שאחרת לא היה לנו אתגר בחיים - יש מספיק תוכנות שלא יכולות להסתפק בשום דבר שהוא פחות מ-++C.
 

eyalbd

New member
תגדיר "שליטה"

מה אתה מתכוון בזה? המילה הופיעה הרבה פעמים בשירשור הזה. שליטה במה? על איזה דברים שאתה שולט לא תהיה מוכן לוותר? למה יותר שליטה יותר טוב? במה יותר טוב? תן לי דוגמא. ואם אפשר דוגמא הפוכה (פחות שליטה פחות טוב)
 
למעלה