Menu

Nakov.com logo

Thoughts on Software Engineering

Тенденции в софтуерната индустрия в БГ за 2017 г. и класация на езиците за програмиране – годишното проучване на СофтУни

Наскоро завърши годишното технологично проучване на СофтУни сред софтуерните фирми, което правим всяка година с цел адаптиране на нашите учебни планове и програми спрямо актуалните нужди на софтуерната индустрия. Проучването беше проведено в периода април-май 2017 г. в България и е актуално към средата на 2017 г. Валидно е само за българския пазар на софтуерна разработка.

За мен е нормално всяко читаво учебно заведение да провежда регулярно подобни проучвания и да адаптира обученията си спрямо локалните и глобалните трендове и нужди. Дали традиционните университети, училищата, частните обучителни организации, академии и школи правят такива проучвания не знам, но мога да споделя, че от създаването на СофтУни през 2014 г. до момента редовно събираме по систематичен начин мнението на софтуерните и ИТ фирмите и адаптираме учебния план, учебните курсове и учебния процес към нуждите на бизнеса.

Целта на проучването е да се оцени кои езици за програмиране, софтуерни технологии, инструменти и методологии се търсят най-много на пазара на труда в ИТ сектора в България към средата на 2017 г.

За използваната методология

Методологията, която ползваме за проучването, е стандартна:

  • Проверяваме сайтовете за работа в България и събираме най-търсените езици и технологии от софтуерния свят и изисквания към търсещите работа към май 2017 г.
    • Разделяме използваните технологии в категории (примерно езици за програмиране, уеб технологии, front-end технологии, back-end технологии, технологии от света на базите данни, нетехнологични умения и други).
    • Отсяваме тези от категориите, които имат пряко отношение към софтуерната индустрия в България и обученията на софтуерни инженери.
  • Въз основа на събраните данни изграждаме анкета с въпроси, включваща серия въпроси, разделени на групи.
    • Повечето въпроси са в стил “Кой front-end framework ползвате във вашата фирма?”
    • Отговорите са измежду най-популярните на пазара технологии + празно поле за дописване (ако сме изпуснали даден отговор).
    • На всички въпроси може да се посочи повече от един отговор и затова сборът от процентите надвишавт 100%.
  • Анкетата е изпратена на около 200 фирми от партньорската мрежа на СофтУни и външни компании (предимно на технически ръководители), с молба да бъде попълнена старателно.
    • Анкетата е попълнена успешно от около 90 фирми, с най-разнообразен профил: продуктови и аутсорсинг компании, софтуерни фирми, ИТ фирми, ползващи всякакви технологии.
    • Обхванати са болшинството от по-големи софтуерни фирми (над 100 души), както и редица средни и мини-фирми.
  • Резултатите са събрани, внимателно обобщени и визуализирани като диаграми от техническия експерти от СофтУни.

За автентичността на изследването

Внимание: по никакъв начин не гарантираме за автентичност, научен подход, статистическа значимост и подобни, нито за посочените отговори, нито за направените изводи. Публикувам резултатите с идеята, че може да са полезни и на други фирми и организации от софтуерната индустрия. Вложихме доста усилия и старание, за да съберем тези резултати, но в духа на отворения код и култура, решихме да ги споделим.

Използвайте резултатите от настоящото проучване на свой собствен риск!

Да преминем и към самите резултати.

Област на разработка

  • Изглежда болшинството от анкетираните фирми разработват уеб-базиран софтуер. Някои разработват уеб и мобилен едновременно.
  • Половината фирми имат QA позиции в екипите си.
  • Половината фирми разработват мобилни приложения.

Уеб разработка

  • Масово уеб разработчиците пишат full-stack.

Web Front-End технологии

  • Изглежда Angular е победител във front-end web frameworks категорията, но React е плътно зад него. Останалите участници са с много малко влияние.

Web Back-End езици

 

  • Лидери в back-end програмирането в България са C#, Java и PHP с много малка разлика.
  • Python и Ruby в БГ се ползват много по-малко от C#, Java, PHP и JS.

Web Frameworks за C#, Java и PHP

  • От лидерите в Web back-end програмирането сме извадили водещите технологични рамки (frameworks) за езиците C#, Java и PHP.
  • В C# света ASP.NET MVC и остарялата технология Web Forms се ползват почти еднакво! .NET Core все още навлиза на пазара и изостава от утвърдените по-стари технологии.
  • В Java света Spring Framework води пред Java EE с малка преднина.
  • В PHP света най-използваният framework е Symfony, следван от Laravel.

ORM Frameworks за C#, Java и PHP

  • В C# света болшинството разработчици ползват Entity Framework (EF).
  • В Java света болшинството разработчици ползват Hibernate и Spring Data.
  • В PHP света всеки ползва каквото си иска за достъп до данните – няма технология победител.

Databases

  • В базите данни в българската софтуерна индустрия най-използваната база е MS SQL Server, следвана от MySQL.
  • В C# света се ползва предимно SQL Server.
  • В PHP света се ползва предимно MySQL.
  • В Java света се ползват най-вече MySQL и MS SQL Server (леко съм изненадан).

Web and Front-End Templating Engines / Frameworks

  • Във всички технологии за уеб разработка (PHP, Java, C#, JS) се наблюдава предпочитанието потребителският интерфейс да се рендира с JS front-end framework (като React или Angular) вместо със сървърен templating engine.
  • При C# уеб разработката най-използвана е комбинацията ASP.NET MVC + Angular.
  • При Java уеб разработката най-използвана е комбинацията Spring + React.
  • При PHP уеб разработката най-използвана е комбинацията PHP + React (не съм убеден, че това е вярно).
  • От всички технологии за JS front-end templating се ползват най-много React и Angular.
  • jQuery се ползва най-често съвместно с други JS frameworks, а не самостоятелно и затова делът му в статистиката е толкова голям.

Технологии за разработка на мобилни приложения

  • Android има лека преднина пред iOS, а другите мобилни платформи практически са извън надпреварата.
  • Болшинството Android developers използват Java.
  • Болшинството iOS developers използват Swift. Най-сетне Swift изпревари застаряващият вече език Objective C.
  • Технологии като JS hybrid apps, JS native apps, Xamarin mobile apps и Unity for mobile се ползват рядко при мобилната разработка.

Езици при обработката на данни

  • C# води с малко пред Java и Python при сървърната обработка на данни. Други сериозни участници в тази надпревара не се забелязват.
  • Вероятно въпросът не е бил добре разбран от анкетираните, защото идеята беше “какво ползвате за big data / data science и подобни“, но отговорите са в стил “с какво си обработвате данните от страна на сървъра“. Отговори като R и Scala отстъстваха.

Framework Development езици

  • При програмистите с профил framework developer разнообразието от езици и технологии е огромно и нямаме категорични победители.

QA, ръчно тестване и автоматизация

  • Времето на QA автоматизацията дойде. Болшинството от QA инженерите в българската софтуерна индустрия се занимават с QA automation.
  • При автоматизираното тестване най-предпочитаният инструмент е Selenium.

Използвана от програмистите операционна система

  • Имаме категоричен победител при операционните системи, използвани при разработката на софтуер (desktop средата на програмистите) и това е Microsoft Windows!

Тип бизнес: продуктови и аутсорсинг фирми

  • Повечето софтуерни инженери в България разработват продукт или услуга. Това може да е проект на фирмата-работодател (разработка на български продукт / услуга или чужд / услуга продукт от фирмата-майка) или като част от аутсорснат екип (разработка на чужд продукт или услуга с български dev екип).
  • По-малко от половината програмисти в България работят в аутсорсинг сценарий (като екип или човек под наем на чужда фирма).

Глобални изводи от проучването

  • Приблизителна класация на топ 10 на най-търсените езици за програмиране в България (към май 2017 г.):
    1. C#
    2. Java
    3. JavaScript
    4. PHP
    5. C++
    6. Swift
    7. Python
    8. Ruby
    9. Objective-C
    10. Go
  • Класацията на езиците за програмиране е ориентировъчна.
    • Първите 4 езика се търсят долу-горе еднакво, така че C# не е победител, нито Java. Спорно е дали C# или JavaScript се търси повече.
    • След 5-та позиция класацията също е дискусионна. Спорно е дали Swift или Python се търси повече.
    • За първите 5 езика, обаче сме сигурни кои са и те са C#, Java, JS, PHP и C++.
    • Имайте предвид, че да се правят класации е много трудна работа, защото в обявите за работа езиците и технологиите винаги се търсят заедно. Затова много не вярвайте на горната подредба. Тя е само за ориентация!
  • Най-търсените езици за програмиране в България са C#, Java, PHP и JavaScript.
    • JavaScript се търси най-много, защото е част от професията на C#, Java и PHP разработчиците, но самостоятелно не се търси повече от C# или Java.
    • След първите четири места (където няма категоричен победител измежду C#, Java, JavaScript и PHP), по търсене следват C++, Python, Swift и Ruby.
    • Езици като Ruby, Go, Kotlin, Scala, Erlang, Haskell се считат за екзотични и се търсят слабо в България. Слабо е търсенето и на езици като чисто C, VB.NET, Objective-CPerl, R, assembler, Delphi.
  • В списъка не сме включили помощни езици от разработката на софтуер като HTML, CSS и SQL, защото те не са езици за програмиране.
    • Не е редно да се сравнява Java с SQL или HTML, все едно да сравняваш ягоди с мобилни телефони.
  • Болшинството софтуерни проекти в България са за разработка на уеб и мобилни приложения.
  • Най-използваните технологии в C# / .NET екосистемата са ASP.NET, Entity Framework и SQL Server + Angular / React.
  • Най-използваните технологии от Java екосистемата са Spring Framework, Java EE, Hibernate, MySQL и Android + React / Angular.
  • Най-използваните технологии от PHP екосистемата са Symfony, Laravel и MySQL + React / Angular.
  • Най-използваните технологии от JavaScript екосистемата са React, Angular и Node.js.
  • Най-използваните бази данни в българската софтуерна индустрия са MySQL и MS SQL Server.
  • Над половината софтуерни екипи имат QA инженер в състава си и той се занимава с test automation и с много голяма вероятност ползва Selenium.
  • При уеб разработката front-end частта се пише предимно на Angular или React (с JavaScript). Отмина времето на server-side HTML rendering.
  • Мобилните приложения се пишат предимно на Java и Swift. Все още JS не е навлязъл масово.

Да не би да има някаква грешка?

Ако ви се струва, че в някоя от анкетите резултатите са странни, или някой от изводите не ви допада, спокойно. Никой не претендира нито, че проучването е направено достатъчно автентично, честно, безпристрастно и коректно, нито, че изводите и разсъжденията са непременно правилни. Ползвайте си данните както намерите за добре и не забравяйте да ползвате задклавиатурното си устройство. Мислете! Търсете фактите и доказателствата, разсъждавайте, проверявайте информацията, агрегирайте мнения!

Възможна причина за потенциално изкривяване на резултатите от настоящото проучване е, че е правено предимно сред фирмите от екосистемата на СофтУни. Сред тях рядко ще срещнете хардуерни фирми, фирми с профил IoT, system integrators или call centers, така че най-вероятно извадката от фирми не е съвсем представителна. И затова ползвайте информацията с внимание и размисъл! Успех на всички!

Comments (12)

12 Responses to “Тенденции в софтуерната индустрия в БГ за 2017 г. и класация на езиците за програмиране – годишното проучване на СофтУни”

  1. nakov says:

    Това са ключовите думички, от които тръгнахме в началото, но после някои отпаднаха и се промениха и добабихме и други: agile development, C, C#, C++, custom made view-engine, data processing / data analysis / data science, distirbuted processing, Doctrine ORM, EclipseLink ORM, embedded development, Entity Framework 6, Entity Framework Core, framework development, front-end development, full-stack development, game development, Go, Haskell, Hibernate ORM, hybrid mobile development, iOS development, Java, Java EE, JavaScript, jQuery, Kanban, Kotlin, Laravel framework, lean development, Linux, Mac OS X, manual testing, mobile development, MongoDB, MS SQL Server, MySQL, native mobile development, NoSQL databases, Objective C, Oracle database, outsourcing development company, PHP, PHP with no framework, Play framework, PostgreSQL, product development company, Propel ORM, Pure PHP, Python, QA engineer, Razor engine, React, React JS, Ruby, Scala, Scrum, Selenium, Serverlets / JSP, Sikuli, SoapUI, software engineering, Spring Boot, Spring Data, Spring MVC, SQLite, Swift, Symfony framework, TeamCity CI, test automation, TestNG, Thymeleaf, Travis CI, Twig engine, unit testing, Unity 3D, Vanilla JS (clean JS), Windows, Xamarin framework, Xyster ORM, Zend framework.

  2. Тодор says:

    Това Xyster ORM от къде се роди, пък и с ползваемост като Doctrine? За PHP-то отново нещо е стъкмистика.

    • nakov says:

      Който ползва Zend Framework с голяма вероятност ползва и Xyster ORM. И аз не съм го чувал, но светът не е само Laravel и Symfony. PHP технологиите са фрагментирани до крайност: стотици frameworks с нисък пазарен дял.

      • Тодор says:

        Някак си не откривам факти, които да подкрепят тези твърдения.
        Това което е публично:
        1. Xyster ORM https://github.com/libreworks/xyster
        2. последна версия: Released 2010-10-18
        3. github stats (0 forks, 1 watch, 2 stars)
        4. Синьото каре на сайта им е доста показателно “Xyster’s Not Dead!” https://libreworks.github.io/xyster/

        А изказването “стотици frameworks с нисък пазарен дял” за PHP не е базирано на пазара, а на лична преценка.

        Не искам да изпадам в защита на конкретна технология, защото човек трябва да се обогатява постоянно. Надявам се за бъдещи по задълбочени наблюдения върху PHP и ролята му в софтуерния бизнес.

        • nakov says:

          Честно казано на този въпрос са отоговрили малко фирми и няколко от тях са посочили този Xyster ORM. Аз също не вярвам да се ползва масово.

          Изказването “стотици frameworks с нисък пазарен дял” е наистина базирано на лична оценка, защото повечето ми познати, както и партньорските фирми от PHP екосистемата ползват микс от технологии и frameworks и няма ясен лидер.

          Да, Symfony и Laravel и Zend се ползват повече от останалите, но има и фирми, които ползват нещо свое или микс от “сглоби си сам framework”.

  3. FOSS says:

    Значи, ако разбирам правилно – изпратили сте анкетата на 200 фирми и от тях 90 са ви отговорили, очевидно половината от тези 90 използват технологии на Microsoft, и на тази база твърдите, че MS SQL е по-използван от MySQL и че дялът на C# е колкото на Java и PHP? Сериозно? :O

    • nakov says:

      Приемам, и декларирам, че има изкривяване на резултатите, защото фирмите наистина са малко и наистина са предимно наши партньори (т.е. разработват приложен софтуер и наемат general purpose junior level developers с по-масово използваните технологии).

      Аз лично не вярвам, че SQL Server е по-използван от MySQL. По мое мнение PostgreSQL, Oracle и MongoDB също се ползват често, но в отговорите на анкетата почти не се срещаха.

      Аз лично вярвам, че в България търсенето на C#, Java, PHP и JS е в близки пропорции и че това са 4-те най-търсени езици. Не мога да твърдя, че C# е най-търсеният език, нито пък че е някой от другите. Това ще си остане спорен въпрос.

      • FOSS says:

        Според вас има ли тенденция MariaDB да измества MySQL (безплатната версия на Oracle)?

        • nakov says:

          Да, всъщност MariaDB вече измести MySQL. Аз обаче технически не правя съществена разлика между двете: това е една и съща база данни, но се разпространява под различни търговски имена.

          В СофтУни учим MySQL (по документи), но като инсталираме XAMPP примерно, той качва MariaDB и ние казваме на студентите, че MariaDB е всъщност вариант (версия) на MySQL базата.

          Не вярвам някога името MariaDB да се наложи и да измести името MySQL, но практически всички ползват MariaDB. Все пак в MariaDB фондацията е Monty, създателят на цялата тази екосистема: https://www.linkedin.com/in/montywi/.

          По същия начин не правя съществена разлика между Java 7 и Java 8 и всичките видове JDKs: това си е все Java.

          По същия начин не правя съществена разлика между различните Linux дистрибуции: това ви е все Linux.

          • FOSS says:

            Ясно, благодаря за отговора!
            Имам един последен въпрос:
            Според вас коя е най-използваната Linux дистрибуция в България? Debian/Ubuntu или RedHat/CentOS? (Забелязал съм, че SUSE, поради някаква причина, не е толкова разпространено). Подозирам, че и тук разликата няма да е голяма.

          • nakov says:

            Не съм много вещ в Linux средите, но повечето ми познати ползват Ubuntu, защото е най-масов и най-лесно се намира каквото ти трябва: драйвери, документация и всичко останало.

  4. Hah says:

    Класацията е пълна пародия само като видях че MSSQL е пред MySql ми стана ясно че някоя корпорация е дала кокалче на някой “добър самарянин”. Сигурно нещата с C# стоят по същия начин

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT