עבור לתוכן

מה כדאי ללמוד היום? ++Java ,.NET3.5 ,C, או אולי בכלל web mastering?

Featured Replies

פורסם

הנה השוואה שהיא מעולה בעיניי בין C# .NET לבין JAVA:

http://www.25hoursaday.com/CsharpVsJava.html

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

אבל, תמיד יש אבל...

ההמלצה הכי טובה שלי תהיה, בהתחשב במצב הנוכחי של השוק היא שתלמד הכל. ואני לא צוחק.

המלצה יותר מעשית, בגלל המצב הנוכחי של השוק, היא שתתמקד בשפת תכנות אחת בלבד (רצוי להתחיל מ- ++C, ואני אסביר תכף) אבל תלמד הרבה מעבר לכתיבת קוד. יש תהליכים של הוצאת תוכנה, יש עקרונות תכנות כמו Design Patterns והלהיט הנוכחי הוא SOA (Service Oriented Architecture).

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

עכשיו למה אני ממליץ על ++C?

קודם כל כי כל דבר שאפשר לעשות ב- JAVA ו- #C אפשר לעשות ב ++C.

אבל לא כל דבר שאפשר לעשות בשתי השפות הנ"ל (אני אתייחס רק לJAVA מעתה, ברשותך ;)) אפשר לעשות ב- ++C.

היתרון של ++C היא השליטה המוחלטת שהיא נותנת לך, המתכנת, על דרך כתיבת התוכנה.

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

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

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

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

ובכלל לא דיברתי על זה שאי אפשר לבנות אפליקציות real-time אמיתיות ב- JAVA, ושהכל שם הרבה יותר איטי באופן כללי (למרות שהיא, כמו #C מתקדמות לאט לאט).

אגב, אם סטיתי קצת מהנושא, אל תהרגו אותי. :)

בהצלחה בבחירתך :xyxthumbs:

נ.ב. ראיתי פה מישהו מזכיר C++/CLR (ידועה פעם בתור ++Managed C).

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

רק דוגמא אחת בשביל לסבר את העין - אי אפשר להשתמש ב STL ב- C++/CLR.

CPP בלי STL? לא נראה לי.

אם אתה רוצה להשתמש ב NET., לך עם #C.

פורסם

אני מניח שזו הזדמנות טובה להכניס קישור ל:

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

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

פורסם

אחח, הכתבה הזו גורמת לי להרגיש ממש טוב עם עצמי.

תודה לך, ג'ואל. :)

פורסם
  • מחבר

אחרי הפוסטים האחרונים נראה לי יותר הכיוון של net. בגלל הקירבה ל++C (אותה אלמד במקביל או לפני)

מה שמפריע לי עם MS שהם יכולים פתאום להחליף את כל פלטפורמת הnet. עם שפת "MS" חדשה.

שתי שאלו אליכם:

בקוד פתוח עושים שימוש ב- C++,Java ,Perl ,Python ?

ומה היא סביבת הריצה של ++C? היא מובנת בלינוקס ווינדוס?

פורסם

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

קוד פתוח לא קשור לשפה זו או אחרת, אלא על כך שיש לך גישה לקוד של התוכנה.

C++ בבסיסה רצה בלי סביבת ריצה מיוחדת (הקוד מקומפל ישירות לאסמבלי שרץ על המחשב) ולכן כל קומפיילר שעובד עם C++ יעשה קובץ הרצה שירוץ על הפלטורמות שהוא תומך (כל עוד הקפדת לרשום קוד כללי ו/או שתומך בה).

יש כל מני הרחבות כמו ב VS שיש לך את ה VISUAL STUDIO RUNTIME שאם אתה משתמש בספריות שלו אז צריך שהוא יהיה מותקן על המחשב.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים