main
resume
portfolio
contacts
russian

Выбор перспективного языка программирования.

Моя история.



Посвящается всем тем, кто не захотел продаваться в офисное рабство


К началу нулевых прикладной софт писался на Delphi и VB6. Был еще C++ со своим MFC, но для наших задач это выглядело жутким мазохизмом, рассчитанным на большие команды. Совсем не мой выбор - наёмного удаленного сотрудника небольших команд. Сейчас это с гордым видом именуется "аутсорсер в стартап".
Поразмыслив, что перспективнее - язык от единоличного IT-гиганта MS (тогда айфонов не было и Apple стонал в агонии, а про всякие молодые гуглы и говорить нечего) или поделка от загнивающей конторки "b | land", выбор пал на VB.
За пару лет я стал настоящим профи с кучей своих заготовок в activex/ocx и с большим удовольствием клепал офисные проги за неделю в одиночку, с таким же качеством, как и офисные команды на Dephi за месяц. VB5/6 позволял выдавать такие чудеса, обещая сладкую жизнь.
Но но потом пришел WinXP с .NET / VB.NET, в котором от VB осталось одно название. Язык натурально сдох. Game Over №1.



Идти в C# смысла не было - чуть позже 1C доказал правильность выбора, отожрав весь рынок офисного софта, который нас кормил. В перспективе маячил веб. Пришлось учить HTML4/CSS/JS, благо JS был моим первым языком, изученным еще в школе. В середине нулевых каждая дыра хотела сделать себе сайт. Несколько сотен баксов за пару дней работы - это прикольно. Особенно, когда Java-тогда-еще-не-Seniorы-но-суть-та-же в региональных конторах получали $300 в месяц.
Но потом "интернет пришел в каждый дом" и клепать сайты-визитки стал каждый школьник за $10. Качество? Я вас умоляю, в середине нулевых JS для веба был разве что украшеним. О каком качестве могла идти речь.. Справедливости ради, мы за качеством не гнались тоже. Клиентам было на это плевать. 95% из них не были в курсе, что такое "разные браузеры" и зачем разделять html и css. Клиентам были важны сроки и стоимость. Мы пытались соответствовать. Но рынок трещал по швам. Game Over №2.



Пройдет совсем немного времени, и точно такой фокус повторится с PHP4/PHP5. Тут уже на арену вышли студенты с джумлами, пхпбб и прочим вкусным готовым. На кастом скриптах далеко не уедешь, заказы шли в подавляющем большинстве на простенькие задачки. Сегодня, когда PHP-программисты требуются везде, это кажется невероятным. Но тогда на несколько лет PHP потерял смысл. Доходы резко упали. Game Over №3.



КК нп. Раз рынок наводнился ноу-скиллерами, будем идти от противного. Что там самое сложное? Программирование 3D-игр и медиа-софта на C++. Отлично!
Что выбираем - OpenGL, который стоял на месте с 2002 года или динамично развивающийся DirectX от самих MS? Айфонов всё еще не было. Были смартфоны на Symbian (JavaME) с играми, которые слабо продавались по 5 гривен за три штуки.
Очевидно, выбор пал на DirectX. Это было действительно интересно и непросто. Но я справился.



И вот я такой довольный с новыми навыками (Майерс? Александреску? Пфф.. "Паттерны программирования"? В наших местах это называлось проще - "здравый смысл"), библиотеками C++ & DirectX, прошедшими боевое крещение и готовыми снимать скальпы с толстых клиентов, внезапно обнаруживаю, что рынок захлестнули смартфоны нового типа.
Apple выходит на сцену. OpenGL на коне, рынок наполняется готовыми движками, которые юзают макаки. DirectX не отстает, выдавая массу движков и конструкторов. Свои движки можно смело отправилять в корзину и "программировать игры мышкой", как тогда любили говорить. Game Over №4.



Приходится опять перекатываться. AS3/Flash. Омг, наконец-то, я всю жизнь тебя искал! Отличная технология, топ1 распространение, нет альтернативы. Оно!
Проблем оказалось две:
1. Мой скилл и опыт оказался совершенно не нужным для клепания флешек.
2. Apple что-то не поделила с Adobe и начала массированную травлю флеша, который потянул и всё остальное (единственный по-настоящему кроссплатформенный AIR, восходящую звезду stage3D с Starling/Feathers и прочие прелести ActionScript3).
Травля нелепая, ориентированная на низкоквалифицированную публику. Но действенная. В конечном итоге Adobe сдался. Технология, по-прежнему не имеющая аналогов, стала избегаться клиентами и даже самими разработчиками из Adobe, прямо предлагающими мне перейти с AS3 на Java. Game Over №5.



Оболваненные клиенты начали просить делать всё свое флешевое на HTML5. Ничего не поделаешь, учим HTML5, вспоминаем JS, разгребаем тонны навоза в WebGL/Canvas движках. Готово.
Проблем оказалось две (wait..):
1. При детальном использовании оказалось, что HTML5 - распиаренная коричневая субстанция, которая адекватно работает только в десктоп Хроме. Я не говорю про функционал (в HTML5/JS нет кучи вещей из коробки, которые были во флеше, что обрекает HTML5-игры быть на уровне 8-битных аркад), я говорю про адекватную поддержку браузерами. Её до сих пор (2016-й год) нет. Есть только куча багов, которые лечатся (хаха. нет) баг-репортами в Мозиллу, Гугл и т.д. И тонны идиотов на хабра-подобных ресурсах, которые ничего сложнее Марио на HTML5 не делали, но которые галдят с 2010-го года "ну еще полгодика, и HTML5 точно заменит флеш!".
Как результат - куча примитивных игр и забагованного софта. Делать такие поделки большого ума не надо.
2. Для мобильных игр Unity оказался вне конкуренции. Полный провал браузерок на Андроиде. Phonegap? Не смешно.
В итоге HTML5 смог успешно заменить флеш только в сфере рекламных баннеров.



Не дожидаясь очередного Game Over-a я уже смотрю дальше. Да, я продолжаю работать с pixi & howler, печально глядя в консольное окно gulp-a, но понимаю - пора присматриваться к новому. Node.JS? Нейросети? хз. Одно я знаю точно - если не хочешь застрять на 20 лет в офисе с энтерпрайзом и командой в 100 человек, языки придется менять каждые ~3 года.

Нет такой вещи, как "перспективный язык". Есть законы рынка, за которым постоянно нужно следить, чтобы оставаться на плаву.


 facebook  Twitter  В контакте