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

Для того, чтобы показать, какие языки программирования более востребованы или распространены на данный момент, ряд организаций ведут собственные рейтинги. Данные этих рейтингов берутся из ряда источников данных. Это форумы, предложения работы для программистов, упоминания в социальных сетях, опросы, репозитории кода. Такого рода рейтинги полезны для отслеживания трендов. В продолжении - несколько рейтингов, которые считаются наиболее авторитетными.

Рейтинг RedMonk

Эта аналитическая компания регулярно публикует собственный рейтинг языков программирования. Он строится на основе оценки сочетания популярности на GitHub, плюс активность обсуждений на Stack Overflow. Лидерами здесь являются JavaScript, Java, PHP и Python.
  • JavaScript
  • Python
  • Objective-C
  • Shell
  • Scala
  • Haskell
  • Swift
  • Matlab
  • Visual Basic
  • Clojure

IEEE Spectrum

IEEE Spectrum - это журнал, который издается Институтом инженеров электротехники и электроники (IEEE). Несколько дней назад этот журнал опубликовал свой рейтинг популярности языков программирования. Как видим, лидером здесь является Си, следом идут Java, Python и C++.

В этом рейтинге довольно необычным является выход R на пятое место. Объяснение здесь простое - этот язык востребован в системах обработки больших объемов данных. Соответственно, растет количество запросов на Stack Overflow. Следует учесть и то, что на GitHub появилось сразу 62 тысячи новых репозиториев. Много новых вакансий и упоминаний языка в научно-исследовательских публикациях.

Для создания своего рейтинга специалисты IEEE использовалис 12 различных метрик из 10 источников. Основное - это поиск результатов по запросу «название языка programming» на ряде популярных сайтов. Учитываются и материалы, которые выдаются в поисковой выдаче Google, данные Google Trends, упоминания в социальных сетях.

TIOBE

Компания TIOBE Software, публикуя свой рейтинг , отмечает рост популярности ассемблера. Согласно этому рейтингу язык поднялся на две позиции - с 12 на 10 место. Это объясняется бурным развитием сферы интернета вещей. Анализ данных проводится на основе результатов поисковой выдачи многих систем, включая Google, Google Blogs, Yahoo!, Wikipedia, MSN, YouTube, Bing, Amazon и Baidu.

Что все это значит?

Только то, что лучшего в мире языка программирования попросту не существует. Многие разработчики работают не с одним, а несколькими языками программирования, попутно изучая новые технологии. Кроме того, популярность и востребованность языка программирования во многом зависит от востребованности технологии, которая требует использования определенного языка. Сейчас трендом является Big Data, и, как видим, начинает расти значимость R. Еще мы видим, что однозначными лидерами всех трех рейтингов можно назвать С, Java и Python. Хотите учить какой-то из этих языков? Вряд ли прогадаете.

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

Другие наши публикации:

Всем привет! Сегодня хочу поговорить на такую тему как “Топ языков программирования” в 2018 году. Можно показать, что данный вопрос уже хорошо «обсосан» в интернете, но я постараюсь дать вам наиболее свежую информацию, которая есть на сегодняшний день в зарубежных источниках. Поехали!

Откуда данные?

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

— TIOBE (индекс, оценивающий популярность языков программирования, на основе подсчета результатов поисковых запросов, содержащих название языка)

PYPL index (индекс популярности языков программирования на основе анализа поиска тотуриалов в Google)

— RedMonk (компания, которая занимается анализом)

А так же перечень ресурсов на которых есть их личные статистики:

— StackOverflow

— GitHube

— Trendy

— Indeed

— IEEE Spectrum

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

ТОП 2018 года

Давайте же перейдем к самому списку языков.

1. JavaScript/JAVA Во всех топах на первых позициях, как правило, лидируют эти два языка. Уже не первый год, JavaScript стал основным языком на котором пишет большое количество разработчиков для создания динамических UI Web платформ. Если вы хотите пойти по пути front-end разработки, то этот язык должен быть вашим самым приоритетным в изучении на текущий год. Java — это язык, на котором пишется абсолютно все что угодно, начиная от игр, веб приложений, сайтов и заканчивая искусственным интеллектом. Спрос на хороших специалистов по направлению Java — очень велик и имеет соответствующую оплату в любой точке нашего мира.

2. PHP Я поставил PHP на второе место т.к. действительно, на рынке в текущий момент огромное количество предложений о работе связано именно с этим языком программирования. PHP использовался по больше части в вебе для создания back-end приложения. Благодаря его легкости в освоении, есть огромное количество проектов, которые были написанные в предыдущие годы на PHP и которые требуют их дальнейшей поддержки от специалистов так и доработки каких-то персональных фич. Если вы хотите пойти (особенно в русскоязычном сегменте рынка) в back-end разработчику, не тратя годы на изучение Java, то PHP – это тот язык, который имеет гораздо меньший уровень вхождения.

3. Python Этот язык имеет низкий уровень вхождения и легок в изучении, что дает ему большое преимущество. Менее популярен на Российском рынке, чем все предыдущие языки, но так же хорошо оплачиваем.

4. C++/ C# Фундаментальные языки, которые я поставил в один ряд. В настоящее время на них пишут, как игры, так и сложные приложения для любых устройств. Данные языки хорошо оплачиваются, но имеют меньшую популярность из-за более высокого уровня вхождения в них.

5. Ruby Отличный язык если вы совсем новичок. Множество языков которые сейчас стоят на первом месте, позаимствовали свои практики именно из этого языка.

6. C Язык программирования, разработанный аж в 1969-1973. Обычно на нем пилят какие-то серьезные системы. И если вы реально хотите заниматься хардкорным программированием и попасть в мир низкоуровневого программирования, то этот язык явно для вас.

7. Objective-C компилируемый, объектно-ориентированный язык программирования корпорации Apple, построенный на основе языка Си и парадигм Smalltalk. На нашем рынке имеется большое количество вакансий для данного языка программирования.

8. CSS Почему CSS находится в этом списке? Спросите Вы у меня. Ведь CSS — это формальный язык оформления Web страниц. Да это так! Но на данный момент этот язык используется везде. Ни один современный веб сайт или приложение не обходится без CSS. Именно поэтому, он находится в этом топе.

9. Shell (шелл, он же «командная строка», он же CLI, он же «консоль», он же «терминал», он же «черное окошко с белыми буковками») - это текстовый интерфейс общения с операционной системой. И опять, это же не язык программирования! В какой бы операционной системе вы не разработали свое «творение», вы все равно будете использовать консоль, ибо это удобно. Так и в этой статистике.

10. Go И последним языком в этом списке, является язык Go, созданный компанией Google. Уже не первый год он постоянно входит в топы. Кто знает, что будет через пару лет. Может этот язык сможет войди в заветную пятерку лидеров. Поживем - увидим.

Заключение

Сегодня мы рассмотрели «Топ 10 популярных языков программирования», которые будут радовать нас в 2018 году. Если вы новичок и только предпринимаете свои первые шаги в вебе то я бы посоветовал Вам пойти от простого к сложному. Изучите HTML и CSS. После чего попробуйте поиграться с JS для создания динамических страниц и как вариант PHP, либо Ruby для написания простенького бэка. Поработав с этими языками месяца 4, вы сможете сделать выбор в какую сторону вам лучше пойти развиваться (Front-end или Back-end). Выбор всегда за вами. Надеюсь, что данная статья была вам полезна. Удачно покодить!)

Любой потенциальный кодер, уже знающий, что такое язык программирования, рано или поздно начинает задаваться вопросом: «На чем лучше всего писать программы?» Эта проблема актуальна как для новичков, так и для опытных IT-специалистов, ведь с развитием информационных технологий изменяются и приоритеты программистов. Многие коды, которые были популярны 10 лет назад, сегодня безнадежно устарели. Поэтому выбирать лучший язык программирования нужно исходя не только из его сегодняшней востребованности, но и из завтрашней перспективности .

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

Для начала разберемся, что такое язык программирования. Он представляет собой набор команд, с помощью которых человек дает компьютеру конкретное задание. На сегодня изобретено более 8 тыс. знаковых систем, позволяющих общаться с ПК. Многие из них известны лишь узкому кругу разработчиков, другие же используются программистами всего мира. Хорошие специалисты могут знать более 10 языков программирования и успешно использовать их для решения разных задач.

Выбор языка программирования зависит от задач, которые вы собираетесь решать . Так, для создания статичных веб-страниц отлично подходит HTML и CSS, тогда как для разработки интерактивных ресурсов необходимо знание JavaScript. Создание полноценных сайтов невозможна без изучения PHP, Python или Ruby, а мобильные приложения разрабатывают кодеры, знающие Objective C (для iOS), а также Java и C++ (для Android).

Какой язык лучший?

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

Опытные кодеры совершают выбор языка программирования исходя из следующих критериев:

  • предполагаемого размера кода и времени его исполнения;
  • скорости работы программы;
  • возможности расширения функционала в будущем;
  • совместимости с платформами, на которых программа будет работать;
  • поддержки языка сообществом.

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

Самый легкий язык программирования

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

На статус «самый легкий язык программирования » сегодня претендуют:

  • PHP – совместим со всеми серверами и платформами, поддерживает многие виды баз данных, отличается высокой производительностью и используется в 65% самых популярных сайтов;
  • Python – чрезвычайно простой и функциональный язык, который предлагает сегодня практически любая IT-академия: он позволяет создавать программное обеспечение, игры, сайты, а также работать с графикой и базами данных;
  • Javascript – обеспечивает программный доступк интерактивным приложениям веб-страниц, делая сайты функциональнее и ярче.

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

Самый высокооплачиваемый язык программирования

По данным сайта rabota.yandex.ru, уровень зарплат российских программистов самых популярных специальностей распределяется следующим образом.

На хорошую зарплату могут рассчитывать кодеры, знающие основные виды языков программирования, которые предназначены для разработки мобильных приложений под iOS: Objective-C и С++ в России и Swift – на Западе. Традиционно высокие оклады имеют специалисты, настраивающие под нужды предприятий бухгалтерию 1С, программисты на Java, разрабатывающие приложения под Android, а также знатоки SQL, работающие с базами данных.

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

Популярность выбранного языка среди работодателей позволит вам не только быстро найти высокооплачиваемую работу, но и не беспокоиться о своем финансовом будущем еще как минимум лет 5. Согласно исследованиям сайта github.com, популярность языков программирования распределяется в мире следующим образом.

В России ситуация несколько иная. Звание «Самый востребованный язык программирования» делят между собой:

  • Javascript – скриптовый язык, встроенный во все основные браузеры и предназначенный для создания мультимедийных эффектов, всплывающих окон и даже игр;
  • PHP – позволяет работать с базами данных, а также создавать сложный контент для веб-страниц;
  • 1C – основной инструмент программирования при работе с бухгалтерской программой «1С:Предприятие».

Виды языков программирования

Удачный подбор инструментов – залог успеха любой работы . Это актуально и для кодеров: выбрав для выполнения задачи правильный язык, специалист может сэкономить немало рабочего времени и получить на выходе оптимальный результат.

Классификация языков программирования довольно сложна, а самыми востребованными на сегодня являются объектно-ориентированные направления.

Существует и другая классификация, которая делит языки на группы, в зависимости от:

  • уровня языка: низкий (Assembler), средний (C, C++) и высокий (Haskell);
  • вида обрабатываемой информации: вычислительные (Haskell, Python) и символьные (C, C++, Perl);
  • назначения: для администрирования (Perl), серверные (PHP), клиентские (Javascript), декларативные (HTML), универсальные (Алгол, Фортран);
  • поколения языка: машинные (двоичные языки процессоров IBM-PC и ARM), системные (Assembler), языки высокого уровня (бейсик, фортран, PHP), визуальные (FoxPro) и интеллектуальные (C++).

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

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

Число вакансий в IT демонстрирует невероятную динамику. По данным портала HeadHunter, с января по август прошлого года спрос был скорее отрицательным. Но, постепенно увеличиваясь, IT-вакансии к апрелю 2016 года составляли до 40% от общего числа для Москвы и более 50% - для Санкт-Петербурга. В продолжение темы профессий будущего разбирались с экспертами, как развивается IT-сфера и меняются требования к специалистам.

Универсалы в прошлом

Далеко в прошлом остались представления об IT-специалисте как неопрятном сисадмине, настраивающем компьютеры в офисе. Рынок требует командных игроков, высококлассных специалистов по автоматизации и безопасности данных, разработчиков приложений и прочих гениев кода. Топ-5 перспективных и набирающих популярность профессий в IT, согласно исследованиям HeadHunter, возглавляют по убывающей: специалисты Big Data, web-аналитики, разработчики мобильных игр, облачных решений и дизайнеры инфографики.

Эксперты рынка уверены, что универсальным бойцам придется в будущем непросто. Работодателям нужны мастера своего дела, наделенные глубинными познаниями в узкой сфере.

Между универсальным айтишником из прошлого и IT-специалистом, востребованным на рынке сегодня, пролегает огромная пропасть, уверен Илья Вислоцкий, руководитель центра архитектуры клиентских решений Stack Group.

«Современные технологии стали настолько развитыми и сложными, что для их освоения уже недостаточно одного человека, поэтому появляются профессионалы отдельных IT-направлений. В это же время обычный сотрудник должен разбираться в IT не хуже того универсального айтишника из прошлого. Сегодня каждый должен быть „немного программистом“», - подчеркивает эксперт.

Спрос на сисадминов-эникейщиков никуда не денется, но людям, которые грезят о серьезных доходах, по мнению исполнительного директора «Конструктор документов FreshDoc.ru» Андрея Тушева, следует обратить внимание на отрасль web-разработки. «Именно в web сейчас наблюдается реальный голод кадров, этот рынок перегрет, он растет гигантскими темпами. Как следствие, высокий спрос на квалифицированных работников, высокая оплата труда и хорошие перспективы профессионального роста», - резюмирует эксперт.

Кого ждет рынок

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

«Мы живем в эпоху конвергенции всего и вся: технологий, знаний, разных предметных областей, - подчеркивает директор АНО „Центр оценки и развития проектного управления“ Юрий Ким. - Самые востребованные специалисты - не просто кодеры, системные администраторы или другие технические профессионалы. Топ-классом признаются специалисты, которые помимо технической стороны вопроса, знают еще и предметную, содержательную».

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

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

Если рассматривать вопрос более предметно, то заместитель директора по науке и развитию компании ИВК Валерий Андреев предлагает обратить внимание на потребность рынка в программистах, имеющих возможность и желание создавать продукты, выступающие альтернативой имеющимся. «Востребованы специалисты, разбирающиеся в сетевых сервисах, работе с сетевым оборудованием. Имеется устойчивый спрос на специалистов информационной безопасности. Сложнее стало работать вендорам, но предполагается, что это временно. А вот для разработчиков сейчас самое время, причем в широком смысле. Таковых современные ВУЗы не выпускают, они воспитываются долго и стоят дорого», - рассуждает эксперт.

Директор по маркетингу Experian (Россия и СНГ) Наталия Фролова, основываясь на исследовании, проведенном ее компанией в 2015 году, отмечает формирование новой профессии, обусловленное растущим объемом накапливаемых данных. «До недавних пор основная работа по централизации стратегии управления данными ложилась на плечи IT-директора. Однако уже сейчас компании начинают вводить новую должность - директор по данным. Речь не столько о специалисте „иного профиля“, сколько о новом огромном фронте работы для IT-специалиста».

Разработка помогает проверить то, насколько правильно человек выбрал сферу в IT, действительно ли она ему нравится.

Но нет для знакомства со сферой IT способа лучше, чем разработка, уверен IT-директор департамента IT-аутсорсинга, руководитель Центра компетенции по импортозамещению и Open Source компании ALP Group Павел Рыцев. «Можно попробовать себя в разработке мобильного или веб-приложения, а можно принять участие в доработке OpenSource-решения, заодно освоив навыки совместного решения сложных задач в команде. Разработка помогает проверить то, насколько правильно человек выбрал сферу в IT, действительно ли она ему нравится».

Места под солнцем хватит всем

Чтобы попасть в IT, нет необходимости становиться именно программным разработчиком или специалистом по информационной безопасности. В этом вопросе эксперты настроены более чем радушно - интересных задач хватит на всех.

Работа в IT перестала быть местом трудоустройства только для представителей технических специальностей, подтверждает коммерческий директор Ringostat Константин Червяков. «В России появляется все больше стартапов, SaaS-сервисов, продуктовых технологических компаний, которым нужны менеджеры по продажам, специалисты по работе с клиентами, дизайнеры, контент-маркетологи и т.

д. То есть сектор IT теперь полноценно трудоустраивает большое количество людей самых разнообразных профессий».

Работа в IT перестала быть местом трудоустройства только для представителей технических специальностей.

И то ли еще будет. Так или иначе всем высоким технологиям находят применение в потребительском сегменте, а это вновь расширяет границы профессии и сферы в целом.

«Маркетологи придумают новые концепции, подобные „Big Data“, „облачным сервисам“, „интернету вещей“ и прочих. Это приводит к появлению новых сегментов, технологий, решений, которые надо будет „обслуживать“ (в широком понимании этого слова), и на которые потребуются ресурсы», - рассуждает Тимур Векилов.

Мой мир - мои правила

Конфликт из области «ожидание-реальность» в процессе набора сотрудников в технологические компании, что ожидаемо, обостряется.

Отчасти поэтому, по словам Тимура Векилова, талантливых ребят отбирают заранее.

Опубликован очередной рейтинг самых популярных языков программирования на март 2018 года

«Это и физико-математические классы, специализированные школы при физико-технических и технических ВУЗах, и подготовительные курсы, факультативные студии. В высших учебных заведениях тоже существуют „клубы по интересам“, где перспективных студентов патронируют крупные игроки IT-рынка, приглашают на практику».

На растущую популярность IT-сферы среди женщин рынок реагирует адекватно. Если раньше встретить девушку-программиста или тестировщика - было чем-то необычным, сейчас соотношение специалистов во многих стартапах достигает 50/50», - замечает Дмитрий Григорьев.

Как раньше уже не будет

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

Павел Рыцев категорически не рекомендует идти в IT только потому, что это правильно, перспективно, там больше денег и пр. «IT - это неизменная готовность к решению большого числа как типовых, так и крайне нестандартных задач. Это постоянный поиск тонкого баланса между нуждами клиента и ресурсными затратами компании на их обеспечение. Выбор нужно делать очень внимательно и обязательно проверять практикой», - подытоживает Павел.

Материалы

Самые востребованные языки программирования в 2016 году

Школа программирования Coding Dojo проанализировала объявления на крупнейшем в мире агрегаторе вакансий indeed.com, составив топ самых востребованных языков программирования в мире в 2016 году.

Возглавляет список SQL - «язык структурированных запросов», применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей СУБД. Технологии баз данных (MySQL, PostgreSQL и Microsoft SQL Server) используют как международные корпорации, так и малые бизнесы и госучреждения. На самом деле, почти каждый компьютер и человек с доступом к технологиям в конечном счёте соприкасается с SQL. Например, все Android-смартфоны и iPhone имеют доступ к базе данных SQL ite, и многие популярнейшие мобильные приложения, разработанные Google, Skype или Dropbox, используют её.

Мировое технологическое сообщество недавно отметило 20-летие объектно-ориентированного языка программирования Java.

Самые востребованные языки кодирования-2018

Это один из наиболее широко распространённых языков, который используют 9 млн разработчиков и 7 млрд устройств.

С Java и основанными на нём фреймворками разработчики могут создавать масштабируемые веб-приложения для широкого круга пользователей. Java - также основной язык, используемый для разработки нативных Android-приложений для смартфонов и планшетов.

Популярность Java у разработчиков связана с простотой и надёжностью языка, который обеспечивает долгосрочную совместимость написанных на нём продуктов. В ближайшие годы не стоит ожидать заката эпохи Java, на котором построены сайты ИТ-гигантов LinkedIn.com, Netflix.com и Amazon.com.

3. JavaScript

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

C# - относительно новый объектно-ориентированный язык программирования, который ведёт историю с 2000 года и является основным языком для разработки на платформах и сервисах Microsoft. Будь то разработка современных веб-приложений с использованием Azure и.NET, приложений для «девайсов» Windows или мощных десктопных приложений для бизнеса. C# - результат эволюции предшественников C и C++ - самый быстрый способ использовать всё, что может предложить Microsoft. Кроме того, это и один из основных языков для разработки игр на движке Unity.

5. Python

Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Веб-приложения, пользовательские интерфейсы, анализ данных, статистика - для какой бы задачи вам не предстояло найти решение, в Python, скорее всего, найдётся подходящий фреймфорк.

Это отличный выбор языка как для новичков, так и для опытных программистов. Python недавно потеснил Java с позиции главного начального языка программирования, с помощью которого происходит посвящение учащихся в мир компьютерных наук. Так, 8 из 10 факультетов информатики в США и 27 из 39 лучших университетов используют Python для обучения студентов программированию.

Академическая популярность повлияла на то, что в последние годы Python всё чаще используется в качестве основного инструмента для обработки гигантских объёмов данных практически в любой отрасли.

Сайты NASA and Reddit написаны на Python.

Наследник «древнего» C, C++ - идеальный выбор для разработки мощного «настольного» программного обеспечения, игр с функцией аппаратного ускорения, а также приложений для ПК, консолей и мобильных устройств, требующих большого объёма памяти для работы. Создатель C ++ Бьёрн Страуструп с 1983 года ведёт учёт приложений, написанных на этом языке. В их числе - приложения Adobe и Microsoft, базы данных MongoDB, значительная часть Mac OS / X.

Детище датско-канадского программиста Расмуса Лердорфа, PHP создавался в качестве набора инструментов, необходимых для сохранения персональной страницы (Personal Home Page) создателя. Сегодня PHP - скриптовый язык общего назначения, который наряду с базами данных (например, MySQL) интенсивно применяется для разработки веб-приложений.

На PHP разработано большинство сайтов, ориентированных на большой объём данных. Это также основополагающая технология мощных систем управления контентом, как WordPress.

8. Ruby on Rails

Ruby - динамический язык программирования с открытым исходным кодом и упором на простоту и продуктивность. Его главной сферой применения является разработка веб-приложений. Ruby on Rails - написанный на Ruby фреймворк, который обеспечивает интеграцию веб-приложений с веб-сервером и сервером баз данных.

Среди плюсов, делающих Ruby on Rails популярным среди небольших стартапов и глобальных корпораций, - скорость разработки (ёмкость кода и широкий выбор сторонних библиотек).

Ruby on Rails использовался при создании таких популярных сайтов, как Twitter, SoundCloud, Airbnb, Basecamp, GitHub, Hulu.

9. Swift

Летом 2014 года на конференции WWDC компания Apple представила собственный язык программирования Swift в качестве замены давнему Objective C. Swift зарабатывает баллы от разработчиков за свою безопасность (в нём сложно ненароком внести критические баги) и современность. Другой ключевой фактор - «выразительность» языка, когда для получения одного того же результата в Swift нужно куда меньше строк кода, чем в Objective-C.

Аналитики прочат поступательный рост Swift в ближайшие годы. Сейчас эту технологию используют LinkedIn, Lyft, Vimeo, Pixelmator и другие компании. Поговаривают даже, Google рассматривает возможность перехода с Java на язык программирования от Apple при разработке приложений для Android.

Такое разнообразие высокоуровневых языков программирования появилось относительно недавно. Ещё в пятидесятых годах двадцатого века для программирования вычислительных машин использовали непосредственно машинный код (набор единиц и нулей). Ключевым недостатком этого подхода к программированию было различие кодировки разных вычислительных машин, вносящее необходимость повторного написания той же программы для ЭВМ другого производителя.

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

Самые популярные языки программирования 2018 в мире

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

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

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

Поэтому идеи, возникшие в 50-х, дополненные и развитые в 60-90-х годах прошлого столетия, в наше время воплотились в красиво реализованные высокоуровневые языки программирования.

Яркая конкуренция на рынке информационных технологий позволяет оставаться в тренде только самым производительным и удобным в использовании языкам.

В двадцать первом веке программирование нужно везде: от настройки кофеварки до моделирования сложнейших блоков ракет. И современные языки программирования позволяют справиться со всеми поставленными задачами.

Какой язык программирования выбрать для изучения?

Идея того, что хороший программист должен знать несколько языков программирования, а, в случае необходимости, быстро изучать другие языки, озвучивается далеко не в первый раз. Вникнув в принципы, скажем, объектно-ориентированного программирования действительно можно довольно быстро освоить несколько языков программирования. Но с чего же начать?

Front-end разработка

Это одно из самых простых решений. Количество вакансий для квалифицированных front-end разработчиков традиционно превышает количество соискателей. Кроме того, JavaScript, которым должны владеть фронт-энд разработчики, в изучении намного проще большей части языков программирования.

Популярность языка программирования

По количеству открытых вакансий самыми популярными языками служат Java и С (в разных вариациях). Традиционно начинать обучение рекомендуют именно с С. Поскольку изучение этого языка даёт понимание синтаксиса и семантики всех языков группы С. Изучив основы С, довольно просто перейти на С# С++ или Java.

Прицел в будущее

Здесь мнения аналитиков расходятся. Многие исследования говорят о том, что будущее за машинным обучением, Python’ом и его производными. Другие говорят о преимуществах языков для веб-разработки, в которых кеширование и заблаговременная компиляция плагинов приводит к существенному снижению времени отклика программы (PHP). Третьи настаивают на том, что самым популярным языком ещё долго будет оставаться Java и его производные.

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

Учитесь, совершенствуйтесь, становитесь высококлассными профессионалами! Знайте, ваши знания и умения всегда будут достойно оценены.

Самый распространенный язык программирования в мире

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

Изучая распространенные языки программирования, становится очевидным, что лидерами в гонке являются PHP и SQL. В первом случае открытые коды позволяют задействовать язык HTML скриптов, который особенно актуален для веб-разработок. Что же касается SQL, этот язык программирования позволяет быстро работать с любыми объемами базы данных.

Общие сведения о языке программирования

Впервые об этом языке программирования заговорили еще в 1970 году, однако на тот период это была лишь составляющая СУБД. За 14 лет практики язык программирования SQL был определен в отдельную категорию, расширил свои возможности. Работая с бесчисленными носителями информации, работа с SQL предусматривает удобное форматирование таблиц, контроль и редактирование записей в рамках изучения базы данных.

Со временем возможности этого информационно-логического языка только расширились, а получение новых свойств позволило SQL стать независимой единицей компьютерных технологий. В университетах студенты изучают этот язык программирования, создают пробные базы данных. По сути, это совокупность вычислительных функций, инструкций, операторов. Изучение СУБД стало частью вузовской программы, поэтому и учащимся высших учебных заведений пришлось на практике столкнуться с возможностями SQL.

Основные возможности

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

— запрос на получение требуемого пакета информации;

— запрос на внесение коррективов в уже существующую базу данных;

— запрос на удаление информации;

— запросы для добавления новых сведений к уже зафиксированным данным;

— обращение к СУБД.

Рейтинг языков программирования

Поскольку вся информация этого языка программирования заключена в таблицы, корректировка происходит именно табличных значений. Таким образом, при знании SQL можно корректировать работу не только таблиц в целом, но и отдельных ее сегментов — строк или столбцов. При хранении большого объема информации это очень удобно, поскольку доступ имеется на постоянной основе при введении требуемых запросов.

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

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

Вышло ежегодное исследование TIOBE Index for January 2018, где определены самые популярные языки программирования 2018 года. Рассказываем, какие языки вошли в топ-10, в какой сфере они применяются и какие задачи выполняют. Разбираемся, какой язык программирования учить в 2018. Дерзайте!

На Perl можно накодить всё — от десктопных программ и серверов в телекомах до допотопных сайтов. Язык с открытым исходником оказывается даже в прошивках маршрутизаторов и многих коммерческих продуктах. Часто используется в веб-разработке и биоинформатике. Но позиции Perl сдаёт – в биоинформатику пришел Python, а сайты больше пишут на Java. В общем, не самый перспективный язык для изучения.

9. PHP

PHP широко используется благодаря WordPress. 80% сайтов с посещаемостью свыше 10 млн. пользователей используют PHP. В PHP нет строгих правил в написании кода, а также он гибок в решении проблем. PHP — отличный выбор для веб-разработчиков, поскольку он является серверным скриптовым языком для WordPress.

Знание PHP для веб-разработчика – большой плюс в резюме, потому что он позволяет создавать красивые динамические сайты. Вы можете использовать PHP для различных веб-проектов. Это довольно простой язык с открытым исходным кодом, хорошей поддержкой многих баз данных, а также многочисленными инструментами и различными направлениями для использования.

8. R

Прежде всего R — язык программирования для статистической обработки данных и работы с графикой, но в тоже время это свободная программная среда с открытым исходным кодом, который можно найти в любом дистрибутиве Linux.

R применяется везде, где нужна работа с данными: в статистике, «первичном» анализе (графики, таблицы сопряжённости) и математическом моделировании.

// Индекс популярности языков программирования по исследованию TIOBE

7. Visual Basic.NET

Прикиньте, на нем еще даже что-то пишут. Считается копией С/С# – задачи решает те же, синтаксис чуть попроще. Никто не советует его изучать, если хотите развиваться в направлении разработки ПО или приложений. Но видимо, век финтеха и всех этих «блокчейнов» дал о себе знать, потому что в банковской отрасли VBN настоящий musthave.

6. JavaScript

По статистике Stackoverflow (Stack Overflow Developer Survey) JavaScript стал самым используемым языком программирования в мире. Он предоставляет возможность создавать интерактивные сайты и является одной из основных веб-технологий наряду с HTML и CSS, поскольку большинство браузеров в используют JS.

JavaScript отличный язык, чтобы начать свой путь в веб-разработке. Подойдёт для создания интерактивных сайтов в интернете. В последнее время JavaScript расширился, и теперь на нём можно писать мобильные приложения, игры, а также десктопные приложения. Это определённо повлияло на популярность языка.

5. C#

Мультипарадигмальный язык программирования общего назначения, разработанный в Microsoft для создания приложений на собственной платформе компании. C# объектно-ориентирован и используется для разработки приложений на.NET frameworks. Если планируете развиваться в создании нативных приложений под MS – C# вам в помощь.

А в разработке игр на Unity без C# вообще не обойтись, инфа сотка.

Крутой плюс языка – его простота, он больше похож на английский, чем другие. C# позволяет сосредоточиться на алгоритме, а не на деталях реализации, потому что сложные конструкции в нём заключены в абстракции.

На C# можно написать что угодно: веб-сервисы, мобильные ПО, серверные приложения и так далее. И в то время как эксперты утверждают, что спрос на C# падает, Xamarin опровергает эти утверждения, оказывается, что платформа упрощает создание приложений для Android и iOS.

Отличный язык для начинающих — прост в понимании и использовании. Школы с уклоном на программирование для детей уже давно ввели Python в учебную программу вместо устаревшего Паскаля.

Python имеет несколько сфер применения: статистические вычисления, нейронные сети и машинное обучение и даже веб-разработка (Django). Этот язык оброс достаточным количеством библиотек, ориентированных на нейронные сети, в отличие от Ruby.

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

Придуман в 1983, как альтернатива С, и стал популярным. Его главной особенностью являются предопределенные классы. Microsoft Windows, Google Chrome, Adobe, Amazon — знакомые вам проекты, созданные на С++. Этот язык до сих пор востребован работодателями, поскольку имеет мощный инструментарий и может быть адаптирован в различных сферах.

Финансы, игры, связь, электронные платежные системы, розничная торговля — знание С++ позволяет писать игры и сложные коммерческие системы наряду с простыми приложениями.

ТОП 10 самых популярных языков программирования в мире

Был создан в 1972 году, чтобы программисты могли писать в операционной системе UNIX, она по-прежнему жива и популярна. C относится к низкоуровневым языкам и работает на «машинном уровне», что ускоряет процесс обработки информации и позволяет писать код под «железо» (микроконтроллеры, процессоры). Он работает практически на всех вычислительных платформах. Dropbox, eBay и Spotify используют C-программирование, а вся ОС Linux полностью написана на C.

1. Java

Практичный и перспективный язык программирования для изучения. 90% компаний из списка Fortune используют Java для разработки backend’а и десктопных приложений. Ценится за кроссплатформенность благодаря JVM.

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

Вместе с TIOBE Index for January 2018 вышло исследование GitHub PYPL PopularitY of Programming Language. По версии GitHub в пятерку лидеров вошли Java, Python, PHP, JS и С#. Результаты двух исследований сильно различаются, но хоть в одном сошлись – десятку самых популярных языков возглавил Java. Юхух!

Больше карьерных советов, акуальных вакансий и полезных ресурсов -
в Telegram-канале

ТЕМА: Современные языки программирования

Проверил_______________

История развития.

Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы. С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающие наличие и типы ошибок, которые надо анализировать. «Слова» на машинном языке называются инструкции, каждая из которых представляет собой одно элементарное действие для центрального процессора, такое, например, как считывание информации из ячейки памяти. Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если Процессор А полностью понимает язык Процессора Б, то говорится, что Процессор А совместим с Процессором Б. Процессор Б будет называться не совместимым с Процессором А если А имеет команды, не распознаваемые Процессором Б. В случае, когда нужно иметь эффективную программу, вместо машинных языков используются близкие к ним машинно-ориентированные языки - ассемблеры. Люди используют мнемонические команды взамен машинных команд.

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки. Например, для процессора Zilog Z80 машинная команда 00000101 предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Структурное программирование

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня - Фортран (англ. FORTRAN - FORmula TRANslator ). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language ), таких как Алгол(1958), Паскаль(1970), Си(1972). Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных. Суть такого подхода заключается в возможности разбиения программы на составляющие элементы. Также создавались функциональные (аппликативные) языки (Пример: Lisp - англ. LISt Processing , 1958) илогические языки (пример: Prolog - англ.PROgramming in LOGic , 1972). Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определенной длины. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.

ООП

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием. Примером объектно-ориентированных языков являются: Object Pascal, C++, Java и др. ООП позволяет оптимально организовывать программы, разбивая проблему на составные части, и работая с каждой по отдельности. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче.

Основные концепции языков программирования

Стандартизация языков программирования

Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.

Типы данных

Современные цифровые компьютеры обычно являются двоичными и данные хранят в двоичном (бинарном) коде (хотя возможны реализации и в других системах счисления). Эти данные как правило отражают информацию из реального мира (имена, банковские счета, измерения и др.), представляющую высокоуровневые концепции. Особая система, по которой данные организуются в программе, - это система типов языка программирования; разработка и изучение систем типов известна под названием теория типов. Языки могут быть классифицированы как системы со статической типизацией и языки с динамической типизацией . Статически-типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией , где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами . Иногда динамически-типизированные языки называются латентно-типизированными .

Структуры данных

Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так называемые структуры данных. Как правило, структурные типы данных образуются как декартово произведение базовых (атомарных) типов и ранее определённых составных типов. Основные структуры данных (списки, очереди, хеш-таблицы, двоичные деревья и пары) часто представлены особыми синтаксическими конструкциями в языках высокого уровня. Такие данные структурируются автоматически.

Семантика языков программирования

Существует несколько подходов к определению семантики языков программирования. Наиболее широко распространены разновидности следующих трёх: операционного, денотационного (математического) и деривационного (аксиоматического). При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ. Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий. Денотационная семантика оперирует понятиями, типичными для математики - множества, соответствия, а также суждения, утверждения и др. Язык программирования строится в соответствии с той или иной базовой моделью вычислений и парадигмой программирования. Несмотря на то, что большинство языков ориентировано на императивную модель вычислений, задаваемую фоннеймановской архитектурой ЭВМ, существуют и другие подходы. Можно упомянуть языки со стековой вычислительной моделью (Forth, Factor, Postscript и др.), а также функциональное (Лисп, Haskell, ML и др.) и логическое программирование (Пролог) и язык Рефал, основанный на модели вычислений, введённой советским математиком А.А. Марковым-младшим. В настоящее время также активно развиваются проблемно-ориентированные, декларативные и визуальные языки программирования.

Компилируемые и интерпретируемые языки

Языки программирования могут быть разделены на компилируемые и интерпретируемые. Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполнимый модуль, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора. Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) исходный текст без предварительного перевода. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера - это интерпретатор машинного кода. Кратко говоря, компилятор переводит исходный текст программы на машинный язык сразу и целиком, создавая при этом отдельную исполняемую программу, а интерпретатор выполняет исходный текст прямо во время исполнения программы. Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов). Для любого интерпретируемого языка можно создать компилятор - например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения. Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями (см. выше), кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий. Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без дополнительной программы-интерпретатора. Современные языки программирования рассчитаны на использование ASCII, то есть доступность всех графических символов ASCII является необходимым и достаточным условием для записи любых конструкций языка. Управляющие символы ASCII используются ограниченно: допускаются только возврат каретки CR, перевод строки LF и горизонтальная табуляция HT (иногда также вертикальная табуляция VT и переход к следующей странице FF). Ранние языки, возникшие в эпоху 6-битных символов, использовали более ограниченный набор. Например, алфавит Фортрана включает 49 символов (включая пробел): A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / () . , $ " : Заметным исключением является язык APL, в котором используется очень много специальных символов. Использование символов за пределами ASCII (например, символов KOI8-R или символов Юникода) зависит от реализации: иногда они разрешаются только в комментариях и символьных/строковых константах, а иногда и в идентификаторах. В СССР существовали языки, где все ключевые слова писались русскими буквами, но большую популярность подобные языки не завоевали (исключение составляет. Встроенный язык программирования 1С: Предприятие). Расширение набора используемых символов сдерживается тем, что многие проекты по разработке программного обеспечения являются международными. Очень сложно было бы работать с кодом, где имена одних переменных записаны русскими буквами, других -- арабскими, а третьих -- китайскими иероглифами. Вместе с тем, для работы с текстовыми данными языки программирования нового поколения (Delphi 2006, C#, Java) поддерживают Unicode.

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
В последние годы огромный рывок сделал фронтенд, при этом в серверных языках развитие не столь заметное. Разработчик, безусловно, должен знать основы смежных направлений, но быть гуру в серверных языках и в клиентских невозможно, каждый должен заниматься своим делом и быть в нем настоящим профессионалом.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png