
Източник: techcrunch.com
Днес, както често обичам да правя, прегледах TIOBE индекса, както всъщност правят повечето от познатите ми професионални програмисти. Този индекс има за цел да показва рейтинга на популярността на програмните езици. Но ако се вгледаме в графика на промяната на популярността на различните програмни езици ще открием, че от незапомнени времена Java и C са кралете на програмните езици, при това с голяма разлика.

Да не избързваме и да погледнем и други данни. Конкурентната класация PYPL Index (PopularitY of Programming Languages) показва, че кралете са Python и Java, а програмният език C (кой знае защо, класиран едновременно със C++) е съвсем надолу в списъка. Какво става?
Ясно е, че двата рейтинга използват различни методологии за съставяне на своите класации. TIOBE просто измерва броя запитвания в търсачките. PYPL брои колко често хората търсят обучаващи материали и помощна информация за един или друг програмен език.
И двата начина са неудачни. Може да се каже, че достъпността на онлайн ресурсите няма как да е определящ фактор. Така например, популярният преди време програмен език, който към днешен ден е забравен, има милиони стари уеб страници, посветени на него. Има и множество полумъртви сайтове и записи в блоговете, които никой не е чел от години. А търсенето на обучаващи материали изкарва нагоре езиците, които учат студентите. Но всичко това на практика няма никакво отношение към програмните езици, реално използвани в практиката от професионалните програмисти, които печелят от това.
В тези рейтинги има много аномалии. Ако вярваме на TIOBE, миналият път C само за пет месеца е излетял от най-ниските места до езика на годината. Мога да повярвам, че C се възражда заради вградените системи. Но още по-лесно мога да си представя, че това рязко издигане се дължи на недостатъците на далече от идеалното метод на измерване.
Още по-въпиеща аномалия и в двата рейтинга е относителната ефективност на Objective-C и Swift, двата програмни езика, които се използват за писане на приложенията в iOS. Може би те наистина имат известен спад в сравнение с кросплатформените алтернативи, като Xamarin и React Native. Но не вярвам, че след четири години развитие на Swift от страна на Apple, езикът Objective-C може да остане по-популярен и по-широко използван. В работата си се сблъсквам с различни приложения за iOS/tvOS/watchOS, и общувам с много разработчици за iOS. На практика няма нито един програмист, който да не е преминал от Objective-C на Swift.
Но нашият жизнен опит няма как да замени данните в класациите. Всъщност, практиката показва, че явно има някаква грешка в съставянето на тези рейтинги. Но да не забравяме, че има още една методика за измерване популярността на програмните езици. Това са годишните отчети на GitHub, в който са посочени петнадесетте най-популярни езици за програмиране, използвани в тази платформа. Тези числа идеално съвпадат с моя жизнен опит и сериозно се различават от тези на TIOBE и PYPL.

Според отчетите на GitHub от 2016 и 2017 години, най-популярният език на програмиране в света, при това с голяма разлика, е Javascript. На второ място се намира Python, на трето – Java и на четвърто – Ruby. Това рязко контрастира с TIOBE, където на челните места са класирани Java и C, а след това, с голяма разлика, Python и C++ (Javascript е съвсем надолу – на осмо място). Класацията на PYPL е съвсем друга – Python и Java, голяма разлика, след това Javascript и PHP.

Ясно е, че GitHub не показва 100% от професионалния сектор. Да си припомним и, че GitHub се занимава преди всичко с проекти с отворен код. Но искам да подчертая, че рейтингът на GitHub е единственият, в който Swift е по-популярен от Objective-C. Ето защо, за мен този рейтинг е по-убедителен. Но няма как да е определящ, понеже показва статистиката на програмните езици в проектите само с отворен код.
Тази статистика има голямо значение и не трябва да се прави просто за удовлетворяване на любопитството и за представяне на бегла информация за тази индустрия. Хората сами избират, какви точно програмни езици да изучават, каква работа да си търсят и с какво да се занимават, като си правят изводи на базата на именно тези рейтинги по популярност. Ето защо е много неприятно, че и трите методики толкова радикално се различават и показват съвсем различни неща. За съжаление, вместо да използваме точни числа, ще трябва да се задоволим с гадаене на чаени листа.
