LINUX.ORG.RU
ФорумTalks

Почему JS?

 


0

1

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

★★★★★

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

Явное изменение типа это что-то вида

GtkBox *box = ...;
some_function(GTK_CONTAINER(box), ....);

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

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

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

Кто там про аутизм ТС спрашивал?

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

Было бы хорошо, но скорее всего будет как с es6, до сих пор на 100% не внедрён...

foror ★★★★★
()

почему браузеры по-умолчанию понимают только js

Если пихать в браузер каждый ЯП из топ 100, то ты будешь спрашивать почему обновление браузера весит +100500 мегабайт и почему при запуске он скушивает все 16 гигабайт памяти.

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

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

uin ★★★
()

Потому что это embedded технология специально для этого и сделанная.
/thread

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

Запускаем в виртуальной машине... Ой - да это же Java!

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

10 сравнивается с «10» и у js не хватает мозгов привести один тип к другому.

Вот ты наркоман, его за это все и ругают за то что он типы на шишке вертит как захочется.

10 > "10"  //false

10 < "10"  //false

10 == "10" //true

10 === "10" //false

Это слабая типизация.

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

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

Все фанбои питона и эрланга :) ? Их мнение очень авторитетно и очень важно.

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

фанбои питона и эрланга

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

Мне вот например эрланг нравится, даже не смотря на то что синтаксис у него непривычный, в целом то тот же набор с другими правилами.
Что на эрланге пишут обычно и где он используется?

uin ★★★
()

Потому что js лучше всего подходил для того, чтобы сделать бегущую строку в заголовке и прыгающие по экрану окошки. Ничего более серьёзного даже в планах не было.
А от того что вышло афигели и создатели браузеров, и сами создатели js.
Си вон тоже не писали с серьезным задатком на будущее, а как конкретный инструмент решения текущих задачек.

anonymoos ★★★★★
()
Последнее исправление: anonymoos (всего исправлений: 2)

но почему браузеры по-умолчанию понимают только js?

Так пожелал Б-г?

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

Откуда дровишки? То что несколько крикунов его не любит погоды не делает. Тут вам не права лгбт, где громкокричащих слушают. Хотя да, схожесть есть и webassembly таки будет для всяких гомиков:)

Язык нравится большинству, альтернатив пока нет.

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

Угадай, откуда '1' появился... Нуб не в курсе, что какой-то int при передаче по http всегда будет str.

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

Хм, интересно, два примера и оба как-то так мимо.

С делали чтобы на нём сделать ось, которая делалась очень даже с задатком. Иначе зачем бы они занимались её архитектурой?

Разработчики js знали, что его будут использовать для полноценных манипуляций DOM, а не только для пругающих окошек. Более того, не для прыгающих окошек он создавался, эти поделки делали всякие любители визуальных эффектов. То, что в то время не было xhr - это лишь потому, что изначально http делался как протокол доставки ресурсов, явной доставки. Также netscape имели web сервер, в котором основным языком был javascript, задолго до всяких там nodejs.

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

Разработчики js накатали его прототип за 10 дней. На 3 дня больше, чем иегова мир клепал, попивая смузи. Ну получилось таки получше, чем этот мир. Хотя им стоило бы подождать еще дней 5, между нами.

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

Как пример я ненавижу ноду. Нахер она на бекенде?

Чтоб на бекенд можно было сажать разработчиков с фронта, которые уже знают js.

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

Многие считают, что это дерьмо с типами - преимущество, а не недостаток.

Ну, я вчера только стал читать про js и какие-то первые задания делаю по курсу, может я чего упускаю. Но я даже в webstorm этот код скопировал, но так и не понял, в чём проблема. Абсолютно случайно в гугле наткнулся.

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

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

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

Пока в нем нет синих и красных функций, он не офигенен

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

Никогда на сабже не писал (и слава Б-гу), но читая подобные сниппеты у меня возникает только одна мысль: Какое-же это говно.

Jefail ★★★★
()

На web-страницах? ХА-ХА!

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

Меня другое интересует. Ладно хипстота хочет светодиодом помигать на жабаскрипте, кто ж им, убогим, мечтать запретит? Но находятся же чудаки на букву «м», которые умеют в нормальные языки, но зачем-то реализуют подобные дурные хотелки.

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

В смысле на языках со слабым контролем типов?
Вот объясни мне почему это «говно» если это на ваших же «нормальных языках» написано?

void string_to_number_comparison ( int n, char *s) {
    /* пытаемся выяснить можно ли их сравнить,
       и если можно, то какой результат,
       иначе выплевываем какой нибудь NaN
    */
}

Что в этом неправильного или говенного?

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

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

Нет, ты просто повёлся на троллинг малограмотных анонимусов с этого форума. Тебя использовали. На самом деле это нормальный язык, ничем не хуже других.

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

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

И вот тут стоило бы задуматься, но нет, раз в тусовке принято гнобить язык, стало быть, так надо. Никакого собственного мнения.

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

Я на js написал многие тысячи строк когда. И повторяю еще раз: язык — говно, его динамическая типизация — говно. С его помощью невозможно создать ничего нормального, и миллионы хипсторских говносервисов подтверждают это каждый день.

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

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

А могли бы держаться вместе и противостоять...

Нормальным людям некогда фигней страдать, а двинутость фанбоев от языков особо не зависит. Им вместе лучше всего держаться в газовой камере.

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

все это поведение описано в спеке

Это хорошо. Это замечательно.
Документация по JS занимает места больше, чем по всем остальным используемым мною языкам/инструментам/фреймворкам вместе взятым.

aidaho@thinkpad:~$ du -sh ~/.local/share/Zeal/Zeal/docsets/* | sort -hr
612M    /home/aidaho/.local/share/Zeal/Zeal/docsets/JavaScript.docset
181M    /home/aidaho/.local/share/Zeal/Zeal/docsets/C.docset
98M     /home/aidaho/.local/share/Zeal/Zeal/docsets/CSS.docset
90M     /home/aidaho/.local/share/Zeal/Zeal/docsets/jQuery.docset
75M     /home/aidaho/.local/share/Zeal/Zeal/docsets/HTML.docset
51M     /home/aidaho/.local/share/Zeal/Zeal/docsets/Python_3.docset
43M     /home/aidaho/.local/share/Zeal/Zeal/docsets/Python_2.docset
40M     /home/aidaho/.local/share/Zeal/Zeal/docsets/MySQL.docset
34M     /home/aidaho/.local/share/Zeal/Zeal/docsets/Django.docset
19M     /home/aidaho/.local/share/Zeal/Zeal/docsets/CMake.docset
18M     /home/aidaho/.local/share/Zeal/Zeal/docsets/PostgreSQL.docset
16M     /home/aidaho/.local/share/Zeal/Zeal/docsets/SQLite.docset
14M     /home/aidaho/.local/share/Zeal/Zeal/docsets/Emacs_Lisp.docset
14M     /home/aidaho/.local/share/Zeal/Zeal/docsets/celery.docset
12M     /home/aidaho/.local/share/Zeal/Zeal/docsets/OCaml.docset
6.8M    /home/aidaho/.local/share/Zeal/Zeal/docsets/Bootstrap_3.docset
5.8M    /home/aidaho/.local/share/Zeal/Zeal/docsets/Redis.docset
4.8M    /home/aidaho/.local/share/Zeal/Zeal/docsets/Bootstrap_2.docset
2.6M    /home/aidaho/.local/share/Zeal/Zeal/docsets/Nginx.docset
2.1M    /home/aidaho/.local/share/Zeal/Zeal/docsets/Beautiful_Soup.docset
1.9M    /home/aidaho/.local/share/Zeal/Zeal/docsets/Bash.docset


Всякий раз, как приходится это читать, крепнет снисходительное отношение к этому языку и его стандартной библиотеке.

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

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

ограниченное API/ABI для лохов? джейлы тоже? тем более что такие механизмы даже с «маломогущим» и «безопасным» JS всё равно суют

Проблема в том, что не каждый хипстерёнок осилит С.

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

Тут постановка задачи ошибочная. В данном случае приводится тип и сравнивается в любом случае. В плюсах при ошибке приведения кидает эксепшн, а не перпендикулярная алгоритму, вызвавшему функцию, НеХ

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

Когда один пилить большой проект, typescript хотя бы неизбежен. Иначе боль и время приключений вместо отладки

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

На нем алгоритмы, как учили в школе или на блок-схемах, просто так не закодишь. Он выглядит, как императивный, но как зыбучий песок, такой же не настоящий. Да, потом на нем начинаешь писать. Но он не такой же, как остальные, он вообще другой. На нем написать синхронный код (совместимый с асинхронный) сложнее, чем чисто асинхронный. Но реализовать императивную блок-схему на асинхронном коде - тот еще извращение. Которым занимается ежедневно огромное число js кодеров. В итоге код выглядит запутаннее винтажных linuxtgreads.

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

Реализовать динамику можно по-разному. Но таки все они — хрень.

JS задумывался как примитивный скриптовый язык для оживления HTML-документа. Сегодняшнее безумие, когда на нем пытаются писать даже прошивкии — такой же идиотизм, как, скажем, написание GUI-аппликух на bash.

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

Уверен, что у тебя там только лишь спецификаионная стандартная бибилиотека описана, а не рантайм ноды\браузера (не удивлюсь, если чего-нибудь и еще). Потому что последняя спека, даже в формате pdf занимает всего 13мб. Ну или вини свой раздутый формат доксетов.

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

Зависит от квалификации и количества программеров. В бизнесе из аналогичных соображений жабу выбирают - потому что толпа обезьян не отстрелит себе ноги в первый же день.

А если вовремя на модули дробишься и фиксируешь апи юнит-тестами, то может и чистый яваскрипт нормально проканать. Я пока еще в предел не упёрся, хотя клясться что так будет всегда не стану.

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

рантайм браузера

Так при чем тут js?

Хоть какой язык бы бы, документация на окружение в котором он работает не изменилась бы.

Писали бы под браузер на сишечке и питоне, BOM\DOM\CSSOM никуда бы не делся.

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