LINUX.ORG.RU
ФорумTalks

Как определяется нужность/ненужность языка программирования?

 ,


0

2

Не срача ради, а образования для. Хочу понять природу ненависти.

Приведу пример. Есть язык X. Любим старичками, применяется везде, на нём пишется всё. Но тут появляется язык Y. Как X, но в некоторых аспектах он лучше или удобнее. И тут старички начинают возмущаться: как так, быть такого не может, почему бы просто не выучить X и не выпендриваться? А ведь Y даже в конкуренцию не метит, ибо зачем?

Так какова природа такой ненависти? Почему просто нельзя принять чужой выбор?

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

Все совпадения с реальными языками случайны.

Перемещено xaizek из development

Если Вас интересует объективность, есть регулярно публикуемые рейтинги какой ЯП как часто используется. А всё остальное это безусловно важные мнения уникальных личностей, которые для рационально мыслящих людей не имеют никакой ценности.

erfea ★★★★★
()

Как и во всём у приматов, нужность языка определяется громкостью криков в его поддержку. Если удаётся перекричать оппонентов, то язык годный.

cocucka ★★★★☆
()

Старичкам лень учить новые фичи и усовершенствованные подходы, они в силу своей работоспособности и мотивации, понижающихся с возрастом, просто ворчат. Просто, вот так просто все просто.

anonymous
()

Кому нужно? Для чего нужно? Язабан

BceM_IIpuBeT ★★☆☆☆
()

Как определяется нужность/ненужность языка программирования?

Разумеется, тредом в толксах, как же ещё-то?

sT331h0rs3 ★★★★★
()

нужность\ненужность определяется по таблице соответствий

если язык называется C, С++, Java, JS, Python - он нужный, им пользуются.

остальные языки страдают. назвались бы правильно - был бы шанс.

olelookoe ★★★
()
Последнее исправление: olelookoe (всего исправлений: 1)

Нужный - тот, за который можно макаке поменьше платить. Го, например

TooPar
()

Языки не нужны. Это наказание за грехи программистов.

«И сказал Господь: вот, один народ, и один у всех язык; и вот что начали они делать, и не отстанут они от того, что задумали делать; Сойдем же и смешаем там язык их, так чтобы один не понимал речи другого.»

vaddd ★☆
()

Очевидно определяется специалистом по всему - анонимусом. Ты регистрант, тебе не понять

cobold ★★★★★
()
Ответ на: комментарий от Jetty

до сих пор не пойму что такого нашли в питоне, чего нет в перле…

Адекватность и как следствие присутствие нормальных библиотек для работы со всем.

windows10 ★★★★★
()

Хочу понять природу ненависти

нет никакой ненависти (если случай не клинический)

И тут старички начинают возмущаться

треп в интернетах ты называешь «возмущением»? Иногда людям просто нечего делать (ну там, ждут результатов моделирования или ждут часовую компиляцию проекта)

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

Востребованность в индустрии, когда знание данного ЯП позволяет создавать реальные полезные для общества системы, и делать это в течение длительного временного интервала (а не просто прибежал-наложил-убежал).

seiken ★★★★★
()

Как определяется нужность/ненужность языка

Примерно так.

Gonzo ★★★★★
()

Динамическая типизация -> ненужно.

Нет исключений -> ненужно.

Толстый рантайм -> ненужно.

Ненастоящие потоки -> ненужно.

Есть некоторые исключения: Rust, Java.

Legioner ★★★★★
()

10-20, ну, допустим, 30 нужных языков есть на свете, у каждого какие-то преимущества имеются под какой-то домен (никзкоуровщина, скриптуха, мобилки, фронт, галерный херак-херак etc.), а всё остальное вносит лишь фрагментацию. Так что появление нового языка без веской аргументации, нахрена оно надо, воспринимается соответственно. Те, кто защищает высеры каждого nih-синдромщика — попросту ванильные дурачки.

WitcherGeralt ★★
()
Ответ на: комментарий от Nastishka

Котёл никаких проблем, кроме повышения капитализации JetBrains, не решает, в отличие от Rust.

WitcherGeralt ★★
()
Ответ на: комментарий от seiken

Иногда в индустрии оказывается востребована всякая дрянь без каких-либо технических предпосылок. Это либо коллективное безумие AKA «мода», либо амбиции какой-то отдельно взятой корпорации, либо вовсе случайное стечение обстоятельств. Если вдуматься, то примеров полно.

WitcherGeralt ★★
()
Ответ на: комментарий от anonymous

«Старичок» уделывает любого молодого хоть по мотивации хоть по работоспособности, это, дружок, не хоккей. Единственный способ обнулить знания старичка вместе «ненужностью» языка. Просто, вот так просто все просто. А молодые только понтуются, еще ничего не сделали, но выпендриваются, защитная реакция.

ilovewindows ★★★★★
()
Последнее исправление: ilovewindows (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

В пайтоне нет ООП, а что выдается в качестве ООП так обкостылено, что мама не горюй. К слову ООП в перле на довольно высоком уровне, хотя он там по большей части не нужен...

Jetty ★★★★★
()
Ответ на: комментарий от windows10

В питоне нет нормальных библиотек, а прикрученные колеса - банальная попытка склонить сипан. А биндинги так воопще ужос...

Jetty ★★★★★
()

Блин, это толксы и тред опять потонет.

определяете нужность/ненужность языка программирования

можно сравнить язык X и язык Y по следующим параметрам, отвечая «Да» или «Нет»:

  1. есть больше 3х человек умеющих писать код на этом языке и которых можно нанять на работу
  2. тулчейн удобен
  3. управление зависимостями удобно
  4. есть много библиотек
  5. есть современные фреймворки
  6. можно удобно дебажить
  7. можно удобно тестировать
  8. можно удобно поставлять без контейнеров
  9. поддерживается репозиториями артефактов

у кого больше «Да», тот нужнее.

  • термин «много» определяется как «больше чем нужно»
  • термин «удобно» определяется здесь как «удобно», а не «дрочить вприсядку». если человек которому показали два автомобиля производителей АвтоВАЗ и Mercedes-Benz с просьбой соотнести слово «удобно» с автомобилем выберет Mercedes-Benz - он понимает этот термин достаточно хорошо.
  • термин «современные» определяется в рамках жизненного цикла программного продукта, а не жизни человека. это означает, что «современным» является тот продукт, последний релиз которого был не менее полугода назад.
system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Не переживай, все хорошо. Просто когда и в одно и в другое умеешь, то взгляд проясняется :)

Jetty ★★★★★
()

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

Были исследования, что люди вообще плохо принимают чужой выбор и их сложно переспорить, особенно если довольны тем, что имеют. В общем ещё один cognitive bias.

mydibyje ★★★
()

Ближе всего к истине ответ выше:

Востребованность в индустрии, когда знание данного ЯП позволяет создавать реальные полезные для общества системы, и делать это в течение длительного временного интервала (а не просто прибежал-наложил-убежал).

Вот представьте себе. Жил-был язык X. Развивался довольно долго. На нём ещё и писали. И написали много полезного.

А тут появляется язык Y. И начинают писать на нём. А будут ли развиваться старые опенсорсные программы, написанные на X? Уже довольно давно можно слышать жалобы: «это написано на Си, поддерживать это невозможно». А в последнее время, пока не очень громко, то же самое начинают говорить про C++. Программисты начинают ваять с нуля на новом языке, на старый забивают.

А сейчас ещё и бегут в разные стороны: кто-то на Rust, кто-то на Go, кто-то, возможно, на Vala. А если вдруг потребуется объединить их усилия?.. Опенсорс отбрасывается на несколько лет назад.

Я не случайно подчёркиваю, что речь именно про опенсорс. Коммерция может ваять свои закрытые поделия на чём угодно, если есть ресурсы. Но кстати, внезапно, именно коммерция в этом плане очень консервативна и неспроста. Потому, что считает деньги.

Проблема была бы менее острой, если межъязыковое взаимодействие было более гладким. Для этого, на мой взгляд, нужен кросс-языковый стандарт на модули. Не на объектные файлы, как сейчас, а именно на модули. Объектный файл — это только часть модуля. Модуль должен запоминать, что откуда он экспортировал. Вот если я в объектном паскале написал uses, после компиляции уже известно, куда лезть за скомпилированным кодом. В C/С++ известно только, что есть такое неразрешённое имя, искать будем везде.

И сами имена должны сохраняться в таком формате, чтобы линкер, обрабатывая объектник от языка Y, нашёл в объектнике от языка X не просто имя, а имя функции/метода/переменной определённого типа и с соответствующими параметрами. Насколько я понимаю, сейчас такое умеет C++ для функций и методов, которые откомпилированы только в C++ же. А с другими языками?.. Впрочем, в этом пункте мои знания могут быть устаревшими.

И даже наличие стандарта на модули всех проблем не решит. Разные языки используют разные рантайм-библиотеки. А хуже всего, когда надо наладить взаимодействие нативно компилируемого кода с чем-то ещё. Как-то проблему решили в Java (JNI)…

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 3)

Тут надо отметить одну деталь. Язык может быть очень хорошим, но при этом ненужным. Например, D или Nim - отличные языки, но не нужны, а C++ - язык для мазохистов, но нужен.

Нужность определяется не самим языком, а его окружением: фреймворками, IDE, библиотеками. Например, есть у вас хороший ЯП, но будет ли на нем так же удобно писать сайт, как на PHP или Python? Будет на нём так же удобно делать программу с GUI как на Delphi или C#? Нет? Ну и не нужен этот ваш ЯП, на котором так круто в очередной раз посчитать факториал и числа Фибоначчи.

Если говорить о Rust, то у него маркетинг не совсем правильный. Если вы хотите привлечь программистов C++, то надо позиционировать Rust как более мазохистский язык. А позиционируется почему-то как более удобный. Хотя если судить по последним отзывам, сейчас уже поняли этот промах, исправляются.

Kogrom
()
Ответ на: комментарий от Kogrom

Если вы хотите привлечь программистов C++, то надо позиционировать Rust как более мазохистский язык.

Ну это спорно. Я вот не отказался бы от ++C++, в котором есть модули (в последний стандарт добавили, но приживётся ли, пока не ясно) и человеческие строки с многоязычностью из коробки (тоже, вроде, что-то запилили, с юникодом, но с инопланетным синтаксисом, QString из QtCore по-прежнему удобнее, чем std::string).

Мне не нужен мазохизм, мне нужно сочетание удобства с эффективностью. И такое возможно (D или тот же объектный паскаль). Вот почему в Rust не сделали полноценного наследования? Я так понимаю, именно мазохизма захотелось…

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Мне не нужен мазохизм, мне нужно сочетание удобства с эффективностью. И такое возможно (D или тот же объектный паскаль).

Вот я и говорю, что есть нормальные языки. Но что-то же заставляет смотреть в сторону ненормальных. Даже для C++ есть Qt, удобно вроде, но что-то это как-то не по плюсовому, когда удобно. Давайте лучше бодаться с неудобными строками.

Kogrom
()
Ответ на: комментарий от WitcherGeralt

Иногда в индустрии оказывается востребована всякая дрянь без каких-либо технических предпосылок

«Иногда»? Ты сейчас серьезно?

byko3y ★★★★
()

Зачем нужен русский язык? Он же говеный. Discuss.

byko3y ★★★★
()
Ответ на: комментарий от Kogrom

Если говорить о Rust, то у него маркетинг не совсем правильный. Если вы хотите привлечь программистов C++, то надо позиционировать Rust как более мазохистский язык. А позиционируется почему-то как более удобный. Хотя если судить по последним отзывам, сейчас уже поняли этот промах, исправляются

Язык C++ популяризован не программистами, а эффективными манагерами. Это потом уже, как обычно, программисты массово пошли по протоптанной дорожке.

PS: причем, что характерно, большая часть населения комитетов по стандартизации C++ — это опять таки манагеры и вахтеры, а программистов там очень мало. Просто читаешь краткие анкеты каждого члена комитета, и прям чувствуешь, как он всеми силами пытается увернуться от вопроса про «какие программы вы написали» — потому что никаких программ он не писал.

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от Kogrom

…отличные языки, но не нужны

…язык для мазохистов, но нужен

Так вот оно что.

LikeABoss
() автор топика

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

ananas ★★★★★
()
Последнее исправление: ananas (всего исправлений: 1)
Ответ на: комментарий от next_time

ООП здесь при чём? Тёплое с мягким путаешь.

Приватные атрибуты и методы есть (работают через переименование), защищённых нет, используются подчёркивая.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

ООП - в первую очередь про разделение консистентных публичных методов и неконсистентных приватных. Инкапсуляция, наследование и полиморфизм - это уже дело второе, оно даже в Сишке делается.

next_time ★★★★★
()
Ответ на: комментарий от dynamic

В том сообщение это было субъективное мнение, конечно. Если говорить о критериях, то язык должен оптимально подходить для определённой области применения.

Например, системные библиотеки и микроконтроллеры - си. Вэб - Python и PHP. Приложения - объектный паскаль (о котором упоминалось в моём сообщении) и C#. C++ относится непонятно к чему, он не оптимален ни для одной области. Разве что для игр, мультимедийных приложений.

Но и тут не всё просто. Существуют две мультимедийные библиотеки: SDL и SFML. Первая создана на C, вторая на C++. Почему-то первая более популярна (28 400 000 результатов поиска в google против 556 000).

Kogrom
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.