Якщо відкрити Reddit чи Quora, найпопулярнішими виявляться теми на зразок «Що краще: Python чи PHP?» або «Яку мову вчити сьогодні, щоб бути потрібним через 10 років?» Можна робити цей вибір кількома способами: орієнтуватися на ринок праці, відштовхуватися від бізнес-завдань чи на власний смак.
Видання DOU у лютому провело опитування серед українських розробників. На першому місці JavaScript, на другому місці — C# з позитивною динамікою вже другий рік поспіль, на третьому — Java. Зростає популярність TypeScript, аж на 10%. Негативна динаміка у Python, Ruby, C, Scala, Clojure. Все менше новачків обирають C++.
Першою мовою програмування все частіше обирають JavaScript. Серед додаткових мов беззаперечний лідер також JavaScript, далі — TypeScript.
А от особисті вподобання розробників трохи відрізняються від реальної картини. Найбільш комфортною мовою назвали Dart, Clojure, Kotlin, Rust, Swift, C#, Go та TypeScript. До речі, на Kotlin також найчастіше переходять з Java. Це може бути пов’язано з розробкою для Android.
Мови програмування — це інструменти. Не буває хороших і поганих мов програмування, але буває доцільно і недоцільно застосований інструмент. Є три великих кити у світі програмування: веброзробка, розробка додатків і програмування мікроконтролерів. Також є напрямки, де програмування допомагає, але не є основним завданням.
Веб — це все, що ти бачиш в інтернеті: сайти, додатки в браузері й бекенд, який це забезпечує. Тут використовують:
Всі ці інструменти потрібні для різних завдань. Не можна сказати, що одні кращі за інші.
Як розв’язати суперечку «Що краще: Python чи PHP»? Відповідь: краще те, що ти використовуватимеш в роботі. Наприклад, якщо ти будеш працювати з сайтами на Wordpress, тобі потрібен PHP. Якщо ти працюватимеш з сервісами на Rails, треба знати мову Ryby. Якщо сайти твоїх клієнтів працюють на Django, тобі треба вивчати Python.
Але як зрозуміти, на чому працюватимуть твої клієнти та роботодавці? Ніяк. Сьогодні є вакансії на одні технології, завтра — на інші. Все швидко змінюється. Хороша новина у тому, що якщо ти знаєш якусь одну мову, то зможеш швидше вивчити й працювати на інших мовах.
Додатки — це все, що виконується всередині комп’ютера чи телефона на рівні операційної системи й робить щось корисне для користувача. Наприклад, текстовий редактор, програма для презентацій, гра або калькулятор. Якщо ти самостійний розробник, то вибір мови програмування — це питання особистих вподобань і обраної операційної системи:
Є й інші мови, але класично використовуються ці. За бажанням можна знайти щось швидше або більш спеціалізоване окремо під твоє завдання.
В мовах для додатків все так само як і в мовах для веба: не можна сказати, що одна мова краща за іншу. Все залежить від ситуації. Звісно, є C та C++, на яких можна написати майже все, що хочеш: від гри до додатка баз даних, але це вже занадто.
Головний плюс мов та технологій для додатків — стабільність. Кожна версія підтримується багато років, нове з’являється рідко, тому код, написаний багато років тому, мало відрізняється від написаного вчора. А ще у цих мов велика база довідників, форумів і готових рішень.
Мікроконтролери — це схеми чи невеликі електронні плати, які фізично чимось управляють. Наприклад, мікроконтролер в акумуляторі слідкує за тим, щоб струм заряду відповідав номінальному і батарея не перегрівалася, а плати в станках керують двигунами, різаками та швидкістю руху деталі.
В програмуванні мікроконтролерів все залежить від конкретної моделі мікросхеми, якою можна управляти.
Щоб писати програми для таких мікроконтролерів, потрібна висока кваліфікація, досвід і знання заліза. Зовсім новачку в цій сфері буде складно, тому краще почати з робототехніки.
Python — улюблений інструмент для тих, хто займається аналітикою, машин-льорнінгом і даними. Для цього в Python багато готових інструментів, бібліотек, фреймворків, готових рішень і документації.
При цьому великі можливості криються в морі формул і скриптування, які використовуються в Excel або Google Sheets. Займатися даними й аналітикою можна, якщо добре володіти цим інструментом.
Якщо ти знаєш англійську, тобі доступна вся документація, всі уроки, всі онлайн-курси й підтримка світової спільноти. Знаючи англійську і якусь одну мову програмування, ти легко опануєш другу, третю і яку завгодно іншу.