עבור לתוכן

מה ההבדל בין C# לC/++C?

Featured Replies

פורסם

כותרת

(#C בין ++C/C)

פורסם

אלו 3 שפות שונות.

C ו-C++ הן דומות (C++ מבוססת על C), כשההבדל העיקרי הוא ש-C++ היא object oriented.

C# היא שפה managed (כמו ג'אווה) שמבוססת מבחינה סינטקטית על C++, אבל חוץ מזה אין לה שום קשר ל-C/C++.

פורסם
  • מחבר

ובשניהם בונים תוכנות?

ואם נגיד אני רוצה ללמוד #C אז אני צריך להתחיל קודם מC?

פורסם

אם אתה רוצה לתכנת כדאי שתתחיל מ-C.

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

לאחר מכן אתה חופשי להתקדם לשפות כמו ג'אווה וסישארפ [c#]

פורסם

על הטענה הזו לא ממש שמעתי, אבל בכל מקרה לעולם לא נורא קל לבצע את המעבר מ-C לשפות מודרניות.

למי שיודע C המעבר ל-C++ (ברמה נמוכה אך סבירה) עדיין יקח כמה חודשים.

זה תלוי במה אתה מנסה להשיג. אם לדוגמא אתה סתם רוצה לטעום תכנות, עדיף שתלמד שפה יותר פשוטה לשימושף משהו כמו Ruby או Python. בשביל מתחילים ובשביל אנשים שרק רוצים טעימה מהעולם הזה, שפות דינמיות עם interpreter יותר נוחות בד"כ.

אם אתה רוצה להכנס לזה יותר ברצינות, אפשר גם להתחיל שם, אבל אפשר גם ללמוד C++ או JAVA או C#.

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

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

אם אתה כבר לומד C++, אל תטרח בהכרח ללמוד C קודם. ותקרא את זה: http://www.parashift.com/c++-faq-lite/how-to-learn-cpp.html

ולא משנה מה אתה בוחר, אני ממליץ לקרוא את http://norvig.com/21-days.html

פורסם
  • מחבר

תראה יש לנו מגמות שנה הבאה

ובמגמת מחשבים לומדים C# אז בדרך נלמד גם C++ או שאפשר לדלג עד #C?

פורסם

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

פורסם

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

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

למשל אצלנו במחלקה באוניברסיטה עשו לנו את הקורס הבסיסי בתכנות [מבוא למדעי המחשב/לתכנות מונחה עצמים] בג'אווה וכשהגענו לשנה ב' אז היו לנו שני קורסים במקביל בשתי שפות שונות, C# ו-C++/C ואני יכול לספר לך שהמעבר מג'אווה לסי++ וסי היה זוועה לרוב האנשים שלא הבינו מאיפה נופלות עליהם כל השגיאות והקריסות של התוכנה, לעומת זאת ב-C# לא הייתה בעיה בכלל.

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

פורסם
  • מחבר

אז במה יותר משתמשים C או #C?

ומה יותר טוב?

פורסם

כל אחד לשימושים אחרים.

(ואין לי כוח לפרט עכשיו, אני זז הביתה...)

פורסם

לא אמרתי ש-C או C++ הן שפות לא טובות. אם זה מה שהשתמע אז אני רוצה לתקן.

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

כמובן שלדעתי לכולם מומלץ ללמוד C או C++, אבל ללמוד ברצינות ולא "בכאילו", או "בדרך" או "ב-21 יום". צריך להשקיע הרבה שעות לימוד ותרגול בשפה. לדעתי אם אתה לא מבין פוינטרים, יש לך חור גדול בהשכלה והבהנה של איך מחשבים פועלים.

אין שפות שהן יותר טובות או פחות טובות. שפות תכנות הן כלי, והחוכמה היא לבחור כלי שמתאים לעבודה. בשביל לכתוב אפליקצית GUI בוונדוס שמדברת ע DATABASE מעל רשת: הדבר הכי טוב הוא כנראה C#. בשביל מחשב בקרת מנוע של רכב - לך על C.

פורסם

פה אני בהחלט מסכים איתך.

למרות שאני אישית תמיד מעדיף את סי וסי++ כי הן יותר מעניינות ומאפשרות לך תחום יותר רחב ולהכנס יותר עמוק לתוך מערכת ההפעלה שלך. [דרייברים של המערכת הפעלה למשל נכתבים בשפת סי או סי++]

פורסם

לא הייתי אומר אפילו ש-C ו-C++ מאפשרות לך תחום רחב יותר מ-C#, אלא פשוט תחומים שונים. C היא low-level ו-C# היא high-level (הדוגמה של זליג מתארת את זה בדיוק).

פורסם

אני דווקא כן הייתי אומר את זה. תחום הרבה יותר רחב.

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

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

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

אני יעצור את עצמי פה לפני שנתדרדר שוב לויכוח על שפות.

פורסם

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

הבנתי שהיתרון ב c++ הוא מהירות , אבל החסרון (לחלק אולי זה יתרון) שזאת שפה שיש הרבה ללמוד כדי להיות מקצוען

האם חושבים על פיתוח שפה שתהיה מהירה ויעילה , ובד בבד קלה ללימוד ?

ארכיון

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

דיונים חדשים