LINUX.ORG.RU

Почему многим не нравятся следующие ЯП?

 


0

2

Например, Shell (я про sh, а не про bash), Perl (и вообще редко вспоминаемый Raku), Lua, JS. При этом массово пишут программы на Python (странный ЯП, логику написанной программы можно сломать одним пробелом и даже не пикнет, что программист ошибся).

Неосиляторы. Если коротко. Perl просто мертв, его учить не умеет смысла, а поэтому любые утилиты на нем автоматом легаси. От JS горит жопа у «тру-погроммистов», которые тут три страницы пытались обычный str.split реализовать.

При этом массово пишут программы на Python

Он во всех дистрах встроенный

даже не пикнет

а ты для начала проверь

rtxtxtrx ★★
()

Формулировка «многим не нравятся» с одной стороны, логически наиболее корректна, с другой не очень информативна: любой более-менее распространённый ЯП многим не нравится. :)

По шеллам мне лично не очень нравится синтаксис, я считаю, что в качестве системного языка сценариев можно было бы сделать что-нибудь менее вырвиглазное. Тем не менее, свою функцию они выполняют. Перл – хорошая строкодробилка, другое дело, что читать то, что даже ты на нём написал, гораздо сложнее, чем писать.

Питон же, по сути – современный аналог классического Бейсика, языка программирования для непрограммистов. В этой нише он, считай, почти идеален. И именно поэтому его не стоит тащить в большие проекты, где нужна поддерживаемость, предсказуемость, надёжность. Но тем не менее, тащат. Почему? А потому же, почему Windows 95 победила OS/2, которая была наголову выше по всем показателям (и даже тормозила меньше на одинаковом железе). Винда укоренялась с квартир и мелких офисов и оттуда проникала всюду как саранча, по меткому выражению Линуса. Айбиэмовские же маркетологи квартирный рынок вообще за рынок не считали – и проиграли.

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

Shell, Perl - очевидно эзотерические синтаксические неоперабельные уроды (shell хотя бы специализация спасает) , Lua никакой.

не пикнет

Вообще-то жёстко с багой вываливается

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

А почему нужно заострять внимание на ЯП? 🤔️

Если использовать {с/с++ : libcurl, python : pycurl, ruby : curb} (это к примеру – есть ещё expat/libxml2, icu/.. etc); то ценность выбора ЯП и профессионализма/любительства в программировании несколько размывается😀️

Налицо жонглирование библиотеками с клеем из ЯП))

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

так и питон просто зависимость

раньше perl входил в группу base, а питон - нет

сейчас арч например можно поставить и без них обоих

нет. это зависимость гита, autoconf и тп

тп - это dpkg? :)

например в арче

pkgname=dpkg
pkgver=1.22.6
pkgrel=1
pkgdesc='The Debian Package Manager tools'
url="https://tracker.debian.org/pkg/dpkg"
depends=('xz' 'zlib' 'bzip2' 'zstd' 'perl' 'libmd')
makedepends=('perl-io-string' 'perl-timedate' 'git')
checkdepends=('perl-io-string' 'perl-test-pod')
sergej ★★★★★
()

shell я не видел, чтобы здесь хейтили. да и лор - местечко такое себе. действительно специалистов, по сравнению с теми, которые отвечают например на unix stack exchange, здесь пожалуй что нет ни одного.

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

raku хейтят: фанаты пёрла - за сломанную обратную с пёрлом обратную совместимость. хейтеры пёрла - за смешное название и за родственность ему.

lua нишевая вещь. порой используется для автоматизации, например в том же pandoc, поэтому знать её чуть-чуть бывает полезно

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

rust же

я тут кстати читал блог какого-то крутого чувака. и у него там faq. и там вопрос: what you think about language xyz? и его ответ: типа пока я не написал на каком-либо языке минимум 100 тысяч строк, моё мнение ничего не стоит

anonymous
()

Например, Shell (я про sh, а не про bash)

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

firkax ★★★★★
()

Потому что люди разные и вкусы у всех разные, кому-то нравится одно и люто противно другое, а кому-то наоборот.

// Ваш К.О., даже не читавший, что вы там неперечисляли, потому что это не имеет никакого значения.


upd: хотя ладно, почему JS не нравится, можно отдельно добавить — потому что это убогий недоязычок, склёпанный на коленке за неделю, с которым приходится возиться, потому что для веба альтернатив нет (совсем недавно появились, ок, но есть свои подводные). Его, конечно, со временем немного довели до ума, теперь кодить на нём не такая боль, как было раньше, но всё равно боль. При его проектировании (если это можно так назвать) понаступали на все возможные грабли.

А Shell мне, кстати, нравится, например. Но не для всего, а там, где он подходит.

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

Я бы не сказал, что примитивные действия. Его очень много в FreeBSD и там он весьма серьёзную роль играет. Только скрипты очень хорошо почистили от bash, чтобы от версии к версии sh не возникало проблем. И скрипты эти не на одно сотню строк, порой из нескольких составных частей состоят и даже с переводом диалогов.

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

Я не расист, я одинаково ненавижу все языки (ц)

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

Но для некоторых языков костыли видны сразу.

soomrack ★★★★★
()

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

Простой пример: выучил js и реализует вообще все, включая бизнес логику на бекенде на нем. Использовали бы js только для фронтенда (запросы от браузера на сервер, разбора ответа в браузере от сервера и манипуляции DOM Дерева/Canvas) - вопросов бы не было.

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

Простой пример: выучил js и реализует вообще все, включая бизнес логику на бекенде на нем.

«Потом конечно его в дурку забрали» (фолькл.) И ведь народ над этой прибауткой смеялся 10 лет назад. Сейчас уже не смеются…

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

Перл – хорошая строкодробилка, другое дело, что читать то, что даже ты на нём написал, гораздо сложнее, чем писать.

Попробуй Tcl. Строкодробилка из него не так хороша как из Perl, но зато не write-only.

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

Вопрос безобразно некорректный и широкий, тем не менее выскажусь. Я бы предложил смотреть на всё с политэкономической стороны. Мне кажется мы вступили в эпоху падения титанов. На верхушке рейтингов через 3-5 лет станет очень тесно и 100 цетов больше не расцветёт никогда. Как не будет 10 невидий или 100 штеудов. Идея думаю понятна. Думойте.

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

Я не расист, я одинаково ненавижу все языки (ц) Ну логично :) Одни языки любят, а на других программируют(С) кто то умный :)

Ну и ещё банальностей в корзину:

  • на вкус и цвет все фломастеры - разные(С) Два программиста даже на одном языке одну и ту проблему разрешат по__разному :)
  • как следствие => нет «одного кольца чтоб править всем»(С), есть куча языков с пересекающимся областью применения и юзер базой. …
  • ChatGPT и AI иже с ними нивелирует всё в ноль, учитесь программировать на том языке на котором говорите\пишите.

Как то так…(С) :)

anonymous
()

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

perl - в целом пользоваться можно, но спец. закорючки на ровном месте. Все нормальные языки нормально работают без обозначения переменных, массивов и словарей спец. закорючками. Пёрлу это надо, причём обязательно. Какие это даёт плюсы не понятно совершенно. Ну и то, что пёрл6 с поддержкой utf-8 фактически умер в позе раком тоже не плюс.
Питон во всём лучше.

lua - индексация массивов с 1. Больше про него ничего не знаю.

JS - https://www.destroyallsoftware.com/talks/wat

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

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

Так думают нормальные люди. А разработчики питона думают, что можно после python2 сделать python3 и полностью прекратить поддержку python2.

Из скриптовых языков я пока смотрю на Lisp и пока не вижу серьезных минусов. Это не значит, что их нет. Просто я не вижу. Буду рад, если кто-нибудь укажет на критичные (или некритичные) недостатки Lisp как скриптовго языка.

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

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

А в чём проблемы питона с поддерживаемостью, предсказуемостью и надёжностью относительно других интерпретируемых ЯП?

Ivan_qrt ★★★★★
()

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

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

А в чём проблемы питона

с поддерживаемостью,

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

предсказуемостью

обратная совместимость регулярно ломается

ну и надо все делать по максимуму immutable, иначе быстро начнут всплывать нюансы языка…

и надёжностью

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

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

поддерживаемостью, предсказуемостью и надёжностью

Чтобы все это было в большом проекте на питоне нужна железная самодисциплина, и писать надо в стиле java, что на корню убивает краткость и выразительность питона.

Альзо, хороший язык - это тот на котором писать комфортно. Если субъективно некомфортно - никакие объективные причины чтобы назвать язык говном не нужны. Программист не винтик, он человек.

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

А в чём проблемы питона с поддерживаемостью, предсказуемостью и надёжностью относительно других интерпретируемых ЯП?

https://www.opennet.ru/opennews/art.shtml?num=61375

«помимо новых возможностей и оптимизации производительности внесены изменения в ABI, Python API и C-API, нарушающие обратную совместимость»

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

От JS горит жопа у

тех, у кого 1+1 не равно 11

которые тут три страницы пытались обычный str.split реализовать.

толсто, даже на няшной сишечке оно реализуется меньше чем на 1024 байта кода.

annerleen_temp
()
Последнее исправление: annerleen_temp (всего исправлений: 2)
Ответ на: комментарий от CrX

почему JS не нравится, можно отдельно добавить — потому что это убогий недоязычок, склёпанный на коленке за неделю, с которым приходится возиться, потому что для веба альтернатив нет

Разве не всё равно, за сколько он там был склёпан? Писать на нём легче, чем на многих прочих, особенно с принудительно-карательной статической типизацией. Вот стандартная библиотека его да, вызывает некоторые вопросы. По сути, её нет.

Shell мне, кстати, нравится

Санитары! %)

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

Разве не всё равно, за сколько он там был склёпан?

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

Писать на нём легче, чем на многих прочих

Ну определённо легче, чем на брейнфаке и даже легче, чем на ассемблере, это точно :)

Смотря с чем сравнивать.

особенно с принудительно-карательной статической типизацией

Это да, немного выправляет ситуацию. Но не полностью.

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

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

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

Просто такая дурь не приходила в голову никогда никому при создании любого другого языка. Даже char* в Цэ ближе к реальному миру, даже любой макроассемблер...

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

sh

попробуй на нём писать что-то серьёзнее однострочника, bash приятнее

Perl

на нём только патч Бармина писать, слишком уж он поощряет такое

Raku

ХЗ что за зверь, пусть там и сидит где сидит, даже знать про него не хочу

Lua

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

JS

Не менее популярен чем питон, его не любят за то что фронтэнд в целом ужасен и меняется постоянно, а не за то что он сам такой.

При этом массово пишут программы на Python

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

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

raku хейтят

Раку в сраку. Сколько его пилили? 20 лет? И получилось в общем непотребное говно. Но полезные идеи из сраки уже почти перенесли в перл. Классы, поля, try/catch. В последних релизах перл стал вполне современным языком.

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

С js ещё главная проблема - фигачить код без проверки типов.

Если js используется по назначению, то в случае запросов все типы внутри отправляемых данных (formdata/json/protobuf/etc), при разборе ответа от сервера используются данные тех типов которые вернул сервер, а при манипуляции с DOM-деревом динамической типизации js более чем достаточно, потому что в DOM используются простые (базовые) типы данных. И проблемы проверки типов просто не возникает.

Вот когда начинают использовать js не по назначению, пытаясь писать бизнес-логику приложения, вот тогда и вылезает что язык-то не предназначен для этого. В результате начинается «а давайте засунем статическую типизацию в js и обзовем это ts» не понимая что это не выход, а умножение костылей на баги. Ведь это попытка охватить большую область применения языка оставаясь внутри его уровня, не уча новое ибо «слишком сложно и слишком долго».

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

А чем нода хуже условного питона или пыхпыха?

Тем что это однопоточный диспетчер очередей на языке который для этого не предназначен. Особенно не предназначен для задач требующих ресурсов проца т.к. они внезапно - блокируют единственный поток выполнения во время своей работы.

Obezyan
()

Shell (я про sh, а не про bash)

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

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

Его очень много в FreeBSD

Только скрипты очень хорошо почистили от bash, чтобы от версии к версии sh не возникало проблем

Чего-чего? У тебя какая-то каша в голове.

Если что, баша (и скриптов для него) в фрибсд никогда не было, хоть его и можно поставить отдельной прогой. А «версия sh» в фрибсд это версия ОС.

firkax ★★★★★
()