שפת Swift הסודית ביותר של אפל גדלה מעבודה כדי לקיים את Objective C, אותה היא שואפת כעת להחליף

העבודה על Swift - שפת התכנות החדשה והמפתיעה של אפל שנחשפה ב-WWDC - החלה בפיתוח לפני ארבע שנים יחד עם המאמצים לשמור על יעד C רלוונטי. Swift שואפת כעת להחליף במהירות את Objective C לפיתוח קקאו מודרני ב-iOS ו-OS X.

במקום להיות רעיון "ביטא" חדש לגמרי, תעבוד עלמָהִירהתחיל בקיץ 2010,לפיליוצר השפה החדשה כריס לטנר (למטה), שעבד באפל מאז 2005. לטנר ידועה כנראה בזכות LLVM, פרויקט תשתית המהדר של מכונות וירטואליות ברמה נמוכה עם קמע דרקון וויברן (למעלה).

LLVM: מהדר חדש עבור Objective C

LLVMמקורוכפרויקט המחקר של לטנר בזמן סטודנט באוניברסיטת אילינוי, אורבנה-שמפיין בשנת 2000. הוא שוחרר לראשונה כגרסה 1.0 בשנת 2003. בשנת 2004, לטנר היה מתמחה בקיץ ב-Microsoft Research, שם עבד על תשתית ספקי הפניקס , פועל כדי לאפשר ל-LLVM להדר ולהריץ קוד NET.

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

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

בנוסף לפרויקט "הטהור" LLVM Clang, לטנר גם הציעה לשלב את ה-LLVM החדש, הכולל את מייעל הקוד ומחולל הקוד המתקדם שלו, ב-GCC הקיים (GNU C Compiler), תוך הוספת שיטות מודרניות ל"לולאה אגרסיבית, סקלאר סטנדרטי, ו אופטימיזציות בין-פרוצדורות וניתוחים בין-הליכים" חסרים ברכיבי GCC הסטנדרטיים שהיו זה מכבר מרכיב ליבה של כלי הפיתוח ב-Unix מערכות הפעלה כמו OS X של אפל.

התמיכה של GCC ב-Objective C, שפת הפיתוח העיקרית של OS X Cocoa של אפל (ו-NeXTStep, קודמתה ההיסטורית), הלכה וקפאה, כך שהמוטיבציה של אפל למימון הפיתוח הפתוח של Clang ושל LLVM-GCC כללה שמירה על ה-Objective C של ה-Mac רלוונטי. בתור שפה.

אפל החלה להשתמש באגרסיביות ב-LLVM ב-OS X, וסיפקה את LLVM-GCC למפתחי ה-Mac שלה על מנת לספק גישה למהדר LLVM החדש ולהפיק תועלת מאופטימיזציות הקוד שלו מבלי לדרוש שינויים מהותיים בזרימת העבודה שלהם בהתבסס על ה-GCC הקודם.

החברה גם שילבה את LLVM ב-מחסנית OpenGLשל OS X 10.5 Leopard ב-2006, ומינפה את LLVM כדי לסייע בהעברת ה-Mac לאינטל החל מ-2005 ולארכיטקטורת ARM עבור האייפון ב-2007.

עד שחרור 2012 של OS X Mountain Lion ו-iOS 6, אפל עברה כולה ל-Clang, והשאירה את LLVM-GCC וגם GCC מאחור. LLVM לא רק מניע את התוכנה של אפל, אלא גם משולב היטב בפיתוח הסיליקון המותאם אישית של אפל, כולל מעבדי היישומים A6 ו-A7.

LLVM ממלאת תפקיד מפתח גם בטכנולוגיות אחרות של אפל, החל מ-LLDB באגים ועד ממשקי API חדשים, כוללמַתֶכֶת, השכבה החדשה של אפל לגרפיקה עם ביצועים גבוהים ב-iOS החושפת את יכולות הגרפיקה של ה-A7 החדש ביותר עם מינימום תקורה אפשרי, ומספקת שיפור משמעותי בביצועים על פני השימוש ב-OpenGL למטרות כלליות יותר.

Swift: שפה חדשה עבור LLVM

עד 2010, הפתרון של LLVM לתמיכת Objective C עומדת של GCC יצר תרחיש חדש שבו LLVM יכול לתמוך ביותר תכונות ממה שניתן להוסיף בקלות ל-Ojective C. לטנר החל לעבוד על שפת תכנות חדשה באותו קיץ, ושנה לאחר מכן הצטרף " עוד כמה אנשים (מדהימים)".

ביולי 2013, Lattner ציין כי פרויקט Swift החדש הפך ל"מוקד מרכזי עבור קבוצת Apple Developer Tools". זה נשאר אסוֹדלציבור לשנה הבאה. לטנר מציין בשלוקוֹרוֹת חַיִיםשהוא "לקח על עצמו את הניהול וההובלה של כל מחלקת כלים למפתחים באפל" בתחילת 2013.

"בנוסף למהדרים ולכלים ברמה נמוכה", מציין לטנר, "עכשיו אני אחראי על ה-Xcode IDE, כלי ניתוח הביצועים של מכשירים, מהדורות של Apple Java ומגוון כלים פנימיים. Xcode 5 הוא התוצאה הראשונה של עבודה זו. , למרות שחלק גדול מהתכנון והטמעה של התכונות הושלמו לפני שהשתלטתי על התכנסות והגדרתי כמה תכונות מפתח שפורסמו ב-WWDC.

Lattner ציין כי שפת Swift החדשה "היא תוצר של מאמץ בלתי נלאה של צוות של מומחי שפה, גורואים לתיעוד, נינג'ות אופטימיזציית מהדרים וקבוצת ניסוי פנימית חשובה להפליא שסיפקה משוב כדי לעזור לחדד ולבחון רעיונות. כמובן, הוא גם נהנה מאוד מהחוויות שזכו להרבה שפות אחרות בתחום, ושאבו רעיונות מ-Objective-C, Rust, Haskell, Ruby, Python, C#, CLU ועוד הרבה יותר מדי מכדי לפרט."

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

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

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

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

מגרשי המשחקים האינטראקטיביים של Swift & REPL

Lattner גם הגיב על שתי תכונות חדשות הקשורות לסוויפט: קונסולת ניפוי הבאגים החדשה של Xcode (למטה) ו-REPL (Read-Eval-Print-Loop).

"התכונה של Xcode Playgrounds ו-REPL היו תשוקה אישית שלי, להפוך את התכנות לאינטראקטיבית ונגישה יותר", ציין לטנר. "צוותי Xcode ו-LLDB עשו עבודה פנומנלית והפכו רעיונות מטורפים למשהו נהדר באמת.

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

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

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

החברה מצהירה ש-Playground של Xcode מאפשר למשתמשים "לעצב אלגוריתם חדש, לצפות בתוצאות שלו בכל שלב; ליצור בדיקות חדשות, לוודא שהן עובדות לפני קידום לחבילת הבדיקות שלך; להתנסות עם ממשקי API חדשים כדי לחדד את כישורי הקידוד של Swift."

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

אפל אומרת שהיא מתכננת לפתח במהירות את Swift בתגובה לצורכי מפתחים ולבקשות תכונה.

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