שבע שפות תכנות שאתם חייבים לדבר - עולמי - TheMarker
 

אתם מחוברים לאתר דרך IP ארגוני, להתחברות דרך המינוי האישי

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

תיק מניות

רשימת קריאה

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

לחיצה על כפתור "שמור", בתחילת הכתבה תוסיף את הכתבה לרשימת הקריאה שלך.
לחיצה על "הסר" תסיר את הכתבה מרשימת הקריאה.

לרשימת הקריאה המלאה לחצו כאן

שבע שפות תכנות שאתם חייבים לדבר

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

תגובות

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

Python

נדמה כי יש שני סוגי אנשים שאוהבים את פיית'ון: אלו ששונאים סוגריים, ומדענים. הראשונים סייעו ביצירת השפה על ידי יצירת גרסה קלה יותר לקריאה של Perl, שאינה מלאת סוגריים פותחות וסוגרות כמו צאצאית C. הפתרון הזה היה טוב מספיק כדי להפוך את פיית'ון לשפה הראשונה הזמינה ב-AppEngine של גוגל - אינדיקציה ברורה למבנה שנותן לה סקלביליות טובה בענן, אחד האתגרים הגדולים ביותר למחשוב עסקי. הפופולריות של פיית'ון במעבדות מעט קשה להסבר, מאחר ובניגוד לשפת Mathematica של סטיבן וולפראם המיועדת למתמטיקאים, פיית'ון מעולם לא הציעה מבני נתונים או אלמנטים המותאמים באופן מיוחד לצרכיהם של מדענים. יוצר פיית'ון גידו ון רוסום מאמין כי התוכנה הצליחה במעבדות משום ש"מדענים צריכים, פעמים רבות, לאלתר תוך שהם מנסים לפרש תוצאות, אז הם נמשכים לשפות דינמיות שמאפשרות להם לעבוד מהר מאוד ולראות תוצאות באופן כמעט מיידי". לפיית'ון מספר סיפריות המציעות את כל מה שמדען יזדקק לו. ביניהן NumPy ו-SciPy  הראויות לציון שפותחו כפרוייקטי קוד פתוח והותאמו לחישוב מדעי. חברות תרופות, מפעלים מדעיים והנדסיים משתמשים בפיית'ון לצרכי מחקר. גם חברות רבות בוול סטריט מסתמכות כיום בכבדות על ניתוח מתמטי ושוכרות מדענים אוניברסיטאיים שרגילים לפיית'ון.


Ruby

יש שיטענו שרובי ופיית'ון הן לא ממש שפות "נישה", אך בפועל שפות אלו נדחקות הצידה פעמים רבות מדי בזירה העסקית. אף על פי כן, רובי, או ליתר דיוק השילוב של רובי עם מסגרת ה-Rails הידוע בתור Ruby on Rails, הופך פופולרי יותר ויותר בכתיבת אבות טיפוס. כניסתו לסביבה העסקית התרחשה עם עליית גלי ה-Web 2.0, אז החלו אתרים רבים להתנסות בו. 37Signals - אחד מתומכיה הרבים של רובי -משתמש בשפה זו לפריסת קוד. הסוד להצלחתה של רובי היא השימוש שלה ב"מוסכמה על פני תצורה" ("convention over configuration"), בה קריאה למשתנה בשם כזה או אחר גורמת באופן אוטומטי לקריאתה של העמודה המתאימה במסד הנתונים בשם זה. רובי און ריילס היא כלי נהדר ליצירת אבי טיפוס, משום שהיא מאפשרת למתכנת להקליד את שם המשתנה רק פעם אחת. התוכנה הזו תטפל בשאר ענייני ה-CRUD (יצירה, קריאה, עדכון ומחיקה) עבורכם. אתרי רובי און ריילס מוקדשים לקיטלוג נתונים לצורך שמירתם בטבלאות. דוגמאות ידועות כוללות יישומי רשת כמו Basecamp, Backcamp ו-Campfire מבית 37Signals, אוסף אתרים שמאחדים דיונים קבוצתיים, שיחות ולוחות זמנים. רובי און ריילס מטפלת בפירמוט טבלאות מסד הנתונים הללו, כמו גם בהחלטות לגבי הצגתם. שימוש במוסכמות השמות של רובי און ריילס, מאפשר יצירה של קוד ברמת ייצור בקלות יחסית.. רבים מאתרי הרובי ברמת ייצור רצים על Jruby, גירסה הכתובה בג'אווה היושבת בנוחות ב-JVM.


Matlab

מאטלאב נבנתה עבור מתמטיקאים, לצורך פתרון משוואות לינאריות, וזוכה לעניין גובר בתעשייה הודות לכמויות הניתוח הגדולות אליהן נדרשים שארגונים היום. רבות מהטכניקות הסטטיסטיות המתוחכמות יותר שמתאימות לפרסומות, שירים או אתרים תלויות בכוחם של אלגוריתמים כמו אלו שמאטלאב פותרת. ככל שקבצי היומן ישמינו, מאטלאב תמשיך לגדול. פשוט למדי עבור אדם להביט ברשימת העמודים הכי נצפים, אך מסובך הרבה יותר, ודורש תחנת כוח סטטיסטית, להוציא רעיונות כאלו ממערכת נתיבים. האם יש סבירות גבוהה יותר לכך שאנשים יקנו בגדים ביום שני או שישי? האם יש מתאם בין תקלות במוצר לבין קו המוצר? MathWorks, החברה שמאחורי מאטלאב, מציעה שלל מסמכים אינפורמטיביים המראים כיצד מהנדסים מחפשים תשובות סטטיסטיות. Toyota Racing, לדוגמא, מתכננת את המכוניות שלה לנאסקאר על ידי ניתוח מנהרות רוח ומבחנים אחרים. המוסד הקנדי לביודיאגנוסטיקה מחפש אחר הטיפול הטוב ביותר לכוויות. ישנן גם מספר אלטרנטיבות בקוד פתוח, ביניהן Octave, Scilab, Sage ו-PySci, אחת מספריות פיית'ון שהוזכרו מעלה. כל הכלים הללו מסייעים בביצוע הניתוח הסטטיסטי המסובך שהופך לנפוץ יותר ויותר עבור חברות המנסות להבין מה עשוי  הלקוח לרצות בעתיד.


JavaScript

ג'אווה סקריפט אינה שפה חבויה או חסרת חשיבות בשום מובן. אם בכלל, היא עשויה להיות שפת התכנות המהודרת ביותר בעולם, בין השאר משום שכל דפדפן מוריד את הקוד ומהדר אותו מחדש בכל טעינה של עמוד באינטרנט. על אף העובדה הזו והדומיננטיות הגדלה של אתרי AJAX, נדיר לחשוב על ג'אווה סקריפט כשפה לעסקים רציניים. נטסקייפ אמנם ניסתה להפוך את ג'אווה סקריפט לשפה העיקרית בפלטפורמת השרתים שלה ב-1996, אך בסופו של דבר ביססה אותה רק בדפדפן. Aptana, אחת מהמעריצות האחרונות של השפה, ביטלה את הפיתוח שלה Jaxer משום שמעולם לא צבר פופולריות. AppJet, חברה נסיונית קטנה, השתמשה בספריית Rhino של ג'אווה סקריפט הכתובה בג'אווה כדי להקל על קידוד לצד-שרת. החברה הזו נרכשה על ידי גוגל בשנת 2009 ומוקדשת כיום, כך נראה, לפרוייקטים אחרים. למרות זאת, יישומים חדשים לג'אווה סקריפט מומצאים כל העת. CouchDB, לדוגמא, משתמש בשתי פונקציות ג'אווה סקריפט במקום ב-SQL לשאילתות: אחת לבחירה (Map) והשנייה לחיבור הכל יחד (Reduce). כמו כן, Node.js היא אחת ממסגרות הצד-שרת המרגשות ביותר לג'אווה סקריפט שהופיעו לאחרונה, תוך שהיא מחיה מחדש את החלום הישן של הרמוניה לתכנות צד שרת וקליינט. החבילה לוקחת את מנוע הג'אווה סקריפט V8 של גוגל, שנוצר לדפדפן, ומאפשרת לו להחליט החלטות לגבי פירמוט מידע יוצא. בכל מקום בו אנשים זקוקים לכמות קטנה של כוח סקריפטינג, ג'אווה סקריפט מוצאת משתמשים חדשים. התוכנה ממשיכה לצמוח בעולם העסקי בתור אחת הדרכים הפשוטות ביותר עבור מפתחי יישומים גדולים להציע למשתמשים ליצור תת-יישומים.


R

ניתוח סטטיסטי מתבצע כיום, יותר ויותר, בשפת R, שמכונה על-ידי פוריטנים מסויימים  S, כשמה המקורי. Tibco מוכרת גרסה מסחרית הנקראת S-Plus. סביר להניח כי לא נראה בשטח S++, משום שהשפה דומה יותר לגרסה של LISP או Scheme עם תכונות נוספות לחישוב פונקציות סטטיסטיות והצגת התוצאות בתמונות יפות. אם הבוס רוצה שהמחשב יעבור על מיליארדי שורות של קבצי יומן בחיפוש אחר תבניות, מקבצים ומשתנים ניתנים לחיזוי, R או S היא פיתרון אהוב. R היא עוד אולר שוויצרי של רוטינות נומריות וסטטיסטיות לטיפול בכמויות משמעותיות של מידע - למעשה, כל כך הרבה מידע שעדיף אולי לקרוא לזה מצ'טה שוויצרית. לו באיוק-יורגן, מנהל בכיר לניהול מוצר ה-Spotfire S-Plus של טיבקו, אומר כי התוכנה נמצאת בשימוש מספר לקוחות החוקרים כיצד עסקים או פרוייקטי הנדסה עשויים לעבוד או מדוע הם כושלים: לדוגמה ניתוח תבניות במזג האוויר כדי למצוא את המקומות הטובים ביותר למיקום גנרטור המופעל על ידי הרוח.


Erlang

השרת שלכם צריך להגיב להודעות רבות ושונות בו זמנית? צריכים לחלק את הבקשות הללו לליבות שונות או שרתים בחלקים שונים של העולם? Erlang, שפת קוד פתוח שנוצרה לראשונה על ידי מדענים במעבדת המחשוב של אריקסון, מצטיינת במטלות האלו. השפה מערבת אלמנטים מסורתיים של תכנות פונקציוני (ללא תופעות לוואי) עם מכונה וירטואלית מודרנית המהדרת את הפקודות לקוד מכונה. מבנה השפה מכריח את המתכנת לבנות משהו קל יותר לפרישה לרוחב ליבות מרובות ומכונות וירטואליות מרובות. ישנם מספר יישומים פרקטיים של שרתים מקוונים וה-CouchDB. כן, כן: מסד הנתונים שמבקש לקבל שאילתות כתובות בג'אווה סקריפט במקום ב-SQL נכתב ב-Erlang בעצמו. CouchDB היא רק ההתחלה. מספר מנהלי פרוייקטים העוסקים בכמויות מידע גדולות בונים מערכות לאחסון כמויות גדולות של נתונים בדרך סקלבילית. Hibari, פרוייקט קוד פתוח מבית Gemini Mobile, מציע צבירים עקביים וסקלביליים לאחסון צמדי מפתח-ערך (KVP) המתקנים עצמם לאחר כשלון. המבנה הפונקציונלי מקל על יצירת יישומים גדולים הלהטטים בין מספר קישורים ביעילות.


Cobol

לא ממש הוגן לקרוא לקובול שפת נישה, מאחר והשפה הזו היתה פעם השפה השלטת בשוק העסקי. גרייס מוריי הופר, שהתפרסמה עקב מציאת הבאג הראשון במיינפריימים המוקדמים, סייעה ליצור את השפעתה ב-1959 ומאז חוזקה מאות פעמים. מפעילי קובול כיום זוכים לשחק בהרחבות מונחות עצמים, קוד מתאים-עצמו, ובערך בכל גימיק אחר. למרות זאת השפה לא זכתה לכבוד ראוי, או כפי שהסביר האקדמאי המפורסם אדסחר דייקסטרה: "השימוש בקובול הופך את המוח לנכה; לימודה צריך להיחשב, אם כן, לעבירה פלילית". אנשי המיינפריים ברחבי העולם התעלמו מדבריו והמשיכו בשלהם. יבמ קוראת לאחת הגרסאות האחרונות ששחררה "Enterprise Cobol 4.2", אבל זו יכלה להיות באותה מידה גרסא מספר 147.2 או אולי אפילו 588.3. מתכנתי קובול אוהבים את התחביר שדומה יותר לשפה טבעית עם שמות עצם ופעלים שיוצרים פסוקיות ומשפטים - טכניקה שמזכירה את רובי. בעוד שפחות בתי ספר מלמדים מתכנתים חדשים קובול, השפה לא מתה משום שמוסדות רבים ממשיכים להשקיע במוצרי הקובול שלהם. חיפוש עדכני ב-Dice.com מצא 580 משרות המזכירות את קובול ו,1.70 המזכירות את רובי. הרוב המחולט של המשרות נמצא בתחומים המערבים כספים ("ניהול נכסים") וספירת ביקורים לרופא ("IT בריאות"). בעוד שאלו כמה מהתחומים הראשונים שהכניסו מחשבים לעיבוד בק-אופיס, העבודה עדיין צריכה להיעשות. גרסאות של השפה עובדות על סביבות JVM ומכוניות וירטואליות של .Net, המאפשרות להעביר פיסות קוד ממיינפריים ללינוקס. מתכנתים שרוצים להשתמש ב-IDE מתקדם יותר, יכולים לחפש תוסף ל-Eclipse, פרוייקט הצובר תמיכה חדשה.


הרחבות CUDA

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


עוד בנושא:

לא חייבים לשלם ביוקר: תוכנות קוד פתוח שיועילו לעסק שלכם
10 תוכנות קוד פתוח לחלונות שכל אחד חייב להכיר
טכניקות תכנות ישנות אליהן לא תתגעגעו



תגובות

דלג על התגובות

בשליחת תגובה זו הנני מצהיר שאני מסכים/מסכימה עם תנאי השימוש של אתר TheMarker

סדר את התגובות

כתבות ראשיות באתר

כתבות שאולי פיספסתם

*#