http://habrahabr.ru/post/240977/
Дорогие разработчики, вы чувствуете себя неуютно, потому что вы быстро пишете только на восьми языках для трех семейств устройств? Вздрагиваете ли вы, едва заслышав о переходе на очередной фреймворк? Откладывали ли вы любимый проект из-за того, что не могли определить, какая облачная платформа подойдет лучше всего?
Возможно, у вас тоже паралич разработчика. Бойтесь! Это не лечится.
Богатство доступных программистам опций сегодня просто чудовищно. Мы задохнулись под тем, что извергает рог изобилия. Последние несколько лет я зарабатывал на том, что писал на Java, Objective-C, C, C++, Python, Ruby, JavaScript, PHP (прошу прощения) с разными вариантами SQL/баз данных (MySQL, PostgreSQL, MongoDB, BigTable, Redis, Memcached и другими). Нравится ли это мне? Черт побери, нет. По большей части я просто чувствую вину за то, что не делал ничего на Erlang, Clojure, Rust, Go, C#, Scala, Haskell, Julia, Scheme, Swift или OCaml.
Я — жертва паралича разработчика: чувства ущербности из-за того, что индустрия софта развивается быстрее, чем может успеть один человек.
Возьмите любой из этих языков программирования, углубитесь в разнообразные фреймворки, и тулкиты, и доступные библиотеки… И постарайтесь, чтобы ваша голова не взорвалась. Месяцы уйдут только на то, чтобы серьезно оценить все сегодняшние фреймворки и библиотеки JavaScript. Что вы знаете о количестве доступных версий Ruby? Или фреймворков iOS? Или NewSQL/NoSQL баз данных? И даже не заикайтесь про Hadoop vs Spark vs Google Dataflow, или Avro vs Thrift vs protocol buffers, или-или-или…
По крайней мере, мобильный мир сжался до дуополии Android/iOS — хотя за этим тоже скрываются пересекающиеся альтернативы, вроде Xamarin или кроссплатформенного HTML на PhoneGap или Sencha — но просто попробуйте понять, где и как развернуть бэкенд. Я работал на Heroku, Amazon Web Services, Google App Engine, Google Compute Engine и Parse… что только заставляет меня стесняться того, как мало я знаю про внутренности OpenStack, Force.com, Azure, AppFog, никогда мной не использованного множества AWS сервисов и других.
Программисты сегодня оказались перед массой доступных возможностей, так что мы даже используем кучу инструментов, которые существуют только, чтобы помочь нам управлять другими инструментами: Bundler, Bower, CocoaPods, Pip и другие. Они отличные! Я не хотел бы жить без них. Но тем не менее. Потом вы начинаете использовать другие инструменты, и половину времени занимает отсеивание всякого мусора, затем начинаете понимать, что конфигурации недостаточно, вы на самом деле хотите чуть-чуть переписать их… капельку… или заменить другой альтернативой…
Число и разнообразие языков, инструментов, фреймворков и платформ, доступных разработчику, приводит в невероятное уныние. Конечно, никто не хочет признать это. Каждый хочет быть мастером на все руки. Но правда в том, что мы все страдаем от комплекса программистского паралича.
Даже сбор необходимой информации для принятия обоснованного решения почти наверняка приводит к обратному. Если перед началом проекта вы выделили время на анализ всех возможностей, а затем забрались на вершину кривой обучения, вас может мгновенно сбить с ног какой-нибудь подросток, использующий PHP и Swift с emoji в названиях переменных.
Но с другой стороны, если зациклиться на Swift и PHP, вы будете жить в постоянном страхе, что какой-нибудь ниндзя-программист на C#/Haskell заткнет вас за пояс так же, как это сделал ранее Пол Грэм с Lisp:
Когда вы выбираете технологию, вам приходится игнорировать все, что делают другие и учитывать только то, что будет работать лучше всего… На самом деле, у нас есть секретное оружие… Мы могли просто разрабатывать софт быстрее, чем кто-либо мог представить… Мы писали наше ПО на сумасшедшем Al со странным синтаксисом и кучей скобок.
Итак: паралич разработчика. Выбираем ли мы то, что уже знаем, потому что теперь можно двигаться вперед, не взбираясь на кривую обучения, и боимся, что кто-то делает это лучше, быстрее, элегантнее — и наши знания устареют и будут неконкурентноспособными в следующем году? Или мы хотим постоянно расширять наш кругозор, потому что нам нравится учиться и лучшие инструменты — и веселее, и конкурентоспособнее… но занимают больше времени, сил и нагрузки на мозг?
Вопрос на засыпку! Верного ответа нет. Вот почему каждый месяц — Месяц знакомства с параличом разработчика. Я пришлю вам мигающие калейдоскопические ленточки (чтобы все носили), как только пойму, какой 3D принтер, микроконтроллер, LED- софт и ОС для дрона лучше всего подойдут для этой цели. Не задерживайте дыхание.