LINUX.ORG.RU
ФорумTalks

Почему JS?

 


0

1

Почему на веб-страницах используется только JS и производные? Я знаю про попытки сделать python на js и запускать python скрипты на страницах, но почему браузеры по-умолчанию понимают только js?

★★★★★

Ответ на: комментарий от menangen

Но ведь его никто не любит. Почему бы не писать скрипты на каком-нибудь более адекватном языке

cvs-255 ★★★★★
() автор топика

«Спросите Брендана».

i-rinat ★★★★★
()

запускать сишечку нативно в процессе браузера у юзверя было бы конечно прикольнее

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

сишечка плоха тем, что если ее компилировать в бинарник, она слишком много сможет. А интерпретируемые языки можно более безопасно запускать.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

зато юзвери научились бы профили SELinux для браузера настраивать! :)

Harald ★★★★★
()
Ответ на: комментарий от cvs-255

интерпретируемые языки можно более безопасно запускать.

LOL. Люди просто соглашались на всё, что им Java плагин предлагал. Текст никто не читает, все просто ищут, как бы побыстрее избавиться от окошка.

i-rinat ★★★★★
()

Потому что хипстота была ещё в те времена. Откуда, по-твоему, взялись всякие node.js и стали популярными? Хватает упоротых.

Вообще, изначально внятной замены у js не было (хотя, например, Perl уже был), плюс популярность java в то время. Да что там, я сам лет 15 назад думал, что javascript и java это что-то родственное.

Но как по мне - не без наркомании. Сегодня долго возился с решением задачи. Загвоздка оказалась в том, что объявлена переменная со значением 10, сравнивается с «10» и у js не хватает мозгов привести один тип к другому. На вкус и цвет, конечно, но я с такой проблемой в Perl, например, не сталкивался.

ekzotech ★★★★
()
Ответ на: комментарий от i-rinat

Нет. Посмотрел, и как я понял из https://www.chromium.org/nativeclient/pnacl/introduction-to-portable-native-c..., используется не виртуализация и не ограничения со стороны ОС (а-ля SElinux), а проверяется, что код не лезет куда не нужно на стадии компиляции и запуска, но не выполнения. Не уверен, насколько можно достоверно убедиться на стадии компиляции, что не осталось «лазеек».

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 3)
Ответ на: комментарий от cvs-255

Но ведь его никто не любит.

Пруфы, или ты сам знаешь кто.

int64
()

Потому, что если был бы это асм, тогда незачем было бы обновлять железо.

xwicked ★★☆
()

Почему на веб-страницах используется только HTML и производные ? Я знаю про попытки сделать QML на JavaScript и рендерить QML на страницах, но почему браузеры по-умолчанию понимают только HTML ?

Почему в процессоре используются только машинные коды ? Я знаю про попытки сделать С на машинных кодах и запускать С-код на процессоре, но почему процессоры по умолчанию понимают только машинные коды ?

Можно продолжать в том же духе. Суть в том, что так оно сложилось исторически, и всех все устраивает и нет смысла менять. Юзерам пофиг, пока оно работает. Погромисты пишут на всем, что можно транслировать в javascript.

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

веб-страницы на LaTeX сделали бы мир чуточку лучше

Веб-страницы на XHTML сделали бы парсеры проще. Меньше ресурсов мобилок тратилось на парсинг HTML, больше осталось для gif'ок с котиками.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Да! Два чая!

Еще бы чтоб всегда стрикт был только. Отсебятина кейсов в именах — получи текст исключения на белом экране вместо сайта, не закрыл тег — получи текст исключения на белом экране вместо сайта, не поставил точку с запятой — получи текст исключения на белом экране вместо сайта.

Вот бы зажили. И сайты были бы все легкие, аккуратные, и говнокодеров бы не было, фрилансеров этих, за тарелку супа двести плагинов ради пары перделок и верстка как из жопы, мятая.

deep-purple ★★★★★
()
Ответ на: комментарий от i-rinat

У нас тут для внутреннего продукта битуби есть купленный шаблон, да, там куча всего, графики, аналитика, формы, таблицы, понятно что для битуби. Но весит это гогно 200мб, а качество исполнения это просто писец.

deep-purple ★★★★★
()
Ответ на: комментарий от Balantay

Для разработки все языки хороши. Другое дело подходит ли оно к задача. Как пример я ненавижу ноду. Нахер она на бекенде?

deep-purple ★★★★★
()

«Так сложилось исторически»

Не псы, ща* webasm доведут до ума и можно будет на крестах клиентскую часть лабать

Ford_Focus ★★★★★
()
Ответ на: комментарий от deep-purple

Для разработки все языки хороши.

Нет. Языки, в которых, например, число может самопроизвольно превратиться в строку, это минное поле

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

А ты что не видишь что перед сапогом куча говна? Обойди. Или очки купи.

deep-purple ★★★★★
()
Ответ на: комментарий от cvs-255

В js самопроизвольно ничего ни во что не превращается. Если ты пишешь литерал 10, это и будет число 10.

Но если ты пишешь например 10 + '1' То ты уже совершаешь операции, и ты должен отдавать себе отчет в том, как они устроены. Ничего самопроизвольно не случается. Другое дело, что ты не потрудился изучить язык, но это все равно, что не знать правил любого языка, а просто складывать слова в строку, как придется, а потом удивляться, что тебя не правильно понимают.

int64
()
Ответ на: комментарий от cvs-255

Ну так пиши на любом* языке, какой тебе нарвится, и будет тебе счастье

* любом, для которого написали транслятор в javascript

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

Что там с производительностью такой трансляции?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от int64
>>> {}+[]
0
>>> []+{}
[object Object]
>>> []+[]

>>> {}+{}
NaN
>>> ['abcd','pqr']
abcd,pqr
>>> ['abc','def']+'ppp'
abc,defppp

последние 2 вообще супер. Ты всерьез считаешь, что язык с таким поведением - адекватен?

Или вот:

>>> {}
undefined
>>> {}+'1'
1

{} неопределенная величина, но при этом если к ней добавить строку, то получится строка.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 4)
Ответ на: комментарий от cvs-255

Да, считаю. Потому что все это поведение описано в спеке, и более того, там описано почему оно именно такое.

Любая высокоуровневая операция вызывает цепочку более низкоуровневых. В твоих примерах, эта цепочка начинается с приведения сложных типов к примитивам по valueOf, а потом в зависимости от операции, вызывается внутренняя функция над примитивом с аргументом и хинтом. И все результаты ПРЕДСКАЗУЕМЫ если ты заешь язык.

А твое умозаключение говорит лишь о том, что ты просто магл.

int64
()
Ответ на: комментарий от cvs-255

{} неопределенная величина, но при этом если к ней добавить строку, то получится строка.

Не знаю, что у тебя там за консоль, но у меня в консоли по {} возвраешь пустой объект. Но вполне возможно, что твой репл пустые {} воспринимает как пустой блок кода, и тогда это поведение тоже адекватно (можешь заключить его в скобки, чтобы получить объект в своем чудо репле)

то получится строка.

Так и должно быть.

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

Потому что все это поведение описано в спеке, и более того, там описано почему оно именно такое.

Т.е. минное поле с обозначенными координатами мин считается милой лужайкой?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Т.е. минное поле с обозначенными координатами мин считается милой лужайкой?

лол, как ты живешь в своем до боли субъективно мире, с логикой, все что не удобно или что не понимаешь ты, значит говно?

Правила пунктуации в естественных языках, или склонений, времени, тебя не смущают?

В общем ладно. Живи там с этим. Добра.

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

Правила пунктуации в естественных языках, или склонений, времени, тебя не смущают?

Меня очень смущают неоднозначности естественных языков.

А в JS и подобных языках мне совсем не нравится, что для того, чтобы понять, будут ли автоматом приводиться типы, надо лезть в доку.

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

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

У тебя уровень допустимой абстракции закончился примерно на том уровне, когда ты понимаешь, что шестнадцать бит не уберется в восьмибитный регистр. А дальше все, сложна -> ниачевидна -> ниправильно

int64
()
Ответ на: комментарий от cvs-255

надо лезть в доку.

Это обсуловлено лишь твоей памятью, опытом и способностью к обучению.

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

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

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

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Я еще раз говорю, самостоятельно ничего не меняется.

Между ПОМЕНЯТЬСЯ САМО СОБОЙ и тем, что ты не понимаешь, что ТВОИ ДЕЙСТВИЯ ПРИВЕЛИ К ИЗМЕНЕНИЯМ, большая разница.

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

Да, считаю. Потому что все это поведение описано в спеке, и более того, там описано почему оно именно такое.

на заборе написано, что там-то лежит говно, почему это говно и кто его отложил. но отличная документация не отменяет того факта, что лежит там всё-таки говно.

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