ארכיון יומי: 12 אוגוסט, 2012

איך זה שהפלוס דולף ?

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

המצב מאוד בעייתי, לכן יצרו frameworks שלמים לעבוד עם השפה (למשל Boost ו Qt) אשר כיום כבר רבים מתייחסים ל Boost כאילו היה חלק מהשפה עצמה. זה לא תוספת לשפה, אלא זה ממש מקנה את היכולת לתכנת בשפה בקלות ובנוחות יותר.

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

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

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

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

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

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

טוב אפסיק את הפוסט לפני שיהיה לי עוד segfault