Re[26]: [OFF] Научная фантастика :)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.03.17 07:23
Оценка: 49 (2)
Здравствуйте, fddima, Вы писали:

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


F> Всем бы твой задор а потом ещё и в мирное русло. Цены бы вам не было б. Я серьезно. Я не думаю что у нас огромная разница в возрасте или что-то такое, более того — я последние годы — везде тыкаю дотнет в грязь, если могу это по делу. Но. Ты окрылён чем-то, — а я нет. Sinix — тоже нет. Вашему TS2 всё ещё нужен сторонний транспилер что-бы это работало в реальных браузерах. Потом выясниться что всё тот же TS2 делает что-то не так. Потом когда до кого-то дойдет что он способен язык ради фана — он сделает XS1 который будет компилироваться сразу в вебассембли что несмотря на мегабайты TS — видимо не дано. Я это к чему — я лучше буду из C++ эти самые web assembly генерить, новаторы эти малёха поднадоели. При том, противно, что самый говёный продукт подхватывается на ура. Angular1 + TS — отличные примеры. За ангуляром1 кроме персистентных утечек в "родном" хроме но не фф и ие — ничего не стояло. Ах, забыл. Гугл стоял. А за — TS "экс" сотрудник, да такое экс, что вдруг получил первоклассную поддержку языка в студии из коробки. Тьфу.

F> Более того — NIMH/NIH — это то чем должен пользоваться разработчик, но TS выстрелил так быстро, что в независимость я не верю.
F> С дотнетом и неткорой лучше. Много лучше.

Предложи это мирное русло. Мне 53 годика. Кстати ищу работу.
Что касается web assembly то это аналог asm.js. Ты
выиграешь только в скорости выполнения на примитивных типов. JS объекты web assembly, компоненты ты на нем писать не сможешь.

http://rsdn.org/forum/flame.comp/6693034.1
Автор: Serginio1
Дата: 09.02.17


Ну это аналог asm.js. То есть код на C++ компилируется в Wasm который дергается из JS

WebAssembly призвана дополнить и работать вместе с JavaScript — с помощью API-интерфейсов WebAssembly JavaScript, вы можете загрузить модули WebAssembly в приложение JavaScript и обмениваться функциональность между ними. Это позволяет воспользоваться преимуществами производительности и мощности WebAssembly и выразительность и гибкость в JavaScript в тех же программах, даже если вы не знаете, как писать код WebAssembly.

Сборка из C / C ++ для WebAssembly (ТБД) Когда вы написали модуль кода на языке , как C / C ++, вы можете скомпилировать его в .wasm с помощью инструмента Emscripten . Давайте посмотрим, как это работает.


https://developer.mozilla.org/en-US/docs/WebAssembly

От JS ты не избавишься.

Что касается TS то он лучше JS компилируется при изменении итд. Все можешь настроить в tsConfig, WebPack. И в Edge и Хроме ты отлаживаешь именно TS, а не JS.

Что касается Angular 2, то вполне себе нормальеый фремворк поле Jqury UI и прочих. Мне как 1с/C# программисту далекому от Web программирования очень понятны.

Что касается размеров, то пример в https://yadi.sk/d/0If7C5jZ3CEhmf жмутся webpack менее 5 mb

Кстати Angular 1 и 2 это несколько разные вещи
и солнце б утром не вставало, когда бы не было меня
Отредактировано 09.03.2017 7:40 Serginio1 . Предыдущая версия . Еще …
Отредактировано 09.03.2017 7:35 Serginio1 . Предыдущая версия .
Re[27]: [OFF] Научная фантастика :)
От: fddima  
Дата: 09.03.17 10:24
Оценка: +2
Здравствуйте, Serginio1, Вы писали:

Был вчера под впечатлением, так что в целом — забей.


S> Предложи это мирное русло. Мне 53 годика.

Тут осечка вышла. Но... тогда вдвойне уважуха. Когда я ходил в офисы на работу — люди твоего возраста с трудом числа складывали.

S> Кстати ищу работу.

Тут ничем не могу помочь, увы.

S> Что касается web assembly то это аналог asm.js. Ты

S> выиграешь только в скорости выполнения на примитивных типов. JS объекты web assembly, компоненты ты на нем писать не сможешь.
S>http://rsdn.org/forum/flame.comp/6693034.1
Автор: Serginio1
Дата: 09.02.17

S>Ну это аналог asm.js. То есть код на C++ компилируется в Wasm который дергается из JS
http://rsdn.org/forum/flame.comp/6720008.1
Автор: alex_public
Дата: 08.03.17

А в этой теме
Автор: sambl4
Дата: 09.03.17
люди пишут что из webasm не будет доступа к DOM.

S>

S>WebAssembly призвана дополнить и работать вместе с JavaScript — с помощью API-интерфейсов WebAssembly JavaScript, вы можете загрузить модули WebAssembly в приложение JavaScript и обмениваться функциональность между ними. Это позволяет воспользоваться преимуществами производительности и мощности WebAssembly и выразительность и гибкость в JavaScript в тех же программах, даже если вы не знаете, как писать код WebAssembly.

Это же, но простыми словами — мы добавили webasm, но JavaScript мы убирать не будем, т.к. потерять совместимость — это значит выкинуть браузер на мусорку. С помощью webasm вы сможете делать тоже самое что и на JS (обмениваться функциональностью между модулями).

S>

S>Сборка из C / C ++ для WebAssembly (ТБД) Когда вы написали модуль кода на языке , как C / C ++, вы можете скомпилировать его в .wasm с помощью инструмента Emscripten . Давайте посмотрим, как это работает.

S>https://developer.mozilla.org/en-US/docs/WebAssembly
S> От JS ты не избавишься.
Тогда мы возвращаемся опять к началу — нафига оно тогда? Ну т.е. почему нельзя было сделать так, что бы от JS можно было избавиться?

S> Что касается TS то он лучше JS компилируется при изменении итд. Все можешь настроить в tsConfig, WebPack. И в Edge и Хроме ты отлаживаешь именно TS, а не JS.

То, что TS лучше JS — я и не спорю. Но по факту — от остальных его выгодно отличает только разкрученность. Опять таки — да, это хорошо, что появился инструмент который быстро развивается и имеет первоклассную поддержку. Но и ты пойми — google-closure-compiler умел при своей source-to-source компиляции: a) inlining b) dead code elimination. Поэтому какой-нибудь google-closure или даже маргинальный haxe на порядок мощнее как инструменты, позволяющий использовать несколько мегабайтные библиотеки и не затаскивать весь код библиотек в браузер (что всё ещё критично для скорости загрузки).
Насчет отладки я не понял. sourcemaps работают для любых языков, с TS это никак не связано. Это же свойство дебаггера, а не языка.

S> Что касается Angular 2, то вполне себе нормальеый фремворк поле Jqury UI и прочих. Мне как 1с/C# программисту далекому от Web программирования очень понятны.

S> Что касается размеров, то пример в https://yadi.sk/d/0If7C5jZ3CEhmf жмутся webpack менее 5 mb
S> Кстати Angular 1 и 2 это несколько разные вещи
Разные. Полность. Тем не менее — репутацию они у заработали именно на angular 1. Моя инертность мышления отвергает их изделие просто потому что angular 1 в моё время добавил исключительно только проблемы. Кстати, приблизительно о такой инертности говорит и Sinix со своим великим и ужасным энтерпрайзом.

В любом случае — дружба мир жвачка.

Я в любом случае рад, что инструменты развиваются. Как только мне попадёт в руки веб-проект — обязательно рассмотрю возможность связки TS2+A2. До того я активно использовал TS1 в некоторых местах — но не без проблемно. Куча подводных камней с той же студией и т.п.
Re[28]: [OFF] Научная фантастика :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.03.17 10:30
Оценка:
Здравствуйте, fddima, Вы писали:

F> Опять таки — да, это хорошо, что появился инструмент который быстро развивается и имеет первоклассную поддержку. Но и ты пойми — google-closure-compiler умел при своей source-to-source компиляции: a) inlining b) dead code elimination. Поэтому какой-нибудь google-closure или даже маргинальный haxe на порядок мощнее как инструменты


И поэтому же они пока пролетают со свистом — технологии слишком пока завязаны на JS и слишком далекий от него уход приводит к сложностям.
TS практичен в том числе и тем, что очень недалеко отходит от JS, сохраняя с ним почти полную обратную совместимость и весьма прозрачную транслируемость.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[29]: [OFF] Научная фантастика :)
От: fddima  
Дата: 09.03.17 10:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>И поэтому же они пока пролетают со свистом — технологии слишком пока завязаны на JS и слишком далекий от него уход приводит к сложностям.

AVK>TS практичен в том числе и тем, что очень недалеко отходит от JS, сохраняя с ним почти полную обратную совместимость и весьма прозрачную транслируемость.
Так не так уж и слишком завязы. Если для одних это была цель, то для TS — цель наоборот этого не делать. Т.е. есть хороший язык, первоклассная поддержка — но абсолютно нет кодогенерации. Увы, мне этого не понять.
Re[30]: [OFF] Научная фантастика :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.03.17 10:45
Оценка:
Здравствуйте, fddima, Вы писали:

F> Так не так уж и слишком завязы. Если для одних это была цель, то для TS — цель наоборот этого не делать. Т.е. есть хороший язык, первоклассная поддержка — но абсолютно нет кодогенерации. Увы, мне этого не понять.


Тем не менее практика показала, что TS однозначно самый популярный JS транспилер в истории. Еще хоть сколько нибудь заметная популярность была у CoffeeScript, который, что характерно "The golden rule of CoffeeScript is: “It’s just JavaScript”.". А вот перечисленные тобой языки остались на маргинальной обочине.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[30]: [OFF] Научная фантастика :)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.03.17 10:51
Оценка:
Здравствуйте, fddima, Вы писали:


F> Так не так уж и слишком завязы. Если для одних это была цель, то для TS — цель наоборот этого не делать. Т.е. есть хороший язык, первоклассная поддержка — но абсолютно нет кодогенерации. Увы, мне этого не понять.

Кодогенерация это про шаблоны?
На самом деле у них есть кодогенерация для async await
и солнце б утром не вставало, когда бы не было меня
Re[31]: [OFF] Научная фантастика :)
От: fddima  
Дата: 09.03.17 11:14
Оценка:
Здравствуйте, AndrewVK, Вы писали:

F>> Так не так уж и слишком завязы. Если для одних это была цель, то для TS — цель наоборот этого не делать. Т.е. есть хороший язык, первоклассная поддержка — но абсолютно нет кодогенерации. Увы, мне этого не понять.

AVK>Тем не менее практика показала, что TS однозначно самый популярный JS транспилер в истории. Еще хоть сколько нибудь заметная популярность была у CoffeeScript, который, что характерно "The golden rule of CoffeeScript is: “It’s just JavaScript”.". А вот перечисленные тобой языки остались на маргинальной обочине.
Да, но closure-compiler и closure-libary — основа для широко используемых приложений от гугла. В своё время — первопроходцев из области "самых используемых браузерных приложений в истории". Проблема в том, что closure-compiler — не имеет своего внятного языка, а использует размеченный JS комментариями и доступ к свойствам объектам странный (a.b и a["b"] — для него разные вещи). Разумеется такой подход не мог и не может хорошо работать — порождает кучу ошибок на ровном месте.
haxe — я привёл только как пример подобного компилятора, но в котором уже есть и типы и модульность и компиляция в JS с оптимизациями (самая важная — выкидывать ненужный библиотечный код). Учитывая, что над ним работают три "коллеги" и не используется он широко — понятно, что шероховатостей там масса.
Re[32]: [OFF] Научная фантастика :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.03.17 11:16
Оценка:
Здравствуйте, fddima, Вы писали:

F> Да, но closure-compiler и closure-libary — основа для широко используемых приложений от гугла.


Ключевое слово тут гугл, а не closure.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[31]: [OFF] Научная фантастика :)
От: fddima  
Дата: 09.03.17 11:21
Оценка:
Здравствуйте, Serginio1, Вы писали:

F>> Так не так уж и слишком завязы. Если для одних это была цель, то для TS — цель наоборот этого не делать. Т.е. есть хороший язык, первоклассная поддержка — но абсолютно нет кодогенерации. Увы, мне этого не понять.

S> Кодогенерация это про шаблоны?
S> На самом деле у них есть кодогенерация для async await
Я знаю про async/await. Это опять таки хорошо, — но это синтаксический сахар вокруг высокоуровневых вещей.
Но, нет, я же писал выше, что кодогенерация — это инлайнинг и dead code elimination (да и куча других довольно мелких вещей). Сейчас типичный деплоймент это использование готовых библиотек — они в свою очередь бывают весьма пузатые (даже минифицированные). Если к примеру взять туже closure-libary — то исходники всех компонент — 24Мб. Очевдно, что всё и сразу не нужно.
Тоже самое касается и остальных библиотек — половина jquery в полном объеме сразу тоже мало кем используется. Add: Они он даже выпустили 2 версии, полную и slim. Совершенный ручник.
Отредактировано 09.03.2017 11:27 Mystic Artifact . Предыдущая версия .
Re[33]: [OFF] Научная фантастика :)
От: fddima  
Дата: 09.03.17 11:24
Оценка:
Здравствуйте, AndrewVK, Вы писали:

F>> Да, но closure-compiler и closure-libary — основа для широко используемых приложений от гугла.

AVK>Ключевое слово тут гугл, а не closure.
Ключевое — это практическое существование не малых продуктов созданных на конкретном тулчейне, которые демонстрируют сильные стороны подхода. Но, пожалуй хватит спорить ни о чём.
Re[34]: [OFF] Научная фантастика :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.03.17 11:26
Оценка: :))
Здравствуйте, fddima, Вы писали:

F> Ключевое — это практическое существование не малых продуктов созданных на конкретном тулчейне


Когда б вы знали, из какого сора Растут стихи, не ведая стыда.

... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[32]: [OFF] Научная фантастика :)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.03.17 11:29
Оценка:
Здравствуйте, fddima, Вы писали:

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


F>>> Так не так уж и слишком завязы. Если для одних это была цель, то для TS — цель наоборот этого не делать. Т.е. есть хороший язык, первоклассная поддержка — но абсолютно нет кодогенерации. Увы, мне этого не понять.

S>> Кодогенерация это про шаблоны?
S>> На самом деле у них есть кодогенерация для async await
F> Я знаю про async/await. Это опять таки хорошо, — но это синтаксический сахар вокруг высокоуровневых вещей.
F> Но, нет, я же писал выше, что кодогенерация — это инлайнинг и dead code elimination (да и куча других довольно мелких вещей). Сейчас типичный деплоймент это использование готовых библиотек — они в свою очередь бывают весьма пузатые (даже минифицированные). Если к примеру взять туже closure-libary — то исходники всех компонент — 24Мб. Очевдно, что всё и сразу не нужно.
F> Тоже самое касается и остальных библиотек — половина jquery в полном объеме сразу тоже мало кем используется.


Понятно, но для этого и существует webPack CEF, ES6, Angular 2, WebPack 2 .Net Core десктопное приложение без серверной части

Он и пакует и HTML и CSS и JavaScript в 3 файла. В моем проекте есть и JQuery и Angular 2 плюс Proxy Promise. и Все это упаковывается в менее 5 МБ.
И при этом с файлами можно работать локально без сервера.
Возможно как и в .Net можно делать оптимизации на уровне компиляции TS в JS. Но думаю, что развитие WebPack более универсально.
и солнце б утром не вставало, когда бы не было меня
Re[33]: [OFF] Научная фантастика :)
От: fddima  
Дата: 09.03.17 11:57
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S> Понятно, но для этого и существует webPack CEF, ES6, Angular 2, WebPack 2 .Net Core десктопное приложение без серверной части

Минификация != dead code elimination, последний должен выкидывать ненужные классы, ненужные методы уменьшая общий объем кода, что для чистого JS — невозможно и часто сопряжено со знанием об устройстве модулей. Элементарнейший случай — не включать не нужные модули. Наподобии как в C# — наличие референса на сборку во время компиляции не означает что результирующая сборка будет её референсить, в случае если она не используется. В традиционной нативной линковке (тоже простой случай) — неиспользуемые объектные модули не включаются в результирующий исполнимый модуль, поэтому линкуя статическую стандартную библиотеку => мы платим более-менее только за то, что используем.
Re[34]: [OFF] Научная фантастика :)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.03.17 12:07
Оценка:
Здравствуйте, fddima, Вы писали:

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


S>> Понятно, но для этого и существует webPack CEF, ES6, Angular 2, WebPack 2 .Net Core десктопное приложение без серверной части

F> Минификация != dead code elimination, последний должен выкидывать ненужные классы, ненужные методы уменьшая общий объем кода, что для чистого JS — невозможно и часто сопряжено со знанием об устройстве модулей. Элементарнейший случай — не включать не нужные модули. Наподобии как в C# — наличие референса на сборку во время компиляции не означает что результирующая сборка будет её референсить, в случае если она не используется. В традиционной нативной линковке (тоже простой случай) — неиспользуемые объектные модули не включаются в результирующий исполнимый модуль, поэтому линкуя статическую стандартную библиотеку => мы платим более-менее только за то, что используем.

Net Core так и поступает. Правда там модульность плюс ограничен Reflection/ А так согласен из-за отсутствия типизации, сложно отследить какие классы нужно выбрасывать.
и солнце б утром не вставало, когда бы не было меня
Re[27]: [OFF] Научная фантастика :)
От: Sinix  
Дата: 09.03.17 18:25
Оценка: 18 (1)
Здравствуйте, Serginio1, Вы писали:

S>>Как сборки .net core могут быть "оптимизированы" под .native, если это два разных форка .net framework?

S>То есть CoreClr и .Net Native выполняют один и тот же CIL код.
Ну да. _рантайм_ CoreClr используется для отладки, а библиотеки BCL UWP были синхронизированы с CoreClr. Но как из этого следует, что "сборки под .Net Core оптимизированы для .Net Native" — я


S> Мне интересно если разница между нативным кодом

S>1. JIT .Net CLR
S>2. JIT CoreCLR
S>3. Net Native

На сегодня — есть. Первые два используют разные версии RyuJit, в .net core более свежая. Бинарный код .net native порождает бэкэнд от ms с++.

S>>Всё остальное — это уже следствия.

S> И чем же оно противоречит приведенное мною?
Я уже пару раз писал, если с вашей точки зрения разницы нет — значит нет
Re[28]: [OFF] Научная фантастика :)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.03.17 07:14
Оценка:
Здравствуйте, Sinix, Вы писали:

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


S>>>Как сборки .net core могут быть "оптимизированы" под .native, если это два разных форка .net framework?

S>>То есть CoreClr и .Net Native выполняют один и тот же CIL код.
S>Ну да. _рантайм_ CoreClr используется для отладки, а библиотеки BCL UWP были синхронизированы с CoreClr. Но как из этого следует, что "сборки под .Net Core оптимизированы для .Net Native" — я


Возможно я не прав , но я имел ввиду разбиение на модули


Традиционная реализация .NET Framework не предусматривает разбиения на модули, поэтому компоновщик (linker) не может включить в приложение лишь ту часть инфраструктуры, которая нужна приложению. Но .NET Core, по сути, является ответвлением .NET Framework, реализация которой оптимизирована с учетом модульности . Другое преимущество этой реализации — возможность поставлять .NET Core Framework как набор NuGet-пакетов, что позволяет вам обновлять индивидуальные классы вне самой .NET Framework. Однако, прежде чем двигаться дальше, давайте обсудим изменения в NuGet.


Кстати ILSpy не читает сборки Core. Не подскажешь, каким рефлектором можно пользоваться?
и солнце б утром не вставало, когда бы не было меня
Re[29]: dotPeek
От: Qbit86 Кипр
Дата: 10.03.17 07:16
Оценка: 33 (2)
Здравствуйте, Serginio1, Вы писали:

S> Кстати ILSpy не читает сборки Core. Не подскажешь, каким рефлектором можно пользоваться?


dotPeek?
Глаза у меня добрые, но рубашка — смирительная!
Re[30]: dotPeek
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.03.17 08:12
Оценка:
Здравствуйте, Qbit86, Вы писали:

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


S>> Кстати ILSpy не читает сборки Core. Не подскажешь, каким рефлектором можно пользоваться?


Q>dotPeek?


Спасибо. Только я не понял. Смотрю классы, методы. А они с комментариями. Понял, что показываются реальные модули или это декомпилированный код?
и солнце б утром не вставало, когда бы не было меня
Re[31]: dotPeek
От: Qbit86 Кипр
Дата: 10.03.17 08:13
Оценка: 18 (1)
Здравствуйте, Serginio1, Вы писали:

S> Спасибо. Только я не понял. Смотрю классы, методы. А они с комментариями. Понял, что показываются реальные модули или это декомпилированный код?


Там можно включить показ именно декомпилированного кода; как C#, так и IL.
Глаза у меня добрые, но рубашка — смирительная!
Re[29]: [OFF] Научная фантастика :)
От: vorona  
Дата: 10.03.17 08:14
Оценка:
Здравствуйте, Serginio1, Вы писали:

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