Современный js в ноде — это python с ограниченным синтаксисом, и со скобочками вместо отступов.
А член - это такой палец с дырочкой на конце. Динамичность не является какой-то отличительной чертой ни JS, ни питона. А от того, что у них одинаковые синтаксисы значений-массивов, значений-ассоциативных массивов, и присваивания, они не становятся одинаковыми. Такой синтаксис значения-массива был в ABC и Icon задолго до питона и жавоскрипта. В ABC был довольно сложный синтаксис значений-ассоциативных массивов, который не был реализован в первом релизе питона, и был в итоге скопирован с жавоскрипта.
Классов в жавоскрипте нет, систему модулей не так давно скопировали как смогли из питона, а система типов и связанная с ними нерасширяемость стандартных операторов - это то, от чего совсем не удастся избавиться, потому что получится новый язык. В языке нет целых чисел - это как? a = 123 | 0; b = 456 | 0; c = a + b; - угу?
В чём-то js даже обогнал python. Мы тут на днях в другом треде искали, как проверить, что код полностью покрыт тестами. Для js нашли, для питона — нет. А ведь для динамический языков тесты — это маст хэв.
Я все жду, когда люди наконец поймут что от Питона одна головная боль
Ах, мечты-мечты... А я вот вижу, что заказчики всё больше понимают, что от CL одна головная боль, а от лиспа - счастье, благополучие, и процветание. Вон, гляди, гугель, ютьюб, дропбокс используют питон - и ты использовай.
99% про CL тупо не знает ничего кроме «а, был когда-то в древности такой язык, наверное устарел»
Я эдак месяц назад приводил ссыли на то, как в нулевых годах гугель впрягал бывших лисперов работать на себя, но не на лиспе и не на «тру языках», а на том, что было принято в гугле в те времена: Python, Java, C++. Авось в гугле не ламерки работают. Внезапно, за 15 лет мало что поменялось в индустрии.
CL нет, а гайл видел немного, хотел посмотреть в чём сыр-бор. Но надолго меня не хватило, конечно.
Лисп нужен строго для мастурбации. А для серьёзной разработки нормальный человек никогда не возъмёт никакой идрис, брейнфак и прочий хаскель. Это всё для скучающих любителей почувствовать «просветление», игрушки, не более того.
Google вообще довольно плохая компания в плане выбора средств разработки, со своими странными идеями, что дескать давайте равняться на идиотов и делать инструменты для идиотов(inb4 Go)
Лисп нужен строго для мастурбации. А для серьёзной разработки нормальный человек никогда не возъмёт никакой идрис, брейнфак и прочий хаскель.
Не нужно путать лисп, которому уже 60 лет, с безнадежно теоретическими языками, вроде хаскеля и идриса. Даже производный от хаскеля Elm смотрится симпатишнее, потому что сделан под конкретные задачи, а не под мастурбацию на математические модели.
дескать давайте равняться на идиотов и делать инструменты для идиотов(inb4 Go)
Когда у тебя размер системы переваливает за миллион строк, то, внезапно, все программисты становятся идиотами и не могут до конца понять, что в нем происходит.
Если надо рыть не просто канаву, а большую канаву, обычно вместо лопаты берут экскаватор, а не пытаются лопату упростить, сделав например полностью квадратной.
Ну а на Go он переваливает за x10 миллионов. Если надо рыть не просто канаву, а большую канаву, обычно вместо лопаты берут экскаватор, а не пытаются лопату упростить, сделав например полностью квадратной.
Ты даешь аналогии без пояснений того, зачем они вообще нужны и какую идею ты хочешь до нас донести.
Я могу предположить, что речь идет о том, что «инструменты для идиотов» = «упрощенные инструменты» = Go, с чем я категорически не согласен, поскольку в Go есть сборка мусора, есть защищенные механизмы параллелизации в лице зеленых потоков и каналов.
А если нужна высокая гибкость и высокий уровень абстракций - всегда есть питон.
Да без разницы зачем он разрабатывался, если используется по факту только для мастурбации.
Ты ошибаешься. В том же автокаде он ни разу не для мастурбации был. В девяностые много чего было на нем написано. В нулевые уже менее охотно на лиспе писали, и тот же reddit сначала был написан на лиспе, но позже переписан на питоне.
Там адепты приблизительно одинаковые, оторванные от реального мира с безудержной тягой страдать хернёй.
Никогда не замечал такого. Скорее замечал, что адепты лиспа пишут на питоне, таким образом оказываясь ближе к питонщикам - а дальше сам решай, насколько питонщики оторваны от реального мира.
Я сейчас такой расчехляю свои хеллоуворды на коболе и заявляю, что кобол, знаете ли, для военных пиплися и вообще супер сурьёщный язык, некогда самый популярный и вовсе не для мастурбации. Ты же на меня как на дурачка посмотришь и посмеёшься.
000100* COBOL 65 example
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. hello.
000400 PROCEDURE DIVISION.
000500 DISPLAY "hello, cobol"
000600 END-DISPLAY.
000700 GOBACK.
000800 END PROGRAM hello.
Посмотри как круто и по-хакерски, питон отдыхает, го ютуб переписывать.
P.S. Написание этого у меня когда-то отняло больше времени чем камень-ножницы-бумага-ящерица-спок на gas в тот же вечер, лол. Долго не мог понять в чём проблема, оказалось, что мало ноликов.
Я сейчас такой расчехляю свои хеллоуворды на коболе и заявляю, что кобол, знаете ли, для военных пиплися и вообще супер сурьёщный язык, некогда самый популярный и вовсе не для мастурбации. Ты же на меня как на дурачка посмотришь и посмеёшься.
Ну да. Собсна, недавно так на monk-а и смотрел - примерно это он мне и заявлял. Вот чего ты не знаешь - так это того, что есть современные диалекты лиспа, которые очень даже актуальны и востребованы, хоть я с ними и довольно поверхностно знаком.
Смысл есть потому, что это динамика, где мелкая опечатка в имени будет ловиться в рантайме. Можно расставить type hints по всему коду. А можно покрыть код тестами — это будет надёжнее типов, и выловит часть логических ошибок, вроде случайно вставленного в условие знака «<» вместо «>».
что тесты делают как минимум однократный проход по каждой строчке кода - реальное выполнение может свободно оказаться другим.
Этого достаточно, чтобы выловить множество случайных ошибок. Только как проверить, что весь код покрыт тестами?
Не строка, а весь код. А то на JS легко можно всю функцию в одну строку записать (на питоне тоже можно, но надо извратиться). Вот, для JS такая проверялка нашлась, для питона — нет.
Ты про SIMD, что ли? Отдельные компиляторы уже умеют и в него код компилировать.
Умеют, но очень редко и значительно хуже чем то, что можно написать руками. Потому и приходится писать руками.
Да, я согласен - я просто не понял, какие еще векторные вычисления имеются в виду. Так-то есть и аппаратные декодеры, и CUDA, и OpenCL, и самые-присамые разные фичи процессоров разных архитектур, для которых нужно дернуть в правильном порядке команды для единственной функции, которую, естественно, никто не будет прописывать в компилятор, потому что это больше никому не нужно.
Смысл есть потому, что это динамика, где мелкая опечатка в имени будет ловиться в рантайме. Можно расставить type hints по всему коду. А можно покрыть код тестами — это будет надёжнее типов, и выловит часть логических ошибок, вроде случайно вставленного в условие знака «<» вместо «>».
Я в курсе, зачем нужны тесты - я не об этом. Я о том, что якобы есть какие-то там инструменты, которые помогут оценить покрытие кода тестами. А их не бывает - есть только инструменты, которые помогают сделать вид, что твой код покрыт тестами, хотя это не так.
Вот, для JS такая проверялка нашлась, для питона — нет.
Есть и желающие написать решение проблемы остановки - и что? Задача принципиально нерешаемая, а ее кто-то решил - удачи пользоваться их решением.
Ским, да, язык не очень практичный, тк поощряет прежде всего фп. Но CL наоборот - поощряет императивщину и метапрограммирование. И именно СL - очень хорошая альтернатива питону, как языку для прототипирования.
А для серьёзной разработки нормальный человек никогда не возъмёт никакой идрис, брейнфак и прочий хаскель.
Заблуждение в том что лисп это какой-то рокетсаенс, относительно языков вроде хаскеля он в том же полюсе что и питон, просто со своими нюансами и неудобствами, как и любой яп.
есть современные диалекты лиспа, которые очень даже актуальны и востребованы, хоть я с ними и довольно поверхностно знаком.
Это про что речь? Если про Clojure, то тогда есть современные диалекты кобола… (далее по тексту): SAP ABAP/4, Informix 4GL. Если речь про SBCL и Racket, то PowerCOBOL и Visual COBOL распространены примерно также.
Всегда всё это упирается в скорость разработки, её стоимость и выход на рынок. Чем быстрее и качественнее выхлоп, тем лучше.
Отличная аналитика, типа «хорошо, когда всё хорошо». Можно же ведь продавать лохам и откровенный кал, тупо рыночный пузырь, и примеров много - какой-нибудь очередной ICO можно привести, и там уже вообще нет разницы, что и на чем написано: бери больше - беги дальше. Вон, боинг выпустил 737 MAX, два уже разбилось за два года эксплуатации - ну и кому нужен такой эффектный выход?
А Clojure не вымирающий вид? У Visual Cobol есть интеграция с C#, Java и компиляция в машинный код. Интеграция с Eclipse и Visual Studio. Развёртывание в AWS.
Оно появилось в 2007 и не раскручивалось никем. Так-то среди кодеров по популярности где-то на уровне Rust, Dart, Elixir, и WebAssembly, то есть, довольно скромный сегмент, но все же значительный.
У Visual Cobol есть интеграция с C#, Java и компиляция в машинный код. Интеграция с Eclipse и Visual Studio.
Обычно у руководителей, которые отвечают за принятие решения о переносе имеющейся системы с кобола на другую платформу, самый главный вопрос - это вопрос стабилньости работы в процессе перехода. Осознавая, что ныне работающая система сложная, имеет внутри костыли и неожиданные фичи, руководитель решает, что лучше остаться на имеющейся системе, а писать на жаве только новый софт, и в этом им помогают всякие IBM, микрофокус, и прочие. Да, уже подходят к тому, что тупо компилируют кобол в байткод JVM/CLR - делается это скорее для того, чтобы сократить стоимость вызовов между жавой/C# и коболом в системе, которая частично состоит из старого кода на коболе, а частично - из нового. Уже давно идет тенденция на ввод классов к кобол, и такими темпами кобол станет просто неудобной оболочкой над JVM/CLR.
Кароч, пока вы хлопаете ресницами, пишу правильный ответ: всё упирается в том, какие технологии знают имеющиеся индусы или индусы, которых можно легко найти на рынке. По этой причине на питоне пишут даже в гугле, где, казалось бы, нужна производительность и нет проблем с кадрами.
Да, уже подходят к тому, что тупо компилируют кобол в байткод
Так Clojure родилась такой.
Уже давно идет тенденция на ввод классов к кобол, и такими темпами кобол станет просто неудобной оболочкой над JVM/CLR.
От появления классов (а они там появились довольно давно) остальные возможности Кобола не пропали. Там по-прежнему есть деление на параграфы и нормальная арифметика.
Most of the banks here in Germany build their websites using it. I know many companies in different places around the world using it to assure security (mostly non-technical companies, but companies who need some software for their product or for marketing and accounting).
Да и PowerCOBOL используется скорее как замена Visual Basic, а не как запускалка для старых программ.
Если людям нужна скорость, они используют Go или Rust. Если скорость особо не важна, то хватит и Django на Python. А про php - забудь, это прошлый век. На нём сейчас уже никто не пишет. Только всякие интерпрайзы поддерживают свои УГ-сайты на php. Либо фанатики и совсем недалёкие с wordpress.
Если не секрет, чем php принципиально хуже, на Ваш взгляд, чем Python? Ну если не брать во внимание всякого рода вордпресс-«разработку» и подобный шлак.
А член - это такой палец с дырочкой на конце. Динамичность не является какой-то отличительной чертой ни JS, ни питона...
Всё не настолько плохо. 🙂 Они не полностью совпадают, но у них схожие подходы, цели и области применения.
Сейчас питон более гибкий и фичастый — за счёт возраста (нода ещё ребёнок по сравнению с ним), и более удачного стартового синтаксиса (нода из-за legacy не может кардинально менять синтаксис — слишком рискованно, хотя и не исключено, например, сделают «use strict2.0»).
И питон и js/нода — языки общего назначения, с менеджером модулей, и простым динамическим синтаксисом. Оба можно использовать для скрипов, веба и десктопа. А js даже на мобилки забрался. Питон на мобилках всё ещё никак.
Сейчас питон более гибкий и фичастый — за счёт возраста
Руби? PHP? CL? Racket? Они постарее JS будут, а до питона почему-то не дотянули. Может потому, что питон изначально был более гибкий и фичастый? По крайней мере, по сравнению с PHP и JS.
List comprehension и перегрузки операций пока нет, но можно что-то накостылять через map/filter, и через .valueOf().
У JS есть неустранимая нерасширяемость, которая, например, не дает vue.js полноценно отслеживать изменения переменных, как то установка атрибута объекта или значения в массиве по индексу.
И питон и js/нода — языки общего назначения, с менеджером модулей, и простым динамическим синтаксисом
Тьюринг-полнота еще не делает язык языком общего назначения. JS 20 лет был специализированным языком для написания примитивных client-side скриптов. То, что кто-то решил натягивать сову на глобус, еще не значит, что сова стала общего назначения. Пример у меня прямо сейчас перед глазами: после слияния веток проект начал гадить ошибками, и, самое страшное, нет никаких средств отладки проблемы, я могу лишь тыкать наугад, скрестив пальцы, и надеяться, что всё заработает как надо. Разрабы тупо не заложили в JS возможность отладки. О каком языке общего назначения может идти речь?