Сегодня великий день! JavaScript стал на шаг ближе к смерти! / Microsoft (Майкрософт) :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

geek Microsoft 

Сегодня великий день! JavaScript стал на шаг ближе к смерти!

geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,Microsoft,Майкрософт

В этот памятный день зарелизился .Net Core 3.0, который привносит в мир веб возможность писать на чистом C# с помощью фреймворка с открытым исходным кодом Blazor, компилируя исходные коды в WASM, который является открытым стандартом и поддерживается на уровне браузера, что исключает повторение судьбы SilverLight. А там, где не поддерживается WASM если возможность эмуляции и передачи готового с сервера прямо клиенту.


Сам по себе Blazor похож на Angular. Да, может быть какие-то фичи отсутствуют, но в ближайших релизах их добавят.

geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,Microsoft,Майкрософт


Покайтесь JavaScript'еры, ибо грядет судный день!


Подробнее


geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,Microsoft,Майкрософт
Еще на тему
Развернуть
я не понимаю автора поста,языки потихоньку умирают и сменяются чем то новым,это вообще базовое понятие для программиста,то на чем он кодит сейчас скорее всего лет через 5 будет уже древностью,но как бы на то мы и программисты,что постоянно учимся новым методам работы и обучаемся,плюс ко всему новые технологии зачастую упрощают разработку...
Yumedz Yumedz 23.09.201921:10 ответить ссылка 2.6
Фишка в том, что до введения WASM в веб не было никаких альтернатив. Были лишь какие-то попытки сделать удобную обертку над JavaScript, которая затем компилировалась снова в JavaScript.
А тут прямо простор открыли для других языков.
>то на чем он кодит сейчас скорее всего лет через 5 будет уже древностью
Угу, особенно хорошо это видно на примере какого-нибудь Си
С++
С#
Java
Чувак, я на С пишу.
я почти 15 лет кодю на С# ..... он походу Бенджамин Баттон
Скажи это фортрану, пхп и ассемблеру.
MaXM00D MaXM00D 23.09.201922:27 ответить ссылка -1.1
Это "третий лишний"?
ktulhu74 ktulhu74 23.09.201922:46 ответить ссылка -0.6
Вспомнились строчки одной известной в узких кругах песни:

New-wave tried to destroy the metal, but the metal had its way
Grunge then tried to dethrone the metal, but metal was in the way
Punk-rock tried to destroy the metal, but metal was much too strong
Techno tried to defile the metal, but techno was proven wrong
Metal!
It comes from hell!
JohnnyZ JohnnyZ 23.09.201921:14 ответить ссылка 0.9
>It comes from hell!

это прям вот точно про javascript
Это клевая штука, пробовал Blazor действительно клевая вещь, но думаю JS он не убьет как минимум еще долго уж слишком плотно он засел в крупных корпорациях.

JS как голем из говна, ты его рубишь а у него больше говна отрастает, так он еще и тебя пачкает.
Dimacik Dimacik 23.09.201921:21 ответить ссылка 0.4
Ну Легаси переписывать конечно никто не будет в корпорациях, однако, если пилить что-то новое, то можно взять Blazor.
Глядишь и еще какие-нибудь игроки подтянутся.
Например, у Google есть Dart, который пока компилится в JavaScript, но если у майков получится завоевать популярность, то будет круто.

В текущем варианте Blazor можно использовать JS для доступа к апи браузера, но через год все обрастет либами и высокоуровневыми обертками.
Очень сомневаюсь. Щас все обмазываются JS. Фронт на жс. Бэк на жс. Мобильные приложения на жс. Десктопные приложения на жс. Даже есть микроконтроллеры на жс. Шарп популярен, но не так, как жс, и больше в ыыынтырпрайз виндовс-десктоп и ыыынтырпрайз-веб секторе.
И я хз, дает ли Blazor какие-то объективные преимущества. Производительность? Фиг знает, что быстрее, виртуалка в виртуалке (пусть WASM и легковесная низкоуровневая виртуалка, быстрее, чем CLR) или JS на V8, который тоже со всякими оптимизациями? ООП? Ну есть тайпскрипт от того же майкрософта (справедливости ради, я попробовал этот ваш тайпскрипт и после плюсов/шарпа/джавы - это какое-то лютое дерьмо). Единственным плюсом мне видится возможность переиспользования частей кодовой базы для тех, у кого бэк на шарпе.
Typescript годен. Особенно против Java
Arakon Arakon 24.09.201900:13 ответить ссылка 0.0
Ты просто робот, имитация жизни Имитация ООП. Ну, джава то еще говно, тут да. Но против C++/C#/Kotlin - говнище. Я писал немного и ой как мне не хватило хотя бы сраной перегрузки операторов. Писать векторные-матричные операции через add(), mult() и так далее не очень удобно.
Я не согласен. Каждый язык по своему хорош. И хорош для своего. Хочу увидеть как вы будете писать энтерпрайз на ++. А особенно читать. Typescript это в первую очередь джс здорового человека.
Arakon Arakon 24.09.201911:39 ответить ссылка 0.0
А я где-то говорил, что нужен один язык, от контроллеров до веба? У тайпскрипта есть баго-фича, что (не могу привести точную формулировку, как это говорят разрабы) не предоставляет уже совсем лютой дичи, которой нет в жс. Той же перегрузки операторов. Ну и ооп тоже местами куций, ну и еще не хватает ряда плюшек, если сравнивать.
>В этот памятный день зарелизился .Net Core 3.0, который привносит в мир веб возможность писать на чистом C# с помощью фреймворка с открытым исходным кодом Blazor, компилируя исходные коды в WASM

точно ли сразу в WASM?

емнип, в WASM скомпилирована Mono Runtime, а сам Blazor компилируется в EXE. (да да, виртуальная машина в виртульной машине)

емнип(2), компиляция напрямую в WASM была намечена в .net5
Как и ты. Как и все мы...
Caligari Caligari 23.09.201921:45 ответить ссылка -0.1
Ну, Preview-версии этого Blazor довольно давно уже были. Я в прошлом дотнетчик и вообще люблю C# как один из самых приятных и нормально развиваемых мейнстримовых языков, считаю, что эта штука - на 80% хуйня.

Следите за руками. WASM - low-level виртуальная машина, исполняющая некий байткод. Поверх этой виртуальной машины запущен адаптированный рантайм .NET (грубо говоря, они взяли рантайм .NET и скомпилировали его не в машинный код какого-нибудь x86, а в байт-код WASM), со всеми его jit-компиляторами, сборщиками мусора и прочим говном. И уже поверх крутится ваше приложение. Мы добавили вам виртуальную машину в виртуальную машину, осталось прихуярить монитор.

И это пиздец, скажу я вам. Это отличное проявление эволюционного развития ПО. Зачастую новое рождается на основе существующего, не изменяя сути вещей, а добавляя еще один ебаный слой абстракции поверх. WASM - хорошая штука, если вам нужно запустить какой-нибудь C/C++/Rust/etc, т.е. нативный код в браузере, чтобы получить перфоманс. Нахуя вам перфоманс в браузере, я, конечно, не знаю. 3д игры, блеать? Матан считать? Фотошопы? И все же, WASM - тот еще костыль. А VM поверх VM - это пиздец.

Но и это еще не все. Стандарт WASI: запуск WebAssembly за пределами веба. Еще раз. Специальная хуета, сделанная, чтобы обойти ограничения веба (один сраный JS, песочница итп итд) тащится в обычные ОС! Теперь ты можешь запускать .NET/Python/etc в гребанном WASM в винде/линуксе/итп. Да-да, ровно в то же время, как ты можешь запускать все то же самое на своей сраной ОС непосредственно! Особенно забавно, если речь идет не о каком-нибудь С/С++/итп, которые надо перекомпилировать, а о питоне, шарпе или джаве!
>Нахуя вам перфоманс в браузере, я, конечно, не знаю. 3д игры, блеать?

докинь WebGPU к WASM и дотка в браузере уже не будет казаться чем-то нереализуемым

ну и справедливости ради - реализацию "VM поверх VM" обещали ликвидировать к .NET5. Под айфоны же как-то (Mono+LLVM) компилируется сразу бинарь. Плюс у Unity есть такая тулза как IL2CPP - возможно смогут прикрутить её как временное решение
Но зачем? Зачем нам дотка в браузере? Компы стали слишком мощные, надо срочно накинуть пару слоев абстракций?
- доставка контента без необходимости установки и полной загрузки (не нужно загружать локально скинчики, которые есть у полутора человек во всем мире)
- работа там, где установка невозможна или затруднена (xbox, ipad, итд)
- Нулевая стоимость поддержки не-x86 (ты же понимаешь, что для ARM и MIPS нет никаких проблем выпустить CPU на 5ггц?)
- нулевая стоимось поддержки различных ОС (кто сказал Linux?)

и далее по списку.
Я старый ворчун, но вся эта веб-хуйня со множеством слоев абстракций мне не по душе.
А поддержка не-х86 легко доступна везде, где есть gcc :)

Вообще, это все к той теме, которую я поднял, об эволюционном развитии ПО.
Не, кросс-платформенность и прочее дерьмо, безусловно, хорошо.
У нас есть ОС, есть графическая подсистема (встроенная ли, как в винде/айосях/андроиде итп) или отдельная (x window server), которая умеет нативно рисовать всякие кнопочки (привет GDI+ и прочие). Затем, значит, мы шлем все это дерьмо нахер, говорим, что от ОС нам нужен фреймбуфер (точнее, контекст DirectX/OpenGL, ведь щас все аппаратно ускорено), а мы уж сами отрисуем все кнопочки-менюшки своими силами, с большим количеством графона и настроек (привет, WPF). Но все это говно все еще запускается в ОС, так или иначе пользуется ее API для работы с файлами, процессами итп итд. Мы идем еще дальше, мы делаем браузер, который берет фреймбуфер и херачит там страничку, берет всякий WASM и рисует опять-таки все наши кнопочки-менюшки. Возникает, закономерный вопрос. Нахуя нам вся ОС (я не про ядро, драйвера и прочее) с ее ГУИ, API и прочей хуйней, которая висит мертвым грузом и служит, лишь чтобы сраный браузер запустить? Вспоминаются всякие Chrome OS. Но ведь можно дальше пойти. Все, что нам нужно от ОС (кроме ядра, дров, ФС и прочего): композитный менеджер окон, предоставляющий приложениям фреймбуферы и стандартная виртуальная машина. И какой-то АПИ. У нас есть веб-стандарты, почему не может быть стандартов для ОС, описывающих вышеназванное? Но и тут идем дальше. Если у нас стандартное поведение ОС, и предоставляют они некий минимальный функционал, то нахуя нам вообще разные ОС? Дальше лень.
>А поддержка не-х86 легко доступна везде, где есть gcc :)

исходники только доступны не везде и не всегда (привет Adobe)

>Если у нас стандартное поведение ОС, и предоставляют они некий минимальный функционал, то нахуя нам вообще разные ОС?

Не взлетит. У нас уже есть POSIX, но он описывает далеко не всё. Но даже если бы описывал:

1)также у нас есть некрософт с хаченным перехаченным win32, который находится за всеми этими вашими gdi и wpf и никуда смываться не планирует

2) у нас есть Яббл с think different головного мозга

3) у нас есть ворох разных юниксов, чьи стоны всё еще слышны из-за спины Тукса

вот поэтому на браузеры и возложили миссию быть кроссплатформенной прослойкой, которая возьмёт на себя всю боль и тяжесть поддержки разных ОС
> исходники только доступны не везде и не всегда (привет Adobe)
WASM не поможет, ведь нет исходников, не скомпилировать под WASM-байткод. Это все равно, что скомпилировать под MIPS/ARM/etc. И я более, чем уверен, что у тех же сраных адобов там лютое дрочево, которое не получится легко потрануть простой кросс-компиляцией. Типо SIMD.

Кстати об SIMD. Что насчет поддержки SIMD в WASM? И как это будет, если нам нужно дохуя кросс-платформенно, но у нас есть SSE на старом дерьме, AVX/AVX2/AVX512 на новом дерьме, NEON на ARM итп? .NET типо выкатил какую-то ограниченную поддержку, но там не очень вписывается в то, что WASM - минимальная и легкая "тупая" машина.

> Не взлетит. У нас уже есть POSIX, но он описывает далеко не всё. Но даже если бы описывал:
Тот же WASM помимо собственно ВМ имеет некое подмножество POSIX, какие-то системные вызовы, которые должны быть реализованы WASM-машиной. Например, работа с файлами. Ты дергаешь эти сисколы, а песочница проверяет твои права доступа (ой, а ведь у нас есть ОС, занятые примерно этим).

> также у нас есть некрософт с хаченным перехаченным win32, который находится за всеми этими вашими gdi и wpf и никуда смываться не планирует
И опять WASM идет нахуй как спаситель человечества, потому что если даже под x86 Wine работает через жопу...

> вот поэтому на браузеры и возложили миссию быть кроссплатформенной прослойкой, которая возьмёт на себя всю боль и тяжесть поддержки разных ОС
О чем я и говорю, у нас дохуя старого легаси-говна, и имплементация чего-то нового заключается в нашлеповании новой лепешки поверх легаси говна. Я тут не говорю о каких-то конкретнных способах разрешения всей этой хуйни, я и так понимаю, что сложно, дорого и бизнес, я тут больше за жизнь и о высоких материях пизжу.
>WASM не поможет, ведь нет исходников, не скомпилировать под WASM-байткод.

а зачем нам исходники WASM? сам WASM отлично скомпилируется под все нужные платформы и без исходников

>Типо SIMD

SIMD-инструкции были доступны даже в JS и доступны в WASM :) И возвращаясь к WebGPU - GPGPU там тоже планируется

>Например, работа с файлами. Ты дергаешь эти сисколы, а песочница проверяет твои права доступа

тут тебе не дырявый Flash, прозрачного доступа к ФС нет, не было и не будет. Есть чернивик File API, к которому будут биндинги.

>И опять WASM идет нахуй как спаситель человечества, потому что если даже под x86 Wine работает через жопу...

srsly? //_- с чего ты взял, что WASM будет дёргать winapi напрямую, если говорилось про браузер как универсальную прослойку?
Возможно, мы говорим о разных вещах.

Когда вы затронули тему софта без исходников, костыльных винапи и прочего говна, я подумал, что вы ведете речь о переносе существующего софта на кроссплатформ с помощью WASM. Мол, взяли "некрософт с хаченным-перехаченным Win32 API" и какой-то магией кросс-платформенно его гоняем.

А WASM - это one more платформа для кроссплатформенного софта, как я это вижу. .NET, JVM, только сбоку и более низкоуровнево.

Я не говорил про прозарчный доступ к ФС, я как раз сказал, что песочница.
плюс мне не понятно в каком месте всё-таки абстракцийй стало больше, если наоборот - без JS их станет меньше.

да, Blazor пока работает не оптимально, но есть же С/С++, Rust, Go, Swift и даже Kotlin, которые компилируются в WASM напрямую и работают в разы быстрее JS

Тот же V8 - невероятно сложная штука со своими лексическим анализатором, песочницами, многоуровневой jit-оптимазацией и вообще.

Разве не будет прекрасно если вместо этого монстра на ТВОЕЙ машине будет работать легковесная VM, от которой требуется только AOT-компилятор и проверка прав доступа в runtime?
там вот прям явно не хватает ещё докера, с которым уже уух
mm33 mm33 24.09.201908:45 ответить ссылка 0.0
Радуйтесь, радуйтесь. Один хрен весь веб скоро на флаттере будет. Да и те только веб.
PsyNoise PsyNoise 23.09.201921:48 ответить ссылка -0.5
Как сложить два числа при помощи бигдейта* ^ кафки, монги и Rx? j
f Я выбираю по | софтскилам и * психологической ^совместимости л
г Мне нужен архитектор по React, знание JS , будет плюсом и |ЧТоб верстать^ умел
Давайте спросим их, как к работает Event Loop,
Ш Queue и асинхронный ввод/вывод в
Maledict Maledict 23.09.201922:25 ответить ссылка -1.5
И что, теперь реакты всякие можно не учить? )))
ozabot ozabot 23.09.201922:25 ответить ссылка 0.1
Ну как сказать. Js как бы и так в режиме конкуренции развивался, скорость разработки высокая, стоимость программистов низкая, новые фишки и возможности каждый день, я даже не могу представить, чтобы он вдруг помер в ближайшие 5 лет. Я думаю, что он просто дальше продолжит развиваться. Dart тоже позиционируется как убийца js, но он как-то не справляется с 2015года.
о нет... :( долбаный ШАРП!!!
andarky andarky 23.09.201922:56 ответить ссылка -1.6
И как эту срань поддерживать после компиляции?
aleot aleot 23.09.201923:22 ответить ссылка 0.0
Так де, как поддерживают JavaScript бандлы.
и будет оно таким же дырявым как flash который уже десять лет всё закапывают но никак не могут закопать
mm33 mm33 23.09.201923:52 ответить ссылка -0.1
Ну хз.
Flash был плагином, который поддерживали Adobe и на сколько я помню, патчили они тоже только они.
WASM- это открытый стандарт и реализация ложится целиком на браузер=> браузеры могут активно сами фиксить уязвимости, а различные проблемы безопасности - это косяки конкретного браузера.
Уязвимость .NET/Blazor поверх WASM, который типо опенсурс, но все Майки все же больше всех контрибьютят туда.
Уже поздно. Javascript уже достаточно хорош, что бы не учить другие яп для того что можно сделать на js. Тонны кода написаны. Куча прогеров есть на рынке. Теперь это самоподдерживающийся процесс.
Arakon Arakon 24.09.201900:22 ответить ссылка 0.7
настолько хорош, что в production всё больше выступает не как самостоятельный ЯП, а как target для компиляции TypeScript и Flow. Причём с таким размахом, который и не снился CoffeeScript

да и сам JS в strict режиме тоже наверняка нормально компилируется в WASM
И того, зачем нужен васм, если есть нормальный джс и ещё более нормальный typescript?
Arakon Arakon 24.09.201911:41 ответить ссылка -0.6
>нормальный джс
нет

- строгая типизация на уровне vm (а не транслятора)
- нормальное ООП, а не обвёртка над прототипами
- отсутствие callback hell по умолчанию, а не через promise-костыль
- нормальная многопоточность, а не "нити" одного потока
итд.

нет, серьёзно - список косяков js можно продолжать почти бесконечно, а венчать его всегда будет скорость выполнения
- чем на уровне vm не устраивает? Иногда она просто не нужна. Особенно когда обрабатываешь респонс как ни странно.
- чем не устраивает ооп на прототипах. Какая разница как оно там внутри сделано? Просто хачу?
- есть воркеры.
А что не так со скоростью выполнения? Собрался риалтайм на джсе кодить? Не выйдет. ИМХО современный js особенно ts приятен и годен к употреблению в своей сфере. Для веба лучшего пока не придумали.
Arakon Arakon 24.09.201917:33 ответить ссылка -0.6
>чем на уровне vm не устраивает?
в смысле? как раз устроила бы, если бы была

>Иногда она просто не нужна. Особенно когда обрабатываешь респонс как ни странно.
почему?

>чем не устраивает ооп на прототипах. Какая разница как оно там внутри сделано?
тем, что это неполноценный кастрат. в теле класса даже свойства нельзя определить, lol

>А что не так со скоростью выполнения?
всё с ней не так - и медленная (в разы медленнее даже тех же java и c#), и ресурсоёмкая: быстрая (по меркам js) vm для js просто не может не ЖРАТЬ ресурсы

>Для веба лучшего пока не придумали
уже придумали - прямо сейчас ты комментируешь пост уже даже не про hello world на с++ для wasm, а про полноразмерный framework для SPA-приложений, написанный на высокоуровневом языке
Ну в смысле да. На уровне транслятора конечно. Тут я проебался. Среда хорошо хэндлит типы в ts, а то что они не встроены в вм мне как то похуй, что бы вы не говорили. При оброботке сложных и запутанных ответов /запрсов хорошо что можно поставить any иначе я б заебался каждую херню в класс превращать как в джаве например.
>класса даже свойства нельзя определить, lol
Лол вот беру и определяю. Законом не запрещено.
>полноразмерный framework для SPA
Хуйня. Посмотрю где этот ваш framework будет через 2 года.
Arakon Arakon 24.09.201923:46 ответить ссылка 0.0
>При оброботке сложных и запутанных ответов /запрсов хорошо что можно поставить any иначе я б заебался каждую херню в класс превращать как в джаве например.
Хз, вот некогда не понимал этого. Разве, когда ты работаешь с конкретным REST API тебе заранее, что он тебе вернет?
В чем проблема написать классы?
А то получается, что ты не будешь падать, даже если произойдут какие-то изменения в API и ты не будешь знать о проблеме.
Падать буду, потому что что-там not a function. Классов выходит много на каждую проэкцию. Много сервисов у которых тебе надо узнать одно сраное поле, внешние либы, которые хороши, но написаны без типов, промежуточные результаты. Иногда легче воспользоваться any или написать фигурные скобки. Я сам поклонник типизации, но в вебе часно нестрогая типизация оправдана.
Arakon Arakon 25.09.201908:29 ответить ссылка 0.0
>Среда хорошо хэндлит типы в ts, а то что они не встроены в вм мне как то похуй, что бы вы не говорили

а нам похуй, что тебе похуй, сорян. Нужна проверка типов в runtime, чтобы не ловить потом плавающие баги

>При оброботке сложных и запутанных ответов /запрсов

в том же c# (и не только в нём) можно использовать nullable-типы. А еще, если прям уж очень сильно хочется говна навернуть, есть тип dynamic

>Лол вот беру и определяю. Законом не запрещено.

в ts или в js? речь всё еще про js, если что.

>Хуйня. Посмотрю где этот ваш framework будет через 2 года.

через 2 года в framework завезут компиляцию напрямую в wasm, что резко подтянет производительность и ресурсоёмкость
>есть воркеры
воркеры - не потоки. предлогаешь eval'ить код переданный текстовым сообщением из основного скрипта?
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
лдра I |рицсш»ра ич Длина имени файла 218 знаков — содержит путь к файлу. Например, К:\усернаме\документс\филенаме.кслскс. Тоуимиргкмо уапа/топмгтм/м м пгпаимиоима ринлиглоимм
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор Перевод Microsoft,Майкрософт

лдра I |рицсш»ра ич Длина имени файла 218 знаков — содержит путь к файлу. Например, К:\усернаме\документс\филенаме.кслскс. Тоуимиргкмо уапа/топмгтм/м м пгпаимиоима ринлиглоимм
File Explorer Share View * > ss ds У Its ft ft rk i on64 oud Fil Quick access > A Get the best deal on your cloud storage with OneDrive For S6.99 a month, an Office 365 subscription gets you 1 ТВ (1000 GB) of OneDrive cloud storage as well as Word, Excel, and PowerPoint. Learn More No
подробнее»

geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор geek новости Microsoft,Майкрософт Windows 10

File Explorer Share View * > ss ds У Its ft ft rk i on64 oud Fil Quick access > A Get the best deal on your cloud storage with OneDrive For S6.99 a month, an Office 365 subscription gets you 1 ТВ (1000 GB) of OneDrive cloud storage as well as Word, Excel, and PowerPoint. Learn More No
mkro&soff ШтНшт » Linux (0lot ГПГТГТ7