שלום אני חדש

Coconuts

New member
שלום אני חדש

ואני רוצה להתחיל ללמוד c++ פעם למדתי QBASIC (ממש מזמן) אבל עכשיו אני יוצר מתמצא ב actionscript (flash) האם כדאי לי להתחיל c++? אתם יכולים להגיד לי מה אני יכול לעשות עם שפה זו? (כדי שתיהיה התלהבות) יש לציין שאני יודע משפטי תנאי, ביטויים ,לולאות וכל הדברים האלו אני רק צריך הרחבה בנושא הc++ תודה רבה!
 

אלדד28

New member
המממ... מה אפשר לעשות ב- ++C...

הכל. אין משהו שאי אפשר לעשות ב - ++C (חוץ מקפה, אולי, וגם את זה אפשר לעשות ב - ++C תחת תנאים מסוימים
). בעיקרון, 99% מהתוכנות שאתה רואה, אם זה מערכת ההפעלה שלך, הדפדפן שלך, חבילת OFFICE, כל המשחקים הנורמליים שאתה מכיר, תוכנות כמו FLASH וכדומה - כוללללללן כתובות ב - ++C/C. אין תחליף הולם לשפה הזו. קח בחשבון שכדי להגיע לרמה של כתיבה מקצועית כזו נדרשות שנים של לימוד. זה לא בא בלילה אחד.
 

Coconuts

New member
תודה ועוד דבר קטן

יש הבדל גדול בין c/c++ ? אם אני יתחיל ב c יהיה בזה משהו רע?
 

DecayCell

New member
יש הבדל

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

Zack DA

New member
טוב. בואו נפתח מלחמת עולם.

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

אלדד28

New member
למה לכעוס? ../images/Emo6.gif

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

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

אלדד28

New member
נראה ../images/Emo6.gif

ביצועים מיטביים לא שמורים ל-RT/E, הם נדרשים בהרבה מאוד דברים אחרים. רוב האפליקציות השולחניות הנורמליות לא יכולות לרוץ ב- JAVA (או כל שפה אחרת שהזכרת), כי אין שום פראייר שיסכים לחכות סדרי גודל של שניות על כל פעולה.
 
ונחיה. ../images/Emo13.gif

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

DNile

New member
DNile כמתכנת, וDNile כמשתמש.

אז בתור מתכנת, שמתכנת יחסית מעט זמן(4 וחצי שנים לערך), אני יכול להגיד לך שכמעט ולא היו לי פרויקטים שבהם אלמנט המהירות לא היה חשוב. וזה כלל וכלל לא משנה אם הפרויקטים האלה היו כלי בדיקה אוטומטיים שהשביתו מחשבים שלמים במעבדת הQA, כשהטסטרים היו צריכים לחכות 3 ימים ויותר עד שחבילת הבדיקות תסתיים, או אם הפרויקטים האלה היו פרויקטים שהושמו במפעלי הייצור שלנו(ואז ההבדל בין 7 דקות הרצה לדקה אחת גם אמרו כמה מוצרים אנחנו מסוגלים להפיק, או כמה עובדים אנחנו צריכים להעסיק במפעל). ולא - אף אחד מהמוצרים האלה לא היו real time. אפילו לא soft real time. אני יכול להביא דוגמאות מכל אחד ואחד מהפרויקטים עליהם עבדתי עד היום, ולמה רק מעטים מאוד מהם מתאימים לעבור למערכת כמו ג'אווה, או חס ושלום VB. DNile כמשתמש אגב, התנסה בעבודה עם JBuilder. ממש מצא חן בעיניו הרעיון שסביבת עבודה לJava בנויה כולה בJava. אך אבוי! גם על מחשב 2Ghz, עם ימבה זכרון, לוקח לו המון המון זמן לעלות, לקמפל, ובכלל, התפקוד שלו איטי וגרוע. אז נכון, יבוא יום ובו כל אחד מאיתנו יהיה בעלים של מחשב-על מתוצרת סיליקון גרפיקס, או IBM, מהסוג שיושב בכורים גרעיניים ברוסיה, אבל עד אז - אני מעדיף להמנע מJava והחיקויים המיקרוסופטיים שלו.
 

1אברהם

New member
../images/Emo127.gifהמהירות מעל הכל

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

barakbl

New member
עניין המהירות זה דבר שמשתנה

כל הזמן. אתן דוגמא רלוונטית: לפני מספר שנים, עת קנינו את הפנטיום הראשון שלנו (פנטיום 2 266, מחשב שאגב עוד חי קיים ומשמש את אמא שלי כמכונה שלה, עם ראד האט 7.3 ו KDE 3!!!) התחברנו לאינטרנט שמחים וטובי לב. הדפדפנים שהיו אז היו נטסקייפ 3 ואקספלורר 3. כמובן, נטסקייפ היה אז השליט הבלתי מעורער. למה אני מספק את זה? כי באותם ימים, היה מקובל מאוד שימוש באפלטים של ג'אווה. לא אשכח את האיטיות של האפלטים הללו... כל פעם כשהיית נכנס לעמוד עם אפלט, המחשב היה נתקע למספר שניות, בערך 5-10 שניות, ממש נתקע בעיבוד של האפלט!!! כיום, אפלטי ג'אווה שמשובצים בעמודי WEB אינם גורמים לשום בעית ביצועים. מי שחי באשליה ש ++C/C הן שפות העתיד, כנראה שעוד יתבדה, ובגדול. סביר להניח ששפת העתיד תשאל המון מ C או מ ++C, אבל היא תהיה שונה לחלוטין, ויכול להיות שזאת תהיה Java או $C (השיבוש בכוונה). יש כאלה שחושבים שכדי ששפה תהיה טובה היא צריכה להיות קשה... פעם חשבו, שכדי להפעיל מחשב צריך לדעת לדבר אנגלית ולהיות אינטיליגנט, באה אפל (ובעקבותיה מייקרוסופט) והוכיחה שהחיים יכולים להיות פשוטים בהרבה. החיים הם דינמיים, וכמו שכולם מגלים כיום את הנוחות שברכב האוטומטי,שהאנימטורים גילו שלא צריך לצייר כל פריים בודד על דף, כדי להפיק סרט מצויר בעידן המומחשב ככה אנשים יגלו ויסתגלו לזה שתכנות זו מלאכה הרבה יותר פשוטה מאיך שאנחנו מכירים אותה כיום. ל 1אברהם, דווקא הדוגמאות שציינת מוכיחים בדיוק הפוך. אמנם ה WORD יותר איטי, אבל זה לא בגלל שהוא כתוב בצורה פחות יעילה (טוב, אולי גם בגלל זה, קשה לדעת) אלא בגלל שהוא עמוס בפיצ'רים. אם תשאל 100 משתמשים מה הם מעדיפים מעבד תמלילים קל יותר אבל נטול פיצ'רים או את word העמוס במאפיינים ופיצ'רים הם יבחרו ב WORD. בדיוק הדוגמא הזאת מוכיחה שאפשר גם אפשר להתפשר על ביצועים/מהירות ריצה של תוכניות. הנקודה היא, שהתוכנה צריכה לעשות את מה שהיא אמורה לעשות ביעילות מספיקה, יחסית לצרכים ממנה. אם ניקח למשל עוד דוגמא, אתה יודע כמה תוכנות לעיבוד תמונה יש שהן מהירות פי כמה באתחול, וכן הרבה יותר "קלות" (מבחינת צריכת זכרון) מאשר פוטושופ? האם זה מונע מהרוב המכריע של הגרפיקאים החובבים והמקצועיים לבחור בתוכנה הזאת? ממש לא. כל זה כמובן, לא יצדיק את התחושה הכבדה והגועלית שיש בשימוש בתוכניות שנכתבו בג'אווה כמו JBUILDER. אבל, כיום עם SWT, הבשלת הטכנולוגיה של ג'אווה, ועם התקדמות המחשבים, העסק מתחיל להראות טוב יותר ויותר (אבל עדיין לא משביע רצון). בשורה התחתונה, הפרשי הביצועים הולכים להיות הרבה פחות משמעותיים בין המערכות השונות, בגלל שהמחשבים יהיו מספיק חזקים, והשפות הרבה יותר בשלות ויעילות. אל תשכחו גם ש C היא שפה מאוד ותיקה, ולפיכך בנויה על יסודות שהתאימו ללפני כמה עשורים, ומכאן יתרונותיה (יעילות, ביצועים) וחסורנותיה (מורכבות בעיקר). ++C מתקנת כמה ליקוים של C אבל עדיין, העסק מאוד מסורבל יחסית.
 

אלדד28

New member
אתה טועה טעות מרה.

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

Zack DA

New member
גם בג'וואה אתה יכול, במחיר של ויתור

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

אלדד28

New member
אז ככה -

1. אז מה הטעם? אם אני "נאלץ" לכתוב ב-JNI למה מלכתחילה להשתמש ב-JAVA? 2. הפרויקט שלי ב-++C הולך והופך לפורטבילי AS WE SPEAK. חלאס עם מיתוס הפורטביליות המקושקש הזה. פורטביליות היא לא תכונה של שפה, היא תכונה של תוכנה. יש תוכנות ++C/C שכתובות בצורה סטנדרטית ומתקמפלות ורצות על כל פלטפורמה קיימת, ויש תוכנות JAVA שלא.
 

Zack DA

New member
זה לא מדויק. וגם לא רצוי.

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

אלדד28

New member
את זה אתה אומר מתוך נסיון של

PORTING של מערכות ++C בין מערכות הפעלה? או סתם בגלל שככה אתה חושב או שזה מה ששמעת?
 
למעלה