שפת התכנות החדשה של אפל סוויפט יוצאת לדרך עם Getty Images, American Airlines, LinkedIn ו-Duolingo

שפת התכנות החדשה של אפל Swift זמינה רק כמה חודשים, אבל מפתחי iOS ו-OS X מאמריקן איירליינס, Getty Images, LinkedIn ו-Duolingo מדווחים על הופעות חיוביות - החל מפרודוקטיביות מוגברת ועד פחות באגים באפליקציות המשלוח שלהם - כעניין ב השפה החדשה מואצת במהירות.

סוויפט, שהוצגה לראשונה ביוני האחרון בכנס המפתחים העולמי של אפל לפני שנשלחה בספטמבר לצד iOS 8 ו-OS X Yosemite, בצורה הדוקהמשתלבעם מהדר LLVM של כריס לטנר. סוויפט מתכוונת להאיץ את כתיבת הקוד, מציגה מושגי תכנות מודרניים ומטרתה למנוע שגיאות נפוצות שעלולות להוביל לקריסות אפליקציה.

אפל השקיעה אסטרטגית בסוויפט

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

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

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

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

החברה גם שמה דגש על ביצועי השפה החדשה,מצייןשקוד Swift המיישם אלגוריתם חיפוש נפוץ יכול להפעיל פי 2.6 מהר יותר מ-Objective-C, או עד פי 8.4 מהר יותר מקוד מקביל שנכתב ב-Python.

מפתחים נוהרים לסוויפט

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

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

כְּמוֹדיווחעל ידי RedMonk באמצע ינואר, אימוץ ה-Swift של אפל היה "חסר תקדים למעשה", ונכנס ל-25 שפות התכנות הפופולריות ביותר תוך חמישה חודשים בלבד, הישג שלקח לשפת הגו של גוגל קרוב יותר לחמש שנים להשיג.מגוון אוניברסיטאות בינלאומיות ובתי ספר טכניים כבר משלבים את סוויפט בקורסים שלהם

חיזוק הפופולריות של סוויפט לעתיד הוא העובדה שמגוון אוניברסיטאות בינלאומיות ובתי ספר טכניים כבר משלבים את סוויפט בקורסים שלהם, מהאוניברסיטה הטכנית של מינכן בגרמניה ועד ל-Tecnológico de Monterrey במקסיקו, Ingésup בצרפת, אוניברסיטת Aberystwyth ואוניברסיטת פלימות'. בריטניה ואוניברסיטת RMIT באוסטרליה.

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

אימוץ Swift של Getty Images בתוך Stream

אמר רפאל מילר, מנהל פיתוח אפליקציות ב-Getty ImagesAppleInsiderהוא התחיל לראשונה עם Swift ב-WWDC, והשתתף בהאקתון של יומיים. זה הביאזֶרֶם, אפליקציה חדשה עבור iOS ו-OS X המאפשרת למשתמשים לחפש, לגלוש ולשתף צילום מקצועי מתיק התמונות של Getty Images.

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

עבור המפתחים החדשים הללו, Swift מקלה על לימוד שפת התכנות המוגדרת כברירת מחדל של הפלטפורמות של אפל, ומאפשרת להם להתמקד באיסוף והבנת ממשקי ה-API של Mac Cocoa או iOS Cocoa Touch, אמר מילר.

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

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

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

מילר ציין שבעוד שהגרסאות הראשוניות של Swift היו "די גולמיות", מאז "כל מהדורה השתפרה". אמנם יש "עדיין כמה קריסות ב-Xcode" הקשורות לבעיות מהדר וכמה בעיות עם שילוב של Objective-C ו-Swift, מילר אמר שהצלחת Stream - שנכתבת כולה ב-Swift - היא שהצוות שלו "מוכן להתחיל בהמרה של כל האפליקציות שלנו ל-Swift", כאשר אפליקציית Getty Images המלאה מכוונת למטרה בטווח הקרוב להגיע ל-50 עד 60 אחוזים של קוד Swift.

Getty Images לא עוסקת בפיתוח אפליקציית אנדרואיד ומילר אמר שאין לה תוכניות חוצות פלטפורמות בעתיד הקרוב, כך שההשקעה בסוויפט אינה מוגבלת על ידי בעיות ניידות. עם זאת, הוא גם ציין שסדנאות Swift המנוהלות על ידי צוות המובייל שלו זוכות לתשומת לבם של מפתחים אחרים בחברה, כולל קודני API backend המשתמשים ב-C# של מיקרוסופט ומפתחי אינטרנט המוכרים עם Ruby.

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

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

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

סוויפט ממריאה באמריקן איירליינס

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

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

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

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

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

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

כמו Getty Images, גם אמריקן איירליינס נוקטת ב"גישה מצטברת" באימוץ סוויפט. Klosterman ציין באופן דומה שיפורים איטרטיביים לסוויפט מאז הופעת הבכורה שלה ב-WWDC, וציין שהיא "מתפתחת עם כל מהדורה".

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

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

הצגת הסוויפט של אפל בקיץ שעבר חלפה בקנה אחד עם אב הטיפוס הרעיוני של החדשSlideShareאפליקציה של LinkedIn, המארחת מצגות עסקיות משותפות, אינפוגרפיקה וסרטונים בדומה לאינסטגרם לשיתוף מצגות בין אנשי מקצוע עסקיים.

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

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

כשנשאלה על הביצועים של Swift, ענה Meza, "אני חייב לומר שאני מאוד מרוצה מביצועי זמן הריצה של Swift בהתבסס על השוואה של מדדי מעקב אחר ביצועים עבור דפים דומים של האפליקציה של SlideShare (Swift) וגם של אפליקציית הדגל של LinkedIn (Objective-C) ."

מבחינת איכות הקוד והיציבות המתקבלת, Kristinsson ציין כי "קצב הקריסה של אפליקציית SlideShare מצוין וטוב בהרבה מאשר באפליקציות אחרות שהצוות שלנו פיתח בעבר."

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

הוא הוסיף, "בהתחשב בחוויה הנהדרת שחווינו עם Swift עד כה, SlideShare תמשיך להשתמש בה כשפת הבחירה שלה לפיתוח iOS."

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

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

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

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

דולינגו לומד שפה חדשה

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

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

Duolingo תיאר חוויות מפורטות עם תכונות ספציפיות של Swift, אך הגיע למסקנה שאפליקציית Test Center שלה - שפותחה "קצת יותר משלושה חודשים" על ידי מתכנת יחיד - הצליחה להשיג את המטרה המיועדת של "מספר נמוך של קריסות" בידי המשתמשים בתור הורדה פופולרית. יתרה מכך, מבין התריסות שאחריהן עקבה החברה, ארבעה מתוך חמשת הטריגרים המובילים של דוחות התרסקות היו קשורים לקוד בספריית Objective-C חיצונית, ולא לקוד Swift החדש שלה.

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

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

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

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

המפתחים הגיעו למסקנה, בהתבסס על הניסיון הראשוני שלהם עם Test Center, כי "ניתן להשתמש ב-Swift כדי לכתוב אפליקציות ייצור יציבות, חזקות ובנפחים גבוהים. האפליקציה הראשית שלנו, Duolingo, כבר משתמשת בקוד Swift, ואנחנו מתכננים להשתמש בו יותר ויותר בעתיד."

החברה גם המליצה, "אם כבר יש לך אפליקציה ב-Objective-C, כנראה שלא תרצה לשכתב אותה מאפס רק בשביל השימוש ב-Swift, אבל אתה יכול לשקול להוסיף רכיבים חדשים ב-Swift".

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

Swift ממלאת תפקיד אסטרטגי ב-Apple Watch, יישומי iPad של IBM

נראה שהגישה הפרגמטית של אפל להפיכת Swift לפועלת הדדית עם Objective-C פועלת כדי לאפשר למפתחי iOS ו-Mac לאמץ בהדרגה את השפה החדשה, להרטיב את רגליהם מבלי להתחיל מחדש מאפס. אפל גם עושה שימוש נרחב ב-Swift עצמה, ותומכת בפיתוח חדש ב-Swift עבור ה-Apple Watch הקרוב.

לסוויפט מיוחסת גם תפקיד משמעותי בשותפות האחרונה של אפל עם יבמ לפיתוח סוג חדש של אפליקציות iPad "מוכנות לנייד" עבור משתמשים עסקיים ניידים. בקיץ שעבר, קוקנָקוּב, "יצרנו מערכת יחסים עם IBM כדי לספק סוג חדש של פתרונות עסקיים ניידים ללקוחות ארגוניים ברחבי העולם. אנחנו עובדים יחד כדי לספק לחברות גישה לעוצמה של ניתוח ביג דאטה ישירות על האייפון או האייפד של כל עובד.

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