Биография | Реферат | Библиотека | Ссылки | Отчет о поиске | Индивидуальное задание | Портал магистров | ДонНТУ

RUS | ENG | UKR

Рейтинг языков программирования
Какие из языков программирования стоит изучить разработчику ПО

Рейтинговые исследования компании TIOBE

Голландская компания TIOBE Software BV в первую очередь известна как автор регулярно рассчитываемого рейтинга популярности языков программирования. Большинство сотрудников TIOBE - специалисты по разработке компиляторов, начавшие свою карьеру в исследовательской лаборатории компании Philips. Кстати, TIOBE расшифровывается как "The Importance Of Being Earnest" (Как важно быть серьёзным - название знаменитой комедии Оскара Уайлда).

Рейтинг TIOBE рассчитывается начиная с июня 2001 года. Первоначально он включал 25 языков программирования. В настоящее время в рейтинге учитываются 150 языков программирования. Измерения проводятся не менее 10 раз в месяц.

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

Как следствие, в качестве языков программирования не рассматриваются такие распространённые языки, как HTML, XML и SQL. С другой стороны такие расширения SQL, как PL/SQL и Transact-SQL, являются языками программирования. Средства разработки и технологии, такие как ASP, ASP.NET, Rails и AJAX, также не считаются языками программирования. Наконец, из рассмотрения исключены языки типа ассемблера, хотя они и полны по Тьюрингу.

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

Методика расчёта довольна проста. С помощью сайта Alexa.com определяются три основные поисковые системы. В настоящее время это Google, MSN и Yahoo. В каждой из них для каждого участвующего в рейтинге языка программирования запускаются запросы вида: +"название_языка programming"

Такой же поиск проводится на Google по группам новостей и блогам за последние 12 месяцев.

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

Если считать первые 50 языков программирования за 100%, то рейтинг TIOBE в числовом выражении показывает долю, занимаемую каждым языком.

Кроме этого, авторы рейтинга делят языки на две категории: A и B (хотя существуют A- и A--). Они рекомендуют при выборе языка для разработки или изучения (с учётом карьерных перспектив) ориентироваться на языки категории A, поскольку для языков категории B:

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

Делается оговорка о необходимости учитывать сферу применения и характер проекта. Так, система управления ракетами, вполне вероятно, будет написана на языке Ada, относящемся к категории B, и никогда - на JavaScript, несмотря на его принадлежность к категории A.

Рейтинг TIOBE на апрель 2010 года в сравнении с апрелем 2009 года:

Position
Apr 2010
Position
Apr 2009
Delta in Position Programming Language Ratings
Apr 2007
Delta
Apr 2006
Status
1 2 C 18.058% +2.59% A
2 1 Java 18.051% -1.29% A
3 3 C++ -1.03% 9.707% A
4 4 PHP 9.662% -0.23% A
5 5 (Visual) Basic 6.392% -2.70% A
6 7 C# 4.435% +0.38% A
7 6 Python 4.205% -1.88% A
8 9 Perl 3.553% +0.09% A
9 11 Delphi 2.715% +0.44% A
10 8 JavaScript 2.469% -1.21% A
11 43 Objective-C 2.288% +2.15% A
12 10 Ruby 2.221% -0.35% A
13 14 SAS 0.717% -0.07% A
14 12 PL/SQL 0.710% -0.38% A
15 - Go 0.710% +0.71% A
16 15 Pascal 0.648% -0.07% B
17 17 ABAP 0.625% -0.03% B
18 20 MATLAB 0.616% +0.13% B
19 22 ActionScript 0.545% +0.09% B
20 19 Lua 0.521% +0.03% B

График изменения популярности первой десятки языков в рейтинге, начиная с июля 2001 года:

pic

Рейтинговые исследования CNews Analytics, интернет издания о высоких технологиях

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

В настоящее время интерес к созданию новых языков программирования снизился (и в мире, и в России), а круг используемых языков стабилизировался. Наступил момент для анализа использования современных языков программирования. Результаты проведенного CNews Analytics и «Форт-Россом» исследования среди разработчиков ПО России подтвердили предположения, что языки программирования, ориентированные на интернет и интеграцию приложений, доминируют в среде разработчиков.

pic

Источник: CNews Analytics, Форт-Росс, 2004

SQL

На первом месте SQL (Structured Query Language - язык структурированных запросов): уровень «проникновения» — 95%. За последние десять лет рынок СУБД выбился в лидеры среди других отраслей софтверного бизнеса. Такой взлет обусловлен огромной потребностью в данной технологии коммерческих и правительственных структур. Лидированием рынка СУБД объясняется первое место SQL среди прочих языков в данном рейтинге.

Более 80% рынка СУБД в течение долгих лет контролируется тремя гигантами – IBM, Oracle и Microsoft. Если говорить о лидере рынка СУБД в России, то им безусловно является Oracle, доля которой составляет примерно 51% всего рынка и около 70% всех крупных компаний страны.

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

Java, Javascript

Второе место в списке занимает Java/JavaScript (88%). Java - объектно-ориентированный язык высокого уровня, потомок Си++, но с более легким синтаксисом, удобен для интернет-программирования. Три фактора: простота освоения, удобство работы, лучшая (чем у C++) приспособленность к задачам проектирования - способствуют тому, что число программирующих на Java разработчиков огромно, оно исчисляется миллионами.

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

Технология Java - это основа для «умных» веб- и сетевых сервисов, она позволяет надежно и безопасно наращивать информационную структуру предприятия. Все виды систем могут взаимодействовать друг с другом - начиная со смарт-карт и заканчивая суперкомпьютерами - независимо от аппаратной платформы и системного программного обеспечения. Главным конкурентом Java является технология Microsoft .NET. Предполагается, что полной интеграции с .NET не будет, обе платформы в ближайшие 10 лет будут существовать параллельно.

XML

На третьем месте списка с (88%) находится метаязык XML (eXtensible Markup Language - расширяемый язык разметки), потомок языка HTML, тегированный язык. Языки SGML, HTML и XML позволяют компьютерам делать то, что раньше мог только человек, — интерпретировать документы. XML - это своего рода средство транспортирования и промежуточного хранения данных при обмене ими между разнородными и распределенными системами, приложениями через интернет. На его основе проводятся сложные преобразования документов и текстовой информации, а главное, в унифицированном виде хранятся данные реляционно-иерархической структуры, в том числе по настройкам и программированию компонентов. Это, правда, не мешает использовать его и не совсем по назначению — для задания динамики поведения всевозможных объектов.

Как и Java, XML также скорее технология, нежели просто язык. Неважно, какую платформу для своих веб-приложений выбрать - Sun, Linux или Microsoft, в любом случае веб-сервисы будут общаться на XML. Технология XML продолжает свое наступление на системы хранения, выборки и передачи данных. Расширяемый язык разметки XML достиг того уровня развития, при котором он вполне может претендовать на роль базовой технологии при построении корпоративных систем электронной коммерции для поддержки транзакций между деловыми партнерами.

C/C+

Язык структурного программирования «Си» за три десятилетия своей жизни покорил сердца не одного миллиона программистов всего мира. «Си» — это инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и «кровавое месиво» - слова создателя языка Брайана Кернигана. На языке «Си» было создано такое количество программного обеспечения, с которым сравниться не может, пожалуй, ни один другой язык. Ахиллесовой пятой языка «Си» является отсутствие поддержки модулей и, следовательно, полноценной раздельной компиляции.

C++, потомок «Си», объектно-ориентированный язык высокого уровня. Одно из главных преимуществ ООП (объектно-ориентированное программирование) — не только адекватное отображение объектов реального мира, а способность поддерживать эволюционное развитие программ за счет сочетания виртуализации и наследования. ООП практически вытеснило все прочие при создании больших программных систем. Новые версий этих языков программирования работают с графическим пользовательским интерфейсом в среде Windows, в них встроен механизм «управления от событий» (Microsoft Visual C++). Это существенно снижает трудоемкость разработки прикладных программ, что особенно важно для таких, например, задач, как создание систем искусственного интеллекта. К сожалению, у сообщества С++ никогда не было координирующего центра, финансовые возможности которого позволяли бы ему заниматься популяризацией языка, вследствие чего C++ потихоньку сдает позиции другим языкам ООП.

HTML, DHTML, CFML

Языки разметки, или тегированные языки, стоят несколько поодаль от магистральной линии развития сценарных языков. Их главная отличительная черта — встраивание специального кода (в виде обособленных «команд» — тегов) непосредственно в обычные тексты. Язык HTML (Hypertext Markup Language), с появлением которого понятие «гипертекст» стало простым и обыденным - это основной язык представления информации в веб-среде, включая интернет.

CFML (Cold Fusion) и DHTML — языки разметки, напрямую предназначенные для динамического создания веб-страниц и доступа к БД. Оба они являются расширениями HTML, но CFML — чисто коммерческий язык компании Allaire, не имеющий других реализаций, а DHTML, возникший из Dynamic HTML — результат многочисленных компромиссов и конкуренции Netscape и Microsoft, которые были подытожены консорциумом W3C. Близкие им ASP (Active Server Pages, Microsoft) и JSP (Java Server Pages, Sun) — уже не языки, а, скорее, технологические «плавильные печи». Тот же ASP по сути не что иное, как сценарий на VBScript, который исполняется на сервере.

Visual Basic, VBscript, Map Basic

Легкость освоения приемов программирования всегда являлась отличительной чертой семейства BASIC. Для Visual Basic предусмотрена возможность работы с графическим пользовательским интерфейсом в среде Windows и встроен механизм «управления от событий». Visual Basic — это «пограничный» язык, который скорее относится к прикладным сценарным, чем к традиционным. Особенно такая его разновидность для офисного программирования, как VBA (Visual Basic for Applications). Под его влиянием был создан язык VBScript (особый диалект языка Visual Basic, ориентированный на создание OLE-компонентов и на работу в рамках браузеров). Это семейство занимает почетное шестое место в опросе с 65%.

XSL

XSL – это всего лишь подъязык семейства XML. XSL позволяет определить формат групп похожих страниц. Часто в рейтингах XLS идет «в связке» с XML.

Delphi

Delphi – это скорее среда программирования, чем язык. Delphi принадлежит к классу нестандартных языков, представляющих собой традиционные (процедурные или функциональные) языки, дополненные средствами ООП. В основе Delphi лежит язык Pascal. Примерно 17% российских программистов считают Delphi самым перспективным языком программирования. 55% компаний, участвующих в опросе, используют этот язык, а среди языков ООП Delphi - на третьем месте по популярности.

Сценарные языки Perl , Tcl/Tk , Zsh scripts

Язык Perl (Practical Extraction and Report Language) выполняет функции управления данными и генерирования отчетов. Принадлежит к сценарным языкам, причем применительно к веб-среде. Создавались самые популярные из сценарных языков совсем не для веб-программирования: языки Perl, Tcl и Python появились еще тогда, когда не было даже первой версии HTML. Все они вышли из операционной системы UNIX. Perl - главный поставщик серверных скриптов для формирования веб-страниц по запросу. В нем прямо под рукой такие удобные средства, как ассоциативные массивы (хеш-структуры) и регулярные выражения, выполняемые для традиционных языков в виде вспомогательных библиотек. Это очень сложный и мощный «сиподобный» язык.

Цель создания сценарного языка Tcl (Tool Command Language) была совсем иной — интенсивная обработка строк и тесная интеграция с пакетом Tk, обеспечивающим удобное построение пользовательского интерфейса для любых интерактивных приложений. Он позиционируется как язык расширения приложений. В отличие от Perl и Python язык Tcl в значительной мере опирается на подключение расширений, написанных на языках Си и Си++. Язык Tcl за счет подключаемого модуля SafeTcl нашел свое применение и в веб-программировании для поддержки в рамках браузера специальных апплетов, названных тиклетами (Tclets). Инструментарий Tcl/Tk примерно в три раза менее популярен, чем язык Perl, согласно нашему опросу. Zsh scripts – скрипт платформы UNIX.

Альтернативный взгляд на вещи

Совсем не вошли в данный рейтинг новые языки .NET и С#. Тем, кто только хочет освоить технологию .NET, специалисты советуют: не бояться работать по-другому. Ведь технология .NET радикально меняет всю парадигму Windows-программирования и программирования для интернета (а с выходом Mono 1.0 - и программирования для Linux). Одним из самых коренных изменений в .NET является то, что компиляция (в привычном смысле этого слова) откладывается до времени установки или первого выполнения приложения. .NET компиляторы на самом деле компилируют в некий общий для всех промежуточный язык, который при запуске преобразуется в машинный код. Именно поэтому не существует принципиальных отличий между .NET-языками, а проблема выбора между ними не стоит так остро.

Интересно сравнить полученную диаграмму популярности языков программирования с диаграммой Дэвида Велтона, полученной на основании анализа запросов поисковой машины Google в октябре 2005 года. Диаграмма Велтона отражает знание языков программирования разработчиками ПО. По оси абсцисс отложена величина популярности языка (указано в количестве вакансий по каждому из языков с пециализированном поисковом движке Craigs List Jobs). Автор диаграммы отмечает, что в аналогичной диаграмме от 2004 года Java находилась на втором месте по популярности после SQL, а в этот раз уступила второе место языку C.

Диаграмма Велтона популярности языков программирования *:

pic

* Популярность определялась по количеству вакансий, выдаваемых поисковым движком Craigs List Jobs по заданным ключевым словам

Источник: Дэвид Велтон, 2005

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

10 языков программирование, которые стоит изучать

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

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

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

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

1. PHP

Что это: язык программирования с открытым кодом, использующий интерпретатор на стороне сервера, кросс-платформенный язык HTML скриптов, особенно подходящий для веб-разработок, так как легко может встраиваться в HTML страницы.

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

2. С#

Что это: объектно-ориентированный язык общей направленности, код в котором компилируется. Это язык разработанный, Майкрософт как часть платформы .Net на основе языков C и С++.

Почему его стоит учить: это важная часть среды разработки .Net. Изучение C#, который можно было бы сравнить с Java, получившим другое имя, очень важно, если вы ориентируетесь на использование технологий Майкрософт.

3. AJAX (асинхронный JavaScript и XML)

Что это: не смотря на то, что технически это не язык программирования, AJAX использует XHTML или HTML, JavaScript и XML для создания интерактивных веб-приложений.

Почему его стоит учить: о AJAX заговорили после того, как Google применила его в Google Maps. Можно сказать, что именно тогда он появился на карте и количество предложений для знатоков AJAX начало стремительно увеличиваться. Многие профессионалы считают, что спрос в этой области очень большой, потому что AJAX значительно сложнее изучить, чем любой другой язык программирования.

4. JavaScript

Что это: не стоит путать с Java. JavaScript - это объектно-ориентированный язык скриптов, который выполняется на стороне клиента веб-браузером. Он меньше, чем Java, имеет упрощенный набор команд, легче кодируется и более прост в изучении

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

5. Perl

Что это: язык программирования с открытым кодом, кросс-платформенный, выполняется на стороне сервера. Код интерпретируется. Получил широкое распространение, как удобное средство для обработки текста в CGI программах.

Почему его стоит учить: возможности по обработке текстов сделали его очень популярным при написании программ для веб-серверов и самых разнообразных задач. Если вы планируете заниматься веб-программированием, изучение Perl или PHP можно считать просто обязательным.

6. С

Что это: стандартный язык программирования, предназначенный для самых разнообразных задач. Это один из самых распространенных языков, ставший основой для нескольких других, например, C++.

Почему его стоит учить: изучение C - это основа, которая позволит легко перейти на Java или C#, так как большая часть синтаксиса очень похожа. Кроме того, синтаксис, подобный C применяется в основных языках web-программирования.

7. Ruby и Ruby on Rails

Что это: Ruby - это динамичный, объектно-ориентированный язык с открытым кодом. Ruby on Rails - инструментарий разработчика с открытым кодом для веб-программирования, написанный на Ruby.

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

8. Java

Что это: объектно-ориентированный язык программирования, разработанный Джеймсом Гослингом и группой разработчиков из Sun Microsystems в начале 1990-х.

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

9. Python

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

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

10. VB.Net (Visual Basic .Net)

Что это: объектно-ориентированный язык программирования, который входит в комплект средств разработки от Майкрософт.

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

Материалы по теме

Турдакина Е., Рейтинг языков программирования: SQL впереди / Издание о высоких технологиях CNews - http://www.cnews.ru/reviews/free/offshore/soft/index3.shtml

Прохоров А., Перспективы ИТ-бизнеса в России /"КомпьютерПресс",2010 №5 - http://www.compress.ru/article.aspx?id=10240

Tiobe Software: The Coding Standarts Company - http://www.tiobe.com/

Грэм П., Языки программирования через сто лет / КомпьютерраOnline - http://www.computerra.ru/hitech/35042/

Блог Хабрахабр, TIOBE — рейтинг языков программирования - http://habrahabr.ru/blogs/nulla_dies_sine_linea/7141/

Биография | Реферат | Библиотека | Ссылки | Отчет о поиске | Индивидуальное задание | Портал магистров | ДонНТУ
RUS | ENG | UKR