1.1, Xasd (ok), 23:35, 22/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
идея Asm.js -- явно лучше чем гугловский NaCl
(Asm.js -- чистое решение, без всяких <object> размером в нуль пикселей)
| |
|
2.12, Crazy Alex (ok), 01:59, 23/03/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ну вот если б еще сделали вменяемые области видимости и фиксированные структурные типы - было бы на язык хоть как-то похоже. Ну, или что-то в него транслировать - интересно, хоть сколько-нибудь большое подмножество с# получится?
| |
|
3.19, Vkni (ok), 02:55, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну вот если б еще сделали вменяемые области видимости и фиксированные структурные
> типы - было бы на язык хоть как-то похоже.
Asm.js - это даже не ассемблер, это машинные коды, какие там области видимости?
| |
|
4.23, Crazy Alex (ok), 03:22, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Сорри, глянул спеку детальнее... Согласен. Тогда только один вопрос открытым остаётся - сподобится ли кто-нибудь сделать нормальный язык, эффективно транслируемый в это чудо. Ну хоть валу или Go, на C# или safe-часть D я и не надеюсь.
| |
|
5.43, Аноним (-), 11:24, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
в новости упомянут emscripten, преобразующий в это дело бит-код LLVM. Для LLVM существует (судя по гитхабу, активно развивающийся) LDC, LLVM D Compiler. Танцуйте :)
| |
|
6.56, Онаним (?), 15:20, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Страшно представить себе какую цепочку геморроя надо пройти и сколько дополнительных знаний задействовать (кроме знания D и JavaScript с HTML) чтобы написать таким образом JavaScript-библиотеку на D.
| |
|
7.81, Аноним (-), 00:38, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> образом JavaScript-библиотеку на D.
Хорожее дополнение к asm.js получится :)
| |
|
|
9.92, arisu (ok), 03:53, 24/03/2013 [^] [^^] [^^^] [ответить] | +/– | ну, не всё, а только JScript который 171 порвать 187 была невелика задача ... текст свёрнут, показать | |
|
|
|
6.88, Crazy Alex (ok), 03:43, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Совершенно не представляю, как можно заведомо многопоточный (из-за GC) D осмысленно оттранслировать в JS. А даже если получится - скорость этой самой сборки мусора будет жуткой. Это так, одна из проблем. Тут надо с фронтенда начинать. А LDC - да, очень достойного качества компилятор.
| |
|
7.93, arisu (ok), 03:55, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Совершенно не представляю, как можно заведомо многопоточный (из-за GC) D
а что, они уже осилили concurrent gc? помнится, когда я смотрел исходники (давно, да) — там был обычный stop-the-world, mark-and-sweep. конкурентным сборщиком даже и не пахло.
| |
|
|
9.113, arisu (ok), 22:32, 24/03/2013 [^] [^^] [^^^] [ответить] | +/– | ну, у xds, емнип, тоже так было, но сборщик 171 спал 187 , пока его не пинали... текст свёрнут, показать | |
|
|
7.94, arisu (ok), 03:57, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
кстати, вот у D как раз неплохой потенциал в плане сборки мусора. потому что компилятор может сборщику активно помогать. за счёт некоторой потери в оптимальности работы с регистрами можно действительно вкусный precise gc сделать.
| |
|
|
|
|
|
|
1.2, Safort2 (?), 23:59, 22/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Это просто прекрасная новость! Давно ждал подобного в JS. Главное чтобы Гугл или Эппл поддержали эту инициативу и тогда все остальные подтянутся.
| |
1.3, Аноним (-), 00:00, 23/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Почему в последнее время все так на JS поехали? Этой технологии уже сто лет, что изменилось?
| |
|
2.4, Аноним (-), 00:09, 23/03/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну как же. HTML5, canvas, webgl, node, увеличение производительности на порядок.
| |
|
3.8, pavlinux (ok), 00:52, 23/03/2013 [^] [^^] [^^^] [ответить]
| +31 +/– |
Ога, все вычисления на юзера переложили... Типа теперь каждый ССЗБ, а не сайт кривой!
Тормозит видео - купи видюшку!
Тормозит JS - купи процессор!
Тормозит сеть - купи тариф побольше!
Тормозит диск - купи SSD!
Хочешь прочитать рецепт приготовления пельменей?! - Купи 1024-ядерный Xeon c 1Tb RAM и Quadro 100500980 GTX Ulimate OverDrive Extended Super Edition!
---
И ни одна интерпрайзная программисткая песта, даже не подумает об оптимизации кода
оптимизации алгоритмов, минимизации трафика, устранение задержек!!!
А нахера?! Пиплы - говно, пипл - схавает!
Скоро мля, доживем, сервера будут полностью выгружаться в оперативку к юзеру,
и он будет тупа шарится у себя по RAMе, на с серваком будет происходить только
синхронизация.
А в венде появиться новое предупреждение [ У Вас недостаточно памяти для просмотра этого сайта ]
| |
|
4.49, Timka (??), 13:13, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
павлинух, тебя заносит. статья как раз о том, что JS оптимизируют до такой степени, что он тормозит теперь в 2.5 раза меньше, чем раньше. как раз в заботе о твоем пентиуме-166, возможно даже без ММХ. так что не слюной брызгать надо, а радоваться - JS все равно никуда не уйдет, а ты в кои-то веки можешь сэкономить $50, отложив апгрейд своей S3Trio64 на какой-нибудь ATi Rage 3D и оставшись жить еще год на 128М рамы.
| |
|
5.63, arisu (ok), 20:20, 23/03/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
ты этот мегакостыль вообще смотрел? эти идиоты понаделали гигакостылей, изо всех сил стараясь и рыбку съесть (остаться совместимым с «обычным js»), и на оптимизатор сесть (при помощи бессмысленных конструкций вроде «i = 0+i» мы теперь указываем тип переменной). в итоге эта херь напоминает xml: и для человека выглядит дико, и для машины неудобно.
но ничего, изобретательным костылестроителям такие мелочи не помеха, костылестроители опытные, сумеют воткнуть костыль даже туда, куда он на первый взгляд не втыкается.
| |
|
6.66, Аноним (-), 20:26, 23/03/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> ты этот мегакостыль вообще смотрел? эти идиоты понаделали гигакостылей, изо всех сил
> стараясь и рыбку съесть (остаться совместимым с «обычным js»), и на
> оптимизатор сесть (при помощи бессмысленных конструкций вроде «i = 0+i» мы
> теперь указываем тип переменной). в итоге эта херь напоминает xml: и
> для человека выглядит дико, и для машины неудобно.
> но ничего, изобретательным костылестроителям такие мелочи не помеха, костылестроители
> опытные, сумеют воткнуть костыль даже туда, куда он на первый взгляд
> не втыкается.
Любым полудуркам только открой исходники. Тут же найдется, что "улучшить"
| |
6.74, Аноним (-), 23:26, 23/03/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> сумеют воткнуть костыль даже туда, куда он на первый взгляд не втыкается
Ох, поручик...
| |
|
|
4.54, Aleks Revo (ok), 14:55, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Как ни печально, но в большинстве случаев тормозит сам пользователь. И его не поменяешь — рынок, однако. А пользователь склонен ориентироваться на те самые свистелки и рюшечки, благодаря которым он может демонстрировать своё место в социальной иерархии. И тут — всё как с биткойнами — производительность не подделаешь ))
> Скоро мля, доживем, сервера будут полностью выгружаться в оперативку к юзеру, и он будет тупа шарится у себя по RAMе, на с серваком будет происходить только синхронизация.
А вот тут Вы что-то путаете. Времена статических сайтов уже прошли. А на всякие джумлы и вордпрессы нужны не самые древние сервера )))
| |
|
5.64, arisu (ok), 20:22, 23/03/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Времена статических сайтов уже прошли.
только в пустых черепах маркетолухов.
| |
|
4.60, fiskus (?), 18:34, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Тормозит видео - купи видюшку!
> Тормозит JS - купи процессор!
> Тормозит сеть - купи тариф побольше!
> Тормозит диск - купи SSD!
Дело в том, что у юзера уже есть хорошая видюшка, процессор и анлим-интернет. Этим можно пользоваться и не тратить дорогое время программиста на оптимизацию и рефакторинг
| |
|
5.65, arisu (ok), 20:24, 23/03/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Дело в том, что у юзера уже есть хорошая видюшка, процессор и
> анлим-интернет. Этим можно пользоваться и не тратить дорогое время программиста на
> оптимизацию и рефакторинг
а ещё лучше — не тратить время пользователя на говнокод. я даже не знаю, стоит ли пояснять, что оптимизация программы в итоге даёт выигрыш для всех пользователей, а «купи ещё 64 терабайта RAM» — ни для кого в итоге. мне казалось, что это очевидно.
| |
|
6.80, Аноним (-), 00:36, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> «купи ещё 64 терабайта RAM» — ни для кого в итоге.
Как это? А производители оперативки?! :)
А 64Тб RAM я бы купил. Если б стоили дешево и лезли в сокеты на моей мамке. А то вон сканы интернета - 9Тб барахла. А у меня даже на винче столько нету.. :(.
| |
|
7.85, arisu (ok), 01:50, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> А 64Тб RAM я бы купил.
не так долго ждать-то. сколько лет назад гигабайт памяти казался неумной сказкой?
| |
|
|
9.115, arisu (ok), 23:12, 24/03/2013 [^] [^^] [^^^] [ответить] | +1 +/– | решат как-нибудь, я оптимист проблему с конским навозом на улицах вон решили, и... текст свёрнут, показать | |
|
|
|
|
5.82, AleYeCu (?), 01:18, 24/03/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
Проблема в том, что идея «не тратить дорогое время программиста» посещает слишком много голов одновременно. Мысль же, что отдельно взятый продукт может оказаться не единственным, кто претендует на ресурсы пользовательского компьютера, почему-то куда менее популярна. В итоге производительность железа растёт и растёт, а софт этот рост шустро подъедает, иногда с опережением. При этом функционал, по крайней мере в строну увеличения, за то же время меняется не в разы, а на жалкие проценты. Вот и получается, что «блокнот» с подсветкой синтаксиса нынче жрёт как целая операционная система с графикой лет 20 назад. И браузер жрёт, причём ещё больше. И просмотрщик картинок. И вообще все-все-все.
| |
|
6.87, arisu (ok), 02:04, 24/03/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
сейчас тебе расскажут, что это стенания нищеброда. Реальные Пацаны просто докупают ещё коробку терабайтных винтов, стопку ssd и ящик планок памяти.
| |
|
7.104, Карбофос (ok), 20:07, 24/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
кстати, ssd то говно ещё. нынче уже начинаются проблемы с этими накопителями. скоро они перерастут в жесткач, когда через полгода эксплуатации они будут терять половину своей изначальной вместимости при интенсивном пользовании.
| |
|
8.105, arisu (ok), 20:15, 24/03/2013 [^] [^^] [^^^] [ответить] | +/– | ну, я их не использую пока нужды не вижу у друзей есть, вроде особо не жалуютс... текст свёрнут, показать | |
|
9.117, Аноним (-), 23:22, 24/03/2013 [^] [^^] [^^^] [ответить] | +1 +/– | На самом деле клевые штуки - работа с разлапистым деревом исходников например та... текст свёрнут, показать | |
|
8.116, Аноним (-), 23:16, 24/03/2013 [^] [^^] [^^^] [ответить] | +2 +/– | При интенсивном использовании SSD просто равномерно мрет по всей поверхности По... большой текст свёрнут, показать | |
|
|
6.106, Perl_Jam (?), 20:33, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Вы абсолютно правы! посадить бы их за железо 80-х, к примеру... =))) впрочем, современное железо никак не мешает ребятам, создающим демо-сцены, писать код в 256 байт (одна из номинаций) =)))
| |
|
7.118, Аноним (-), 23:24, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Вы абсолютно правы! посадить бы их за железо 80-х, к примеру... =)))
У меня в конце 80-х был агрегат с 256К рамдиском. Взлет CP/M на горячую занимал 2 секунды. Этот результат даже современные писюки не побили. У них POST в биосе дольше раздупляется чем тот агрегат грузился в систему (там был простейший ROM-загрузчик без самотестов и определения оборудования вообще).
> впрочем, современное железо никак не мешает ребятам, создающим демо-сцены, писать код
> в 256 байт (одна из номинаций) =)))
Если хочешь жесткача - возьми PIC16. Узнаешь что такое понастоящему галимый процессор.
| |
|
|
|
|
|
2.6, Lain_13 (ok), 00:40, 23/03/2013 [^] [^^] [^^^] [ответить] | +5 +/– | Понимаешь ли в чём тут дело, количество перешло в качество, а образно выражаясь ... большой текст свёрнут, показать | |
|
3.20, Vkni (ok), 02:57, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну вот почтовый клиент в браузере,
> который совершенно неспособен интегрироваться с рабочим столом
Это совершенно не связано с языком JS. Это связано с тем, что "рабочий стол" выполняется в одной ОС, а "почтовый клиент" - в другой. Т.о. плохо налажено взаимодействие между виртуальными машинами => нужно смотреть в сторону VM/370, где это было каким-то образом отработано.
| |
|
4.22, Crazy Alex (ok), 03:17, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Там наверняка будет что-то навороченное, а здесь - всего лишь простейшее взаимодействие в рамках гуя нужно. Можно просто дать отдельную D-Bus, на которую и выпихивать события - понятно, браузер должен добавлять URL сайта и нужна фильтрация - какие сайты что могут получать. Проектирования на пару дней, и реализации на столько же.
Ну или если хотеть красиво и стандартизированно - то компонентные интерфейсы и возможность для сайтов регистрироваться (с запросом пользователю, понятно) реализациями тех или иных компонент. Тогда, грубо говоря, локальное приложение сможет открыть пользователю гугловскую адресную книгу, а веб-приложение - открыть локальный редактор картинок.
А ещё гугл что-то подобное пытался ввести, там для веб-приложений - но на десктоп оно, скорее всего, расширяемо.
| |
|
|
6.90, Crazy Alex (ok), 03:48, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Нет, не типа такого. Веб-интенты - это когда тыркаешь в социалочке кнопочку "редактировать картинку" и браузер тебе открывает эту картинку в каком-то совершенно другом веб-приложении-графическом редакторе (ты предварительно его, конечно, добавил себе как дефолтный редактор для таких случаев), после редактирования результат попадает обратно в социалочку. В общем, эдакие компоненты для веба.
| |
|
|
4.28, Lain_13 (ok), 03:52, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Только вот тебе придётся писать скрипты, чтоб потом все необходимые в почтовом клиенте события обрабатывать. Без скриптов ты не обойдёшься. Их ведь и в локально установленном почтовике обрабатывать нужно. Ну а ещё я сказал не только о интеграции с рабочим столом — не выдёргивай половину фразы. А где скрипт, там и тормоза. По крайней мере так было, но… постепенно это перестаёт так быть.
| |
|
5.29, Vkni (ok), 04:02, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Ну а ещё я сказал
> не только о интеграции с рабочим столом — не выдёргивай половину
> фразы.
Та половина фразы малоинтересна - скорость лечится движком JS или скоростью железа. А для реализации взаимодействия с другой ОС нужно придумывать что-то более серьёзное.
| |
|
6.31, Lain_13 (ok), 04:34, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Тут тяжело сказать чья это головная боль. Вон в Ubuntu сделали расширение для фокса, которое позволяет отчасти наладить взаимодействие между сайтом и рабочим столом. Может на основе этих идей что-то и разовьётся более универсальное со временем. Просто без JS работающего во всех случаях со скоростью, близкой к нативному коду, это всё будет иметь мало смысла.
Напоминаю, изначально вопрос был о том, почему всех вдруг так заинтересовал этот JS. Так ведь потому и заинтересовал, что чем ближе веб-приложения подбираются к нише локально установленных приложений, тем больше он всех интересует, а чем больше он всех интересует, тем больше развивается всё, что этому сопутствует.
| |
|
7.36, Vkni (ok), 08:32, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Тут тяжело сказать чья это головная боль.
Браузера и ОС. Причём, скорее именно браузера.
> Напоминаю, изначально вопрос был о том, почему всех вдруг так заинтересовал этот JS.
Удобно использовать конечному пользователю. Для программиста это геморрой - один единственный язык с несколькими сильно различающимися платформами.
| |
|
|
|
|
|
2.7, zy (?), 00:42, 23/03/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
Дело в том что люди наконец-то поняли что это html5 это самый кроссплатформенный стек для разработки приложений из всего что есть в данный момент на рынке.
| |
|
|
4.15, Аноним (-), 02:15, 23/03/2013 [^] [^^] [^^^] [ответить]
| +5 +/– |
"Если звёзды зажигают, значит это кому-нибудь нужно". И да, отучаемся говорить за всех!
| |
|
3.58, Evtomax (??), 17:06, 23/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
И самый уродливый при этом. Это как взяли небольшой красивый домик и понастроили к нему пристроек по мере необходимости.
| |
|
2.9, ex1st (?), 01:15, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Одним нравится его платформонезависимость, другим нужна асинхронность и неблокируемый I/O...
| |
|
1.11, Аноним (-), 01:37, 23/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это повлияет только на немногочисленные жирные выхлопы emscripten на открываемых html-страницах? Или есть надежда, что кое-какой браузер, написанный на javascript, тоже получит ускорение?
| |
|
2.30, Lain_13 (ok), 04:04, 23/03/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> браузер, написанный на javascript
Sup dawg, I herd you like browsing, so I put a browser into your browser so you can browse while you browse!
А на самом деле новость дочитай. Там всё сказано.
| |
|
|
4.53, Lain_13 (ok), 14:44, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Явно же сказано, что asm.js применим и в прочих проектах — им просто нужно использовать его аннотацию. Просто сейчас эта аннотация генерируется автоматически для C/C++ кода, но никто не мешает её использовать в других местах.
| |
|
|
|
1.13, Аноним (-), 02:04, 23/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
сколько можно костылить..... пора уже на dart переходить или какойнибудь typescript но разроботчики броузеров сконцентрированы на награмождении новых костылей для нелогичного неоднозначного javascript который свой век давно отжил. поделка написанная за несколько недель в условиях жестких сроков зачем ее тянут дальше!??
| |
|
2.14, Crazy Alex (ok), 02:13, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Оно да, но в таких масштабах революции страются не устраивать - уж очень дорого обходятся. Лучше помаленьку эту поделку до ума доводить.
| |
2.35, Xasd (ok), 08:29, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> пора уже на dart переходить или какойнибудь typescript...
комментатор надеюсь понимает что даже в гипотетическом случае перехода на dart или/и typescript -- то всё равно это НЕ избавило бы от необходимости разработать: asm.dart и/или asm.ts ???
asm.js -- это всего лишь способ записать низкоуровневые операции таким образом чтобы эта запись не была протеворечащей с теми браузерами которые не понимают asm.js .
| |
|
3.67, arisu (ok), 20:27, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> asm.js — это всего лишь способ записать низкоуровневые операции таким образом чтобы
> эта запись не была протеворечащей с теми браузерами которые не понимают
> asm.js .
ты мне не поверишь, конечно, но тем не менее: это нормальные люди называют «костыль».
| |
|
4.75, Xasd (ok), 23:58, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
ну может быть в очень отдалённом приближении -- это чуть чуть похоже на костыль... и то я даже как-то не уверен.
декларация -- "use asm" -- вполне очевидно декларирует что испьзуется особое подмножество языка! так-что здесь вполне чистое решение...
...отдалённая костыльность может быть только в том что asm.js не похож по своему синтаксису на традиционный ассемблерский вид?
но ведь поэтому он и называется asm.js :-) !!
| |
|
5.79, Аноним (-), 00:33, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> но ведь поэтому он и называется asm.js :-)
Я думаю что мозильщики просто дорвались до луркоморья и решили проиллюстрировать термин "взаимоисключающие параграфы" как-нибудь покрасивее. Вот asm.js - достаточно красиво, по программмерски :)
| |
5.86, arisu (ok), 01:52, 24/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
(вздыхает) если дураков в школе хорошо и обильно бить — вырастают дураки пуганые, пригодные для простейших работ. а если не бить — получаешься ты.
| |
|
6.96, Xasd (ok), 10:22, 24/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
но ведь меня били.
...и обзывание дураком -- это отличный способ уклонится от ответа?
очень "умно" :D
ну хотя наверно можно школьников называть дураками... да... для этого они и учатся...
| |
|
7.101, arisu (ok), 18:54, 24/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> но ведь меня били.
значит, мало били, ума не прибавилось.
впрочем, тут ты не отличаешься от большинства людей, у которых отсутствует навык абстрактного мышления.
| |
|
|
9.103, arisu (ok), 19:11, 24/03/2013 [^] [^^] [^^^] [ответить] | +1 +/– | смысла нет если бы человек хоть допускал мысль, что не прав 8212 можно было ... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
1.16, AnonuS (?), 02:29, 23/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
> Из отличительных черт Asm.js можно отметить поддержку строгой типизации, при которой переменные на протяжении своего жизненного цикла имеют заранее известный и не изменяемый тип. Наличие информации о типах позволяет использовать не только JIT, но и предварительную AOT-компиляцию, выполняемую для всего кода до начала его выполнения и генерирующую более простой и эффективный машинный код.
Осталось переименовать JavaScript в Java, a JavaScript Engine в Java Virtual Machine и всё встанет на свои места.
Это сколько же ресурсов и времени надо было впихнуть кошке под хвост чтобы прийти к такому результату ?
| |
|
2.18, Михрютка (ok), 02:52, 23/03/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Осталось переименовать JavaScript в Java, a JavaScript Engine в Java Virtual
> Machine и всё встанет на свои места.
наконец-то до моих анонимных братьев начинает доходить
| |
|
3.25, AnonuS (?), 03:35, 23/03/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
Блин, Михрюндель, зачем абижаешь? :-)
Твои анонимные братья об этом уже давно догадывались, что всё закончится строгой типизацией и байт-кодом для JVM, которая будет встроена в браусер ;-)
| |
|
2.21, Гуго (?), 03:02, 23/03/2013 [^] [^^] [^^^] [ответить]
| +4 +/– |
Капитан просил передать, что JavaScript отличается от Java не только типизацией.
| |
|
3.26, AnonuS (?), 03:36, 23/03/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Капитан просил передать, что JavaScript отличается от Java не только типизацией.
Передай капитану, что его мнение майора не заинтересовало.
| |
|
4.119, Аноним (-), 23:36, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Передай капитану, что его мнение майора не заинтересовало.
Капитан сообщает что Капитан - это имя. А вовсе и не звание. Поэтому Капитану пофиг на майоров.
| |
|
3.27, AnonuS (?), 03:38, 23/03/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Капитан просил передать, что JavaScript отличается от Java не только типизацией.
Гуго, поведай нам детали капитанского послания.
| |
|
2.37, Xasd (ok), 08:39, 23/03/2013 [^] [^^] [^^^] [ответить] | +1 +/– | самый главный весомый и решающий аргумент почему JavaPlugin оказался хуже чем ... большой текст свёрнут, показать | |
|
|
2.38, Xasd (ok), 08:42, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Строгая типизация -- это самое нужное в любой языке.
кроме языков, которые ценят время отведённое на разработку.
кстате не забудь ещё высказаться на тему "ручное управление ресурсами -- это самое нужное в любой языке" (ведь в asm.js и это тоже оптимизировали :)).
| |
|
3.39, www2 (??), 09:09, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
По сути из нестрогой типизации в большинстве программ обычно используется только возможность вернуть None/Null/Undef вместо подходящего значения.
Есть, кончено, более сложные случаи, но для них в строго типизированном языке можно предусмотреть отдельный класс Object, от которого наследовались бы все остальные типы. В этом случае в программе в 90% случаев можно было бы использовать типизированный подход, а в остальных 10% случаев, когда это явно необходимо - не типизированный.
Почему-то все языки сейчас стремятся стать мультипарадигменными, поддерживая и процедурное, и объектное, и функциональное программирование, но что-то я не замечаю языков, которые бы стремились стать языками со смешанной типизацией.
| |
|
4.41, АнониМ (?), 09:41, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Object это и есть смешанная типизация. в том же груви можно написать, как
public def inc(def val) {
return val +1;
}
так и
public Integer inc(int val) {
return val +1;
}
| |
4.42, CPP (??), 10:23, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> По сути из нестрогой типизации в большинстве программ обычно используется только возможность
> вернуть None/Null/Undef вместо подходящего значения.
> Есть, кончено, более сложные случаи, но для них в строго типизированном языке
> можно предусмотреть отдельный класс Object, от которого наследовались бы все остальные
> типы. В этом случае в программе в 90% случаев можно было
> бы использовать типизированный подход, а в остальных 10% случаев, когда это
> явно необходимо - не типизированный.
> Почему-то все языки сейчас стремятся стать мультипарадигменными, поддерживая и процедурное,
> и объектное, и функциональное программирование, но что-то я не замечаю языков,
> которые бы стремились стать языками со смешанной типизацией.
RTTI уже давно придумали
| |
|
5.59, AnonuS (?), 17:55, 23/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> RTTI уже давно придумали
Анонимные пользователи персональных компьютеров (АППК) шутку оценили и передают свой анонимный привет поклонникам Леопольда фон Захер-Мазоха.
А также ожидают дальнейших пояснений преимуществ этой революционной технологии от нашего брата-эксперта по имени СРР.
| |
|
4.69, arisu (ok), 20:31, 23/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Есть, кончено, более сложные случаи, но для них в строго типизированном языке
> можно предусмотреть отдельный класс Object, от которого наследовались бы все остальные
> типы. В этом случае в программе в 90% случаев можно было
> бы использовать типизированный подход, а в остальных 10% случаев, когда это
> явно необходимо — не типизированный.
и тут язык резко перестал быть строго типизированым. сюрпрайз. и рыбку, и половые удовольствия — не получается, никак.
а вот опциональные аннотации типов — это штука вполне хорошая. в Strongtalk это сделали, получилось годно. но потом команду, увы, купили.
| |
|
3.78, Аноним (-), 00:29, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> кроме языков, которые ценят время отведённое на разработку.
В которых парадигма "written once, debug everywhere"? Ну да, там любят сравнить гайки с бананами, а когда через полчаса работы все после долгих мучений наконец окончательно упало - они пытаются понять где же все-таки порылся этот факап. Убивая на дебаг больше времени чем ассемблерщик просадил бы на написание такого же куска на идеально вылизанном асме :)
| |
3.91, Crazy Alex (ok), 03:52, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Слушай, ну не неси совсем уж явную чушь. Гляди на скалу, D и прочее современное - там (да даже в плюсах нынешних) тип почти везде выводится автоматом. Зато еще до юнит-тестов отлавливается громадная куча ошибок вида "забыл засунуть в объект еще одно значение или сунул не с тем именем". Разработку это только ускоряет.
| |
|
4.98, Xasd (ok), 10:39, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> тип почти везде выводится автоматом
только его ещё и задекларировать надо.
а с учётом того что один и тотже алгоритм может (и ДОЛЖЕН! так как Don’t Repeat Yourself) выполнять манипуляции с различными видами объектов -- то нужно ещё и интерфейсы декларировать.
вот сидишь и занимаешься всем этим декларированием, вместо того чтобы сразу описывать алгоритмы.
не, не, я не спорю -- можно это делать... но время то ведь на всё это -- тратится!
а при этом ошибки могут получатся у языков со строгой типизацией -- такие же как в утиной типизации -- ввиду того что если нам была передана ссылка на объект какого-то типа -- то это вовсе не значит что это именно определённй тип, это может быть и наследник (который ведёт себя по-другому). короче один фиг -- полиморфизм
| |
|
5.110, Crazy Alex (ok), 21:44, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Пишешь алгоритм в шаблонной функции - и всё. При компиляции будет подставлен нужный тип и проведена статическая проверка. Duck-typing на этапе компиляции. Ну и да, динамический полиморфизм пихать только туда, где он нужен (это, кстати, не так уж часто). Хотя даже для него если наследование писали не анусом то класс-наследник сохраняет все гарантии предка. Что в том же D при желании проверяется контрактами (которые, кстати, круто дополняют юнит-тесты).
При всём уважении - ты правда не в курсе, как пишется код на современных статически типизированных языках.
| |
|
|
|
|
1.76, Аноним (-), 00:24, 24/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Им походу надо просто встроить компилер си/си++ в браузер и не париться :)
| |
|
2.84, arisu (ok), 01:49, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Им походу надо просто встроить компилер си/си++ в браузер и не париться
> :)
ещё не вечер. к тому всё идёт, да.
| |
|
3.97, Xasd (ok), 10:32, 24/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> Им походу надо просто встроить компилер си/си++ в браузер и не париться
>> :)
> ещё не вечер. к тому всё идёт, да.
ну Мозилка сделала возможным компилировать C/C++-программы -- для www-страниц
Clang => LLVM => Emscripten => Asm.js
...так-что ваш скепсис не очень ясен.
да, компиляция происходит НЕ внутри браузера (в отличии от JIT-компиляции, которая была БЫ нужна ДО создания Asm.js). ну и что с этого?
хочешь выполнять C/C++-программы в браузере, без применения всякого Javascript?! как раз это тебе и предоставили, радуйся...
причём [повторяюсь] -- без костылей. в чём именно по твоему мнению заключаются костыли, ты так и не назвал..
| |
|
4.112, Crazy Alex (ok), 21:48, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Ты синтаксис этого asm.js видел? Что это если не костыль? А не костыль - это NaCl или PNaCl (как по мне - и первого за глаза, там всего 4 варианта бинаря получаются).
| |
|
5.125, Xasd (ok), 19:20, 27/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
ты синтаксис nexe-файла видил?
...ой тамже двоичный код, и поэтому синтаксис поглядеть нельзя :D
[если нельзя поглядеть синтаксис значит синтаксис автоматически становиться хорошим?]
| |
|
|
|
2.95, Vernat (ok), 08:37, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
ага :)
забиваешь url, исходники мгновенно сливаются, минут пять компиляются, и потом страница летает :)
| |
|
3.100, arisu (ok), 17:53, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> забиваешь url, исходники мгновенно сливаются, минут пять компиляются, и потом страница
> летает :)
кстати, если убрать сарказм, то хранить и передавать не исходник html, а скомпилированый бинарный html было бы намного лучше.
| |
|
4.120, Аноним (-), 23:44, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> скомпилированый бинарный html было бы намного лучше.
JS в принципе такое уже может изобразить :) парсинг и декомпрессию бинаря на нем можно сделать. Другое дело что там все это через ж#пу.
| |
|
3.111, Crazy Alex (ok), 21:46, 24/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Для извращений вроде gmail, на который пользователь каждый день ходит - был бы не такой уж плохой вариант (ну, за исключением того, что лучше уж локальный клиент завести). С кешированием, конечно - но это даже сейчас довольно пристойно сделано.
| |
|
|
1.127, Dvorkin (??), 09:46, 28/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
очень здорово, но все забыли про минимайзеры.
скорость загрузки: упаковка в единый файл, отрезание лишних пробелов, новых строк. комментарии, кстати, тоже удаляются.
| |
|
2.128, anonymous (??), 10:43, 28/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Вы не поняли. Комментарии в asm.js игнорируются (да, совсем игнорируются). Читайте спецификацию.
| |
|
3.129, Dvorkin (??), 11:24, 28/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
простите, до документации пока глаза не дойдут...
меня смутило:
> информация определяется в форме аннотаций (например, "x = x|0; // x : int")
разве необходимая вспомогательная информация о типе переменной находится не в комментарии?
а комментарии удаляются минимизаторами.
| |
|
4.131, arisu (ok), 15:13, 28/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> разве необходимая вспомогательная информация о типе переменной находится не в комментарии?
нет, как раз в идиотском «|0».
| |
|
5.132, Dvorkin (??), 16:22, 28/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> нет, как раз в идиотском «|0».
хм. странные они. изобрели палочку и написали спецификацию? :) а я для этого на 1 делил или добавлял +''. и при объявлении тоже. работало :)
| |
|
6.133, arisu (ok), 16:33, 28/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
и так тоже. ребятам очень хотелось и на гениталий сесть, и рыбки откушать. то бишь, чтобы их костыль и в «обычном» браузере тоже работал. поэтому вместо внятной аннотации типов — вот такая анальная магия. по их задумке, «обычный» браузер просто исполнит, а специально обученый тут же поймёт, что x — это целое и только целое, и всё резко заоптимизирует.
ну, то есть, идея сама по себе неплоха, но *такое* костыльное воплощение придумать — это действительно одарёнными надо быть.
| |
|
7.135, Dvorkin (??), 17:10, 28/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> и так тоже. ребятам очень хотелось
а мне нравится фокс.
> ну, то есть, идея сама по себе неплоха, но *такое* костыльное воплощение
> придумать — это действительно одарёнными надо быть.
имхо, они пытаются решить проблему, которая находится в зоне ответственности пользователя.
достаточно было бы сказать:
"ребята, если вы при объявлении сделаете так: var x = 1/1; , или так x = parseInt( str_x); , то далее мы до конца жизни переменной будем ее считать целым.
используя сие глубокое знание вы можете запустить третий квейк в FF уже вчера."
думаю, тут вопрос политики. им хочется быть первыми, чтобы хромые под них подделывались.
я подозреваю, хромые скажут "пффф!" и забабахают, как я написал выше.
а чтоб ничего не ломалось, попросят указывать версию JS в секции <script
| |
|
|
|
|
|
|
|
14.147, arisu (ok), 19:42, 28/03/2013 [^] [^^] [^^^] [ответить] | +1 +/– | вот это главная беда как только наши танки, мы перевешаем на столбах любителей ... текст свёрнут, показать | |
|
|
|
|
|
9.150, Имя (?), 20:50, 30/03/2013 [^] [^^] [^^^] [ответить] | –1 +/– | Пилите Не забудьте написать - какая именно из версий llvm должна стать стандар... текст свёрнут, показать | |
|
|
7.149, Имя (?), 20:33, 30/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> и так тоже. ребятам очень хотелось и на гениталий сесть, и рыбки
> откушать. то бишь, чтобы их костыль и в «обычном» браузере тоже
> работал. поэтому вместо внятной аннотации типов — вот такая анальная магия.
> по их задумке, «обычный» браузер просто исполнит, а специально обученый тут
> же поймёт, что x — это целое и только целое, и
> всё резко заоптимизирует.
> ну, то есть, идея сама по себе неплоха, но *такое* костыльное воплощение
> придумать — это действительно одарёнными надо быть.
Придумайте лучше. Я лично не могу.
| |
|
6.134, arisu (ok), 16:36, 28/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
кстати, надо будет в свои странички повставлять немножко подобного кода. а потом начать использовать переменную как double. или вообще как строку. пусть мегакомпиляторы порадуются. а если заглючит — бомбить тормозилловцев истерическими багрепортами: «а-а-а, вы поломали мне весь жабоскрип! быстро запилите обратно!»
| |
|
7.148, Имя (?), 20:30, 30/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Этот код просто будет выполняться как обычный JS. А в мозилле вас пошлют и будут правы.
| |
|
|
|
|
|
|
1.130, хрюкотающий зелюк (?), 12:37, 28/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот там уже как мысль далеко зашла: http://habrahabr.ru/post/174481/
"Сегодня Mozilla совместно с игровой студией Epic Games выступила с инициативой создания визуально привлекательных 3D-игр, которые не должны уступать декстопным аналогам, и выполняться прямо в браузере.
Фактически идёт о том, чтобы перенести в веб опыт создания качественных, требующих высокой производительности, игровых приложений, которые должны будут выполняться обновленным движком JavaScript OdinMonkey, который недавно был включён в ночные сборки FireFox и скорость выполнения кода на Asm.js которым в 10 раз превышает аналогичный в других браузерах. Причём это всё без сторонних плагинов вроде Flash или Silverlight — чистый JavaScript."
Если asm.js приблизится к нативной производительности, то венде 100% капец, ибо игры будут работать на любой ОС без необходимости портирования - иди попробуй удержи монополию когда воздание новых ОС на произвольном железе - будет проще.
| |
1.154, Алексей (??), 23:48, 30/04/2015 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Задолбали со своим JavaScript-ом, теперь недо программисты будут понтить больше чем надо.
| |
|