Pull to refresh

Comments 67

Как бы посчитать отдельно ту Java, которая в Android от той Java, которая в Enterprise. У них общего — одно название.
UFO just landed and posted this here
Верно. Но всё перечисленное — вопрос первых нескольких месяцев обучения. Дальнейщий же опыт мало транслируется между областями.
UFO just landed and posted this here
это мнение новичка. Oracle vs Google. В Андроиде свой байт-код Dalvik, и куча ограничений по использованию возможностей Java, например избегать enum. Фитчи из Java 8 только в том году появились. А с лолипопа они вообще при инсталле байткод компилят в нормальный машинный код. Так что общее только название. ИМХО Java надо считать по 3-м категориям JAVA EE, Android и вся остальная/SE.
А с лолипопа они вообще при инсталле байткод компилят в нормальный машинный код.

Иии? На десктопах никогда не использовали AOT, да?

enum вроде давно не советуют избегать: http://stackoverflow.com/questions/5143256/why-was-avoid-enums-where-you-only-need-ints-removed-from-androids-performanc
не слышал, и по Вашей ссылке тоже нет, они говорят, что с производительностью больше неактуально, а вот мэмюзаж в 2 раза: «Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.» ссылка на форуме на доку.
Про производительность пишут что не было каких-либо фактический подтверждений что она имело место быть. Насчет памяти — да, в нескольких источниках пишут что потребление больше. Однако мы обсуждали это в контексте Dalvik vs JavaVM:
В Андроиде свой байт-код Dalvik, и куча ограничений по использованию возможностей Java, например избегать enum.

Что-то мне подсказывает что это не особенность Dalvik, что та же самая цена будет у обычной Java-машины, просто там на серверах или десктопах никто не заморачивается.
ну как бы — да, и я о том же. Только я не писал про Dalvik/bytecode vs bytecode, речь шла, что Java ультра-популярна и бьёт чарты, и что хорошо бы пояснить какие именно джавы делают погоду. Например, Spring и AndroidSDK совсем не одно и тоже, а они тут в одной цифре, хотя формально обе есть джавы. вооот)
А что будете делать с той Java, которая и не Android и не Enterprise?
UFO just landed and posted this here
Игрушки под тупофоны, апплеты для умных чипов (типа банковских карт), IoT, Некоторые обширнейшие настольные приложения типа ProEngineer. Короче, не забыли. Но не думаю, что это всё претендует хотя бы на первые строки в обсуждаемом списке.

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 };

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

UFO just landed and posted this here

Если вам нужен AOT — смотрите в сторону Excelsior JET, но в большинстве случаев JIT куда более предпочтителен (большая производительность после прогрева, чем в AOT-варианте).
В чём проблема не компилировать в exe, а использовать обёртки дающие bat/sh для запуска? Или использовать javafx, если мы говорим про десктопный софт?

Огромный сегмент серверного не-энтерпрайзного ПО, всякая big data и т. п.

IDE, чтобы писать ту Java, которая Android и Enterprise?
автотесты, интеграции c помощью api

В той или иной степени, подобное разделение присутсвует для большинства языков из списка.

> Истина популярных языков программирования
Извините, но при всём уважении к исследованию(коих в месяц на хабре выходит по 2штуки), эта статья на ИСТИНУ не похожа.

Возможно я слишком придераюсь, но на мой взгляд, Истина должна по крайней мере учитывать совсем не очевидные вещи, вроде такого:
«Сейчас абсолютное большинство людей пишет на камнях, выбивая буквы с помощью молотка и гвоздей. Есть большой спрос на это, мы видим это на графиках. Есть множество техник и методик этого, плюс требуются люди, знающие латинский, древнегреческий и ***-ский языки, а еще писать надо красиво, чтобы можно было прочитать. Мы видим спрос на всю эту индустрию! Однако истина заключается в том, что людям стоит использовать бумагу и перо, которое изобрели 5 лет назад в ***-бурге, и кто поймет это и начнет развивать эту технологию — сэкономит себе много средств, времени и денег.».
Однако истина заключается в том, что людям стоит использовать бумагу и перо, которое изобрели 5 лет назад в ***-бурге, и кто поймет это и начнет развивать эту технологию — сэкономит себе много средств, времени и денег.

Мне кажется, что предугадать популярность языка/платформы/библиотеки на сколь-нибудь продолжительное время вперед не проще чем предугадать какая комманда возьмет кубок мира. Можно только сделать ставку и надеяться, что повезет.

Согласен, но называться «Истиной» это не может. Правильнее будет «популярность языков», или «Чтобы найти работу программистом, надо быть сишником, или знать Java». Но не «Истина о языках»
истина заключается в том, что людям стоит использовать бумагу и перо

Только как узнать на чём будут писать через несколько лет?
Через несколько — на том же. А вот через десять…

На С
Мне кажется глупым гоняться за языками программирования. Нужно понять несколько парадигм, а освоение того или иного языка на приемлемом уровне — вопрос месяца работы в команде. Знание каких-то суперфич языка по факту бессмысленно без умения программировать.

С моей точки зрения must have для хорошего разработчика бэкендов сегодня — это опыт в SQL (или Lisp, Haskell, Erlang, если человек не планирует массажировать данные из СУБД (весь интерпрайз по сути)), C++/Java/C# (чтоб с многопоточностью и вот этим всем), JS/Ruby/даже PHP для скриптов, немножко Pascal и Python тоже не помешает. Не нужно иметь 20 лет опыта в каждом из языков и знать все детали, достаточно сделать несколько несложных рабочих приложения и понять суть. Собственно, этим успешно занимаются в нормальных институтах.

Неужели человек, поигравшийся со всем из этого списка и поняв идеологию, не сможет разобраться в том же Swift за очень короткое время? Конечно найти работу проще, когда есть perfect match в резюме, но хорошие компании готовы давать время человеку освоиться, потому что не знание языка программирование определяет уровень разработчика.
Вот-вот! Лучше сосредоточиться на чём-то более фундаментальном, чем досконально изучать языки.
Язык это не так уж сложно. Проблема в объеме современных фреймворков
Я в целом с вами согласна. На работе использую немного SQL + JS/TS + C#, дома для себя разбираю Python в контексте ML. Но как я уже писала в другом похожем топике, работодатели согласны не совсем. Свичнуться из С в Java или C# в Python не так то и просто (не потеряв существенно в зарплате)
UFO just landed and posted this here

Некоторые мои знакомые разработчики до сих пор не поняли тонкостей js за несколько лет работы. Из-за этого я не могу работать с ними, просто потому что результат, который выходит из их труда, работает плохо: ну не вариант писать сложный интерфейс на jquery.


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

Что-то Ruby очень мало, хотя Rails'а так много везде… кажется.
Недавно в каком-то рейтинге видела, что популярность руби падает. Меня это крайне удивило, тоже кажется что руби повсюду :)
UFO just landed and posted this here
UFO just landed and posted this here
Подскажите, к какой платформе привязан php?
Python значит не привязан, а php и javascript привязаны?

А то, что запускать их можно практически на любой ОС, это тогда как?
Я думаю в контексте данной статьи, под «платформой» имеется в виду «актуальное направление разработки»

На Питоне написана куча приложений, вообще никак не относящихся к вебу и до сих пор есть вакансии где веб не требуется.
UFO just landed and posted this here
Питон дико популярен для ML и вообще датасаянс.
Python, помимо прочего, это ещё и программирование систем автоматизации (ПЛК) и роботизации (тот же Roomba).
А вот Паскаль и Делфи даже в первую двадцатку не вошли. Как и реализации FreePascal и Lazarus. Даже Visual Basic их обогнал. Неужели Делфи более мертвый, чем Визуал Бейсик?
Delphi — гораздо более дорогой, чем другие. $5000 за IDE мало кто может позволить
Политика CodeGear, а впоследствии и Embarcadero своими руками похоронили.
Я любил этот язык и IDE до последнего.

Недавно высылал резюме на вакансию начинающего Delphi-кодера. Зашел на гитхаб, посмотрел исходники фреймворков для XE10. Почти ничего не изменилось в сравнении с семеркой.
Политика CodeGear, а впоследствии и Embarcadero своими руками похоронили.

1. Сейчас владелец idera https://habrahabr.ru/post/267487/
2. Очень неправильно оценивать компании вот так вот… Когда кругом одни бесплатные ide, delphi несмотря на наличие бесплатного конкурента легко продает свой продукт корпоративным заказчикам дорого. А также заказчики покупают многие компоненты. И даже не знают, что они чего-то похоронили. Более того в РФ очень много корпоративного десктоп софта на делфи и новый пишут.
ps
Просто я не понимаю современной рекламы. Например, кругом в статьях пишут о java и pyton и других ЯП. Отважные герои всё на них делают в интернете. Но, почему же когда я смотрю сайты или варианты реализации сервисов в интернет — всегда и кругом один php? То есть мне не понятно почему php занимает низкие места в рейтингах, хотя он дико популярен. С делфи в РФ та же ситуация.
По моему сам по себе «рейтинг» вещь достаточно абстрактная. Независимо от того, как рейтинг был высчитан.

> Начинающим программистам нужно знать, в каком направлении начинать карьерный путь.

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

Если же языки интересуют как творчество, надо изучить по языку из каждой категории (статически типизированые, динамически типизированые и что-нибудь экзотическое). После этого будет уже некий кругозор и понимание, что нарвится, а что нет.
Как можно сравнивать популярность например SQL и Javascript?
Один работает с БД, другой в браузере, они вообще друг другу не конкуренты.
Даже популярность СУБД часто привязано к языку, с одними языками чаще используют с другими реже. (Например MySQL — PHP, Postgres -python/ruby, oracle СУБД — java, MS SQL Server — .Net).
Я думаю что популярность языков нужно рассматривать в связке с направлением использования.
PHP не популярен для разработки десктоп приложений, а в вэбе наоборот.
Посмотреть бы на статистику использования того или иного ЯП к количеству более-менее известного софта, написанного на нем. С разбивкой на платформы.
Посмотреть бы на статистику использования того или иного ЯП к количеству более-менее известного софта, написанного на нем

Так как я в вечных сомнениях, куда податься, чтобы не опоздать, много лет назад я проводил самостоятельное «исследование». То есть выписывал название программы, затем искал на официальных сайтах ЯП, или спрашивал ТП на чем написана. Никаких статистик не вёл.
Десктоп под windows — это вереница технологий. Но ядро программы чаще всего написано на С и точно в веренице С или С++ упоминается. Десктоп под linux — это С.
Замечу, что программы типа netbeans или total commander я не рассматривал как узко специализированные.
Веб с сайтами — это php. Кто бы там что не писал.
Уверяю, такой рейтинг настолько же бессмыслен, как и все остальные.
Оценка должна быть иной, типа в каких богатых странах на каком ЯП охотно берут junor'ов с последующим обучением.
Выбранные метрики популярности языка сразу говорят о качестве исследования.
Хм, почему считается, что PHP привязан к платформе?
Потому что 99% кода на нем написано под веб (и большая часть конкретно под Апач)
По поводу метрик:

Вот эти метрики предполагают что у языка нет общеизвестного верифицированного актуального источника информации, как msdn для C#:

• Количество упоминаний в поисковых запросах
• Количество проданных книг о том или ином языке программирования
• Количество постов на форумах и частота появления в новостных лентах
• Количество YouTube-видео, посвященных языку
• Количество постов о языке на Reddit и Stack Exchange

Люди ищют информацию о C# напрямую в msdn, книг бесплатных очень много и надобность в них гораздо меньше при наличии msdn, сторонние посты и форумы тоже теряют свою актуальность при наличии единого информационного источника, YouTube тоже не уникален для видеоконтента (techdays и подобные хостятся не там)

По поводу метрики «Количество проектов на SourceForge, Freecode и GitHub, написанных на каком-либо языке» неплохо бы включить туда codeplex и visualstudio online (team-services теперь) чтобы посправедливее было.

Метрика «Количество упоминаний в объявлениях о работе» тоже весьма сомнительна. На приведенном графике в лидерах SQL и Javascript, но очевидно что эти знания используются не сами по себе, а в приложении к некой платформе

>>>Впрочем, в третий кластер входит Objective-C, который тоже является де факто платформозависимым и используется для разработки iOS-приложений.
Да есть он и под линукс и под виндовс, только библитека поставки беднее, да инструментов толком нет (даже толковой IDE, а это проблема учитывая очень громосдкий синтаксис), но поиграться можно, проги из-за рантаймового обвеска получаются жирными, практическая ценность не большая, но если есть желание то пожалуйста.
Прикольно. Столько графиков. Такой всесторонний анализ. А ответа на главный вопрос так и нет. Что лучше выбрать начинающему — Java или C++? Всё-таки каждый из них травмирует психику по-своему. И выбор между ними в очень значительной степени предопределяет весь будущий жизненный путь…

Начинающему нужно определиться сперва со сферой, в которой он будет работать. И уже исходя из этого выбирать язык.
И почему именно Java и C++? Почему не python и js, например?

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

Но ведь сферы применения Java и C++ почти не пересекаются. Да и если исключить веб и мобилки, всё останется слишком много. Так что надо точнее определяться, тогда и язык станет очевидным.

Так даже для веба у вас немалый выбор:
1)C# (asp.net)
2)java
3)python (django)
4)javascript (node.js)
5)php
6)Ruby (RoR)
Мне кажется, начинающему разработчику неплохо было бы выбрать что-то одно, конкретное с конкретным языком. И в рамках работы с этим языком изучать общие технологии и подходы, а уже потом спокойно переходить в любые другие языки (с учетом, что сферу человек выбрал, а так можно ещё в различных сферах поработать, по пол-года, году).
Горько плачут разработчики без языков программирования вообще. К примеру Cognos BI девелоперы.
По-моему рейтинг немного бредовый, так как в списке сравниваются языки разных направлений.
Очередная странная статистика. SQL — язык сопутствующий с подавляющим числом приложений на разных языках.
По javascript не однозначно, так как нет границ между библиотеками и приложениями nodejs, и кучей простых jquery-плагинов.
По многим критериям более молодые языки «заруливаются» именно по причине своей молодости.
Sign up to leave a comment.

Articles