1 (изменено: Freeman, 24.09.2023 в 10:13)

Тема: Браузер как целевая платформа компилятора

Новость Microsoft об отказе от Edge и переходе на Chromium заставляет пересмотреть приоритеты и концепции. Тема системного программирования будущего уже поднималась в обсуждении синтаксиса Хаскеля для API:

Freeman пишет:

Примерно то же должно произойти и с целевыми платформами системного программирования, как мне кажется. Первый заход был у Java, он оказался неудачным. Сейчас я издалека наблюдаю за развитием JavaScript и внимательно читаю новости по веб-асссемблеру Wasm. Двоичный веб необратимо изменит ИТ, вам не кажется?

По всей видимости, можно констатировать окончательное превращение браузеров если не в ОС, то в целевую платформу программирования, по значимости равноценную JVM и .NET. В этом смысле можно начинать говорить о системном программировании под нее, а чтобы не бродить в потемках, вначале описать в терминах (нового) системного программирования.

В Википедии есть следующие определения:

WebAssembly — (paradigm) imperative, structured, expression-oriented.

ALGOL 68 and Lisp are examples of expression-oriented languages. Pascal is not an expression-oriented language. All functional programming languages are expression-oriented.

То есть, несмотря на императивность, из-за ориентированности на выражения WebAssembly всё же можно считать прототипом платформы функционального системного программирования, некой переходной платформой. Место Кантора в этой парадигме — высокий, функциональный уровень, транслируемый в более низкий, императивный Wasm. Сам Кантор также является ориентированным на выражения — из-за наличия объектной алгебры и итерирующих выражений.

Ключевое отличие от Кантора:

WebAssembly code is intended to be run on a portable abstract structured stack machine, which is designed to be faster to parse than JavaScript, as well as faster to execute, and to enable very compact code representation.

Зарубежные разработчики не стали изобретать что-то новое, а пошли проторенным путем, сделав очередную стековую машину. Абстрактный объектный вычислитель Кантора с бесконечным числом безразмерных регистров дает принципиально иную архитектуру.

Далее в этой теме, наверное, надо как-то сформулировать и описать преимущества высокоуровневого подхода Кантора перед другими языками, транслируемыми в Wasm. Пробуйте, предлагайте.

Переходная платформа уже была в нашей трактовке системного ООП

Появление переходной платформы уже было в нашей трактовке объектно-ориентированного системного программирования: ОС с объектами является переходной от классической ОС к объектно-ориентированной.

Добавлено 30.12.2019 в 0:48

Небольшое дополнение в тему. В браузере Vivaldi есть свой диспетчер задач. По всей видимости, идет вместе с платформой Blink. Никогда раньше не пользовался браузерами на этой платформе.

Наличие собственного диспетчера задач в браузере — еще одно свидетельство превращения его в ОС.