LINUX.ORG.RU

Рейтинг популярности языков программирования TIOBE-2010

 ,


0

2

Аналитическая компания TIOBE Software опубликовала итоги своего исследования популярности языков программирования за 2010 год.

Наибольшую динамику продемонстрировали Python, Objective-C и PHP. Первый увеличил свою долю на 1.81%, перепрыгнув с 7-го места в 2009 году на 5-е. Предположительно, объясняется это тем, что Python продолжает завоевывать прочные позиции как язык для написания системных скриптов и настольного ПО. Objective-C продемонстрировал прирост на 1.63%, поднявшись с 12-го места на 8-е; это связывают с растущей популярностью устройств, работающих под управлением Apple iOS. Наконец, PHP потерял 2.24%, опустившись на 4-е место с 3-го. Это, возможно, обусловлено с вытеснением PHP из ниши веб-программирования более современными языками и платформами. Теряют свои позиции VisualBasic, JavaScript, Perl и Delphi.

Сотрудники TIOBE подчеркивают, что составляемый ими рейтинг не основывается на количестве строк кода, написанных на каком-либо языке в 2010 году, и не претендует на то, чтобы служить показателем качества, мощи или распространенности языка программирования. Рейтинг TIOBE основывается на статистике поисковых запросов, предоставляемых Google, Wikipedia, Yahoo и подобными службами. Вследствие этого, правильнее рассматривать рейтинг TIOBE как некую характеристику трендов и моды в выборе языков программирования. Так, например, завидную статистику продемонстрировал Lisp, прибавив 0.53% и совершив скачок с 18-го места на 13-е.

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

>>> Подробности

★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Ответ на: комментарий от ugoday

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

Согласен. Это отчасти объясняет взлет питона, хотя справедливости ради надо отметить, что стандартная документация у него неплоха, но по-моему в ней упущен ГУЙ, да и туториал слабоват.

dave ★★★★★
()

мдааа, пистон это фейл :/

anonymous
()

охщи, все, что я знаю уже не ъ, похоже пора что-то новое освоить

isako ★★★
()
Ответ на: комментарий от dave

стандартная документация у него неплоха, но по-моему в ней упущен ГУЙ, да и туториал слабоват.

И правильно сделано, нечего ядро языка засорять ерундой. Для этого есть отдельные пакеты различных тулкитов,

mashina ★★★★★
()
Ответ на: комментарий от anonymous

И так всё очевидно. Питон с llvm (речь идёт о jit?) будет сливать давно отработанным специализированным решениям в этой нише.

mashina ★★★★★
()

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

За счёт запросов «почему моя программа не работает на python 3»

thesame ★★★★
()

Ребята что-то там собрали и сделали вброс. Через раз реклама прокатывает =)

P.S. И да, статистика показывает что 100% пользователей яндекса пользуются интернетом.

anonymous
()

выучить пистон чтоли, на всякий случай.

RedPossum ★★★★★
()
Ответ на: комментарий от anonymous

> а можно и просто (не программер)

Нет я не про это. Я про «ленивый» eval.

alx_me ★★☆
()

Я не пойму, к чему тут разводить холивары на тему того, какой язык лучше?! Речь идет о популярности. А популярность != качество. Неужели это нужно объяснять линуксятникам?

anonymous
()
Ответ на: комментарий от mashina

Вопрос не в том, что правильно это или нет. Вопрос в том, что это увеличивает рейтинг питона. Ну, да бог с этим рейтингом.

dave ★★★★★
()

Transact-SQL в списке есть, а ораклового PL/SQL нет. Странно.

anonymous
()
Ответ на: комментарий от reader

Ну http://www.langpop.com/ тоже повеселил. Сравнивал ЯП и SQL. К тому же, рейтинг Ассемблера в подобных статистиках сильно занижен за счет того, что в запросах про ассемблер редко присутствует слово «Ассемблер» =)

anonymous
()

Задумался вот

А что, если переписать loic на предмет генерации поисковых запросов вида «brainfuck something»? Побомбить дружно yahooo/google/msn - в очередной новости на ЛОР про Tiobe тоже будет написано, что, мол
«Языком года был признан Brainfuck, благодаря исключительной динамике и успешному завоеванию новых ниш.» ?

yaws
()
Ответ на: комментарий от alx_me

Это же логично.

не --- функция, которая принимает список профессий.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

> Потому что есть GIL и нету JIT же.

GIL не оказывает угнетение производительности на раз`fork()`нутые процессы...

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

ну а что же касается строго-одного взятого процесса — то разработчик должен понимать что граматная архитектура программы должна полностью ИСКЛЮЧИТЬ СИНХРОННЫЕ (блокирующих) функции

(ну кроме конешно единственной функции которая обрабатывает главный цыкл (Mainloop))

вместе с исчезнованием блокирующих функций — ВОЛШЫБНЫМ_ОБРАЗОМ исчезает потребность и в нескольких Thread() ... и появляется бОльший контроль над производящимися операциями (теперь появляется возможность отменять операции, в случае необходимости... в отличии от запущенных Thread() которые запрещщено убивать)

ну а GIL также и не оказывает угнетающщего эффекта в случае когда процесс программы использует только один главный Thread()

следовательно делаем вывод о том что — про якобы-тормазнутьсть GIL ноют те кто неспособен понять прелесть работы с glib.Mainloop(), замыканиями и многопроцессностью...

...забывая о том что GIL как раз сделан для УСПОРЕНИЯ запущенного python-программы (заботясь о том чтобы программа не блокировала себя через каждый чих)

user_id_68054 ★★★★★
()

Опять отвертки против кусачек мерят? как можно вообще в один ряд ставить Javascript и Assembler?

splinter ★★★★★
()
Ответ на: комментарий от splinter

> как можно вообще в один ряд ставить Javascript и Assembler?

А Assembler и C/С++ можно? а С/С++ и Java? А Java и Groovy? А Groovy и JavaScript?

Ну и вот, по транзитивности.

anonymous
()
Ответ на: комментарий от ugoday

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

То-то лисп так подрос мощно.

anonymous
()
Ответ на: комментарий от anonymous

>А Assembler и C/С++ можно? а С/С++ и Java? А Java и Groovy? А Groovy и JavaScript?

в JS нельзя вставить ассемблерный код, поэтому фэйл

annulen ★★★★★
()
Ответ на: комментарий от user_id_68054

Разработчик должен понимать, что создание архитектуры без блокирующих IO является очень трудной задачей (для среднего питонокодера). Констраст между простотой самого ЯП с его окружением и такими задачами до хорошего не доводит.

mashina ★★★★★
()
Ответ на: комментарий от anonymous

> «a raw string cannot end in a single backslash». Пистон такой пистон.

какая печаль!: Python помешал запутать код программы! :-D :-D :-D

а кто вынуждает программиста ИМЕННО «raw string» (в тех случаях когда «raw string» не подходит :-D)

...никто же не запрещает сделать просто
s = 'text\\'
или
s = '%s\\' % r'test'
:-) :-)

user_id_68054 ★★★★★
()
Ответ на: комментарий от ppy

> Ага, попробуйте программистов для питона за разумные деньги найти..

тут пхпшников нормальных днём с огнём не сыскать свободных.

программистов

для питона

пхпшников

нормальных

LOL

Led ★★★☆☆
()
Ответ на: комментарий от user_id_68054

> должен понимать что грамАтная архитектура

(ну кроме конеШно единственной функции которая обрабатывает главный цЫкл (Mainloop))

НЕНОВИЗДЬ!!! Даль крутится в могиле как юла.

rtvd ★★★★★
()
Ответ на: комментарий от user_id_68054

ну а что же касается строго-одного взятого процесса — то разработчик должен понимать что граматная архитектура программы должна полностью ИСКЛЮЧИТЬ СИНХРОННЫЕ (блокирующих) функции

Ню-ню. Я посмотрю как вы без блокирующих функций напишете систему, у которой в логике зашита некоторая shared data. Какой-нибудь игровой сервер например с его внутримировой моделью. Под каждого клиента отдельную копию создавать будете?

Nagwal ★★★★
()
Ответ на: комментарий от anonymous

> Напейсал с три короба про GIL, с целью отвлечь внимание

вобще помоему сработаол! граматические нацисты теперь ищут ошибки :-)

user_id_68054 ★★★★★
()
Ответ на: комментарий от ttnl

>Но его популярность скорее всего обеспечивается за счет большого числа студентов, начинающих с Си изучать ЯП.

4.2

Deleted
()

>Сотрудники TIOBE подчеркивают, что составляемый ими рейтинг не основывается на количестве строк кода, написанных на каком-либо языке

Фтопку такие рейтинги. Одна и таже программа может занимать 10 строк на Перле, 20 на Питоне, 40 на Жабе и 70 на С++

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Nagwal

ну может со словом «полностью» я немного переборщил

но сёравно ненадо ставить в один ряд «программа с нбплокирующими функциями на C/C++» и «программа с неблокирующими функциями на Python»

так как на C/C++ всё будет в десятку раз сложнее (и больше кода), чем на Python... на котором можно просто сделать чтото вроде:

def long_operation_code(arg, res_succ, res_error):
    a = blah
    b = blahblah
    c = blahblahblah
    
    # ... some code ...
    
    def succ(result):
        # ...
        d = operat_xxx(a, b, result, arg)
        
        # ... some code ...
        # ... some code ...
        # ... some code ...
        
        idle_add(res_succ, d)
    def error(e):
        
        # ... some code ...
        
        idle_add(res_error, e)
    some_async(blabla, succ, error)

тоесть Python при помощи замыканий может позволить программисту определённые операции ЛОГИЧЕСКИ оставить внутри одной функции.. не заботясь каждый раз об сохранении/восстановлении состояния рабочих переменных...

..а вот на C/C++ придётся каждый раз на каждый чих запоминать и восстанавливать «а чтобы было при прошлой итерации??»

user_id_68054 ★★★★★
()
Ответ на: комментарий от Nagwal

> без блокирующих функций напишете систему, у которой в логике зашита некоторая shared data. Какой-нибудь игровой сервер например с его внутримировой моделью. Под каждого клиента отдельную копию создавать будете?

Кстати, здесь на серверной стороне можно эффективно обойтись без блокировок на верхнем уровне. Message Passing. Таки асинхронный Message Passing. На тех же акторах. Но я нисколько не защищаю горе-мыслителя.

dave ★★★★★
()
Ответ на: комментарий от user_id_68054

..а вот на C/C++ придётся каждый раз на каждый чих запоминать и восстанавливать «а чтобы было при прошлой итерации??»

Хватит уже так юморить. На c/++ это делается при желании точно через такие же callback'и. Только такой подход никаких проблем с aIO не снимает ни там, ни здесь.

mashina ★★★★★
()

C исследованием в целом согласен. Тренд прошедшего года уловили в целом верно ...

sS ★★★★★
()
Ответ на: комментарий от DNA_Seq

> Фтопку такие рейтинги. Одна и таже программа может занимать 10 строк на Перле, 20 на Питоне, 40 на Жабе и 70 на С++

Фтопку эти ваши язычки. Я эту программу в четыре строчки написал, на Пыхе :)

valich ★★★
()
Ответ на: комментарий от Ok

> Лучше бы эта статистика строилась на job offers, а не на том, что школота набирает в гугле.

Я тебе без всякой статистики скажу: учи 1С, PHP и C#. Выбор профессионалов.

anonymous
()
Ответ на: комментарий от kto_tama

Ну так эксперты же. Чета таким монстрам индустрии, как IDC и Phoronix ;)

yaws
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.