Завърза се интересна дискусия – “Кой език за програмиране да учим? И наистина ли JavaScript е толкова търсен език?” Всичко започна от индекса, който разработвам, наречен SV Index. Това е една статистика (индекс), “изградена на база колко обяви за работа има в страната към днешна дата, в които се споменава даден език за програмиране”.
Как да лъжем със статистика
Преди да се впуснем в “анализи” на индекса, искам да ви обърна внимание, че статистиката е доста коварен прийом. В тази връзка, чета една много силна книга на Darell Huff – How to Lie with Statistics (“Как да лъжем със статистика”). В нея се засяга именно темата за това колко много се използва статистиката за различни манипулации и изкривяване на действителността – понякога неволно, а друг път целенасочено. (Вероятно нашите родни политици я препрочитат всяка година, но това е друга тема). Аз лично не я чета, за да манипулирам някого по-успешно. :) Просто книгата е една от 10-те книги, които всеки предприемач е хубаво да прочете според Inc.com. А и заглавието изглежда интересно. Затова реших да я прочета. А създадох SV Index , защото на мен просто ми беше интересно да знам какви езици се споменават в обявите за работа в България. Ако и на вас ви е интересно, може да следите всеки месец индекса тук. Ето как изглежда статистиката за месец юни:
Позиция | Език за Програмиране | Срещания | SV Index | Предходен Месец | Изменение | Иконка |
---|---|---|---|---|---|---|
1 | JavaScript | 236 | 23,89 % | 24,15 % | -0,27 % | ![]() |
2 | Java | 172 | 17,41 % | 19,06 % | -1,65 % | ![]() |
3 | PHP | 163 | 16,50 % | 15,37 % | 1,13 % | ![]() |
4 | C# | 116 | 11,74 % | 10,58 % | 1,16 % | ![]() |
5 | C | 107 | 10,83 % | 10,28 % | 0,55 % | ![]() |
6 | C++ | 97 | 9,82 % | 10,58 % | -0,76 % | ![]() |
7 | Python | 40 | 4,05 % | 4,19 % | -0,14 % | ![]() |
8 | ObjectiveC | 22 | 2,23 % | 2,50 % | -0,27 % | ![]() |
9 | VisualBasic | 19 | 1,92 % | 2,20 % | -0,27 % | ![]() |
10 | Ruby | 13 | 1,32 % | 0,60 % | 0,72 % | ![]() |
11 | Delphi | 3 | 0,30 % | 0,50 % | -0,20 % | ![]() |
Кой език за програмиране да учим?
Излиза ли, че отговорът на въпроса “Кой език за програмиране да учим” е JavaScript? Според Светлин Наков отговорът е “Не”. Със съответната силна обосновка, че това е второстепенен език, който се ползва като допълнение към някой от сериозните езици като Java, PHP или C#. Съответно JavaScript се среща по-скоро като език, който е бонус да знаем, но не и водещ. Разбира се, преди няколко години и аз бих се съгласил напълно. Но не и днес. Не и 2013г. Днес съм съгласен наполовина. Да, JavaScript може би не е най-важният език за програмиране в България. Но JavaScript е тук, за да остане.
И отново – не казвам, че трябва да учим JavaScript, защото е “най-търсеният” език за програмиране според някаква статистика. Далеч не. Но твърдя, че търсенето на JavaScript не е случайно и второстепенно.
От любов към JavaScript?
За добро или за лошо, JavaScript се превръща във все по-предпочитан език за програмиране. От една страна:
- Предпочитан от потребителите, които не искат (или въобще нямат) browser plugin-и;
- Предпочитан от мениджърите, които не искат да инвестират в native мобилни приложения, а предпочитат HTML5 + JavaScript мобилни приложения;
- Предпочитан от потребителите, които искат всичко да се случва в browser-а. Защо да си инсталирам софтуер, когато мога да ползвам cloud базирано web приложение, което не иска да го инсталирам?
От друга страна, въпреки че не е особено предпочитан от програмистите, JavaScript упорито променя пейзажа на езиците за програмиране с развитието на всички технологии около него. Например:
- JavaScript от доста време насам е основният език за клиентско web програмиране.
- Популярността на web технологии, като AJAX, и библиотеки, като jQuery, говори много и за популярността на езика.
- JavaScript е силно застъпен в новите web ориентирани операционни системи като Chrome OS на Google и Firefox OS на Mozilla;
- Други платформи, като JavaScriptCore (iOS и MacOS) и Windows 8 JavaScript APIs, ни позволяват да разработваме JavaScript настолни и мобилни приложения;
- JavaScript + HTML5 с помощта на други технологии (като PhoneGap) ни позволяват да разработваме мобилни приложения.
- JavaScript се ползва в NoSQL базите данни и сървърните технологии като Node.JS;
- Появата на езици от по-високо ниво, компилиращи се до JavaScript, като DART, CoffeeScript и TypeScript, също говорят за интереса към езика;
- Дори в научните среди кипи много сериозен интерес към JavaScript. Има предположения, че следващият модерен език за програмиране ще бъде издънка на JavaScript;
- и т.н.
JavaScript се превръща в толкова популярен език не от чиста любов към него, а от самото развитие на технологиите около него.
Трислойна архитектура срещу cloud+web клиент
Гореспоменатият модел на приложения (cloud+web) все повече размива така наречената трислойна архитектура (SQL база, сървър, клиент). Представете си, че имате NoSQL (Mongo, CouchDB…) база някъде в cloud-а. Достъпвате я директно през web API, например REST, което връща JSON (Форматът на данни неслучайно се казва JSON – JavaScript Object Notation :) ) В този примерен модел JavaScript е основният език за програмиране. Защото всъщност основната логика е изнесена на клиента. Разбира се, това е един прекалено опростен модел на клиентско приложение. В реалността би изглеждал по-скоро като мегамикс от технологии и код, написан на различни езици за програмиране. Но въпросът е, че вероятността JavaScript да присъства под някаква форма в този микс е огромна.
Езикът JavaScript
За да не си помислите, че съм пристрастен, ще ви кажа, че съм C# програмист от 2005г. насам до ден днешен. И аз обичам C#. Но истината е, че JavaScript убива с бързи темпове технологията, с която се занимавам последните 4 години. И сега волю-неволю уча JavaScript. Не от огромна любов към езика, а защото ми трябва. В интерес на истината, като свикнеш със странностите и невероятните “гимнастики”, които се правят, за да прилича на обектно-ориентиран език, и разбереш особеностите на динамичната type система (добра статия по темата), всъщност е един доста приятен език за програмиране. Даже започва да ми допада леснотата, с която стават много неща. Елементите на функционален стил на програмиране заедно с плюсовете на динамичната type система (и duck typing-а) правят програмирането доста забавно. Но това е друга тема. Е, не всичко е особено розово, разбира се. :)

И за финал – още малко статистика за използваемостта на езиците за програмиране в най-голямото online repository за source code в света – github. Тази статистика също ясно показва, че JavaScript е тук, за да остане.
Но не забравяйте:
- Това е статистика за проекти с отворен код.
- Това е просто статистика и далеч не казва кой език трябва да учите.
Учете езика, който вие прецените за най-добре. Не този, който една или друга статистика казва, че е най-търсен. И прочетете 10-те правила за по-успешна кариера на програмист.
Благодарности на Руми Нейкова и Надя Атанасова за редакцията.