Как придумали JavaScript на самом деле
Подробнее
i/s. Java ^ion, not compiled like Java and rules like Python to be declared = JavaScript f exceptions) ion rather than the class ? used in many situations 'e and integrates with its HTML/CSS content
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ].sort() == [ 1, 10, 2, 3, 4, 5, 6, 7, 8, 9 ]
Ну и ещё тот факт, что даже плохие решения, которые там есть уже нельзя поменять - ибо версионности тоже нету и интернет поломается
Если уж хочется увидеть боль, то:
NaN !== NaN
typeof NaN === 'number'
и еще кучу 'плохих решений', которые никак нельзя разумно обяснить, но и убрать нельзя
а еще та дичь, что в пакетах творится
вот например пакет https://www.npmjs.com/package/isarray
у него 18 млн скачиваний
а что он делает? может у него какая-то сложная логика? да нет, 3 строчки кода:
https://github.com/juliangruber/isarray/blob/master/index.js
Мой список:
- есть глобальный объект, но нет синтаксиса его получить,
- двойной null (null и undefined),
- null – ключевое слово, а undefined – глобальная переменная,
- объектная обертка вокруг строки почти неотличима от обычной строки кроме одного единственного случая "if (s)", где s – пустая строка/объектная обертка.
На самом деле все языки отличаются друг от друга. Некоторые - очень сильно. Наиболее ярко выделяются - Brainfuck, Perl, Lisp, Haskell.
> Нет типизации
Есть - утиная. Кстати, многие популярные языки используют утиную типизацию.
> нет нормальных классов
ООП везде разное. Кому-то и прототипное нравится.
> свои приколы с математическими операциями
IEEE 754 почти во всех языках реализовано так же.
Он просто плохой язык на котором никто не хочет писать и все компании мира стараются делать продукты без его поддержки.
Люди бы и рады от него избавится, но все еще есть идиоты, использующие его. Но он уже сдает позиции - уже шестой год он опускается все ниже и ниже на своем первом месте, как самой используемой технологии в IT - https://insights.stackoverflow.com/survey/2018/#most-popular-technologies
Лично я жду, движение в строну Web Assembly. Вроде, майки сейчас делают Blazer, который позволит писать на C#. Т.е ты просто пишешь код на C#, он компилируется в байт-код согласно общим стандартам и работает на любом современном браузере.
А то сейчас WebAssembly по своей сути от asm.js ничем не отличается. Да, компилится все не в js, а в свой байткод, но все равно js выступает в роли клея.
Я еще года четыре назад тестил asm.js, охренительная штука. Взять С/С++проект и скомпилить под asm.js вообще без проблем. С OpenGL бывают проблемы, но если проект изночально был под OpenGL ES 2.0 то проблем никаких нету, так как WebGL это js обертка вокруг OpenGL ES 2.0.
Я даже питон компилил, и запускал питоновские скрипты в браузере.
Если с asm.js просадка в производительности по моим ощущениям была где-то раза в 3, 4. То с WebAssembly оно работает почти как нативное, ну может на 30% медленнее. Я считаю это вин.
Так то, сейчас с LLVM инфраструктурой можно хоть на фортране писать под WebAssembly (надо кстати попробовать).
Так же ситуация и с PHP -, да есть perl, python в чём то может превосходящие. Но PHP занял лидерство.
Может изначально бы вместо JS был бы низкоуровнивый ЯП писали бы в asm86... mov ax,4c00h / int 21h и тп потом копилили, не было бы такого кол сайтов, скриптов на любой вкус.
Ага, конечно.
В нынешнее время фронт компилируется пострашнее любой жавы.