Pull to refresh

Comments 128

Не думаю, что сильно ошибусь: это самые популярные опросы на Хабре.
А не видите их потому, что обязательно кто-то скажет, что см. мое первое предложение, топик заминусовывают и он уходит в глубины Хабра.
Интересно почему :) Ведь найти более менее адекватную статистику не удалось, можете ткнуть ссылкой если есть такая где-то, буду благодарен
вы еще и не указали некоторые языки, например под iOS не только на Obj C писать можно…
Ну как-же, Objective C изначально был в опросе, и он есть популярным, я многие не указал, список может быть очень длинным
В комментарии вам сказали "не только на Obj C"
Может это связано с тем, что подобные опросы перенесли на GT? Вот первое, что попалось.
Вот этот действительно похож, но также не имеет уклона именно на программирование
Не очень хорошо ищете.

По языкам программирования в Гугле по запросу «programming languages share»
www.tiobe.com/index.php/content/paperinfo/tpci/index.html
programmers.stackexchange.com/questions/160461/programming-language-trends

По операционным системам в том же Гугле:
www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0
www.statista.com/statistics/268237/global-market-share-held-by-operating-systems-since-2009/
Я извиняюсь, Вы скорее всего не поняли опроса. Интересует использование ОС именно для программирования, а не в целом.
Числа различаются настолько, что невольно задаешься вопросом — кто прав.
Скорее, это вы не очень хорошо ищете, если предлагаете статистику, в которой у C 17%, PHP — 3%, а JS — 2% XD
Если кратко, то на C пишется почти весь embeded код, видеоигры, операционные системы и очень много серверного кода. Если интересно более побробно, то на SW есть вопрос об этом What makes C so popular in the age of OOP?.
А на JS пишется большая часть web — (почти) весь фронтэнд и часть бэкэнда — вы серьёзно верите, что у него 2%? :) Сочувствую.
Оу, товарищ, насравший в карму, объясните мне, пожалуйста, почему вы не верите в то, что доля JS больше 2%? :)
Честно, затрудняюсь сказать, верю или нет, потому что сам очень далёк от веб разработки.

Но по поверхностным впечатлениям, JS кода не так много. Да, он есть почти во всём веб фронтэнде последних лет, но, обычно, если нажать F12, то видим всего пару небольших файлов. Вот прямо на этой странице Хабра загружаются 5 JS файлов, в которых совсем мало кода.
В корпоративном ПО его ещё меньше. Бывает, что JS нет вообще.
Ситуация давно изменилась. Web сейчас одна из самых крупных областей программирования, если не самая. Клиенты с каждым днём всё толще и толще — счет пошел на мегабайты. На клиенте у JS альтернатив нет. Топка GitHub.
GitHub — не показатель.
Зато показатель — опрос в данной теме и показатель — рейтинг соответствующего хаба на хабре %) Точно 2% :)
Что показывает рейтинг github'а? На каком языке делается большинство современных opensource проектов?
То, что средний хабровчанин — вебдев под Win удивило, конечно. Видимо, есть некоторая корреляция по используемым инструментам. Надо бы посмотреть опрос «пользуетесь ли вы гитхабом». Думаю, многое прояснило бы.
UFO just landed and posted this here
каюсь, чистое любопытство движет мною :) ну и потом, мне зачастую говорят, «да никто на твоем линуксе не программирует, сказки это все, винда рулит», и мне как бы и хочется возразить но фактов-то нету (неважно что у них тоже нету как-бы), вот. А это — тот самый факт. Выборка конечно не идеальная, но сгодится и такое
UFO just landed and posted this here
То о чем вы говорите — применимо, только не всегда верно. Java — вообще не важно под чем писать и под чем будет запускаться. Мы сейчас пишем код в Windows, который будет выполняться в Linux. Второй момент, если мы берем какие-то специфические ОС, то не всегда на этой ОС есть средства для разработки. Проще написать код в Windows Linux, а уже тестировать его на соответствующей ОС.
UFO just landed and posted this here
«Java — вообще не важно под чем писать и под чем будет запускаться.»
Как говорила моя бабушка — три раза «ха».
Вы таки реально думаете, что любой код написанный на Java будет соответствовать вашим словам?
Я не рассматриваю крайние случаи. Всегда можно написать код как на паскале :-)
Можете привести пример?
Без платформозависимого кода.
Все реальные проблемы с кроссплатформеностью в Java связаны с вызовами древних java.awt.*, которые никто не правит (как пример, TrayIcon под Linux не умеет в прозрачность) либо с тем, что программисты забывают учесть кроссплатформенность.
У вас были другие случаи?
да, например когда не озаботились о нюансах работы с разными кодировками в разных ОС.
Или при разработке под виндой, хардкодно разделители пути к файлам указали чисто виндовые
А ещё есть нюансы использования разных JRE — например IBM JRE не совсем заменяет Oracle JRE и можно словить артефакты при запуске под IBM JRE, а то и вовсе нерабочее приложение.
Это все можно уместить в
забывают учесть кроссплатформенность.


Или при разработке под виндой, хардкодно разделители пути к файлам указали чисто виндовые

Юзайте Path, он избавлен от этих проблем и легко конвертируется в File и обратно.

когда не озаботились о нюансах работы с разными кодировками в разных ОС

Указывайте кодировку, когда читаете и записываете файлы.

А ещё есть нюансы использования разных JRE

А еще python 2.7 совсем не похож на python 3 и не запустится. А программа на .Net 4.5 не запустится под XP.

При любой кроссплатформенной разработке есть нюансы. Если правильно писать на Java, сразу учитывая кроссплатформенность или >6 API, то тонкости будут сведены к минимуму.
давайте обратимся к моему первоначальному комменту и закроем ветку ;)
не думаю что ошибусь: наверное вы ошиблись на счет «уходит в глубины Хабра»
Тут скорее все зависит от того, на каком языке)
О, спасибо, хоть и не совсем то, но похоже. В приведенном Вами опросе уклон все-таки более на Linux-пользователей (программистов в том числе).
Я же хочу узнать мнения программистов вне зависимости от того где и под чем они пишут код в целом, дома либо на работе — не важно.
Мне понравилось, как для большей репрезентативности выборки по первому пукту, этот пост находится только в хабе «Настройка Linux»)
Всё правильно. Смысл был померять использование винды линуксоидами.
Там даже ассемблера нет.
Пожалуйста. Там же есть опрос «Какими операционными системами вы пользуетесь на домашних компьютерах и ноутбуках?» в списке присутствует Windows, MacOS и пр. А уклон в сторону Линукса понятен — дистрибутивов и оконных менеджеров много.

Упс, это ответ пользователю vhytyk
Мне кажется удачнее было бы один опрос завести и все в один список свести. Чтобы было понятно на какой оси больше концентрация приверженцев определённых ЯП
Идея неплохая, но в её реализации, как говорится, проблем не оберёшься. Сейчас в опросе четыре варианта ответа на вопрос об операционной системе и одиннадцать вариантов ответа на вопрос о языке программирования. В сводном опросе поэтому было бы 4×11=44 варианта ответа, так что опрашиваемые затруднились бы прочитать их и выбрать из них даже в том случае, если на Хабрахабре поддерживалось бы создание опросов с таким колоссальным числом возможных ответов.
Интересно, кто ответил «другая» на первый вопрос. AIDE как-то совсем неудобная вещь, по-моему.
А как же покодить на каком-то Andoird?
Андроид, вообще говоря, попадает под второй пункт. А в качестве «другой» подходят, например, Kolibri, Haiku и ReactOS.
Программирование под ReactOS — программирование под Windows, поэтому нет, это не «другая».
Объясните, за что минус? ReactOS — совместимая с Windows на уровне ABI, и не имеет каких-то ReactOS-специфичных функций (т.к. это сломало бы обратную совместимость с Windows). Программирование под ReactOS идет при помощи тех же инструментов, на тех же языках, с использованием точно тех же методологий, что и под Windows, и результаты разработки для этих двух систем взаимозаменяемы и запускаются и там, и там. Разницы между программированием под ReactOS и под Windows нет.

В чем тогда «другаявость», кроме идеологической?
Тогда стоит называть графы «nix-системы, win-системы». GNU is not Unix же.
В том-то и дело, что UNIX-овость ни о чем не говорит в плане процесса разработки, используемых сред, языков и т.д. К примеру, и HP-UX, и OS X — оба сертифицированные юниксы, но при этом они кардинально отличаются друг от друга во всем, кроме соответствия спецификации UNIX. Нельзя сказать, что программист под OS X сразу нащупает нужные крутилки в HP-UX, что справедливо и в обратную сторону.

С ReactOS и Windows всё обстоит иначе. ReactOS — полный клон (надеется таковым быть), полностью бинарно совместимый. В далеком-далеком будущем, когда ReactOS выпустит свою первую альфу бету, между ReactOS и Windows можно будет поставить знак равенства во всех отношениях, кроме лицензии и тонкостей реализации, функционально неразличимых с точки зрения программиста ни юзерспейса, ни ядра.

В общем, tl;dr — «nix-системы» слишком абстрактная категория, включащая в себя кучу разношерстного софта, «win-системы» полностью консолидирована и представлена только двумя живыми тождественными продуктами — windows и reactos, поэтому такое деление не ок.
между ReactOS и Windows можно будет поставить знак равенства во всех отношениях, кроме лицензии и тонкостей реализации, функционально неразличимых с точки зрения программиста ни юзерспейса, ни ядра.
Это не совсем так. Например NTVDM сделан там иначе, он будет работать на x64 и ARM, когда как на винде он только под x86, потому что в винде завязано на режиме 8086. Кроме этого, в ROS давно есть менеджер приложений (Package Manager), хотя в 10 винде будет уже Chocolate из коробки. ReactOS со временем может обрасти вещами которые по ABI совместимы, а по концепции нет. Это сложная тема.

Тоже подумал про пакет менеджер.
Так-то — POSIX есть в никсах везде, как аналог API Win.
В ReactOS уже давно есть рабочие столы, и интерфейс там немного другой.
Тогда нужно говорить об окружение: если KDE + Konsole можно запустить на Windows то собственно мало отличий от Linux тогда будет (mingw и т.д. ).
А я программю под любой ОС на VHDL. Мне куда галочку ставить? =)
Напомнило старую шутку: «программисты на FORTRAN могут писать на любом языке программирования на FORTRAN».
Ну я не знаю. На VHDL это не очень «чистое» программирование, это инженерия больше. Особенно если переносы сигналов с одних частот на другие и прочие трюки. Но если чатоты низкие, работаешь в одном клоковом домене и делаешь простой автомат по case, например, то вроде как и программирование чистое получается.
Правильней бы ее перевести так:
Программисты FORTRAN могут писать FORTRAN программы на любом языке программирования.
Есть ли люди, которые программируют в основном только на SQL, а на других языках очень редко? Просто интересно.
Называются «архитекторы баз данных».
Не только. У меня вот был опыт работы, где реализация всей бизнес-логики писалась на SQL в виде хранимых процедур в базе.
В любом случае вы выполняли работу «архитектора баз данных». Если мне приходится кропать\ресайзить картинки после художников, то я выполняю работу художников, хотя по должности — программист.
Нет, это «разработчики баз данных» — отдельная профессия. Архитекторы БД занимаются архитектурой, администраторы БД — администрированием, а разработкой занимаются разработчики.
Особенно популярна разработка на SQL в Oracle — Oracle Forms различных версий, и PL/SQL как язык разработки.
А языки хранимых процедур разве формально не считаются подмножеством семейства языков SQL? Или все-таки нет?
Считаются. Думаю, bazzilic имеет в виду, что люди, пишущие бизнес-логику — это не архитекторы, а, собственно, разработчики.
Именно так. Я не разрабатывал схему данных (работа архитекторов БД), я писал процедуры и функции для обработки данных. В основном, писали на T-SQL, хотя особо жесткую математику мы писали на Matlab, компилировали в DLL и подгружали в базу в виде UDF.
Запрос для отчета это только данные. Представление все равно как-то нужно делать.
Обычно это не совсем программирование. Получением данных занимается движок (Microsoft Reporting Services, Crystal reports и т.д.), и методами, предусмотренными данным движком, формируется представление данных.
У нас, например, движок формирует из результатов хранимой процедуры файл XML, и мы этот файл преобразуем с помощью XSLT
Накидать textbox и label в отчёт дело двадцати минут, редко когда требуются хитровымученные отчёты с кучей об'единённых ячеек и разбивкой на группы. А запрос можно и пару дней писать, чтоб в такую форму подошёл. И уж тем более можно ни строчки кода не написать внутри самого отчёта, хотя и все известные мне движки это позволяют, некоторые могут даже не догадываться об этом.
У меня противоположный опыт :) Почти любой SQL-запрос пишется максимум за день, чаще за час. Правда потом его можно оптимизировать бесконечно — но это другая история. А вот к отчету начинаются бесконечные итеративные требования — а тут так, а тут эдак, а еще форму вначале сделайте, да не такую а сякую, а тут диаграммы впихните. А здесь промежуточные итоги по группам. И пошло-поехало.
Опыт из автоматизации торговли, если что.

Кстати не видел еще ни одного движка отчетов, где можно было бы без программирования сделать что-то чуть сложнее обычного. Но и пробовал не так уж много — FastReport, Rave. Что еще посоветуете?
Если что-то выходит за рамки разбить на группы и подвести итог по ним, то, наверно, нет такой системы, где это можно было б провернуть только мышкой. Мне чаще всего требовались именно такие отчёты, чтоб удобно было экспортировать в Excel и дальнейший анализ проводить там. Когда-то (лет шесть-восемь назад) мне нравилась Stimulsoft reports, она была много удобнее FastReport. После неё к FastReport так и не привык, правда она была какой-то старой версии. Больше уже не подскажу, переехали на MS и скучаю по старым отчётам.
«Что-то чуть сложнее обычного» — слишком неопределенные требования :)

Мне вот нравится MS Reporting Services, много интересного функционала, хотя есть и узкие места — тяжело реализуемый или нереализуемый функционал.

Еще некоторое время назад знакомился с такой штукой, как QlikView — посмотрел, пооблизывался — судя по описанию, штука весьма вкусная и интересная, с возможностями, бОльшими, чем у большинства подобных систем. Но руки так и не дошли даже потестить — попробовать реализовать что-то свое на этом движке, поэтому опыта реального использования нет.
Я, например. Как выше указали, в основном это отчеты, но на предыдущем месте работы у нас было больше десятка разработчиков, которые разрабатывали корпоративную информационную систему на Oracle Forms — и там единственным языком программирования был PL/SQL.
А ничего, что .Net это технология, а НЕ язык программирования?
Не поверите, но есть люди, у которых самый часто используемый язык — bash :)
Не поверите, но есть люди, у которых самый часто используемый язык — batch :)
Хм, а если я _программирую_ на Go под Win, но потом компилирую в бинарник для FreeBSD, где оно и работает — то что мне выбрать?:)
Добавьте пункт «Я — погрешность» для этого господина!
;-)
OS X третья по популярности — я удивлен, хотя это логично по ряду факторов. А вот то что линукс на втором месте — это более странно.
Таки первый опрос не очень объективен — по факту вы сравнили количество программистов под различные платформы, а не популярность использования ОС для программирования вообще.
Под Windows так или иначе ответят все .Net-программисты, iOS разработчики тыкнут в OS X, веб-программисты тыкнут в линукс или/и OS X (тут концентрация веб-девов велика) и так далее.
Конечно нельзя забывать про универсальность, но все же есть предпочтения под задачи (ОС — тоже инструмент).
Так что да, согласен с Gorthauer87'ом, так было бы правильней.
Мне кажется, что популярность Окон среди программистов падает, вот потому и решил проверить. Я сам.нет-чик, но была бы возможность нормально кодить под Linux-ом, сразу перешел бы с Окон, до.нет-а был руби и Linux пару лет, и честно я не думал что буду с такой настальгией вспоминать те годы.
На мой взгляд, MonoDevelop (теперь Xamarin Studio) — вполне вменяемая IDE для .NET, я больше года писал в ней под Linux. Во всяком случае, если вы пишете web-приложения.
Я вебдев и программирую под виндой, т.к. есть кроссплатформенные Vagrant и PhpStorm, а винда просто привычнее, тем более, в том же Шторме под виндой отрисовка интерфейса работает чуток быстрее.
А если исполняемая среда находится в виртуалке на Debian, а код я пишу на IDE в Windows, я программирую под виндой или линуксом?
IDE запущена в виндовом же окружении, значит под Windows
У Win всегда есть существенный аргумент в любом подобном опросе — корпоративный сектор.
У линукса есть не менее существенный RHEL в корпоративном секторе.
Кстати, человек, сидящий на винде, но программирующий через NX/VNC/ssh на сервере с линуксом выберет линукс или винду в опросе?
Согласен, в таком случае на усмотрение, ибо логично было бы выбрать винду, так как он программирует то в винде. Так же точно человек который сидит в линуксе может по rdp работать в винде на VS
Хотя, выбор то множественный, так что можно и то и то выбрать
Среда программирования ведь Linux. А Windows — это просто клиент для ssh.
Ага, тогда можно считать, что все вообще программируют для UEFI. Нет, ну а что?
Распределение мест совершенно ожидаемо.
Но вот процент макоси заметно выше, чем я думал. Я думал 10-15.
iOS же.
Я вынужден использовать Mac OS, чтобы собирать проекты под iOS. И естественно, я не прыгаю между ОС чтобы работать над другими проектами…
И таких как я… Все разработчики под iOS.
> веб-программисты тыкнут в линукс или/и OS X (тут концентрация веб-девов велика) и так далее.
Ошибаетесь.
Я тыкнул Windows. Для создания сред исполнения уже давно люди используют виртуализацию (тот же vagrant), в том числе и под os x и linux.
Поэтому нет разницы, какая хостовая ОС будет. И поэтому стоит выбрать то, что лучше знаешь, что удобнее, где больше софта для разработки и т.д.
Чему удивляться? Сами же написали про «предпочтения под задачи».
А, ясно. После голосования уже не видно, флажки это были или кружки. А ввели в заблуждение формулировки вопросов в единственном числе: «под какой ОС» и «язык программирования». Да и как можно выбрать более одного варианта на вопрос о наибольшей частоте?
Пишу под Виндоуз, но все остальные в фирме под Маком. Продакшн на Убунту.
Пишем на Java, тесты на Groovy, Data Scientists пишут эксперименты на R, Python, Scala
C++, Fortran. OpenMP+MPI

Пишу под MacOS, потом перевожу на Linux-кластер. Иногда отлаживаю под Visual Studio в Windows.
Работаю под MacOS, пишу на Python, Bash, PHP, JS, но программирование для меня — хобби, я админ.
С/С++
Доколе?

Должно быть два пункта:

  • C
  • C++

Тем более в случае мультивыбора.
+1, по статистике (различные источники, втч приведенные выше в комментариях) видно, что тренд по С и плюсам совсем-совсем разный.
А разве С не подмножество С++? Или ошибаюсь?
UFO just landed and posted this here
Когда-то было так, сейчас нет. Из того, что сразу пришло в голову — в няшной сишке sizeof('x') == sizeof(int), тогда как в б-гомерзких плюсах sizeof('x') == sizeof(char). Нагуглил вот тут хорошую подборку различий.
UFO just landed and posted this here
Минус я поставил. Не из-за оппонирования, а из-за вашего ерничанья в ответ на нормальный вопрос. Вопрос встречается часто, вопрос нормальный, ответить можно хотя бы ссылкой.
UFO just landed and posted this here
Не, меня такое не трогает, слабовато.
А разве С не подмножество С++? Или ошибаюсь?
Это на самом деле очень распространённое заблуждение.

Посмотрите на объём статьи Incompatibilities Between ISO C and ISO C++ 2001 (!) года для того, чтобы понять порядок различий. С тех пор часть из них стала неактуальной в новых стандартах, но очень многое несовместимо.

Вы также можете лично убедиться в этом, спросив C++ программиста, например, о «designated initializers» или «restricted» указателях, многие не поймут о чём вопрос. Да, что там, strspn() и то могут не знать, хотя эта и многие другие функции присутствуют и в C++.
Много пишу на asm, некоторые части по нейросетям приходилось делать на prolog+lisp. Хочу сделать ИИ.
В остальном php/python/java — для заработка!
Scala же. Хотя нас таких маловато, наверное :(
Есть нас тут и немало я думаю :) мы как и товарищ с Хаскеллом выше «Другие» :)
А корреляцию между языками и осями покажете? Или это технически невозможно с хабраопросами?
Я пишу преимущественно на C# и достаточно часто на JavaScript. Основная система — Mac OS, собственные проекты пишу в ней в Xamarin Studio, запускаю потом на Linux. Рабочий проект — в Visual Studio на виртуалке (ибо остальная часть команды использует Windows).
Под какой ОС или под какую ОС?
Существует такой TIOBE Index языков программирования, который довольно точно отвечает на второй вопрос.
любопытно, а что за «другая» ОС, под которой программируют аж несколько сотен хабравчан?
UFO just landed and posted this here
Inferno.
Правда, я забыл галочку на «другая ОС» поставить.
Если я правильно понял вики, то получается такая цепочка: Inferno > Plan 9 > Unix
т.е. эта ОС относится к упомянутому пункту «Linux/Unix».
Или потомки Unix к Unix не относятся?
Если уж на то пошло, то MacOS это Unix, а вот Inferno от Unix кардинально отличается. Plan9 и Inferno появились в процессе развития идей, изначально заложенных в Unix, но они не Unix.
Если уж взялись проводить опрос, надо было ответственно подойти к этому: взять мой предыдущий опрос годичной давности, выкинуть пункты, за которые никто не проголосовал, добавить новые языки, типа Swift и другие, которые за год с ничтожной приобрели какую-то популярность, а так же те, которые просили в комментариях.

А вот так, сделать пост тяп-ляп за 10 минут, по-моему, очень беспонтово.
Итак, результат опроса показал: большинство программирует под Windows на Javascript :)
Или на ПХП. Ох, уж эти вебдэвы…
Only those users with full accounts are able to leave comments. Log in, please.