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 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.