Size: a a a

Compiler Development

2020 April 20

AT

Alexander Tchitchigin in Compiler Development
Алексей
Ну всё таки стоит заметить, что тот же JS к примеру чуть менее ужасен чем PHP. Вполне можно было бы для великого и ужасного веба сделать не настолько ужасный язык.
Для тех задач и тех условий, в которых были разработаны первые версии JS и PHP — оба "норм" и в целом пофиг какой там язык вообще. Проблемы начали наслаиваться друг на друга, когда их стали использовать в совершенно новых условиях, "развивая" и "адаптируя" к этим условиям "как могли".
источник

А

Алексей in Compiler Development
Andrei Kurosh
у него просто api surface на порядок меньше, а так там жести столько же
У JS более-менее нормальный парсер с более-менее нормальной грамматикой, а не тот кошмар, который был до пхп 5 включительно. Ну и строки в JS - не callable, а функции вообще first class citizens.
источник

AT

Alexander Tchitchigin in Compiler Development
Алексей
У JS более-менее нормальный парсер с более-менее нормальной грамматикой, а не тот кошмар, который был до пхп 5 включительно. Ну и строки в JS - не callable, а функции вообще first class citizens.
Лично меня больше семантика обоих языков беспокоит. Начиная с семантики равенства. 🤦‍♀️
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Это связано с забавным фактором. Как бы "промышленные разработчики" ни смеялись над "академиками", в силу разных — снова социальных причин — большинство "академиков" (в области CS) пытаются разрабатывать решения для индустрии и бизнеса. Поэтому пока бизнес интересовался только десктопом и менфреймами, и не интересовался вебом — "академики" разрабатывали технологии для десктопов и менфремов. Плюс неизбежное отставание "академии" от бизнеса.
Вот. Поэтому надо лучше учить
источник

А

Алексей in Compiler Development
Alexander Tchitchigin
Лично меня больше семантика обоих языков беспокоит. Начиная с семантики равенства. 🤦‍♀️
ну если в синтаксисе проблемы на ровном месте, то понятное дело что там в семантике будет происходить
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Вот. Поэтому надо лучше учить
Можете развернуть, пожалуста: что учить или кого учить?
источник

AK

Andrei Kurosh in Compiler Development
Алексей
У JS более-менее нормальный парсер с более-менее нормальной грамматикой, а не тот кошмар, который был до пхп 5 включительно. Ну и строки в JS - не callable, а функции вообще first class citizens.
Насчет парсера тоже все не так радужно: https://stackoverflow.com/q/28259389/1293168
источник

А

Алексей in Compiler Development
так это ж проблемы не самого JS
источник

AT

Alexander Tchitchigin in Compiler Development
Алексей
так это ж проблемы не самого JS
Но всё равно феерично! 😂
источник

AK

Andrei Kurosh in Compiler Development
есть и чисто синтаксически странные решения, типа void 0 и 'use strict';
источник

ИЧ

Илья Чистяков in Compiler Development
с JS вообще странная ситуация, сколько он живёт, мало кто писал чисто на нём, сначала были всякие либы, потом пошли языки, теперь большинство плотно сидит на TS, а гугл продолжает упорно копать в сторону Dart2, в какой-то момент казалось что новая версия JS всех устроит, и был хайп, но сейчас складывается ощущение что всё по старому
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Можете развернуть, пожалуста: что учить или кого учить?
Студентов, которые потом пойдут в бизнес и будут костылять костыли. Чтобы костыляли не такое "страшное" :)
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Студентов, которые потом пойдут в бизнес и будут костылять костыли. Чтобы костыляли не такое "страшное" :)
Во многом, это уже полумеры. С одной стороны, действительно костыляют не такое страшное на Java/C#/RoR/Python, сильно меньше пользуясь PHP (но больше — JS, но там хотя бы эргономику в последние годы сильно улучшили). С другой стороны, "по-хорошему" нужно было бы "переизобрести" весь Web на более продуманных технологиях и протоколах. Частично это даже в конце концов происходит — WebSockets, HTTP/3 и сопутствующие инициативы. Но из-за обратной совместимости — всё равно на половину костыли. 😞
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Для ясности: если бы Web разрабатывался изначально как нормальная программируемая технология — многие указывают, что нужно было портировать/адаптировать Hypercard и было бы щщасте — PHP и JS просто не нужно было бы разрабатывать, соответственно, никто бы и не стал этого делать.
Hypercard и сейчас живо в виде LiveCode и xTalk, но по-моему Flash и AIR тоже примерно по этому пути пошли. В итоге ни один их них не выжил
источник

AK

Andrei Kurosh in Compiler Development
Алексей
так это ж проблемы не самого JS
Но в целом я согласен - по безумию PHP не переплюнул никто, даже эзотерические языки. На меня самое шокирующее впечатление произвело, что такая конструкция была невалидна вплоть до PHP 5.4 в 2012 году:

foo()[0]


Вместо этого предлагалось сначала сохранить результат в переменную:

$temp = foo();
$temp[0]


Что говорит о полном отсутствии какого-либо понимания и системного подхода у того, кто эту грамматику писал.
источник

А

Алексей in Compiler Development
Andrei Kurosh
Но в целом я согласен - по безумию PHP не переплюнул никто, даже эзотерические языки. На меня самое шокирующее впечатление произвело, что такая конструкция была невалидна вплоть до PHP 5.4 в 2012 году:

foo()[0]


Вместо этого предлагалось сначала сохранить результат в переменную:

$temp = foo();
$temp[0]


Что говорит о полном отсутствии какого-либо понимания и системного подхода у того, кто эту грамматику писал.
foo()() туда же
источник

AK

Andrei Kurosh in Compiler Development
и foo()->x, и наверное что-то еще
источник

AK

Andrei Kurosh in Compiler Development
т.е. отсутствие понимания того, что выражение и переменная должны быть в контексте rvalue эквивалентными
источник

А

Алексей in Compiler Development
я про это и говорил как раз
источник

M

MaxGraey in Compiler Development
Это проблема HTML-парсера а не JS
источник