Здравствуйте, Serginio1, Вы писали:
_>>Т.е. ты спрашиваешь как избавиться от JS с помощью WASM? Когда WASM дадут доступ к API браузера это будет элементарно — просто пишем на любом скриптовом языке нужный на код (кстати html тег script отлично это поддерживает) и дополнительно подгружаем движок этого языка скомпилированный под wasm. Тот при своей инициализации возьмёт данные из этих тегов и запустит их на исполнение. Не вижу вообще никаких сложностей.
_>>Кстати, формально говоря некое подобие можно реализовать и прямо сейчас, реализовав поддержку браузерного API через Emscripten, но это будет очевидно суррогат "избавления от js", т.к. поддержка функций браузера в Emscripten через тот самый JS и реализована (т.е. в дополнение к своим скриптам на неком произвольном языке придётся подключать ещё и набор жирных js библиотек от Emscripten). Так что лучше набраться терпения и подождать пока разработчики wasm доберутся до браузерного API.
S> Угу давай смотреть. Внедренный код должен кроме всего прочего взаимодействовать с уже внедренным. Это по сути аналог плагинов в .Net.
S>Мы можем загрузить сборку, но она должна иметь в метаданных ссылки на общие интерфейсы иметь доступ к статическим методам и свойствам к классам уже загруженных сборок и если они не загружены загружать, проблемы с версиями (они правда есть и в JS) итд.
S>Кроме того в HTML события могут иметь как имя метода так и реализацию. Это рефлексия. А значит движок должен быть аля .Net и Java и сборки с соответствующими метаданными.
Хы, ты похоже не понимаешь очевидного. ))) Любые динамические языки априори имеют то, что мы называем "рефлексией" и "боксингом" в статических языках. Только в их случае это не какой-то дополнительный отключаемый инструмент, а собственно основа их функционирования. )))
S> Вспоминаем про ограничения рефлексии в .Net Native. И по сути то будем иметь тот же Фреймворк который и сейчас, только созданный заного.
Так рефлексия времени исполнения — это бред для статически типизированного языка. А для динамических ситуация совершенно другая.
S> Вот например код из Angular 2
S>S><tr *ngFor="let rows of RowsRange; let row = index">
S> <td *ngFor="let col of ColsRange; let i = index">
S> <input type="text" (keypress)="KeyPress($event,Puzzle[row*9+i].value)" (click)="Click(Puzzle[row*9+i])" [class.IsFocused]="Puzzle[row*9+i].IsFocused"
S> [(ngModel)]="Puzzle[row*9+i].value" [disabled]="Puzzle[row*9+i].disabled" size="3" maxlength="1">
S> </td>
S> </tr>
S>
S> При этом в С++,C# есть перегрузка методов, дженерики, а значит нужно искать методы по параметрам и дженерик методы с созданием метода по типу параметру, а если его нельзя вывести, то нужно указвать типы дженерик аргументов.
Ты какую-то ерунду пишешь) Никто не собирается втаскивать в C++ элементы DOM как первоклассные сущности. А просто работать с xml-подобными данными умеет даже C (более того, как раз на этом языке самый лучший парсер и написан).