שפת תכנות
התפתחותן של שפות התכנות

צעד ראשון להתנתקות מהכורח לכתוב תוכניות בשפת מכונה נעשה עם יצירת האסמבלי. מרבית שפות התכנות הן שפות עיליות, שבהן לפקודות דמיון מסוים לשפה טבעית. כל פקודה בשפה עילית מתורגמת על ידי המהדר לסדרה ארוכה של פקודות בשפת מכונה. בשפת אסמבלי, לעומתן, כל פקודת אסמבלי מתורגמת לפקודה אחת בשפת מכונה (אך למען נוחות הקריאה, לעיתים מתאימות לפקודת מכונה אחת פקודות אסמבלר שונות, המייצגות פונקציות שונות של אותה פקודת מכונה).
בתחילת שנות ה-50 נעשו צעדים ראשונים ביצירת מהדרים, כלומר כלים שיאפשרו כתיבת תוכניות בשפה קרובה יותר לשפת אנוש. בשנת 1952 יצרה גרייס הופר את המהדר הראשון, שנקרא A. בשנת 1953 החל צוות בראשותו של ג'ון באקוס מחברת IBM לפתח את שפת FORTRAN, וצעד זה הושלם בשנת 1957. FORTRAN (ושפת ALGOL שפותחה בעקבותיה בשנת 1958) התאימו במיוחד למשימות מדעיות (שהן תוכניות בתחומי הפיזיקה, המתמטיקה וכדומה) אך התאימו פחות למשימות של עיבוד נתונים. למטרה זו באה לעולם בשנת 1960 שפת COBOL, השונה מ-FORTRAN במידה רבה, ובעלת תחביר המזכיר את השפה האנגלית. היוזמה לפיתוח COBOL באה ממשרד ההגנה האמריקני, ובפרויקט השתתפו נציגים של הממשל האמריקני ויצרני המחשבים. שתי שפות אלה, FORTRAN ו-COBOL, זכו לתפוצה רחבה, והן בשימוש עד עצם היום הזה.
בתחילת שנות ה-60 פותחה שפת LISP, על ידי ג'ון מקארתי מאוניברסיטת MIT. שפה זו יעילה במיוחד בטיפול בטקסטים הכתובים בשפת אנוש, ולכן זכתה להצלחה בקרב חוקרי בינה מלאכותית. מספר שנים לאחר מכן פיתחה חברת IBM את שפת PL/I, שנועדה לשלב את התכונות של FORTRAN ו-COBOL גם יחד, כך שתתאים למשימות תכנות עסקיות ומדעיות כאחד. השפה שפותחה הגשימה יעד זה, וכללה מאפיינים נוספים שנבעו מהניסיון שנצבר בפיתוח שפות תכנות, אך לא זכתה להצלחה שלה זכו שתי קודמותיה. אחד מהפרויקטים הראשונים שפותחו בשפת PL/I הוא מערכת ההפעלה Multics. שפת PL/I נלמדה באוניברסיטאות בישראל (אלה שהעמידו מחשב IBM לרשות תלמידיהן) עד אמצע שנות ה-80. PL/I לא נחשבת לשפה מוצלחת, והלקח שנלמד מהשפה היא שהעמסת פיצ'רים בלבד איננה ערובה להצלחה של שפת תכנות; בעת תכנון השפה ההחלטות החשובות ביותר הן אילו פיצ'רים מוטב להותיר מחוץ לשפה, על מנת ליצור שפה עקבית וקלה ללמידה ופיתוח.
בשנות השישים פיתח קנת' אייברסון את שפת התכנות APL, זאת בחברת IBM. השפה איפשרה ביצוע פעולות מתמטיות מורכבות (כגון מתמטיקה של וקטורים, מטריצות ומספרים מרוכבים) על ידי אופרטורים יחידים. לצורך תכנות בשפה זו נדרשה מקלדת מותאמת שאיפשרה הקשת האופרטורים הייחודיים של השפה.
בסוף שנות ה-60 פיתח סימור פאפרט את שפת לוגו (LOGO). שפה זו התפתחה משפת LISP, אך התחביר שלה פשוט יותר, כך שתתאים לשימושם של ילדים. שפת BASIC, שפותחה באמצע שנות ה-60 בדארטמות' קולג', נועדה במיוחד לשימושם של תלמידים הכותבים תוכניות באמצעות מסופים. בסוף שנות ה-70 זכתה שפה זו להצלחה רבה על ראשוני המחשבים האישיים, והפכה לכלי פיתוח מקובל למחשבים אישיים.
בשנת 1968 התפרסם מאמרו של א. וו. דייקסטרה, שיצר תפנית בתחביר של שפות תכנות, בהסבו את תשומת הלב לקושי שגורם השימוש בפקודת goto לקריאותן של תוכניות. בעקבות מאמר זה נוצר התכנות המובנה, שבו יש מבני בקרה המאפשרים קריאות גבוהה. שפות קיימות, כגון PL/I, הורחבו כך שיטפלו גם במבני בקרה אלה.
בשנות ה-70 פותחה שפת Prolog, שהיא השפה המובילה בתחום של תכנות לוגי, שבו מתמקדות התוכניות ביחסים בין עצמים. שפה זו משמשת לפיתוח תוכנה בתחומים של לוגיקה מתמטית ובינה מלאכותית: פתרון בעיות מופשטות, פתרון משוואות, הבנת שפות טבעיות וכדומה.
בתחילת שנות ה-70 יצר ניקלאוס וירת, במטרה להקל על לימוד תכנות את שפת Pascal, שמימשה היטב את העקרונות של התכנות המובנה, וזכתה לפופולריות רבה באוניברסיטאות. גרסה מסחרית שלה, Turbo Pascal של חברת בורלנד, זכתה להצלחה רבה ככלי לפיתוח תוכנה למחשבים אישיים. השפה נחשבת קלה יחסית ללמידה, אך יש לה חסרונות הנוגעים ליכולת לכתוב באמצעותה מערכות-תוכנה בקנה מידה גדול. זמן מה לאחר מכן פיתח דניס ריצ'י ממעבדות בל את שפת C, והשתמש בה לפיתוח מערכת ההפעלה UNIX. שפה זו פופולרית לתכנות מערכות הפעלה ולפיתוח יישומים והפכה לשפת תכנות נפוצה ביותר. שפה זו השפיעה רבות על פיתוחן של שפות תכנות אחדות, שהבולטת בהן היא C++.
בשפת הסימולציה Simula 67, המתבססת על ALGOL, מומשו לראשונה רעיונות של תכנות מונחה עצמים, פרדיגמה שהבשילה בשפת Smalltalk, שפותחה בשנות ה־70 במעבדות זירוקס פארק. לתפוצה רחבה זכתה מתודולוגיה זו החל משנות ה־90, תחילה בשפת התכנות C++ (שפותחה בשנות ה-80), ולאחריה בשפת Java.
שפת פייתון נוצרה על ידי גואידו ואן רוסום בתחילת שנות התשעים, פייתון פותחה מתוך רצון להגיע לשפה פשוטה ומובנת, נוחה לקריאה וקלה לתחזוקה. שפת רובי נוצרה בשנת 1993 בידי יוקיהירו מאטסומוטו שניסה ליצור שפה חדשה שתאזן בין תכנות פונקציונלי ותכנות אימפרטיבי. מאטסומוטו אמר "רציתי שפת סקריפטים עם יותר כוח מפרל ויותר מונחת עצמים מפייתון". בתקופה זו פיתחה חברת מיקרוסופט את שפת Visual Basic שהייתה מבוססת על בייסיק ופסקל. שפה זו שהכניסה לשימוש את התכנות החזותי הייתה ידידותית ונוחה לפיתוח והפכה להיות פופולרית מאוד.
במקביל לפיתוח שפות אלו חברת סאן מיקרוסיסטמס פיתחה את שפת Java, בין השנים 1991 ל-1995. מפתחי השפה הקפידו שלשפה זו לא יהיו ניבים, כך שתוכנית שנכתבה באמצעותה תוכל להתבצע על כל מחשב התומך בשפה, אפילו ללא צורך בהידור נפרד. לתכונה זו חשיבות מיוחדת בסביבת האינטרנט, שבה תוכנה הנשלחת לדפדפן עשויה להתבצע על מחשבים מדגמים שונים.
בשנת 2000 פותחה השפה #C על ידי צוות מחברת מיקרוסופט שבראשו עמד אנדרס הלסברג. שפה זו נבנתה עבור תפיסת .NET אשר ראתה אור בשנת 2002. שפה זו מבוססת על השפות Java ו-++C, ועוצבה במטרה ליצור שפה מונחית-עצמים פשוטה, מודרנית וכללית.
כאנטיתזה למורכבותן ועושרן ההולכים וגדלים של שפות התכנות, יצר אורבן מולר, בערך בשנת 1993, את שפת התכנות BF, שבה שמונה פקודות פשוטות בלבד, והיא למעשה מימוש של מכונת טיורינג.
רשת האינטרנט נתנה דחיפה לפיתוחן של שפות תכנות אחדות:
שפות לפיתוח יישומי אינטרנט בצד הלקוח. השפה העיקרית בקטגוריה זו היא JavaScript, שפותחה על ידי חברת Netscape Communications כשפת תסריט שהדפדפן פועל כמפרש שלה. שפה זו העניקה לדפדפן את היכולת לעבור מהצגה סטטית של מידע להצגת דפים דינמיים. התקן לשפה זו קרוי EMCAScript. שפה שהותאמה על ידי חברת מיקרוסופט למטרה זו היא VBScript, שהיא וריאציה פשוטה של Visual Basic.
שפות לפיתוח יישומי אינטרנט בצד השרת, ובהן PHP, שהיא השפה שבה כתובה התוכנה המשרתת את ויקיפדיה, למשל.