Comments 67
А с лолипопа они вообще при инсталле байткод компилят в нормальный машинный код.
Иии? На десктопах никогда не использовали AOT, да?
В Андроиде свой байт-код Dalvik, и куча ограничений по использованию возможностей Java, например избегать enum.
Что-то мне подсказывает что это не особенность Dalvik, что та же самая цена будет у обычной Java-машины, просто там на серверах или десктопах никто не заморачивается.
J2ME/MIDP (почти мёртвый) и Java Card — отстоят от Java SE, Java EE и Android куда больше, чем последние три друг от друга. Вплоть до того, что многие библиотеки у них общие или их портирование является несложной задачей.
Java Card часто вообще не имеет сборки мусора, единственный тип данных — short. Напомню, что литералов типа short в java нет, поэтому выглядит оно весело:
someMethod(param, (short) 0xff, (short) 0x1e)
,
static short DATA[3] = { (short) 0x01, (short) 0x02, (short) 0x04 };
Десктопные приложения, например.
Если вам нужен AOT — смотрите в сторону Excelsior JET, но в большинстве случаев JIT куда более предпочтителен (большая производительность после прогрева, чем в AOT-варианте).
В чём проблема не компилировать в exe, а использовать обёртки дающие bat/sh для запуска? Или использовать javafx, если мы говорим про десктопный софт?
Огромный сегмент серверного не-энтерпрайзного ПО, всякая big data и т. п.
В той или иной степени, подобное разделение присутсвует для большинства языков из списка.
Извините, но при всём уважении к исследованию(коих в месяц на хабре выходит по 2штуки), эта статья на ИСТИНУ не похожа.
Возможно я слишком придераюсь, но на мой взгляд, Истина должна по крайней мере учитывать совсем не очевидные вещи, вроде такого:
«Сейчас абсолютное большинство людей пишет на камнях, выбивая буквы с помощью молотка и гвоздей. Есть большой спрос на это, мы видим это на графиках. Есть множество техник и методик этого, плюс требуются люди, знающие латинский, древнегреческий и ***-ский языки, а еще писать надо красиво, чтобы можно было прочитать. Мы видим спрос на всю эту индустрию! Однако истина заключается в том, что людям стоит использовать бумагу и перо, которое изобрели 5 лет назад в ***-бурге, и кто поймет это и начнет развивать эту технологию — сэкономит себе много средств, времени и денег.».
Однако истина заключается в том, что людям стоит использовать бумагу и перо, которое изобрели 5 лет назад в ***-бурге, и кто поймет это и начнет развивать эту технологию — сэкономит себе много средств, времени и денег.
Мне кажется, что предугадать популярность языка/платформы/библиотеки на сколь-нибудь продолжительное время вперед не проще чем предугадать какая комманда возьмет кубок мира. Можно только сделать ставку и надеяться, что повезет.
истина заключается в том, что людям стоит использовать бумагу и перо
Только как узнать на чём будут писать через несколько лет?
С моей точки зрения must have для хорошего разработчика бэкендов сегодня — это опыт в SQL (или Lisp, Haskell, Erlang, если человек не планирует массажировать данные из СУБД (весь интерпрайз по сути)), C++/Java/C# (чтоб с многопоточностью и вот этим всем), JS/Ruby/даже PHP для скриптов, немножко Pascal и Python тоже не помешает. Не нужно иметь 20 лет опыта в каждом из языков и знать все детали, достаточно сделать несколько несложных рабочих приложения и понять суть. Собственно, этим успешно занимаются в нормальных институтах.
Неужели человек, поигравшийся со всем из этого списка и поняв идеологию, не сможет разобраться в том же Swift за очень короткое время? Конечно найти работу проще, когда есть perfect match в резюме, но хорошие компании готовы давать время человеку освоиться, потому что не знание языка программирование определяет уровень разработчика.
Некоторые мои знакомые разработчики до сих пор не поняли тонкостей js за несколько лет работы. Из-за этого я не могу работать с ними, просто потому что результат, который выходит из их труда, работает плохо: ну не вариант писать сложный интерфейс на jquery.
Это я о том, что часто в этом мире не получается брать на работу человека, не понимающего глубоко тот или иной язык программирования.
А то, что запускать их можно практически на любой ОС, это тогда как?
На Питоне написана куча приложений, вообще никак не относящихся к вебу и до сих пор есть вакансии где веб не требуется.
Я любил этот язык и IDE до последнего.
Недавно высылал резюме на вакансию начинающего Delphi-кодера. Зашел на гитхаб, посмотрел исходники фреймворков для XE10. Почти ничего не изменилось в сравнении с семеркой.
Политика CodeGear, а впоследствии и Embarcadero своими руками похоронили.
1. Сейчас владелец idera https://habrahabr.ru/post/267487/
2. Очень неправильно оценивать компании вот так вот… Когда кругом одни бесплатные ide, delphi несмотря на наличие бесплатного конкурента легко продает свой продукт корпоративным заказчикам дорого. А также заказчики покупают многие компоненты. И даже не знают, что они чего-то похоронили. Более того в РФ очень много корпоративного десктоп софта на делфи и новый пишут.
ps
Просто я не понимаю современной рекламы. Например, кругом в статьях пишут о java и pyton и других ЯП. Отважные герои всё на них делают в интернете. Но, почему же когда я смотрю сайты или варианты реализации сервисов в интернет — всегда и кругом один php? То есть мне не понятно почему php занимает низкие места в рейтингах, хотя он дико популярен. С делфи в РФ та же ситуация.
> Начинающим программистам нужно знать, в каком направлении начинать карьерный путь.
Если выбирать язык как средство для заработка. То прямая дорога на сайты с вакансиями, там хорошо видно что популярно и что хорошо оплачивается. Причем разница может быть даже в разных городах. Хотя лидеры, как правила везде одни и те же.
Если же языки интересуют как творчество, надо изучить по языку из каждой категории (статически типизированые, динамически типизированые и что-нибудь экзотическое). После этого будет уже некий кругозор и понимание, что нарвится, а что нет.
Один работает с БД, другой в браузере, они вообще друг другу не конкуренты.
Даже популярность СУБД часто привязано к языку, с одними языками чаще используют с другими реже. (Например MySQL — PHP, Postgres -python/ruby, oracle СУБД — java, MS SQL Server — .Net).
Я думаю что популярность языков нужно рассматривать в связке с направлением использования.
PHP не популярен для разработки десктоп приложений, а в вэбе наоборот.
Посмотреть бы на статистику использования того или иного ЯП к количеству более-менее известного софта, написанного на нем
Так как я в вечных сомнениях, куда податься, чтобы не опоздать, много лет назад я проводил самостоятельное «исследование». То есть выписывал название программы, затем искал на официальных сайтах ЯП, или спрашивал ТП на чем написана. Никаких статистик не вёл.
Десктоп под windows — это вереница технологий. Но ядро программы чаще всего написано на С и точно в веренице С или С++ упоминается. Десктоп под linux — это С.
Замечу, что программы типа netbeans или total commander я не рассматривал как узко специализированные.
Веб с сайтами — это php. Кто бы там что не писал.
Уверяю, такой рейтинг настолько же бессмыслен, как и все остальные.
Оценка должна быть иной, типа в каких богатых странах на каком ЯП охотно берут junor'ов с последующим обучением.
Вот эти метрики предполагают что у языка нет общеизвестного верифицированного актуального источника информации, как msdn для C#:
• Количество упоминаний в поисковых запросах
• Количество проданных книг о том или ином языке программирования
• Количество постов на форумах и частота появления в новостных лентах
• Количество YouTube-видео, посвященных языку
• Количество постов о языке на Reddit и Stack Exchange
Люди ищют информацию о C# напрямую в msdn, книг бесплатных очень много и надобность в них гораздо меньше при наличии msdn, сторонние посты и форумы тоже теряют свою актуальность при наличии единого информационного источника, YouTube тоже не уникален для видеоконтента (techdays и подобные хостятся не там)
По поводу метрики «Количество проектов на SourceForge, Freecode и GitHub, написанных на каком-либо языке» неплохо бы включить туда codeplex и visualstudio online (team-services теперь) чтобы посправедливее было.
Метрика «Количество упоминаний в объявлениях о работе» тоже весьма сомнительна. На приведенном графике в лидерах SQL и Javascript, но очевидно что эти знания используются не сами по себе, а в приложении к некой платформе
Да есть он и под линукс и под виндовс, только библитека поставки беднее, да инструментов толком нет (даже толковой IDE, а это проблема учитывая очень громосдкий синтаксис), но поиграться можно, проги из-за рантаймового обвеска получаются жирными, практическая ценность не большая, но если есть желание то пожалуйста.
Начинающему нужно определиться сперва со сферой, в которой он будет работать. И уже исходя из этого выбирать язык.
И почему именно Java и C++? Почему не python и js, например?
Но ведь сферы применения Java и C++ почти не пересекаются. Да и если исключить веб и мобилки, всё останется слишком много. Так что надо точнее определяться, тогда и язык станет очевидным.
1)C# (asp.net)
2)java
3)python (django)
4)javascript (node.js)
5)php
6)Ruby (RoR)
Мне кажется, начинающему разработчику неплохо было бы выбрать что-то одно, конкретное с конкретным языком. И в рамках работы с этим языком изучать общие технологии и подходы, а уже потом спокойно переходить в любые другие языки (с учетом, что сферу человек выбрал, а так можно ещё в различных сферах поработать, по пол-года, году).
По javascript не однозначно, так как нет границ между библиотеками и приложениями nodejs, и кучей простых jquery-плагинов.
По многим критериям более молодые языки «заруливаются» именно по причине своей молодости.
Истина, родившаяся в споре о рейтингах популярных языков программирования