Компьютеры Windows Интернет

Самые новые языки программирования. Пять перспективных языков программирования со светлым будущим

1. При выборе языка программирования на проект выбор встает между двумя сторонами - выбрать старый проверенный инструмент или новый, красивый, функциональный, но мало проверенный, а следовательно, ненадежный язык. Как разумнее поступить в этой ситуации? Каковы риски каждого из решений, и как с ними справиться?

Игорь Зильберг , SmartHead
Нужно выбирать инструменты по адекватности задаче и по наличию опытной команды, знакомой с выбранными инструментами. Риски при работе с новыми инструментами минимизируются исследованиями, созданием proof of concept, привлечением опытных консультантов. Новые технологии должны изучаться постоянно, но применяться, только если они лучше подходят для решения конкретной задачи.

Александр Макарчук , qb
Для бизнеса понятия «красивого языка» не существует. Сделать ставку на новый непроверенный язык можно только в том случае, если он гарантированно даст проекту какое-то особенное УТП, которое клиенты смогут почувствовать, а главное - захотят за него заплатить. Если это условие выполняется, то выбрать новый язык можно, но при этом придется принять на себя и все связанные с ним риски.

Григорий Никонов , Actis Wunderman
Конечно же, зависит от проекта и зрелости самого языка. Если проект позволяет, или использование языка является необходимым условием, и доступны нужные предметные библиотеки, то вполне можно позволить эксперимент. Риски очевидны: «подводные камни», на которые можно наткнуться на половине пути. Минимизация этих рисков тоже очевидна: по возможности провести исследования до начала проекта и убедиться, что, как минимум, есть активная поддержка языка в форумах или у производителя.

, ADV
В этом вопросе все зависит от сроков и бюджетов проекта. Если и то, и то сильно ограничено, то любые изыскания не оправданы и способны принести большие проблемы, вплоть до полного провала проекта.

Алексей Федоров , «Одноклассники»
Ответ сильно зависит от того, какова планируемая длительность проекта. Если это небольшой проект на заказ, который надо быстро сделать, сдать и забыть о нем - тогда можно выбирать все, что угодно. Если это большой проект на года - то лучше выбрать проверенные технологии, на которые можно будет нанять нужное вам количество специалистов. Для того, чтобы оценить, сколько в вашем регионе есть специалистов по той или иной технологии, достаточно воспользоваться любым разумным сервисом, например, LinkedIn или HeadHunter. А дальше уже нужно смотреть на нефункциональные требования: нагрузка, безопасность, отказоустойчивость и т. п.

2. Какие существенные факторы дают гарантию, что язык можно и нужно использовать на продакшне?

Игорь Зильберг , SmartHead
Гарантии в этом мире не дает никто и ничто. Мы полагаемся на свой опыт и распространенные best practice.

Александр Макарчук , qb
Можно выделить три основных признака, которые говорят о том, что использовать тот или иной язык выгодно и безопасно. Во-первых, наличие у данного языка «живого» комьюнити, во-вторых, наличие успешных кейсов, и в-третьих, поддержка языка крупными вендорами.

Григорий Никонов , Actis Wunderman
Наличие «зрелых» предметных библиотек и фреймворков, активное интернет-сообщество, предлагающее советы в решении проблем, отсутствие негативных отзывов о стабильности и производительности конечного приложения.

Алексей Персианов, Михаил Парфенюк , ADV
Факторами являются комьюнити данного языка, количество реализованных проектов, количество разработчиков и прочее. Выпуск на продакшн продукта на новом и сыром языке скрывает большие проблемы с поддержкой.

Алексей Федоров , «Одноклассники»
Формальная гарантия может быть подкреплена только контрактом. Если есть серьезный вендор (например, Oracle, SAP, IBM), который гарантирует, например, что его технология будет поддерживаться ближайшие 10 лет, и с этим вендором подписан соответствующий Support Contract, то, в принципе, вы можете считать это какой-то гарантией. Проблема в том, что обычно это очень дорого, а качество саппорта у больших вендоров, как правило, отвратительное.

Поэтому в мире в последние годы принята другая практика - open source. Если у вас есть опенсорсный инструмент (язык, фреймворк, база данных или все что угодно) с открытым исходным кодом, то это вам дает некоторую гарантию того, что если в этом инструменте вдруг обнаружится баг, то вы в крайнем случае сможете поправить этот баг своими руками. Именно это свойство opensource-решений я считаю ключевым для сегодняшнего бизнеса.

3. Как действовать, если разработчик или даже несколько разработчиков предлагают изменение языка программирования, но по ситуации видно, что их азарт не подкреплен адекватными бизнес-требованиями к технологии?

Игорь Зильберг , SmartHead
Разработчики не предъявляют бизнес-требований. Их предъявляет бизнес. Однако бизнес зависит от качества кода, который пишут разработчики. Поэтому, если разработчики хотят использовать технологию, которая явно не подходит для решения бизнес-задачи, то надо либо убедить разработчиков, либо поменять. Адекватный и опытный разработчик в состоянии понять бизнес-требования и применить наиболее адекватное им решение. У нас подобных проблем не было. В нашей практике чаще происходит наоборот: заказчик вместо того, чтобы формулировать бизнес-требования, влияет на выбор технологии (часто в ущерб реализации собственных требований).

Александр Макарчук , qb
Если переход на новый язык не подкреплен ощутимыми аргументами и не сулит проекту серьезных преимуществ, то он не нужен. Но разработчикам, конечно, это необходимо объяснить, чтобы у команды не складывалось впечатления, что к ней не прислушиваются.

Григорий Никонов , Actis Wunderman
Придерживаться консервативной политики и не менять язык без веских оснований. Всегда будет другой проект, на котором можно будет опробовать новый язык.

Алексей Персианов, Михаил Парфенюк , ADV
Пойти навстречу разработчикам можно только в случае внутреннего проекта, или если он пишется для обучения команды. В этом случае риски неудачи невелики, и при неудаче выносится полезный опыт на будущее. В противном случае бизнес не оценит перфекционизма разработчиков.

Алексей Федоров , «Одноклассники»
Во-первых, следует спросить, чем обоснована идея по смене языка. Что это даст? Каковы плюсы и каковы минусы? Какова стоимость такого перехода и каковы сроки? Каковы риски?

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

4. Когда затраты на переход с одного языка на другой стоят того?

Игорь Зильберг , SmartHead
Оценить затраты на смену платформы и сопутствующие выгоды невозможно вне контекста проекта. Такое решение может приниматься только на основании осознанного подхода в рамках конкретного проекта, а не на основании каких-либо «универсальных» мнений или правил.

Александр Макарчук , qb
Когда это повлечет за собой ощутимую прибыль, как прямую, так и косвенную вследствие появления у проекта нового УТП, которое сделает продукт конкурентоспособнее.

Григорий Никонов , Actis Wunderman
В случае, когда использование нового языка позволяет существенно оптимизировать всю жизненную цепочку предметной области: от проектирования, разработки и тестирования приложения до внедрения и последующих обновлений и доработок за счет свойств языка и экосистемы вокруг него.

Алексей Персианов, Михаил Парфенюк , ADV
Когда поддержка языка прекращена, а вместе с тем и количество специалистов на рынке стремится к нулю. Или если вы полностью теряете старую команду без возможности сохранить технологии. Когда профит от языка будет больше, чем затраты на его переход.

Алексей Федоров , «Одноклассники»
Когда у вас и ваших коллег есть четкие ответы на обозначенные выше вопросы.

5. Считаете ли вы, что существует устоявшееся разделение применения языков для определенных задач? Если да, то как именно вы его видите? Может ли появиться или уже существует язык, который изменит ситуацию и перетянет на себя большую часть разработчиков?

Игорь Зильберг , SmartHead
Конечно же, есть некоторые типовые сферы применения разных платформ (не языков). Например, Java и.NET для относительно крупных бизнес-приложений или сервисов. Node.js для многопоточной обработки и мессенджинга. Все не перечислить. Однако эти границы очень и очень размыты и зависят так же от региона. В США, например, немного другой опыт использования, «мода» и типовые сферы применения платформ, нежели у нас.

Александр Макарчук , qb
С одной стороны, устоявшееся разделение языков по применению существует, но с другой - довольно сильное значение имеют региональные и ценовые факторы: стоимость вхождения в технологию, поддержки и т.п. Что касается появления новых языков, то здесь нужно заметить такую вещь. За последние несколько лет уровень коммуникации вырос значительно, а языки программирования, по сути, все те же. Возможно, именно дальнейшая революция в области коммуникаций повлечет за собой совершенно новые технологии разработки.

Григорий Никонов , Actis Wunderman
В принципе, такое разделение есть: языки C и C++ традиционно используются для низкоуровневой разработки, Java и C# считаются языками общего назначения, подходящими для широкого спектра задач от бизнес-логики до мобильных приложений. Python, Ruby и PHP нацелены, в основном, на веб-разработку, JavaScript - на браузерные приложения. Не думаю, что возможны резкие изменения в этой области, хотя мода на языки и фреймворки иногда меняется - сейчас, например, начинает набирать популярность язык Go.

Алексей Персианов, Михаил Парфенюк , ADV
Да. Некоторые вещи лучше реализуются на разных языках в силу скорости работы и простоты использования, например, в php-проектах в силу «медлительности» языка можно реализовать чат на Node или агрегатор на Java - результат будет лучше.

С каждым годом каждый новый язык получает лавры «лучшего» и перетягивает на себя разработчиков, но пока, наверное, позиции проверенных языков незыблемы. В будущем все может быть.

Алексей Федоров , «Одноклассники»
Большинство известных нам с вами современных языков программирования являются многофункциональными, то есть на них можно делать очень разные решения.

Насчет нового языка - да, такой язык появиться может, но, в силу довольно сильной инертности индустрии, я не думаю, что в ближайшие 5 лет кто-то потеснит Java и С/C++ с пьедестала. Если же и выбирать какую-то «лошадку», то я поставил бы на JavaScript. Сегодня мы видим в индустрии огромный рост всего, связанного c JavaScript. Фреймворки рождаются, как грибы после дождя. Хайп в интернете вокруг этой технологии огромен. Посмотрим, к чему это все приведет.

6. Должен ли программист быть DevOps (обладать навыками программиста и системного администратора)? Что делать с тем, что большинство программистов отказываются развивать компетенции и нести ответственность в этой области?

Алексей Персианов, Михаил Парфенюк , ADV
Для настройки окружения обычно пользуются услугами системного администратора. Но, наверное, есть смысл в том, что человек, который пишет код, должен сам уметь настроить площадку для оптимального исполнения данного кода. Это сэкономит время и затраты.

7. Стоит ли использовать микросервисы в своих проектах?

Алексей Персианов, Михаил Парфенюк , ADV
Однозначного ответа нет, но наш ответ - да. Безусловно, они могут добавить немало проблем, но и помогут решить многие. Например, благодаря микросервисам разные части приложения можно писать на разных языках программирования, есть возможность масштабировать нагруженные части приложения и пр.

8. Должен ли разработчик уметь работать с широким спектром современных веб-технологий и языков?

Алексей Персианов, Михаил Парфенюк , ADV
В последние годы огромный рывок сделал фронтенд, при этом в серверных языках развитие не столь заметное. Разработчик, безусловно, должен знать основы смежных направлений, но быть гуру в серверных языках и в клиентских невозможно, каждый должен заниматься своим делом и быть в нем настоящим профессионалом.

В условиях динамично меняющегося мира, когда еще вчера уважаемые профессии превращаются в ничто, многие люди ищут чем заняться в жизни, чтобы это было и интересно и актуально нынешнему времени, и в то же время прибыльно. Очень часто подобные поиски приводят к программированию: хорошие программисты даже в СНГ зарабатывают тысячи долларов, имеют немало свободного времени, возможность работать удаленно и имеют шансы на карьерный рост.

Помимо указанных преимуществ программирование отличается и тем, что для его освоения совсем не нужно тратить годы времени, протирая штаны в университетах. Здесь все решает самообразование, в интернете есть все необходимые материалы для успешного самообучения любому языку программирования: уроки в текстовом виде, видео уроки, инструкции, советы от опытных специалистов и прочие образовательные материалы. Таким способом можно легко освоить современные технологии программирования и найти по-настоящему достойную работу.

Но перед тем, как взяться за дело, нужно ответить себе на один важный вопрос: какие современные языки программирования в 2017 году будут актуальны, на какой из их тратить свое время и усилия? От правильно ответа здесь зависит очень много – сложность и скорость процесса обучения, минимальный порог вхождения в реальную деятельность, дальнейшие перспективы в карьерном плане.

Перспективные области программирования и языки на 2017 год

Чтобы определиться с конкретным языком программирования для изучения (одним или несколькими) нужно для начала ответить себе на вопрос: в какой области программирования человеку хотелось бы работать. Наиболее популярными и бурно развивающимися сферами сейчас выступают:

Технологии web программирования. Создание сайтов, онлайн сервисов и банкингов, интернет магазинов, лендинг страниц для бизнеса и тому подобных вещей – все это является частью веб-программирования. Все больше людей на планете становятся пользователями интернета, он становится все более быстрым и дешевым, активными пользователями сети становятся даже люди зрелого и преклонного возраста. В 2017 году эта тенденция только усиливается и потолка ее развития еще не видно. Поэтому очень выгодно изучать языки программирования связанные с интернетом. Список самых популярных из них будет представлен ниже;

Программирование для гаджетов : смартфонов, планшетов, смарт часов, очков виртуальной реальности и прочее. Это также очень интересная и быстро развивающаяся сейчас область деятельности. Миллиарды людей во всем мире пользуются гаджетами, читают на них новости, смотрят видео, слушают музыку и занимаются массой других вещей. Все эти функции электроники возможны благодаря хорошо написанному программному обеспечению. Часто оно стоит намного дороже, нежели само физическое устройство. Программировать в этой сфере сейчас очень выгодно. Стоит отметить, что здесь чаще всего применяются языки программирования высокого уровня.

Какой язык выбрать

Нельзя сказать, какой язык самый современный. Многие из них используются очень широко и активно. Но если речь идет о перспективных языках программирования, то лучшими можно назвать такие:

  • Java. Наиболее универсальный и популярный язык программирования, с помощью которого можно разрабатывать как приложения для компьютеров, так и для гаджетов, особенно под управлением Android ОС. Он имеет понятный синтаксис, учится довольно легко и быстро, первые программы на Джава можно писать уже спустя несколько недель после начала обучения. Главная характеристика, которая делает его очень перспективным – использованием для программирования под Android, который сейчас развивается очень бурно;
  • C#. Отличный вариант для человека, который хочет посвятить свою деятельность написанию программ под компьютерные системы. Именно язык CИ Шарп (C#) является той основой, на которой пишется большинство программ для различных платформ и сервисов от Microsoft. С его помощью можно как разрабатывать веб-приложения с применением.NET и Azure, так и программы непосредственно для ОС Windows, различных приложений для бизнеса и многих других вещей. Чтобы разобраться в C#, придется немного попотеть, но в итоге это окупится;
  • PHP. Если Ваша задача – писать качественные скрипты и интерактивные шаблоны для интернет ресурсов или быть администратором какого-либо сервера, что сейчас является очень выгодным занятием, то PHP будет лучшим способом реализовать подобное стремление. Современные языки программирования просто не могут обойтись без этого представителя. Учится он довольно таким быстро и легко – если изучать PHP тщательно и регулярно, то уже через 2-3 года можно претендовать на очень неплохую должность и соответствующую зарплату.

Конечно, это далеко не полная характеристика языков и их классификация, но даже такого небольшого списка вполне достаточно, чтобы выбрать для себя хорошую и перспективную сферу деятельности.

Полный обзор современных языков программирования мог бы занять слишком много времени, но это не столь необходимо, так как стоит помнить главное – человек, хорошо владеющий хоть каким-либо языком, обязательно сможет найти свое место в сфере программирования. А знания одного из указанных языков обязательно будет достаточно, чтобы хорошо зарабатывать и решать интересные задачи.

Одной из наиболее используемых систем оценки популярности языка программирования является TIOBE , суть которой заключается в подсчете количества веб-страниц, на которых есть название того или иного ЯП.

Однако, это не всегда говорит о том, сколько людей на самом деле в данный момент хотят использовать или используют какой-либо язык программирования, поэтому команда GitHub подошла к этому вопросу с другой стороны.

Их система под названием PYPL (PopularitY of Programming Languages) основана на количестве поисковых запросов туториалов: чем больше людей ищут руководства по конкретному языку программирования, тем выше он в рейтинге PYPL.

10. Swift

Язык появился не так давно, но Apple хочет, чтобы он стал ключевым по всему миру и для всех платформ, включая веб и Android, уже в ближайшие 20 лет.

9. R

R был создан в 1993 году и сегодня используется крупными компаниями для машинного обучения и анализа больших данных.

8. Objective-C

Несмотря на то, что изначально Swift был выпущен, чтобы заменить Objective-C, этот язык всё ещё остается популярным и является передовым для разработки на iOS. Но, вероятно, это скоро изменится.

7. С++

Наиболее популярными продуктами, написанными на C++, являются Windows и Google Chrome.

6. C

Папа может в Си. Наверное, поэтому этот язык используется везде, и код на нем можно запустить буквально на любой вычислительной платформе.

5. JavaScript

Именно этот язык обычно расположен на первом месте в различных рейтингах. Однако по мнению GitHub он не является самым популярным. JavaScript используется в основном для разработки веб-приложений, но на самом деле ограничений для него нет.

4. C#

C# разработан компанией Microsoft и используется в основном в связанных с ней системах, например, в Windows Phone. Также на C# написан поисковик Bing.

3. PHP

Этот язык - самый популярный выбор для разработки бэкенда. На нем написаны такие сайты, как Facebook, ВКонтакте, Yahoo.

2. Python

Python был создан в 1989 году и с того времени, кажется, становится всё более популярным.

С момента появления в 1957 году первого языка программирования высокого уровня Фортран прошло почти 60 лет, и не удивительно, что за столь долгий срок программирование шагнуло далеко вперед. Появились новые технологии, новые концепции и парадигмы программирования, и, конечно же, новые языки. Как правило, создание языка программирования обусловлено требованием времени: новые задачи зачастую требуют новых инструментов для их решения, которые будут лучше справляться с работой, чем их предшественники. В связи с этим ежегодно появляется несколько новых языков, которые вбирают в себя все лучшее, что было накоплено за десятилетия практического программирования и одновременно приносят что-то новое. Некоторые наиболее интересные языки программирования, появившиеся совсем недавно, но уже зарекомендовавшие себя как мощные и современные инструменты для разработчика и будут рассмотрены в этой статье.

Swift

Свободный язык общего назначения, созданный компанией Apple для разработки под iOS и OS X. Язык совместим с Objective-C, что дает возможность использовать оба языка в одной программе. Разработка языка началась в 2010 году под руководством Криса Латтнера – главы отдела разработки Apple. Swift заимствовал идеи из множества уже существующих языков самого разного направления: от C++ до Haskell. Официальное представление языка произошло в июне 2014 года вместе с 500-страничным руководством по его использованию. Работать на Swift можно в среде программирования Xcode 6 для iOS. В версии языка 3.0 добавлена поддержка Linux.
Язык взял очень многое из Objective-C; в то же время он позиционируется как более безопасный и быстрый. По заверениям разработчиков, код на Swift работает в 1,5 раза быстрее, чем аналогичный код на Objective-C.

Hack

Язык, разработанный компанией Facebook; внешне похожий на PHP. Программный код на Hack исполняется на специальной виртуальной машине, поддерживающей также PHP. Язык является открытым – исходные коды Hack открыты для всех желающих принять участие в его усовершенствовании. Хотя язык и основан на хорошо известном PHP, разработчикам удалось создать совершенно новый и высоконадежный инструмент для быстрого создания веб-сайтов и других приложений. Полученный результат настолько впечатлил Facebook, что все проекты компании были переведены на Hack – факт, говорящий сам за себя.

Julia

Новый язык для математических вычислений. Синтаксис языка испытал влияние Matlab и других математических языков, но имеются и существенные отличия. Сам язык написан на C и C++; программный код языка выполняется на виртуальной машине LLVM, для чего Julia снабжена JIT-компилятором. Благодаря компиляции была достигнута высокая скорость работы приложений, сравнимая с программами, написанными на C++.
Язык поддерживает распределенные вычисления, перегрузку функций и распараллеливание кода. Основная задача Julia: работа с большим объемом вычислений при сохранении высокой производительности. Для этих целей в язык также добавлена и поддержка облачных вычислений. Помимо чисто математических задач с помощью Julia возможно и создание программ общего назначения.

Dart

Язык, созданный компанией Google в качестве замены JavaScript. В связи с некоторыми «фундаментальными изъянами» языка JavaScript, не подлежащими исправлению, было решено создать новый язык для веб-программирования. При этом язык нужно было создать максимально похожим на уже существующие, для упрощения перехода и обучения новичков. В настоящее время программы на языке Dart исполняются двумя способами: через виртуальную машину Dart VM и путем трансляции в JavaScript. В будущем планируется, что Dart заменит JavaScript в качестве универсального языка для веб-программирования.

Type Script

Еще один язык, позиционирующий себя как замена JavaScript. Разработчиком нового языка стал знаменитый Андерс Хейлсберг, автор Delphi, C# и Turbo Pascal. Type Script является открытым языком, обратно совместимым с Java Script. Компилятор преобразует код на Type Script в JavaScript, который затем выполняется браузером. В отличие от JS новый язык поддерживает все возможности объектно-ориентированного программирования, а также подключение модулей. Совместимость Type Script и JavaScript позволяет использовать существующий код JavaScript в новых проектах на Type Script, включая популярные JS-библиотеки. Имеется поддержка парадигмы обобщенного программирования.