Comments 102
А описание алгоритмов — обязательное свойство языка программирования? Скажем, языки пятого поколения (типа пролога) никакие алгоритмы не описывают — только ограничения. Чем SQL от них отличается (в этом аспекте)?
(собственно, SQL, как и многие другие DSL, часто относят к языкам четвертого поколения)
Так что чистый SQL все же является языком программирования (хоть и декларативным).
P.S. mird опередил
Либо два человека поняли криво.
Где же habralang?
Видимо, node.js — это не язык, а технология.
Простите, пожалуйста, не знал что Вы их разграничиваете. Уже пишу гневное письмо авторам, дескать, ребята, вы накосячили, Suvitruf же разграничивает. Прослежу чтобы поправили!
Обычно после такого начинают петь про то, что в 21-м веке язык неотделим от компилятора, рантайма и стандартной библиотеки, и всё это вместе только и можно называть языком.
А если уж вводить рейтинг библиотек/фреймворков, то возможно будет совсем другой расклад. Много ли вы знаете библиотек/фреймворков на Си? Зато на php их сотни если не тысячи:)
Много ли вы знаете библиотек/фреймворков на Си? Зато на php их сотни если не тысячи:)
Поверьте, на Си их в разы\десятки раз больше.
PS возможно я не прав, имхо, Delphi отличается от Pascal больше, чем Modula объявленная Виртом дальнейшим развитием Паскаля.
Что до изменения объектной модели — да, изменили. Как раз при переходе от TurboPascal к Borland ObjectPascal, е.м.н.и.п. В Delphi язык переименовали сильно позже. При том, что тот же язык реализован во вполне живом FreePascal, и тогда ещё живых Virtual и TMT Pascal.
Вот по этому я и написал про не слишком умный маркетинговый ход.
Хм. Всегда считал обработчики событий в Дельфи (ну или Лазарусе) реализованными на уровне не языка, но фреймворка (VCL/LCL).
И да и нет.
Вот обработчик сообщения:
procedure CMStart(var Msg: TMessage); message CM_START;
Привязка кода сообщения к обработчику есть в языке. Да, черной ассемблерной магии там под капотом — тоже выше крыши.
Опять же, если говорить об отличиях, важных шагом вперед является рефлексия и возможность доступа к полям во время выполнения. Не говоря о самих properties.
Думается мне, надо выбирать язык под задачу которой вы хотите заниматься, а там вам уже никакой рейтинг не поможет, обычно выбор весьма скромен и упирается в пару языков, где специалист уже сам разберется.
Если же человек только начинает программировать и думать, какой язык ему изучать, то пускай вначале изучит предложения о работе в его городе.
Так ведь и получаются рейтинги — видишь хороший язык, хочешь его изучить и поднять его рейтинг, потом смотришь в вакансии, смотришь в глаза менеджеру с табличой "bus factor" и в итоге выбираешь один из паршивых языков, который был вытолкнут рынком в топы ещё на рубеже веков, прибавляя и укрепляя его вес в рейтинге.
> в итоге выбираешь один из паршивых языков, который был вытолкнут рынком в топы ещё на рубеже веков
Который был тогда популярен и точно так же выталкивал другие языки, созданные ещё до вашего рождения. Ничто не меняется, это рынок, и в нём идёт борьба за клиентов. И все евангелисты, пропагандирующие Rust или GoLang, они именно промывают вам мозги, какой у них хороший товар, с ним ваша пи… производительность вырастет аж в полтора раза. Я сейчас не касаюсь качества тех или иных ЯП. Я пишу о том, что 10-15 лет назад такие же молодые и красивые, как вы сегодня, покупали блестящий delphi или FoxPro, а евангелисты того времени писали, насколько удобнее вот эта фишка, как круто поддерживается вот эта платформа и сколько % приростёт всё туда же. А в итоге выяснялось, что под лаком оказывался убитый хлам. А сегодня они вынуждены тащить этот выброшенный всеми хлам, потому что нет у них ресурсов на перезапуск. И ведь посмотрите, те же FoxPro или MFC, они были разработаны флагмоном, и их это не спасло. Нет оснований считать, что через 5 лет точно так же не будут выброшены ваши любимые ЯП в пользу новых блестяшек, а вы останетесь у разбитого mysql.
Новые нишы постоянно рождаются, туда может вообще любой самый непопулярный язык пролезть и обрести известность. Тот же R же как-то пролез через этот самый барьер.
Но для разработчиков это будет означать смену места работы и специализации, речь именно о том, что в текущей реальности программист на условной джаве не сможет сподвигнуть всех вокруг себя попробовать в новом проекте условный го, то есть по сути языки, которые сейчас мы видим в рейтингах являются бессменными монополистами на своей полянке уже лет десять.
видишь хороший язык, хочешь его изучить и поднять его рейтинг, потом смотришь в вакансии, смотришь в глаза менеджеру с табличой «bus factor» и в итоге выбираешь один из паршивых языков, который был вытолкнут рынком в топы
«Хороший» он хороший потому что вам нравится по ряду причин (субъективный фактор), или потому что он устоялся, под него написано множество библиотек, можно легко найти документацию?
Чтобы стать по-вашему-хорошим языком нужно попасть в замкнутый круг, потому что пользователи по-вашему-хороших на сегодня языков в свое время пришли в эти языки и использовали их даже в том состоянии, которое вы бы не назвали по-вашему-хорошим. И на тот момент, возможно, у людей даже не было выбора (взять хотя бы историю Питона), и со временем (которого уже нет у новых языков) те языки заматерели и обросли компонентами и сообществом. Но время изменилось и современное ИТ в ловушке — никто уже не будет отказываться от старого, хотя его косяки за всё время использования уже всем очевидны, но новое тоже использовать страшно. Получается, что каждый новый проект на старом языке это акт отрицательного отбора по критериям не технологий, а бизнеса (по-вашему-хороший).
Чтобы стать по-вашему-хорошим языком нужно попасть в замкнутый круг, потому что пользователи по-вашему-хороших на сегодня языков в свое время пришли в эти языки и использовали их даже в том состоянии, которое вы бы не назвали по-вашему-хорошим
Я говорю о том, что язык можно и нужно рассматривать как инструмент в конкретный момент времени, а не просто некоторую идею. Если инструмент позволяет решить задачу быстро и дешево, его вполне можно назвать хорошим. На данный момент, естественно. По аналогии — если у нас есть, например, перфоратор, но нет электричества, то ручная дрель будет более хорошим инструментом. Когда же распространенность электроинструмента приведет к тому, что электричество появится и в этой точке, перфоратор станет более хорошим инструментом, потому что позволит решить задачу быстрее.
Но время изменилось и современное ИТ в ловушке — никто уже не будет отказываться от старого, хотя его косяки за всё время использования уже всем очевидны, но новое тоже использовать страшно.
Потенциальная выгода от нового может быть неочевидна, или вовсе не существовать. Да, новое должно «проибиться», и пробьется если только имеет конкурентные преимущества.
Отрицательный отбор слышали?
> в мире полно людей, которые хотят просто программировать
В мире полно людей, которые хотят просто рисовать. Их на девиантарте можно найти. В мире полно людей, которые хотят просто петь. Их на тытубе и вконтакте навалом. В мире полно людей, которые хотят просто ездить. Некоторые из них — исплючительно по говнам бездорожья. В мире полно людей, которые хотят просто смотреть сериальчики. Абсурдная мотивация, они сумашедшие, не иначе.
Почему? Видимо, программировать — не мешки ворочить, кроме спины тут нужна ещё и голова. И в неё желательно не только есть, но и читать. И думать, о ужас!
Применительно к разработчикам можно сказать следующее. Существенное увеличение высококлассных специалистов, — например, разработчиков компиляторов, — приводит к тому, что появляются новые языки программирования, которые в чём-то лучше старых. Другими словами, происходит прогресс и развитие отрасли. А вот увеличение числа веб-разработчиков и разработчиков мобильных приложений приводит лишь к тому, что цены на разработку в этом секторе снижаются. Двоим приходится работать за зарплату одного и делать вдвое больше работы: два сайта для двух заказчиков вместо одного сайта для одного крупного заказчика. И работать приходится в два раза быстрее, поэтому они оба вынуждены использовать стандартные фреймворки, чтобы было хотя бы минимальное разделение труда. Каждый из этих разработчиков ощущает себя очень эффективным. Хотя общая эффективность всей системы остаётся прежней. Просто система растёт и внутри неё происходит перераспределение ресурсов. Никакого реального прогресса и развития всей системы не происходит. Число нужных сайтов более-менее постоянно. Просто они чаще переделываются. При этом отдельные разработчики ощущают то, что они активно развиваются. Можно сказать, что в их случае происходит «развитие на месте» (аналог «бега на месте»). Тратится куча усилий на приобретение новых актуальных навыков, однако ранее приобретённые навыки утрачивают актуальность примерно с той же скоростью.
HTML это HyperText Markup *Language*
А насчет XML – где вы видели программиста по xml? А вот программист по html называется верстальщик. Ну правда еще CSS надо знать. Но сам по себе CSS не имеет ценности, он специально для HTML и используется только с ним.
где вы видели программиста по xml?
Каждый день программирую на xml и Java :)
Но сам по себе CSS не имеет ценности
стили виджетов в Qt4+, темы в Gtk3+. Не всё, со своими нюансами, но всё же. Это то, что мне сходу вспомнилось, вполне возможно, что есть ещё применения.
Упрёмся ли в стену? Уже упёрлись, новые языки и методологии не решают первостепенных проблем. Конец? Нет, преддверие смены парадигмы. Увеличение роли ИИ в написании приложений, автоматическая оптимизация, генерирование программного кода из текстового описания задачи. Квантовые и оптические компьютеры, графеновые источники питания и сверхпроводники. У нас есть масса технологий, которые могут выстрелить. И будет новая итерация, и тогда я буду писать «ну вот, теоретические возможности оптического вычислителя практически достигнуты, достигнута огромная сложность. Не уж то стена?» И тогда уже мне какой-нибудь дерзкий молокосос будет писать, что, мол, чего ты боишься, ничего страшного, осваиваем же субатомные технологии, скоро получим новые стабильные виды атомов, и на них построим ещё какую-нибудь фигню.
Я попробовал написать пару оконных приложений для Windows 3.11 и уже в то время это оказалось сложновато, ибо количество кода, необходимое для самых простых вещей зашкаливало все разумные пределы
Оно на чистом Си действительно занимает много места, никакого ООП.
но если не случится какой-нибудь революции, то в какой момент нас настигнет «кризис сложности языков». Или я неправ?
В принципе, появление GO — как раз ответ на такой кризис.
Если говорить про C#, то синтаксис там наоборот упрощается и укорачивается. Никто вам не помешает программировать на версии года 2005, просто все будет многословней. Это сложность задач растет, сейчас в тренде асинхронное программирование повсюду. На версии 2005 года вы бы закопались реализовывать то, что сейчас получится реализовать с помощью гораздо меньшего количества кода. А "взрывает" мозг возможно из-за того, что C# все же другая парадигма программрования, в отличие от LabVIEW.
Тем не менее, многие рекрутинговые ресурсы предоставляют такой рейтинг. Например вот по UK.
По количеству проектов на GitHub несколько странно судить. Сравните средний размер библиотек на Java и на JavaScript. У JavaScript гранулярность гораздо выше. Вон пресловутый Azer Koçulu имеет больше сотни JS-репозиториев. Типичный выглядит как-то так.
Рейтинг языков программирования в 2016 году