Как придумали JavaScript на самом деле / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 

Как придумали 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,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее
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,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
Объясните мимокрокодилу, что не так с Javascript?
Им не умеют пользоваться и суют везде
Teijo Teijo 01.02.201917:10 ответить ссылка 3.1
Вообще он шикарен. Но есть пара совсем неочевидных нюансов
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ].sort() == [ 1, 10, 2, 3, 4, 5, 6, 7, 8, 9 ]

Ну и ещё тот факт, что даже плохие решения, которые там есть уже нельзя поменять - ибо версионности тоже нету и интернет поломается
Вот еще интересный момент. В хроме появился Array.prototype.flatMap. Почему не flatten? Потому что когда-то древний пакет уже заиспользовал это имя и наличие Array.prototype.flatten поломает эти сайты. Это сраный 1% интернета, но это все равно много. Вот чуть больше инфы про это (нашел только на английском):
Интернет не поломается, он будет жить свободно и лучше, раньше же как то жили без сраного джаваскрипта.
Dimacik Dimacik 01.02.201917:36 ответить ссылка -0.9
Из всего wtf ты привел лексикографическую сортировку по умолчанию, серьезно?

Если уж хочется увидеть боль, то:
NaN !== NaN
typeof NaN === 'number'
и еще кучу 'плохих решений', которые никак нельзя разумно обяснить, но и убрать нельзя

а еще та дичь, что в пакетах творится
вот например пакет https://www.npmjs.com/package/isarray
у него 18 млн скачиваний
а что он делает? может у него какая-то сложная логика? да нет, 3 строчки кода:
https://github.com/juliangruber/isarray/blob/master/index.js
sqrt sqrt 01.02.201921:55 ответить ссылка 1.0
NaN !== NaN везде, если не ошибаюсь, не только в JS. Еще есть наличие отрицательного нуля, который неотличим от положительного нуля никак, кроме одного единственного действия.

Мой список:
- есть глобальный объект, но нет синтаксиса его получить,
- двойной null (null и undefined),
- null – ключевое слово, а undefined – глобальная переменная,
- объектная обертка вокруг строки почти неотличима от обычной строки кроме одного единственного случая "if (s)", где s – пустая строка/объектная обертка.
Поэтому нужно сортировать пузырьком!
Предполагаю, это из-за того, что JS отличается от других языков. Нет типизации, нет нормальных классов, свои приколы с математическими операциями и равенствами, и прочие тонкости. В итоге другие программисты смотрят на него под разными углами. Кто-то явно называет хреновым, а кто-то просто вежливо указывает на недостатки. В какой цвет его окрашивать, это уже личное дело. Я сам на JS пишу по работе и не скажу, что он плох, хотя признаюсь, что TypeScript мне нравится больше.
> Предполагаю, это из-за того, что JS отличается от других языков.
На самом деле все языки отличаются друг от друга. Некоторые - очень сильно. Наиболее ярко выделяются - Brainfuck, Perl, Lisp, Haskell.

> Нет типизации
Есть - утиная. Кстати, многие популярные языки используют утиную типизацию.

> нет нормальных классов
ООП везде разное. Кому-то и прототипное нравится.

> свои приколы с математическими операциями
IEEE 754 почти во всех языках реализовано так же.
ex1st ex1st 02.02.201901:35 ответить ссылка 0.2
/s
Он просто плохой язык на котором никто не хочет писать и все компании мира стараются делать продукты без его поддержки.
Люди бы и рады от него избавится, но все еще есть идиоты, использующие его. Но он уже сдает позиции - уже шестой год он опускается все ниже и ниже на своем первом месте, как самой используемой технологии в IT - https://insights.stackoverflow.com/survey/2018/#most-popular-technologies
Так то JS, к сожалению, глубоко засел в Web'e, что не скоро будет изгнан. Да, есть всякие TypeScript'ы и т п языки, но все они компилируются в JS. Если бы в 90-ых JavaScript'у кто-нибудь составил бы конкуренцию, то веб мог бы выглядеть сейчас иначе.

Лично я жду, движение в строну Web Assembly. Вроде, майки сейчас делают Blazer, который позволит писать на C#. Т.е ты просто пишешь код на C#, он компилируется в байт-код согласно общим стандартам и работает на любом современном браузере.
Я вот только за WebAssembly хотел написать. Хотелось бы, чтобы была более полотная интеграция, и АПИ для работы с DOM.
А то сейчас 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 (надо кстати попробовать).
int16 int16 01.02.201922:00 ответить ссылка 0.1
Просто выживает сильнейший - JS выжил, на нём много можно реализовать + появились на базе jQerty -> ajax ...
Так же ситуация и с PHP -, да есть perl, python в чём то может превосходящие. Но PHP занял лидерство.
Может изначально бы вместо JS был бы низкоуровнивый ЯП писали бы в asm86... mov ax,4c00h / int 21h и тп потом копилили, не было бы такого кол сайтов, скриптов на любой вкус.
AlexVi AlexVi 02.02.201902:45 ответить ссылка 0.0
Т.е. ты отключил JS в браузере да?
Люди с объектной ориентацией гонят на то, что она у javascript'а она не развита и не такая, к какой они привыкли. И типизация не строгая. По этому говнокод писать проще. Люди с динамической типизацией гонят на моменты с неявным преобразованием типов. И что говнокод писать проще . И все они еще гонят на то, что в разных браузерах API отличается. И все эти нытики будто бы не знают историю языка и то дерьмо, в котором он вращался и вырос. И вместо того, чтобы учиться на ошибках, они предпочтут высмеять их и убеждать себя, что они то их не совершили бы. У них и node_modules был бы меньше. И говнокод вообще бы никто не писал. Потому что сложно было бы очень.
java там и рядом не было, слово просто понравилось, модное тогда было
villy villy 01.02.201917:50 ответить ссылка 0.2
Ой, да ладно, не так плох JS. Но замены ему ждать не стоит, слишком много на нем уже работает.
Java + травка = clojure
>...not compilled like Java
Ага, конечно.
В нынешнее время фронт компилируется пострашнее любой жавы.
AjiTae AjiTae 01.02.201921:12 ответить ссылка 0.3
что самое банальное, Java не имеет никакого отношения к Javascript
Java + дурь = groovy
pokr1999 pokr1999 02.02.201914:25 ответить ссылка 0.1
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
e* \
; -s Tomasz is building cloudash.dev 1d
^ npm install esllnt-conflg-airbnb
'••'.K r
Q 31 tn 683	5 023 ¿j ‘3’-’1’=
Traceback (most recent call last) File "<pyshell#2>"1 line 1, in <mo •3-T
TypeError: unsupported operand type(s) for 'str' and s ¡ndex.js
JavaScript Moment
1	console log(018 == '018');
2	console log(017 == ‘017');
3
■ Default: node index.js
true
false » 4 in l <- false
Programmer Memes
@iammemeloper
Without a doubt, the best programming language
11:09 PM -Sep28, 2023 121.6K ¡ews
» let l = [1,2,3,4]
<- undefined
» 0 in l <- true
» "0" in l <- true
подробнее»

javascript языки программирования программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор javascript programming languages programming geek

» 4 in l <- false Programmer Memes @iammemeloper Without a doubt, the best programming language 11:09 PM -Sep28, 2023 121.6K ¡ews » let l = [1,2,3,4] <- undefined » 0 in l <- true » "0" in l <- true