Re[6]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Evgeny.Panasyuk Россия  
Дата: 21.06.15 11:15
Оценка:
Здравствуйте, kr510, Вы писали:

EP>>Чтобы получить доступ к ещё большему колличеству библиотек. Например.

K>JS — свой, законченный, мир. Здесь нужно реально доказать, что еще одна библиотека будет нужна.

Вот например делаю я какое-то JS приложение, и нужной JS библиотеки нет, зато есть библиотека С++ — кому тут что нужно доказывать?

K>Что касается unity3d, ну в JS есть WebGL.


1. Уровень WebGL намного ниже чем уровень игрового движка.
2. Emscripten как раз и переводит OpenGL вызовы в WebGL.

EP>>Я не сказал что C++ -> JS работает быстрее native C++.

EP>>Я говорю что JS -> C++ получается очень быстрым, быстрее чем ручной JS, и даже быстрее чем C#.
K>Это возможно, но как я понимаю, речь идет о C++ -> JS, а не наоборот.

Опечатка. В обоих случаях должно быть "C++ -> JS".

K>ЗЫ, как полигон для упражнений в программировании это направление класс! Нужно только придумать реальное использование.


Конкретный пример — Autodesk® FormIt 360:

Autodesk® FormIt 360 is a web and mobile app that helps you capture building design concepts digitally anytime, anywhere ideas strike.

Re[8]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Evgeny.Panasyuk Россия  
Дата: 21.06.15 11:20
Оценка:
Здравствуйте, kr510, Вы писали:

EP>>Facebook и Dropbox делают ядро кроссплатформенных мобильных приложений на C++: 1, 2

K>Да, но они хотят получить выигрыш в производительности от прямого взаимодействия с железом через с++.

1. С каким железом? С памятью и процессором?
2. Среди их целей в том числе и кроссплатформенность — одно ядро для разных платформ. Что ты предлагаешь взамен?

K>Зачем им еще надо JS если можно (а с их ресурсами точно можно) прямо на с++ писать? Они наоборот хотят уйти от всех языков посредников.


В web-приложении от JS не уйти.
Отредактировано 21.06.2015 11:21 Evgeny.Panasyuk . Предыдущая версия .
Re[7]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Klikujiskaaan КНДР  
Дата: 21.06.15 11:33
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Klikujiskaaan, Вы писали:


EP>>>Я имел в виду использование C++ как ядра приложения. То есть будет отдельно web-приложение, отдельно приложение для мобильных устройств (не-web), отдельно для десктопа. И везде ядро на C++.

K>>Даже небо, даже Аллах!
K>>Но зачем такое убожество нужно? Проще и понятнее сделать веб-сервис и все кому надо будут подсасывать данные с него...

EP>Facebook и Dropbox делают ядро кроссплатформенных мобильных приложений на C++: 1, 2


2 примера из миллиона.
Re: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: zaufi Земля  
Дата: 23.06.15 16:00
Оценка:
интересно насколько хороши эти оптимизаторы в LLVM... может имеет смысл пилить JS → JS %)
типа был руками написаный JS код, хотим посмотреть как сделать его более оптимальным %)
Re[2]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Evgeny.Panasyuk Россия  
Дата: 23.06.15 16:11
Оценка:
Здравствуйте, zaufi, Вы писали:

Z>интересно насколько хороши эти оптимизаторы в LLVM... может имеет смысл пилить JS → JS %)

Z>типа был руками написаный JS код, хотим посмотреть как сделать его более оптимальным %)

В Facebook использовали компилятор PHP -> C++. Возможно и тут можно сделать JS -> C++ -> JS.
Но, это всё же будет медленнее чем более-менее нормальный код на C++ транслированный в JS. Так как в C++ из коробки есть статический полиморфизм, структуры и т.п., а для JS (в случае JS -> C++) это всё должен выводить компилятор, при этом сохраняя старую семантику.
Re: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Nikе Россия  
Дата: 24.06.15 04:35
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

Попробую наш графический проектик запустить А кто-нибудь его практически пробовал?
А тексты там чем можно растеризовать?
Нужно разобрать угил.
Отредактировано 24.06.2015 4:39 Nikе . Предыдущая версия .
Re[2]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 25.06.15 06:43
Оценка: 3 (1)
Здравствуйте, Nikе, Вы писали:

N>Попробую наш графический проектик запустить А кто-нибудь его практически пробовал?


Я немного пробовал. Получается большой объем, медленная загрузка, скорость чуть лучше простого JS в Firefox'e и слегка или даже сильно хуже в других браузерах.

N>А тексты там чем можно растеризовать?


Там у тебя есть фактически просто кусок памяти, дальше делаешь в нем что хошь. Надо рисовать или растеризовать — тяни библиотеки, умеющие это в памяти делать.
Re[3]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Nikе Россия  
Дата: 25.06.15 08:50
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Там у тебя есть фактически просто кусок памяти, дальше делаешь в нем что хошь. Надо рисовать или растеризовать — тяни библиотеки, умеющие это в памяти делать.


Какой-нибудь Pango тащить мне кажется дороговато при таком подходе
Нужно разобрать угил.
Re[3]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Evgeny.Panasyuk Россия  
Дата: 25.06.15 15:21
Оценка:
Здравствуйте, D. Mon, Вы писали:

N>>Попробую наш графический проектик запустить А кто-нибудь его практически пробовал?

DM>Я немного пробовал. Получается большой объем

Насколько я понял, там большой объём либо из-за стандартной библиотеки, либо рантайма — то есть это своего рода стартовый размер, то чего достаточно в одном экземпляре на всё приложение. Пользовательский код там получается относительно небольшой
Автор: Evgeny.Panasyuk
Дата: 06.06.15
.

DM>скорость чуть лучше простого JS в Firefox'e


"простой JS" — это ручной? Или сгенерированный?
Re[4]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Evgeny.Panasyuk Россия  
Дата: 25.06.15 15:30
Оценка: 4 (1)
Здравствуйте, Nikе, Вы писали:

N>Какой-нибудь Pango тащить мне кажется дороговато при таком подходе


Там можно вызывать обычный JS из C++ — то есть необязательно всё "вручную" растеризовать.

Кстати, где-то видел пример рендеринга PDF внутри JS с помощью сабж.
Re[3]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: alex_public  
Дата: 25.06.15 18:07
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Там у тебя есть фактически просто кусок памяти, дальше делаешь в нем что хошь. Надо рисовать или растеризовать — тяни библиотеки, умеющие это в памяти делать.


В поставке emscripten идёт уже несколько готовых C/C++ библиотек, а не только библиотека языка. Например там с ходу (даже как-то подключать не надо) работает SDL, а это считай уже огромное количество кода для рисования заработает сразу.

Кроме этого видел там в каталоге opengl/openal, glfw, glut и т.п. Плюс ещё взгляд зацепился за библиотеки с названиями типа browser, html5 и т.п. — я таких не знаю, но подозреваю, что они обеспечивают визуализацию средствами DOM.
Re[4]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 26.06.15 04:01
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

DM>>скорость чуть лучше простого JS в Firefox'e


EP>"простой JS" — это ручной? Или сгенерированный?


В моем случае сгенерированный из Haxe, но там практически один в один с оригиналом, т.е. все равно что ручной.
Re[5]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Evgeny.Panasyuk Россия  
Дата: 26.06.15 08:06
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>>>скорость чуть лучше простого JS в Firefox'e

EP>>"простой JS" — это ручной? Или сгенерированный?
DM>В моем случае сгенерированный из Haxe, но там практически один в один с оригиналом, т.е. все равно что ручной.

А что там в ручном коде, какого он типа, какого уровня? ФВП/Замыкания есть?
Как я понял — там распаковка растрового изображения. Например как там представлено изображение — безликий массив скаляров или матрица пикселей? Какие массивы используются — "статически типизированные" или нет?
Re: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Dair Россия http://dair.spb.ru
Дата: 26.06.15 08:55
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Emscripten


(эмоциональное)

Вот за 15 лет, что я работаю программистом, из Web не пришло ничего хорошего. В web ушло много хороших технологий, и там и остались, тут да.
А вот обратно... Именно в web, по причине, видимо, рыночной потребности, самозародились люди, считающие PHP и JS языками программирования (формально они ими являются, но программировать на PHP/JS?.. ORLY? "Налабать сайт" != "программиировать").

Современный Web представляет собой колосса из велосипедов на костылях, и имя этим костылям — JS в первую очередь (особенно после появления уродств типа JQuery), и PHP — во вторую. Потом однобитные "программисты", освоившие JS, решили его и на сервер перетащить.


Считаю, что JavaScript должен быть засунут в ту дыру, из которой он вылез — формочки обрабатывать.
С уважением,
Владимир Лебедев-Шмидтгоф
Санкт-Петербург, РФ.
Re[2]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: kr510  
Дата: 26.06.15 08:59
Оценка: :))
Здравствуйте, Dair, Вы писали:

D>Считаю, что JavaScript должен быть засунут в ту дыру, из которой он вылез — формочки обрабатывать.


А как же node.js? афигенная штука, IMHO.
Re[3]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: alex_public  
Дата: 26.06.15 09:35
Оценка:
Здравствуйте, kr510, Вы писали:

K>А как же node.js? афигенная штука, IMHO.


И что в нём хорошего? )
Re[6]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 26.06.15 11:06
Оценка: 8 (1)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

DM>>В моем случае сгенерированный из Haxe, но там практически один в один с оригиналом, т.е. все равно что ручной.


EP>А что там в ручном коде, какого он типа, какого уровня? ФВП/Замыкания есть?


Довольно невысокого уровня, без ФВП и замыканий, но с объектами.

EP>Как я понял — там распаковка растрового изображения. Например как там представлено изображение — безликий массив скаляров или матрица пикселей? Какие массивы используются — "статически типизированные" или нет?


Все на типизированных массивах. Картинка — массив байт.

Исходники теста тут:
http://data.infognition.com/spbench/haxe_asmjs_src.zip
Re[6]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Erop Россия  
Дата: 26.06.15 11:37
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

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

Это божет работать offline...
Например словарь, приезжаешь в другую страну, а там дорогущий роуминг.. Упс?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Klikujiskaaan КНДР  
Дата: 26.06.15 15:28
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Klikujiskaaan, Вы писали:


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

E>Это божет работать offline...
E>Например словарь, приезжаешь в другую страну, а там дорогущий роуминг.. Упс?

Веб сайт работающий оффлайн? Ну ок.
Re[8]: Emscripten: LLVM to JavaScript compiler (C++ to JS)
От: Erop Россия  
Дата: 26.06.15 15:33
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:


K>Веб сайт работающий оффлайн? Ну ок.


почему сайт, а не локальный клиент?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.