Тема: Для кожної задачі — свій інструмент
Відкривши підручник будь-якої довільно взятої мови програмування, ми, ймовірно, прочитаємо, що %LANGUAGENAME% — мова загального призначення. Але, як правило, це і правда, і неправда: з одного боку — так, ми можемо робити веб-сайти на Delphi, консольні текстові конвертери на Java'і, GUIшний графічний редактор на perl'і, і т.п. — технічні можливості для цього є, а часто й готові бібліотеки з необхідним мінімумом функціоналу для даного типу задач. Але, з іншого, чомусь так здебільшого не роблять. Справа не лише в можливостях конкретної мови чи навіть наявності бібліотек та фреймворків, а й також у спільноті, що склалась навколо тієї чи іншої мови, напрацьованому коді, зрештою, в вакансіях, де від спеціаліста з загальної мови А очікується вміння працювати з задачами типу α.
Так ось, хотілось би більш чітко окреслити, для чого та чи інша мова фактично використовується, наприклад:
php — тільки веб
perl — веб, шел-скрипти
Java — андроїд, сек'юрні веб-інтерфейси до комерційних баз даних, десктопні програми — якщо все узагальнити, користувацькі інтерфейси (?)
Python — сучасна заміна perl'у, плюс задачі штучного інтелекту (?), розподілені обчислення... (для чого насправді використовується Python?!)
Pascal — навчання студентів
С/C++ — практично все, що системне чи низькорівневе, бібліотеки й службові програми, критичні за швидкодією частини складних проектів; навчання студентів
Ruby — веб (а ще?..)
Haskell, LISP та ін. — усіляка езотерика з лямбдами (а насправді?..), навчання
LISP, Prolog — колись розглядались як мови для створення ШІ (це ще актуально?)
...