יום שני, 9 במאי 2011

מה חשוב לי בשפת תכנות

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

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

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

גמישות השפה והתאמה לכלל DRY. כלל ידוע בתכנות הוא שלכתוב דבר פעמיים זו טעות (Don't Repeat Yourself). הראציונל הוא פשוט, כשמגיעים לבצע שינוי בקוד צריך להיות ברור איפה משנים, ועדיף שזה יהיה בכמה שפחות מקומות. לדוגמא, העובדה שבג'אווה אנו לא צריכים לכתוב את חתימת המתודות בשני קבצים שונים, הופכת אותה לשפה עדיפה על פני C++.

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

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

אין תגובות:

הוסף רשומת תגובה