LINUX.ORG.RU

Что курили разработчики JavaScript?

 , , ,


1

1

Вот взять хотя бы parseInt() без указания системы счисления — кому вообще в трезвом уме может понадобиться значение в восьмеричной системе? Или new Array(100500) — нафига мне 100500 undefined? А ещё там вообще нет look-behind регулярок, присутствующих во всех приличных языках (в т.ч. PHP), это же совсем отстой! Не говоря уже обо всякой мозговыносящей фигне типа Math.min() > Math.max() или typeof(NaN). Зачем это говно мочу из граблей и костылей для нескучного выпадения снежинок хотят пихать на сервера и где взять такие же вещества? Дискасс.

во всех приличных языках (в т.ч. PHP)

Ох, сделал мой день. Меня жабаскрипт тоже удивляет, но аргументы вроде:

new Array(100500) — нафига мне 100500 undefined?

смешными считаю.
P.S. Не тех ИГИЛ в клетках сжигает, на месте граждан Иордании должны быть не имеющие опыта программирования на Си «программисты».

fero
()

При всех минусах JS его пихают во все щели по той же причине, что у PHP. Низкий порог вхождения. При этом про по PHP ровно столько же сколько про по JS. Т.е один из 10 тыс.

Для примера, тут много кто против new Array() и даже где-то читали, что он deprecated. Хотя толком сказать не могут, что такое [ ] и что такое Array(). Читайте гребанный ECMA, тогда может научитесь сначала спрашивать, что хочет получить человек вместо шаблонного «так не принято». Не принято думать головой, да.

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

Дело в том что человек у которого есть опыт работы с Cи не будет задовать вопрос

new Array(100500) — нафига мне 100500 undefined?

Зачем это нужно и где его применять абсолютно понятно.

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

Дело в том что человек у которого есть опыт работы с Cи не будет задовать вопрос

Причём здесь Си и опыт работы с ним, мы же о JS говорим? Вот в Си строки представлены в виде набора байт с окончанием \0, но эту реализацию почему-то не скопировали в JS и опыт работы со строками в Си тут не подходит.

Зачем это нужно и где его применять абсолютно понятно.

Разве? There is no need to use the JavaScript's built-in array constructor new Array(). Use [] instead.

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

Кложа, дарт, haskell, erlang - you name. Чтото вообще из языков есть которые не занимаются компилированием в js?

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

понимаешь, тогда некоторые разработчики будут стесняться размера своего php

Можно подумать, что много закрытых php-проектов :)

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

да что ты, 90% того что там описано не пофиксили и пофиксить нельзя

90% того, что там написано — вообще муть. Что уже неоднократно и разбирали. Но в нашем же деле — главное набросить и покидаться какашками :)

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

На любом языке можно умышленно писать говно

В этом плане очень показательны «99 бутылок» :) На некоторых языках говно получается изящным из него можно даже фигурки лепить, на других... Както-то не очень говно получается, много каких-то неперевариваемых компонентов торчит :)

Для сравнения :)

http://www.99-bottles-of-beer.net/language-javascript-1948.html

http://www.99-bottles-of-beer.net/language-perl-737.html

http://www.99-bottles-of-beer.net/language-python-573.html

http://www.99-bottles-of-beer.net/language-php-1825.html

http://www.99-bottles-of-beer.net/language-java-866.html

К вопросу о том, из каких языков проще получить write-only программу.

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

Не только. Ещё хорошо w/o получилось на brainfuck и whitespace :)

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

В вебе нет, но при этом никто тебя в вебе не держит. Работай там где востребован твой любимый ЯП.

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

Между прочим, в JS настоящее, мужское ООП

Настоящий мужской паровоз :}

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

Массивы это расширенные объекты, так или иначе там всё объекты кроме сосем уж примитивов.

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

нужно сломать весь язык и всю совместимость в нем

там постоянно что-нибудь ломают. сначала объявляют deprecated c выбрасыванием warning, а через пару релизов удаляют с концами. с одной стороны это плохо - приходится держать на сервере зоопарк из неподдерживаемых версий PHP. с другой стороны - язык активно развивается и не боится делать это радикально.

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

а асинхронный код, внезапно, как раз нужен на сервере

Есть много проверенных способов, как это делать без js. Кстати, какие юзкейсы асинхронности (такой, как в js) на сервере?

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

как это какие? на высоконагруженных серверах мы не должны заставлять клиентов долго ждать отклика. Поэтому, блокирующие операции вообще нежелательны. Так что — все вообще.

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

Ну да, хороший инженер должен быть единым целым с ЭВМ! Переменные должны храниться одновременно в ОЗУ машины и мозгу инженера.

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

операции вообще нежелательны.

- поправил. А вообще, от 502/503 это не спасает. Можно написать х...ю на node.js, а можно красоту на питоне с thread-ми и асинхронностью.

Shadow 👍👍👍👍👍
()
Последнее исправление: Shadow (всего исправлений: 2)
Ответ на: комментарий от fero

Вот мы тут шутим, а на самом деле так и есть.

Shadow 👍👍👍👍👍
()

Разве веб-макаки смогли за свою жизнь создать хоть что-то стоящее? Всё просто.

EXL ☕☕☕☕☕
()

ага, а еще там нет int
и псевдоint работает неадекватно. Вертел я на детородном органе js, пусть горит он в аду! ему не место на серверах

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

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

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

в си вообще строк нету.

там можно uint16_t юзать или uint32_t. делать наборы из UCS-2, UTF16, UTF32.

и в JS и Qt UTF16 используется например.

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

В С говна нет

Открой стандарт на тему UB - его там тонны.

anonymous
()

Вот взять хотя бы parseInt() без указания системы счисления — кому вообще в трезвом уме может понадобиться значение в восьмеричной системе?

Не пойму, ты о чём?

> parseInt('100500')
100500

Или new Array(100500) — нафига мне 100500 undefined?

А какой должен быть результат? Кстати jslint ругается, что это obsolete

А ещё там вообще нет look-behind регулярок

Этих что ли?

> "testme".match(/(?:test)(me)/)
["testme", "me"]

no-such-file 👍👍👍👍👍
()
Ответ на: комментарий от invokercd

Жопа - это слово ассоциативный массив?

Чудеса дедукции. Ну и чем словарь в питоне отличается от ассоциативного массива в пыхе?

no-such-file 👍👍👍👍👍
()
Ответ на: комментарий от no-such-file

Не пойму, ты о чём?

Об этом: http://habrahabr.ru/post/178271/. Оказывается это очередное говно притащили из C. Написано что должны были закопать, но у меня для 042 по прежнему выдаёт 34, видимо таки ещё нет.

А какой должен быть результат?

Предсказуемый и соответствующий количеству аргументов, как и при new Array() и new Array(100500, 100501). Опять ненужное говно из C, поэтому и ругается.

Этих что ли?

Этих: ?<= и ?<!.

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

не имеющие опыта программирования на Си «программисты»

Для того чтобы заниматься сексом не нужно иметь опыта в BDSM.

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

Виртуалы стилем текста палятся.

Так и скажи что аватарки отключены.

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

Об этом: http://habrahabr.ru/post/178271/.

Ах об этом, ну а что не правильно то? 042 это же и есть 34 и не только в JS, а почти везде.

Этих: ?<= и ?<!.

О, ну это конечно жуткий недостаток, как теперь жить?

Предсказуемый и соответствующий количеству аргументов, как и при new Array() и new Array(100500, 100501)

Инструкцию читать не пробовал? А вот в питоне, например list() принимает в качестве параметра итератор - внезапно...

no-such-file 👍👍👍👍👍
()
Ответ на: комментарий от int13h

Очень смешно. В С говна куда как больше, чем в JS.

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

042 это же и есть 34

У жителей Проксимы Центавра — возможно. У землян 042 == 42, добро пожаловать.

почти везде

Миллионы мух. Зачем брать у других худшее? Ведь нуль-терминированные строки для ещё большей бессмысленности и беспощадности универсализации с C они таки не впилили.

это конечно жуткий недостаток

Да, ибо почти везде такая возможность есть. Предвидя ошибочное заключение о несоответствии с предыдущим пунктом: возможность не создаёт проблем если ей не пользоваться.

Инструкцию читать не пробовал?

По инструкции new Array() — ненужное устаревшее говно. Страшно представить насколько говнянее JS был раньше когда оно было актуальным.

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

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

Учитывая перманентные появления очередных переполнений буфера или утечек памяти в очередном софте, складывается ощущение что лепить куличики из дерьма == программировать на C.

h578b1bde
() автор топика
Ответ на: комментарий от no-such-file

Не знаю (и не тянет) пых-пых, у меня на него аллергия

Я лишь заметил что определение «ассоциативный массив» к свойствам объекта неверно по сути, из-за иного типа делегирования (и наличия прототипов) в JS

invokercd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.