LINUX.ORG.RU

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

 


0

2

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

sh

На нём лучше вообще не писать программы.

Perl

Write only, не модно, протухло.

Lua

Массивы с единицы, стандартная библиотека пустая, в общем подходит только для написания скриптов для программ, куда встроили её интерпретатор.

JS

npm install leftpad

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

sh
На нём лучше вообще не писать программы.

А пишут и много. Сейчас мода пошла на шелл скрипты по нескольку тысяч строк. Чем они лучше перла? А ведь perl как раз и создавался, чтобы не писать длиннющих и кривых портянок на шелле.

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

ChatGPT и AI иже с ними нивелирует всё в ноль, учитесь программировать на том языке на котором говорите\пишите.

На «естественном» языке тупо не эффективно выражать алгоритмы, та же математика гигантский импульс получила перейдя с естественного языка на формулы. Так что это шаг назад. Но на самом деле хайп спадет и все эти gpt будут еще одним вариантом nocode визуального графического программирования и тому подобного мракобесия.

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

Питон же, по сути – современный аналог классического Бейсика, языка программирования для непрограммистов.

Ну ты сказал. С него большинство профессиональных программистов миллениалов начало свою карьеру.

В эпоху БК и спектрумов джавы не было.

Зы. И да, классический Бейсик (тот самый с GoTo и GoSub) до сих пор используется в Enterprise Mobility. А не СИ.

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

По поводу отслеживания ошибок в Shell это факт. Касаемо синтаксиса, так тут вопрос привычки.

Конструкции языка в Perl наоборот понятные, сразу видно, что ожидать. А то, что он позволяет писать нечитаемое, так это к программистам типа оверинженер вопросы. Тараканы тоже есть, например, 0123 это не 123, а 83. Это даже поинтереснее закорючек.

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

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

Как-то ts не похоже на «оставаясь внутри его уровня», он больше похож на C# прикидывающийся js, и трюки с типами там уже вполне соревнуются не только с C#, но и C++ и rust, но да до хаскеля пока еще не дотягивают, так что новое точно придется учить если хочешь освоить на приличном уровне.

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

Ну ты уже определись – миллениалы или БК со спектрумом.

У меня да, бейсик был одним из первых языков, но я сильно постарше миллениалов буду. И было это не от хорошей жизни, как только курсе на 3-4 под рукой оказался аналог IBM PC под названием ЕС-1840, я очень быстро сбежал с бейсика на паскаль.

В писишном бейсике, кстати, прикольные вещи были, например, DRAW и PLAY.

P.S. И да, я на паскаль сбежал после того, как написал на бейсике программу в 2000 строк. Для языка с GOTO, GOSUB и глобальной областью видимости это запредельный край, за которым програмиа превращается в нечитаемое говно. К примеру, в Фортране, который папой бейсика считается, были полноценные подпрограммы и локальные переменные. Но Фортрана на домашних персоналках из 80х не было, к сожалению. Так что я знаю, о чём пишу.

P.P.S. А ещё был ассемблер, на тех 8-разрядных компах это вообще был последний довод королей. А для гурманов ещё Форт.

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

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

Без малого на 2К строк устроит?

https://github.com/freebsd/freebsd-src/blob/main/usr.sbin/bsdinstall/scripts/zfsboot

Причём, обратите внимание на f_include в коде. Этим подключено ещё больше десятка тыс строк на sh.

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

Логика тоже перешла на формулы и стала математической. Как это нивелирует формальную логику без формул и символов?

Если ты арифметику не освоил (массово не знают таблицу умножения из-за куркуляторов), то алгебра не поможет.

Если ты формальную логику не освоил, формулы не помогут.

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

Также и с программирование. Синтаксис языка не поможет, если ты не знаешь, что программировать (убивал бы таких программистов, ибо делают то, что сами не знают). Но если ты в совершенстве знаешь, что нужно описать на искусственном языке (любой ЯП намного проще естественного языка), то нагородишь многоэтажные конструкции и опишешь нужные действия. А сейчас как делают? Огромный пласт пустого места, берут готовую библиотеку не вникая в детали и создают программу. Ясен пень, будут ошибки, ибо оперирование неизвестным идёт.

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

Мальчик, в определённых областях ты с классического Бейсика никуда больше не сбежишь.

Так что про нечитаемое говно ты расскажи бабушке на скамейке.

А реальный Энтерпрайз на этом крутится. И никуда с этого как его ты называешь говна он не уйдёт.

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

Совой первый язык программирования Бейсик осваивали на БК или спекки только миллениалы. В школе.

Непрограммисты сидели на Денди, непрограммисты с богатыми родителями на Сеге и Нинтендо.

Ваш капитан очевидность.

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

И бухгалтера на счётах успешно считали. Появились компьютеры, к ним обслуживающий персонал и программисты. БД выросли так, что терабайный диск ничтожным стал (15 лет назад в пару гигов БД считалась большой). К бухгалтерам и экономистам добавились всякие аналитики и менеджеры. При этом бухгалтеров меньше не стало, про АСУ как-то особо редко вспоминают (многие и вовсе не знают).

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

Такую страну просрали!

Хотя нет.. Сейчас ведь российский ати широко шагает в сторону этих вот самых советских АСУ.

И это правильно! Первая страна в мире, где закон Мура был инвертирован!

TurboPascal79
()

Все sh страдают от сомнительного синтаксиса и проблем с кавычками чисто из-за строгой необходимости обратной совместимости по причине специфики применения шелла.

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

Lua это в основном встраиваемый язык, с миниатюрным интерпретатором, самостоятельные проекты на нём есть, и весьма неплохие, типа prosody, но его KISS и наплевательство на современные модные веяния не оставляют ему шансов в современном IT.

JS как лёгкий интерпретируемый язычок весьма неплох, и в принципе мог бы даже потеснить Lua после того, как Фабрис QuickJS написал. Но у JS есть фатальный недостаток - вебмакаки, которые превратили JS в библейскую саранчу современного программирования.

Python отвратителен своей идеологией (типа «надо срочно запилить python3 несовместимый с python2 и дропнуть python2 чтобы заставить всех всё переписывать») и сектантами в корпорациях. Выродился в современную замену корпоративной жабы, в общем-то. Тормозит даже больше, но хотя бы памяти жрёт поменьше. И эти питоньи яйца ещё… Буэ.

Из забавных язычков с большой вероятностью присутствующих на компах с линуксом искаропки ещё tcl есть, lisp и внезапно awk. До них лапы улучшаторов и инноваторов, к счастью, не добрались, так что с ними всё хорошо.

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

Не понимаю, при чём тут политика? Описанное мною справедливо ко всему миру. Сейчас ставку делают на ИИ. Я вообще пишу о том, что много бесполезного появилось. При этом идёт бурная деятельность подобно мастурбации.

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

А вот Generation X сидело на Электронике БЗ-21.

Вот я как раз из этих. Начинал с ПМК (Б3-21, МК-61) и параллельно «Мир-2» с перфолентой в качестве накопителя, печатной машинкой CONSUL в качестве клавиатуры и монитором со световым пером в качестве мыши (институт шефствовал над нашим школьным кружком, 8 класс, все дела). Уже потом был бейсик, фортран и всё остальное.

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

А реальный Энтерпрайз на этом крутится. И никуда с этого как его ты называешь говна он не уйдёт.

Реальный энтерпрайз дофига на чём крутится, начиная с джавы и кончая всякими узкоспециализированными язычками. Зависит от отрасли и фазы Луны.

Если в какой-то из отраслей используется классический бейсик (охотно верю) – пусть крутится, но нечитаемым он от этого быть не перестаёт. (Ну или ты чего-то недоговариваешь, и вдобавок к GOTO и GOSUB там добавили что-то ещё – но сильно на этой гипотезе я не настаиваю.)

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

P.S. А по поводу «никуда не уйдёт» – я бы не стал на этом категорически настаивать. Возможно, лет через 5 достаточно будет одного настырного бизнесмена с командой толковых инженеров, чтобы перебаламутить всё болото. Коммерческие юниксы за сотни нефти тоже думали, что с них никуда не уйдут, хи-хи. Всё течёт, всё изменяется, как сказал мудрец.

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

Почему ты против Goto и GoSub? Ты для БК программы писал? Меню делал? Сколько там было пунктов? Максимум 5..6. О, ужас! Только глобальные переменные и отсутствие функций!

Ради единоразовой разработки прошивки для клиентского ТСД с пятью пунктами меню (больше на экран не поместится) тащить туда якобы няшный Си, который работает только в защищенном режиме MS DOS - это самоубийство.

Запомни: структурное программирование это лишь средство. А не цель.

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

Perl просто мертв, его учить не умеет смысла, а поэтому любые утилиты на нем автоматом легаси

С перловкой не всё так просто

app-crypt/mhash-0.9.9.9-r3 (dev-lang/perl)
app-i18n/man-pages-l10n-4.19.0 (dev-lang/perl)
app-office/libreoffice-24.2.4.2-r1 (dev-lang/perl)
app-text/docbook-sgml-utils-0.6.14-r6 (>=dev-lang/perl-5)
app-text/openjade-1.3.2-r9 (dev-lang/perl)
app-text/xmltoman-0.6 (dev-lang/perl)
dev-build/autoconf-2.13-r8 (dev-lang/perl)
dev-build/autoconf-2.71-r7 (>=dev-lang/perl-5.8)
dev-build/automake-1.16.5-r2 (>=dev-lang/perl-5.6)
dev-lang/nasm-2.16.01-r1 (dev-lang/perl)
dev-libs/hyphen-2.8.8-r2 (dev-lang/perl)
dev-libs/libical-3.0.18 (dev-lang/perl)
dev-libs/nss-3.90.2-r1 (dev-lang/perl)
dev-libs/openssl-3.0.13-r2 (>=dev-lang/perl-5)
dev-libs/snowball-stemmer-2.2.0 (dev-lang/perl)

Просто так вырезать перл из дистра не получится.

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

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

Не во всех, но в большинстве.

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

Почему ты против Goto и GoSub? Ты для БК программы писал? Меню делал? Сколько там было пунктов? Максимум 5..6. О, ужас!

По этой логике и питон совсем неплох. Для программ такого уровня его слабые места некритичны.

Запомни: структурное программирование это лишь средство. А не цель.

Та я не против. Просто по мере возрастания сложности сначала структурное программирование, а потом и ООП становятся НЕОБХОДИМЫМИ средствами для достижения цели. Ну то есть можно и без них, но цена за обхождение без них неимоверно высока.

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

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

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

Как именно может возрасти сложность в программе:

Сканируй перввй ШК с префиксом LP

Сканируй второй ШК с префиксом LP

Если второй ШК имеет определенную длину, то

Не требовать ввода количества и записать в поле 1

Иначе требовать обязательного ввода количества как целого положительного.

Повторить

Выйти в главное меню из цикла сканирования при нажатии ESC

Зы. И да, производитель сам думает, что для программирования этой логики не нужны ни циклы, ни условия. Серьёзно

TurboPascal79
()

sh

На нем пишут только скрипты.

Perl

Мертв и никому не нужен.

Lua

Массивы с единицы.

JS

Погромисты на нем испортили языку репутацию, ООП странное, пытаются приделать куда угодно(Node.js, Electron).

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

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

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

В целом со всем этим можно согласиться, только вопрос был относительно других интерпретируемых языков. И он по-прежнему открыт: в каких хоть как-то развивающихся интерпретируемых языках дела обстоят лучше? У языков на грани смерти, конечно, обратная совместимость не ломается, но вряд ли это повод их использовать.

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

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

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

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

А уж так, чтобы обратную совместимость сломали непредсказуемо это вообще нонсенс. В питоне как раз всё вполне предсказуемо: либо работает, либо упадёт с портянкой stacktrace’а.

Я уж молчу о том, что для питона есть вполне хорошая система типизации (лично я пользуюсь по полной), и она позволяет проверять код не сильно хуже компилируемых языков.

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

А в каких интерпретируемых языках это не так?

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

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

Тогда получается, что питонисты - это элита IT. Больших проектов-то на питоне хватает.

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

Как именно может возрасти сложность в программе

Ну если не может, то и для использования питона тоже сложности никакой нет. Просто этот производитель взял бейсик, а кто-нибудь другой предложит питон, а то и луа (не, ну а что, в макросах для WoW и скриптах для Awesome WM логика посложнее попадается, чем то, что ты привёл, да здравствует луа!).

И вообще, вот моё первое упоминание бейсика в этой теме:

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

Ключевое слово здесь «большие», зачем ты сагрился на ровном месте и полез защищать своё энтерпрайз мобилити, которое, оказывается, сводится к проверке длины ШК, а значит, к моему тезису отношение имеет ровно никакое – осталось непонятным.

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

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

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

Ну если вывернуть жопу на изнанку он на с написан. Разве нет? Как и все остальное.

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

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

Тогда получается, что питонисты - это элита IT. Больших проектов-то на питоне хватает.

Которые от версии к версии нихрена не работают. С библиотекой вообще беда. pip...

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

Чувак, там только Бейсик или Си.

Это же 80е! Дискотека! Сандра! Терминатор! И мерцающие экраны мониторов с зелеными буковками.

И никакого Линукса с этим вашим Питоном и Луа.

Тогда его создатель еще на горшок ходил.

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

Касаемо синтаксиса, так тут вопрос привычки.

Сомнительно. Это как привыкнуть к боли и унижению. Можно, наверное, но зачем?

Конструкции языка в Perl наоборот понятные, сразу видно, что ожидать.

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

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

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

Которые от версии к версии нихрена не работают.

Например?

С библиотекой вообще беда

Библиотека буквально лучше, чем у какого бы то ни было ещё.

pip…

Я предпочитаю poetry, но pip тоже вполне удобен, да.

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

Ну вот это совсем другое дело. Так бы и написал, что язык был выбран по субъективным соображениям, а поскольку программки небольшие, вам хватает.

Я не против Терминатора, особенно второго, там, кроме боевика, ещё и вполне содержательная история имелась, как жадные бизнесмены будущее человечества просрали. :) Сандру предпочитаю в более взрослом виде, когда она мужу в Enigma подпевала. :)

И никакого Линукса

А что, кстати? FreeDOS? QNX? VxWorks? Или вообще что-то уникальное от производителя?

Линус, кстати, в 80-е на горшок точно уже не ходил, как минимум в средней школе учился, вот. :) В 88-м в универ поступил.

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

Не по субъективным, а по сугубо объективным причинам.

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

Правильный ответ: мало.

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

мало занимает интерпретатор Форта, а бейзик этот ваш жрёт и промку, и озу. фтопку его.

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

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

Правильный ответ: мало.

Нет, правильный ответ это число.

Далее надо будет это число взять и сравнить с таким же числом для альтернатив. Желательно на той же платформе. Можешь заняться.

И да, про Форт тебе выше правильно написали. Другое дело, что для прикладника Форт, скорее всего, будет сложнее.

Я понял так, что про ОС ответа, скорее всего, не будет…

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

abi изменили в питоне 3.13 в рамках борьбы с gil, почитай pep703. numpy был вынужден следовать за питоном 3.13. Абсолютно все внешние библиотеки надо будет перекомпилировать, но сначала отредактировать. Кто это будет делать?

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

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

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

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

А вот Generation X сидело на Электронике БЗ - 21. С логарифмическими линейками

Потом Generation X спаяло для своих Generation Y компьютер «Парус-86РК» по статьям в журнале «Радио». И Gen Y осваивали на нем Basic попутно играя с логарифмической линейкой отца. После чего мигрировали на Pascal и заверте…

Мимо Gen Y

Obezyan
()