ספר: Objective-C למפתחים מתקדמים

Objective-C למפתח המתקדם, כך היא הכותרת של עבודתו של פייר שאטלייה. פעם אחת, המתחיל הוא לא המטרה, אבל המטרה כאן היא לפנות למתכנת C++/Java/C, שכבר מכיר את רוב מושגי התכנות ושלא צריך שניקח את זה ביד על מושגים שכבר למדו היטב . רֵאָיוֹן.

פייר, למי מיועד הספר הזה?

ספר זה מיועד למפתחים מנוסים שרוצים להתחיל עם Objective-C, מבלי לבזבז זמן עם תיעוד למתחילים. השאלות שאנו שואלים את עצמנו כשאנחנו כבר יודעים לתכנת הן לרוב די ספציפיות; לקחת דוגמה סירה,אנחנו לא תוהים מהי שיטה וירטואלית, אנחנו מעדיפים לדעת איך הם מיושמים, מה הגבולות שלהם, איך הם מפריעים לעומס וכו'. עוד נקודה חשובה מאוד לדעתי היא גם להפריד בצורה ברורה בין שפת Objective-C לבין APIs (Application Programming Interface) של אפל. כתוצאה מכך, הספר מוגבל בכוונה כדי להגיע לנקודה. לדבר על XCode או קקאו בפירוט צריך, לדעתי, להיות נושא של ספר אחר (ויש הרבה).

האם אנחנו באמת יכולים להבין את זה מבלי שעשינו אי פעם שום פיתוח?

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

עבורי, הקושי הגדול ביותר הוא "לשנות הרבה הרגלים בבת אחת".המקרה הטיפוסי יהיה מפתח Windows (ב-C#, Java או C++) שרוצה לנסות את Objective-C. הוא חייב לעבור ל-MacOS; לפעמים אתה מרגיש שאתה שוב מתחיל. זה גם קל להגיד "זה מבאס" כי ההרגלים שלנו כבר לא עובדים. כדי לחזור לשפה עצמה,ניהול זיכרון ב-Objective-C, למרות כל האיכויות שלו, נראה לעתים קרובות כנקודה עדינה עבור עולים חדשים. אתה צריך להיות קפדני עם האובייקטים המטופלים על ידי ממשקי ה-API כדי לא לעשות כלום. יש גם את שני בתי הספר המנוגדים: אספן זבל או לא אספן זבל, שניהם אפשריים ב-Objective-C.
הייתי אומר גם ש-Objective-C, מטבעה, היא שפה מתירנית מאוד. אז אתה צריך קצת ניסיון וקפדנות כדי לכתוב קוד
אֵלֶגַנטִי.

הספר שלך גרם לנו להרגיש כמו התנ"ך הנייד הקטן למתכנת Mac/iPad/iPhone. מה אתה ממליץ להם ללכת רחוק יותר עם השפה הזו? האם התיעוד באינטרנט מספיק?

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

שמועה לאחרונה העלתה כי ל-Objective-C ניתן להוסיף מכונה וירטואלית. האם זה באמת אמין לדעתך?

עד כמה שהנטישה של Objective-C (עוד שמועה קצרת מועד) נראתה סוריאליסטית לחלוטין, המכונה הוירטואלית נראית לי אפשרית. מיקרוסופט עושה את זה כבר הרבה זמן עם .NET ואני חושב שאפל בטח חשבה על זה. אפילו לאחר שנטש את ה-PowerPC ובקרוב את ה-32-bit x86, נותר לנהל את ה-x86_64, ה-ARM של ה-iPod/iPad והמעבדים הבאים. המכונה הוירטואלית תאפשר לשמור על תאימות לאחור, תוך הבטחת אופטימיזציות של זמן ריצה בהתאם לארכיטקטורה שבה הקוד מופעל. אין צורך ליצור כמה קבצים בינאריים כמו שיש ארכיטקטורות אפשריות.למרות הכל, אזורים מסוימים אינם יכולים להסתדר בלי שימוש מושכל בערכות הוראות מתקדמות למעבד; לכן יהיה צורך לשמור דלתות למודולים עם אופטימיזציות ספציפיות, מה שסותר את ניידות הקוד. ויותר מכך, ונוכל לראות בבירור את הבעיה ב-.NET, גם ה-VM (מכונה וירטואלית) מתפתחת, וייתכן שקוד לא שמיש ב-VM ישן מדי. לפיכך המפתח מוצא את עצמו עם בעיה דומה במקצת לזו של הארכיטקטורה או לגרסת מערכת ההפעלה: לאיזו גרסה של VM עלי לכוון? כיצד נוכל להיות בטוחים שהוא יותקן בחצרי הלקוח? אם אפל תיקח את הכיוון הזה, הם בהחלט יהיו להוטים להימנע מהטרוגניות רבה מדי בתצורות אפשריות.

זְמִינוּת

אנו מודים לפייר על שנתן לנו כמה דקות לראיון זה. אתה יכול לקנות את הספר שלו:

באיירולס
באמזון
ב-Fnac

Related Posts