Как стать автором
Обновить

Комментарии 112

Почему самый костыльный и ужасный язык занял позицию #1?
Да не такой уж он костыльный и ужасный. Готовить его надо уметь и повар хороший нужен. А на первом месте наверное потому, что веб становится де-факто самой большой программной экосферой из всех существующих.
Потому что это не «популярность», а «количество коммитов». А это не одно и то же.
Не говоря о том. что многие разработчики С++ и прочих старых языков не бросаются переводить все проекты на github из VCS, которыми пользовались до этого кучу лет.
Как рас потому что на нём много пишут кода ( в смысле объёма )

Я недавно worker'ы осваивал а их на локальной машине не потестить не поднимая вебсервер. Такого количества комитов в один день я ещё никогда не делал.

Почему же?

Что именно?


gravity.svg:28 Uncaught SecurityError: Failed to construct 'Worker': Script at 'file:///C:/.../worker.js' cannot be accessed from origin 'null'.

  1. Пишем код
  2. Commit
  3. Push
  4. Тест на сервере
  5. Исправляем, дописываем
  6. GoTo 2
Я к тому, что не проблема поднять локально вебсервер средствами docket / vagrant. Это сэкономит время отладки и избавит от мусорных коммитов в origin.

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


Согдасен это не является хорошей практикой но так случилось.

если стек js — express, там для статики пять строчек. Либо node-static — https://learn.javascript.ru/screencast/webpack во второй части (простая сборка, простой конфиг) Можно использовать встроенный php сервер http://php.net/manual/en/features.commandline.webserver.php В общем как бы варианты есть.

Просто устанавливаем php и в консольке выполняем команду php -S localhost:8000 для запуска локального веб сервера.
Для https можно установить ngrok и запустить его командой ngrok http 8000 и у вас локальный https веб сервер без всяких проблем.
Думаю у node.js в пакетах где-то тоже должен быть простой веб сервер.
Так вестимо, браузер настраивать надо. Это поведение зависит от того как ответит сервер, значением в поле тип контента — если он на всё будет отвечать «двоичные данные» то у браузера не останется иного варианта как просто скачивать содержимое как неизвестного типа. Нужно добиться настройкой сервера чтобы тот отвечал на изображение соответственно, тогда браузер откроет его как изображение. Расширение файла роли не играет — имени файла так вообще может не быть.
Вероятно часто исправляют исправления на исправления. Поэтому и используется много, и коммитов много.
Да он костыльный и ужасный с точки зрения тех кто программирует на «правильных» языках типа Java или C#, но тем не менее почему то программировать на нем мне гораздо приятнее чем на C, C++, C#, Swift (даже не знаю почему, может я люблю говнокодить). А с последними расширениями ECMA он убьет и typescript и займет весомую часть в разработках серверного бакэнда
Я бы сказал что в JS — порог вхождения заметно ниже. Не нужно много и долго изучать примудрости Computer Science, что бы стать более менее «средним» разработчиком на JS
А может не нужны все эти премудрости Computer Science? Когда посредственный программист 1С (iOS, React подставь что хочешь) зарабатывает в полтора раза больше embedded программиста, спрашивается зачем нужны все эти знания архитектуры процессора, математики, паттернов проектирования.
> А может не нужны все эти премудрости Computer Science? Когда посредственный программист 1С (iOS, React подставь что хочешь) зарабатывает в полтора раза больше embedded программиста, спрашивается зачем нужны все эти знания архитектуры процессора, математики, паттернов проектирования.

1. Причем здесь embedded?

2. Я в жизни не видел ни одного посредственного (как вы выразились) 1С / React / etc программиста, котрый получал бы больше квалифицированного разработчика. Любые большие проекты требуют квалификации и опыта, и «посредственные разработчики» просто не способны в них участвовать. А на мелкой халтуре, для которой годиться React, много не заработать.

3. Если вы пошли в разработчики ПО только ради денег — долго вы в профессии не удержитесь
1. Embedded имхо требует знания наибольших знаний в области Computer Science
2. Че прям React только для мелкой халтуры годится? Клиентские и серверные javascript фрэймворки еще только начали свой путь развития, и глядя на то что уже есть я думаю что кроме javascript уже ничего не надо изучать:) А серьезно WEB разработкой я всего лишь пару лет назад занялся
3. Да чет 20 лет уж там, может и правда пора на покой. Я думаю немного тех кто по молодости может оценить сколько принесет денег та или иная профессия и те или иные скилы. Интересно а ради чего пошли в профессию вы?
> 1. Embedded имхо требует знания наибольших знаний в области Computer Science

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

> 2. Че прям React только для мелкой халтуры годится?

Сам я с ним не сталкивался, но все что читал — говорит о том, что когда нужно что-то аппаратно или OS специфичное, то React уже не годен, и приходится писать все нативно. А React — да, больше для приложений типа «webview на весь экран»

> Клиентские и серверные javascript фрэймворки еще только начали свой путь развития, и глядя на то что уже есть я думаю что кроме javascript уже ничего не надо изучать:)

Существует очень много областей, где javascript/веб приложения — не применимы. Конечно если ваша цель — упростить себе жизнь, то конечно, стоит выбрать что проще, и только этим и заниматься :)

> Интересно а ради чего пошли в профессию вы?

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

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

НЛО прилетело и опубликовало эту надпись здесь
Ну как же… А похоливарить на выходных? По-моему стоит вообще подобный блог на хабре сделать — «Холивар». Тогда стало бы ясно куда определять всякие посты вроде «Java vs C++ — кто самый мощный?» или «Самые популярные языки по версии оскоровского комитета». Желающие могли бы подписываться и отписываться. Все довольны.
Ну, например, теперь стало ясно, что цсс круче си-шарпа.
Еще не заходя в публикацию я знал, что на первом месте будет Javascript. Может оставить заявку на «Битву экстрасенсов»? Типа: «А, сейчас наши участники попытаются определить на каком языке написана эта всепожирающая память утилита для разгадывания гороскопов, что таинственным образом появилась на сайте vasyan.ucoz.ru! » :)

Как-то уж сильно статистика гитхаба с Tiobe расходится по Си.

Гитхаб же считает пулл-запросы, а Тиобе — количество вопросов в поисковиках + количество вакансий ну, и что-то ещё.

Гитхаб, по всей видимости, считает коммиты. Не умаляя заслуг гитхаба просто скажу, что он отражает только активность разработки в хостящемся на нём Open Source, хотя реальная жизнь гораздо шире, и в этом плане я больше доверяю Tiobe.

Разве CSS уместен в этом рейтинге?
НЛО прилетело и опубликовало эту надпись здесь

А если взять препроцессоры (диалекты), вроде Sass, то там и до уровня shell не далеко =) Циклы, условия, переменные — всё есть.

Вас слова "формальный язык" ввели в заблуждение или что?

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

Бекенд для веба можно писать на: c#, java, python, ruby, php, js
Фронт пишется исключительно на js

Отсюда и получаем, что JS топ-1. Ибо это монополист во фронте сейчас.
Не исключительно. У нас вот GWT например.
НЛО прилетело и опубликовало эту надпись здесь
Мир стал бы очень скучен, если весь фронтенд сводился бы только к Вебу. Да и есть другие языки, кроме перечисленных, на которых можно писать программы и с фронтендом, и с бэкендом, для Windows и Mac. Вот пример — FL Studio написанный полностью от «задницы» до «передницы» в Delphi: https://www.youtube.com/watch?v=c43Y-FMFDDQ

Perl, ехарный бабай, а не Pearl (Harbor). И странно что сам перл не попал в рейтинг (или он сидит в shell )?

НЛО прилетело и опубликовало эту надпись здесь
Верное замечание.

Справедливости ради стоит сказать что язык программирования Pearl существует: https://en.wikipedia.org/wiki/PEARL_(programming_language)

Но на становление Ruby никоим образом не повлиял.

Когда зная Ruby я начал учить Perl — с удивлением обнаружил множество схожих концепций и даже конструкций в этих двух языках.
А как считали тех, кто пользуется сразу несколькими «языками»?

Те, кто юзают PHP — часто пишут сайты целиком, в т.ч. фронтэндовую часть. Значит юзают также CSS, JS и HTML(о боже, где же он тут в рейтинге? неужели html теряет популярность?). Собственно вопрос — как посчитали таких людей?

То же самое можно сказать и про остальные части. Редко, когда разработчики использует только_один_язык_программирования.
НЛО прилетело и опубликовало эту надпись здесь
Ок. По количеству файлов измененных?
Во вступлении статьи.

Конечно же, популярность определялась по количеству pull-запросов на GitHub за последний год.
Что самое интересное, несколько моих проектов Github'ом распознаются как HTML, хотя там HTML'a 10 строчек и несколько сотен строчек JS.
Аналогично, а markdown там вообще похоже не учитывается.
И действительно. Всё же мне кажется что можно было считать именно по людям. То есть, в каждом проекте несколько языков. Тот который больше, на том и написан проект. У человека много проектов, если большее количество по предыдущему правилу написаны на плюсах, то считать, что человек пишет больше всего на плюсах. И уже считать количество людей. Мне кажется, что так будет интересней и более точно. НО! Так теряется объективность за год, и мы не узнаем какой язык именно в этом году более интенсивно используется и так мы получается ещё считаем некропользователей.
>Это язык, которому теперь пытаются найти замену
Эээ… кто и зачем пытается найти замену С?
Зачем? Например, затем, что на С крайне сложно писать надёжный и безопасный код. А делать это быстро так и вообще невозможно.
Не хочу начинать холивар, но скажу, что откровенно не понимаю, кто и зачем использует язык С в 2016 году. Не считая legacy для какого-нибудь Z80, под который нет компилятора С++, конечно.
Как плюсовик скажу так… Подозреваю, что минимум для кросскомпиляторного кода. В С нет проблем с декорированием имён и прочими радостями статического и динамического связывания С++-библиотек. Насколько я знаю, по этой причине часто используется бриджинг через С интерфейсов middleware-библиотек.

Помимо этого (в этом уже не так уверен) — под С намного проще делать компилятор и потому компиляторы под С по логике должны выходить раньше С++-компиляторов под всякие зверинцы новых микроконтроллеров. Поэтому С отгрызает часть сегмента Java и вполне себе ничего чувствует себя в этой области.

Люди, пишущие на С, поправьте меня если где-то не прав.
Вы имеете в виду возможность линковать вместе объектные файлы, собранные под одну платформу разными компиляторами?
Ага. Эту проблему наследуют статические библиотеки (что весьма логично). С динамическими библиотеками немного другая специфика. Классы ограниченно описываются в рамках ABI операционных систем, что требует осторожности при работе с ними. В рамках ABI, кажется (см. первую ссылку ниже почему «кажется»), стандартизировано представление таблицы виртуальных функций, за счёт чего можно взаимодействовать с DLL, собранными другим компилятором через абстрактные классы-интерфейсы, но это может влиять на производительность из-за виртуальности.

Ссылки:
1. Пространный пост по поводу ABI из блога Алёны С++ (ссылка).
2. О vtalbe в одном из вариантов ABI (ссылка).

В общем, есть некоторые проблемы.
Но всё-таки, как мне кажется, для С характерно использование именно для низкоуровневого программирования под всякие микроконтроллеры и это основная область, где он живёт. Сужу по общению со знакомыми системщиками и по общим наблюдениям.
Ну как минимум C более применим если у вас допустим 16к оперативной памяти и где-нибудь 32к для исполняемого кода, применять ассемблер это получить непереносимый код, применять C++ тогда забудьте об операторах new т.к. ваша оперативная память на вес золота и вам необходимо только ручное управление управление памятью, кроме того обычно компилятор C дает более компактный и быстрый код
Идея понятна, хотя у меня не было проблемы писать на С++ с наследованием и виртуальными функциями под STM32 F1, там тоже памяти не мегабайты.
Просто нужно учитывать больше факторов при кодинге на С++ под мелкие контроллеры, например:
1. Фрагментация HEAP
2. Применение объектов в условиях жесткого реалтайма, когда все ресурсы контроллера расписаны по наносекундам (те вызов new и delete)
3. Контроль занимаемой памяти классами особенно с полиморфизмом и наследованием

вообщем появляется много новых нюансов, но если железо не высокотиражное и его ресурсы заложены с запасом то конечно и С++ годится
Ядра всех ОС, движки топ 5 популярных БД, самые высокопроизводительные веб-серверы, движки практически всего 3д-софта, бытовая техника, начинка любого современного автомобиля, NASA…
Из этого следует, что на С писали (и пишут) самый надежный и безопасный код в мире.
М-м… нет, не следует. Это всего лишь ваше предположение.

Пишут. Вопрос только, какой ценой, и сколько человекоэпох было отдано на отладку этих ядер и движков?
В перечисленных вами задачах в первую очередь важны скорость и/или близость к железу, в чём С действительно идеален, но это практически противоречит надёжности. Факторы надёжности — это, например, проверки операций (прощай, скорость), строгие системы типов (прощайте, низкоуровневые оптимизации), строгие спецификации (прощай, бесплатная переносимость на любой утюг). Ну правда, как можно назвать эталоном надёжности слаботипизированный язык, у которого стандарт состоит из UB чуть менее, чем наполовину?

А кто и на чём будет писать низкоуровневые оптимизированные по быстродействию функции/библиотеки для высокоуровневых языков? Именно для этого и используется.
На ограниченном подмножестве С++, например.
сочетает в себе надежность С++
нервный смешок
Java был разработан Джеймсом Гослингом в 1990 году в компании Sun Microsystems.
Не знаю, кому верить, но Википедия говорит, что разработка только началась в 1991, а вышел на свет язык вообще в 1995.
Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования.
А это уже совсем неправда. Во-первых, Java не совсем чиста – как минимум, в ней есть примитивные типы, которые не являются объектами. Во-вторых, гораздо более расово чистый в этом отношении Smalltalk был уже в 80-х.
Yuuri сочетает в себе надежность С++

— нервный смешок

на каких языках написаны 99% ОС и прикладноашем компэте ПО на вашем компютере? Это и будет ответом на ваш смешок
ИМХО только потому, что во время написания тех ОС С++ ещё не был достаточно развит и допилен.
Когда же он уже будет достаточно развит и допилен?.. Просто этого не случилось до сих пор, а комитет по стандартизации морозит и откладывает приятные новые фичи до тех времен, когда они уже совсем перестают казаться новыми и воспринимаются как нечто само собой разумеющееся.
Вы считаете, что не случилось, а я считаю, что с 2003 года язык полностью юзабелен, а с 2011 — прекрасен. На С++ 11 за вечер пишутся вещи, которые на С++03 я вообще не взялся бы писать.
интересно. А можно пример вещи, которая «пишется за вечер на с++11 и не пишется на с++03»?
1. Всё, где нужны лямбды и std::function.
2. Многопоточность. Здесь важен не столько класс std::thread, как те же самые лямбды и function.
гм. Вы сейчас сказали «лямбды — это круто». Никто собственно и не спорит, но примера-то и нету, так как «все, где нужны...» — не пример, как и слишком абстрактное «многопоточность» тож.
Лямбды — это не просто круто. Они позволяют делать то, что без них неоправданно сложно и в написании, и в применении.
Сигналы / слоты.
Пул потоков.
Блокирующая очередь, через которую N потоков последовательно сцепляются в конвейер.

См. Threading https://github.com/VioletGiraffe/cpputils
Удивительно, что Python настолько популярен. Трудно вообще найти такую нишу, в которой он был бы лучшим. Чтоб можно было сказать: да, вот эти вот задачи эффективнее всего делать на Python, другие языки заставят провозиться дольше и потратить больше ресурсов.
Практически всегда критерий его выбора субъективен, в стиле «конечно, на %language_name% было бы быстрее и проще, но я его не знаю, да и синтаксис очень не нравится».
Затраты на обучение тоже затраты.
Питон не знаю.
В парсинге данных, анализ данных, создание веб-приложений на коленке за короткое время, машинное обучение.
Ну давайте, расскажите чем Python хуже PHP.
Поверьте, звучать это будет одинаково:

Удивительно, что PHP настолько популярен. Трудно вообще найти такую нишу, в которой он был бы лучшим. Чтоб можно было сказать: да, вот эти вот задачи эффективнее всего делать на PHP, другие языки заставят провозиться дольше и потратить больше ресурсов.


или

Удивительно, что Ruby настолько популярен. Трудно вообще найти такую нишу, в которой он был бы лучшим. Чтоб можно было сказать: да, вот эти вот задачи эффективнее всего делать на Ruby, другие языки заставят провозиться дольше и потратить больше ресурсов.


и так далее…
Python доминирует в нише бекенда и сервисов, где не требуется высокая производительность, поэтому его можно поставить в ряд с Ruby, PHP и JavaScript (SS). Любая попытка выбрать лучший из этих языков закончится «сравнением оппонента с Гитлером».

Я выбрал Python для себя потому, что он позволяет решать бизнес задачи, не думая ни о чем, кроме бизнес-логики, его синтаксис «чище» чем у вышеозначеных конкурентов, меньше всякой мишуры. В совокупности со знаниями C\C++ это позволяет реализовать систему\архитектуру любой сложности в короткие сроки и под любые нужды. Можно заменить слово Python на Ruby\PHP\JS(SS), но я выбрал именно Python, просто вот с первого знакомства, ни разу не возникло желания возвращаться на PHP\JS или пробовать Ruby. И да, «конечно, на %language_name% было бы быстрее и проще» — это не про Python точно.
Ну, ок. Давайте спорить приводить примеры. Может быть, я просто сильно не в теме.
Всё примеры моих реальных задач, которые я решаю питоном (но не стал бы даже браться за них, скажем, на плюсах).

Задача 1. есть html с задачами (оформленными единообразно) и excel-файл с их сложностями. Нужно добавить сложности в html (типа «Задача 13.7» -> «Задача 13.7 [***]»);

Задача 2. прочитать данные из гугль-таблички, после чего разослать e-mail'ы в зависимости от данных там;

Задача 3. Есть TeX-файл с условиями задач. Сконвертировать его в html, используемые картинки сконверировать в png, разложить по папкам, залить по FTP на сайт;

Задача 4. Есть excel с таблицей-плюсником (пустой). Есть отсканированный лист. Распознать плюсы и внести назад в excel;

Задача 5. Есть старая программа, работающая под DOS. Она генерит крупные отчёты достаточно сложного формата (руками делать заново сложно). Нужно сгенерить всевозможные отчёты, эмулируя действия пользователя;

Задача 6. Нужно пройти по пачке страниц в интернете и вытащить из них некую информацию.

На плюсах проблема с либами и их юзабельностью. А вот на C# все вышеописанные задачи решаются. Ну разве что распознать, но для этого и в Питоне нужна сторонняя либа.

НЛО прилетело и опубликовало эту надпись здесь

Зато пять лет спустя глядя на Ваш перл-скрипт Вы уйдете в запой… А питоновый скрипт написать для запоя надо умудриться.

НЛО прилетело и опубликовало эту надпись здесь
Решить-то их можно на чем угодно. Вопрос в количестве потраченного времени и в объеме кода. И что-то мне подсказывает, что Java и C# уступят по этим критериям питону для этих задач. Тут следует обратить внимание, что в приведенных задачах не требуется слишком высокая производительность, что и служит знаком к использованию питона.
Как минимум быстрое прототипирование в области scientific computing/machine learning/data mining, благо есть целая прорва либ (scipy/sympy/sklearn/pandas/theano/tensorflow/xgboost/opencv/etc) которые так или иначе увязанны вместе при помощи NumPy
НЛО прилетело и опубликовало эту надпись здесь
Действительно, предсказуемый рейтинг
Автор не в курсе, что JS — это уже далеко не только фронтендовый язык?
Характеристики языков — огонь.
Многие тезисы как минимум спорны, стилистика описания разных языков сильно различается, да и еще и пунктуация хромает.

JavaScript, C# и Go показали двойной рост аудитории. А аудитория Swift и TypeScript выросла в 3,5 раза

Это в сравнении с каким периодом? Как мог C# вырасти в 2 раза за последний год-два?
Может за счет Xamarin?

Microsoft же пилят кроссплатформенный C# последний год-два, конечно % растёт.

НЛО прилетело и опубликовало эту надпись здесь

Xamarin ещё. Вцелом C# становится приятнее на разных платформах, наверное поэтому его больше появляется на github. Напомню, что статистика именно по коду на гитхабе, а не вообще о языке.

Да, скорее всего это именно за счет кода, выложенного самим Microsoft на github. Ну и того толчка, что это дало C# open source.

Ага. Если посмотреть в тренды по C#: powershell, roslyn, kestrel, .net core, bot builder — появились и сами проекты, и всякое разное для них, ms стали активно работать с продивжением языка в open source (что не может не радовать).

На вскидку еще могут быть open-source игры на Unity ну и моды для игр. Из того что знаю, много модов для Kerbal Space Program лежит на github-e
А нет метрики: «количество новых проектов» на каком-то языке? Мне кажется, именно это было бы достоверным показателем популярности.
некоторые весьма известные и надежные сайты работают на python, особенно pinterest.com, instagram.com и rdio.com
последний — особенно надежный
У Go нет интерпретатора. go run просто компилирует во временную деректорию и запускает готовый бинарник
Небольшое дополнение к п.6 о создателе языка C++: https://geektimes.ru/post/77210/
В статье куча странных мест:

Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции.

Это у C++ компиляция быстрая???

Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

Эээ, это вообще про что?

JavaScript был разработан компанией Netscape и вряд ли есть сайты, которые не используют его.

Есть куча таких сайтов.
Есть куча таких сайтов.

Дайте, пожалуйста, ссылки на самые популярные, интересно глянуть.

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


Люди пишут полнейший говнокод выдавая это за ИННОВАЦИЮ и НОВЫЕ ПАРАДИГМЫ, каждый день делая ЕЩЕ ОДНУ ПРИНЦИПИАЛЬНО НУВУЮ либу для веба, и пользуются в своих проектах таким же говном.


Вся суть.

Насчёт мыльного пузыря не знаю, но "твориться" пишется без "ь".

Он был создан для iPhone-приложений
Ruby — простой и читаемый язык программирования, ориентированный на разработку веб приложений
фреймворк Ruby использовался для разработки Github, Scribd, Yammer, Shopify и Groupon
Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования
и множество других перлов.

image
Pearl'ов
Ruby сочетает в себе некоторые возможности Lisp, Pearl и Eiffel
>Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования

Ахаха, спасибо, понравилось описание языков. Захожу на хабр и сразу вспоминаю почему я сюда не захожу)
Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

Это как понимать??
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории