Жабаскрипт как ассемблер
2013-03-28 10:48 amНедолго web-разработчики наслаждались отсутствием сложных систем сборки, хе-хе :)
Глядя на успехи Asm.js ( http://habrahabr.ru/post/174175/ ), я уже представляю себе C/C++ный код с вызовами библиотек типа libpng и libjpeg и цепочки трансляции вида clang/dragonegg -> llvm-link/llvm-ld -O5 -> emscripten
Ну, как минимум, для ресайза и сжатия изображений на клиентской стороне, когда тупые юзера аплоадят 10000x10000 BMP файлы, занимая трафик и вычислительное время на сервере. (Кстати, отличный вектор для DDoS'а). Это, наверное, для каждого второго сайта нужно.
А раз уж у нас такая хитрожопая сборка, то почему бы весь web-сервер не сделать на C++ или Go? Сила похапэ, руби и питонов там всяких была именно в том, что исходники = исполняемые файлы. Asm.js-овская вермишель будет с точки зрения читаемости ещё адовее x86-го ассемблера, я гарантирую это. После добавления поддержки asm.js в V8, конечно, найдутся извращенцы, которые скрестят её с node.js, но зачем? Ведь можно сразу собирать в нормальные машинные коды — раз уж так сложилось, что мы собираем.
Мозиллу, кстати, уже понесло ( http://habrahabr.ru/post/174481/ ), хотя я например до сих пор не понимаю, как emscripten будет транслировать indirect branch (вызов функции по указателю или виртуальной таблице, longjmp и другие нетривиальные случаи).
Глядя на успехи Asm.js ( http://habrahabr.ru/post/174175/ ), я уже представляю себе C/C++ный код с вызовами библиотек типа libpng и libjpeg и цепочки трансляции вида clang/dragonegg -> llvm-link/llvm-ld -O5 -> emscripten
Ну, как минимум, для ресайза и сжатия изображений на клиентской стороне, когда тупые юзера аплоадят 10000x10000 BMP файлы, занимая трафик и вычислительное время на сервере. (Кстати, отличный вектор для DDoS'а). Это, наверное, для каждого второго сайта нужно.
А раз уж у нас такая хитрожопая сборка, то почему бы весь web-сервер не сделать на C++ или Go? Сила похапэ, руби и питонов там всяких была именно в том, что исходники = исполняемые файлы. Asm.js-овская вермишель будет с точки зрения читаемости ещё адовее x86-го ассемблера, я гарантирую это. После добавления поддержки asm.js в V8, конечно, найдутся извращенцы, которые скрестят её с node.js, но зачем? Ведь можно сразу собирать в нормальные машинные коды — раз уж так сложилось, что мы собираем.
Мозиллу, кстати, уже понесло ( http://habrahabr.ru/post/174481/ ), хотя я например до сих пор не понимаю, как emscripten будет транслировать indirect branch (вызов функции по указателю или виртуальной таблице, longjmp и другие нетривиальные случаи).