יומיות 12.05.2024: מה הופך את Rust לשפת תכנות סקסית?
רכבת האקספרס מוורשה לקראקוב היא כל מה שרע בקפטיליזם. היא אולי מודרנית וחדשה, אבל גם הכסאות בה צפופים מהרכבת הרגילה, יש פחות מקום למזוודה – ועם זאת היא יקרה פי 4. כמה זמן נחסך? חצי שעה בערך, לא דרמטי.
אבל היא נוסעת כל שעה, בעוד שהישנה והאיטית פעמים ספורות ביום וכמעט תמיד סולד אאוט.
1. כבר כמעט עשור ש-Rust נחשבת לשפת התכנות הכי סקסית בעולם. כולם מצפים שמתישהו היא תחליף את ++C.
אני מעריץ נלהב של Rust מאז שגיליתי אותה ב-2016, נדמה לי, וזאת למרות שלא ממש תיכנתתי בה עד לאחרונה. הרעיון הבסיסי של השפה נשמע כל כך "נכון" שקשה לא להתאהב בה.
אז בואו נדבר על Rust כדי שגם אתם תדעו מה עושה שפת תיכנות סקסית!
יש הרבה סוגים של שפות תיכנות, כל אחת מתאימה לסיטואציה וסוג תוכניתן אחרים. פייתון וג'אווה סקריפט, נגיד, טובות למשימות פשוטות שלא צריכות ביצועים מהירים או קוד בטוח. שפת R טובה לניתוחים סטטיסטיים, סולידיטי נבנתה בשביל בלוקצ'יינים, ו-C מושלמת אם אתם מתכנתים למכשירים עם מעבד חלש.
"מלכות" שפות התכנות הן ++C, ג'אווה או Rust. התוצרים שלהן מהירים כמו C, אבל הן מספיק מורכבות כך שאפשר לכתוב בהם תוכנות ענק. לינוקס (תיקון: כתובה ב-C), חלונות, פוטושופ או אנרואיד כתובות בשפות האלה. החסרון הוא שקשה לעבוד איתם, אז למשימות פשוטות משתמשים בדברים כמו פייתון.
ממציא ++C, ביארנה סטרוסטרופ (שם אמיתי!) אמר פעם ש
"יש שתי סוגים של שפות תיכנות – אלו שאנשים מתלוננים עליהן, ואלו שאף אחד לא משתמש בהן".
שונאי ++C, נגיד, מתלוננים על שני דברים עיקריים. האחד הוא שהשפה היא בלאגן מוחלט. ברדק אם תרצו להשתמש ברוסית. קשה לעקוב אחרי הנרטיב שלה, וזה מבלבל את השכל.
השני הוא שבגלל החופש המוחלט ש-++C מעניקה, קל לעשות בה טעויות, בעיקר בתחום ניהול הזכרון (לא משנה אם אתם לא יודעים מה זה). כתוצאה, קשה לכתוב קוד אמין ב-++C. זה בעייתי בעיקר לדברים כמו קריפטוגרפיה.
ב-2015 המציאה מוזילה את Rust ותיכננה אותה בערך מההתחלה להיות השפה שתחליף את ++C.
אם הבעיה העיקרית של ++C היא ניהול זכרון, החידוש העיקרי ב-Rust היא מערכת ניהול זכרון שהיא גם גמישה (כמו ++C) אבל גם בטוחה (בניגוד ל-++C). אם ++C היא בלאגן, אז Rust היא שפה בה כל אלמנט יושב מושלם בתוך הגיון תיכנוני מדויק.
הספר שמציג את Rust הוא ספר התיכנות הטוב ביותר שקראתי בחיי. אתם קוראים אותו וחושבים לעצמכם, "אהממ הממ, נכון. ככה צריכה להיות שפת תיכנות. הכל כל כך הגיוני פה!". כך לפחות אני חשבתי.
אבל אחרי עבודה עם Rust בארבעת החודשים האחרונים, הדעה שלי מתחילה להיות יותר מורכבת. כן, אני עדיין מאוהב בשפה, אבל גם מתחיל לראות את הבעיתיות בה. ההייפ שהיא הדבר המושלם לכל בעיה ולכל מצב פתאום נראה לי שגוי.
ובאמצע כל הפקפוקים הללו פירסם מישהו מאמר ענק אנחנו מפסיקים לפתח משחקים ב-Rust לאחר שלוש שנים.
הכותב, חלק מצוות פיתוח של סטודיו קטן למשחקים, שפך לתור המאמר את כל הטרוניות שהצטברו לו בשלוש שנות עבודה עם Rust. יש שם 18,500 וזמן קריאה משוער של 96 דקות. אני אחסוך ואסכם לכם את זה בקצרה.
המאמר יוצא נגד חוסר הגמישות של Rust. עקרונות השפה, שכל כך מתגאים בכל שהם יוצרים תוכנות מושלמות, יוצרים גם תהליך פיתוח נוקשה. כל שינוי קטן שתרצו לעשות לתוכנה שלכם ב-Rust ידרוש תכנון מחדש ארוך של הקוד. כן, התוצאה מושלמת, אבל לפעמים צריך מהירות, לא מושלמות. ב-Rust אין קיצורי דרך. אי אפשר לאמר ל-Rust "תחליק לי פה שניה את חוסר השלמות הזאת, אני אטפל בזה אחר כך".
זה הרסני לתהליך פיתוח תוכנה שנועדה למשתמשי קצה. אתם לא יודעים מה משתמשי קצה רוצים – הם צריכים לנסות כדי לדעת אם משהו מתאים להם.
במשחקים זה אפילו יותר חמור: אין דבר כזה "כיף על הנייר". אתם בונים משהו, נותנים לאנשים להסתכל עליו, ורק אם התגובה שלהם היא "אפשר לשחק רגע?" ואז הם לא רוצים לעזוב, אתם יודעים שעשיתם משהו נכון.
תהליך הניסוי והתהייה הזה כמעט מנוגד לאופיו של Rust. זה גורם לכך שעל פי טענת כותב המאמר, המשחקים של Rust אולי כתובים מושלם, אבל הם לא כיפיים, בגלל שהמפתחים התמקדו יותר בפיתוח בשפה מגניבה מאשר ביצירת משחק מהנה.
פה מגיע עניין התאמת השפה לא רק לפרוייקט אלא גם למפתח.
למרות שהוא צודק בתלונה שלו, לאדם כמוני, חפיפיניק חסר תקנה, Rust היא ברכה. אני לא מסוגל לעשות דברים מושלמים. לא מסוגל. כשפרוייקט מגיע ל-95% מושלמות, אני מאבד עניין בכזאת רמה קיצונית שהר לא יכריח אותי לשייף אותו עד הסוף. תראו את הבלוג הזה: התגובות בסלולרי שבורות כבר 4 שנים ועדיין לא מצאתי זמן לתקן אותן.
כשאתם מצליחים לבנות משהו ב-Rust הוא עובד כמו קסם. ואני מתכוון באמת קסם. בזמן הפיתוח של Safecat הייתי במצבים שבהם מרוב עייפות כבר לא היה לי כוח להתרכז בקוד שאני כותב בדיוק. אבל הוא התקמפל, ואז עבד בלי אפילו באג אחד, מדהים.
והקסם הזה הוא מה שהופך שפת תיכנות לסקסית.
2. ל-Dirty34 יש וואחד מנעד יצירה שנע בין יצירות נאיביות טובות לב כמו זו למטה, לבין יצירות קודרות או מלאות אקשן. תוסיפו לזה סגנון ייחודי, ותקבלו אמנ\ית מומלצים מאד.
3. רגע לפני חג הפסח ביקרה רינת קורבט בתערוכת "שובר.ת שוויון" במוזיאון העיצוב בחולון, והדיווח שהיא הביאה משם הוציא לי את העיניים.
יצירתיות זה מסוג הדברים שקשה להגדיר מה הם, אבל קל לזהות אותם ברגע שנתקלים בהם. רמת היצירתיות בתערוכה פשוט הוציאה לי את העיניים. כל החיים אני מחפש עושר יצירתי כזה. אנשים (או "א.נשים" ברוח התערוכה) שעושים דברים אחרים בצורה עוצרת נשימה.
בכל כנסי ההאקרים, נגיד, יש שירותי יוניסקס, אבל אף אחד לא חשב שם עדיין לשים שלט גאוני כמו זה:
או היצירה הזאת, שאתם חייבים ללחוץ עליה להגדלה ולנסות להבין את כל מה שהולך שם:
ממליץ לקרוא את הדיווח של רינת.
4. המלצה חמה לכל בעלי העבודה המשרדית, בעיקר בהייטק. בוובקומיקס Work Chronicles יש הומור משרדי שתמיד היה חביב עלי, בשילוב עם סגנון חמוד שעושה טוב על הלב. מומלץ בחום.
5. הפירסומת האחרונה של אפל ל-iPad מטרידה מאד.
בפרסומת מונחים על שולחן כל פרטי התרבות והיצירה המקסימים ביותר שיצרה התרבות האנושית במאות השנים האחרונות. מכלי נגינה כמו חצוצרה, דרך צבעי שמן ועד מכונות ארקייד ופטיפון. אפל מועכת את כולם עם מכשיר ענק, ומתוצאת המעיכה יוצא iPad.
הסצינה בה כל הדברים האהובים עלינו נמעכים גורמת תחושה לא נעימה בבטן אפילו בפעם השלישית שצופים בה. זה לא רק האקט עצמו, אלא גם מחשבה על מי אישר אותו? אני לא רוצה לאמר את המילה "מנהלים פסיכופטיים", אבל הנה אמרתי את זה ועכשיו קצת קשה לקחת בחזרה.
אפל מאז התנצלה על הפירסומת, וזה מרגיש לי כנה כמו תחזית לשלג באוגוסט.
רק תיקונון קטן, לינוקס כתובה בC, בזמן שדווקא windows כתובה בC++. יש אינספור דיונים וההסברים על האיכויות של כל שפה על פני האחרת ולמה יותר נכון להשתמש דווקא ב ___ , חלקם אפילו נשמעים עניינים כמו ״בקרנל אנחנו נרצה שליטה מלאה על הזכון במקום שהקומפיילר יסתיר מאיתנו דברים״.
אבל ההסבר הכי טוב ששמעתי עד עכשיו לזה שלינוקס כתובה בC הוא שלינוס לא אוהב את C++ 🙂
זה מתחבר עם זה שגם git כתובה בC.
לא ידעתי, מרתק. תודה, מתקן בפוסט!