Намеренная особенность языка была — сделать очень простой язык, с простой философией, чтобы на нём создавать простые скрипты.
Но для сложных приложений эти особенности начинают мешать. Появляется потребность в фичах более сложных языков, которых в JS нет очень долго не было.
Почему «даже». Увы, но у многих языков и технологий, очень даже неплохих, не получается.
Вот пример (немного спорный) На замену C был предложен D, который был намного проще, но, без массовой поддержки так и остался в своей маленькой нише с прочей эзотерикой.
Я вижу в WASM намек на правильное направление, а именно — универсальную виртуальную машину, которая позволяет писать хоть на Ассемблере, хоть на Си, хоть на Брейфаке, при этом предлагая хорошую скорость.
Я все-таки хотел бы видеть дальнейшее развитие — что-то вроде WASM, но не в браузере, а в ОС. Но, тогда, конечно, это будет совсем иное, нежели WASM. Даже не предполагаю, какое именно.
Хм. А не возможно ли оставить плюсы, такие как скорость разработки, легкость сопровождения и кроссплатформенность, и при этом избавиться от минусов в виде требовательности к ресурсам и тормозам в рантайме?
Возможно, кроссплатформенность и есть тот самый неверный критерий, и возможно, нам требуется некий общий знаменатель, т.е. стандарт, который позволит выкинуть побольше хаков для истинной кроссплатформенности.
Пусть бы простые технологии служили для простых целей, но когда мы начинаем делать что-то совсем другое, то логично и инструменты выбрать другие, а не напичкать стероидами те же.
Но извините, я не могу за эту короткую жизнь изучить всё и написать всё.
Я пробовал писать фреймворки, библиотеки и т.д. И выкидывал их, когда обнаруживал, что почти одновременно или раньше появлялись аналогичные, и выкидывал свои наработки.
Мне — нет. Но меня огорчает тенденция всех приложений переписываться под Веб… Мы ведь для этого увеличивали терабайты и гигагерцы? Чтобы иметь то же, что и 20 лет назад, но медленнее и требовательнее?
Т.е. нам нужна новая ОС, которая заменит браузер, и будет более или менее стандартизирована при своей открытости, как это случилось с Linux и Android.
Т.е. нам надо, чтобы Веб был частью ОС, но не в том виде, в котором сейчас — с глубоким стеком не очень подходящих технологий. Т.е. эти технологии были хороши для Веба 1.0, но поскольку он развился и стал действительно сложным — нужно не бесконечно усложнять инструменты, дублируя их функциональность, а интегрировать их друг с другом.
Я, возможно, сейчас напишу ерунду и меня закидают помидорами минусами, но, по моему мнению, новая мода всё тащить в Веб — очень плохая.
Т.е., смотрите, у нас были десктопные приложения — сейчас всё делают на веб-технологиях, заворачивая это в Electron. Как результат — это безбожно тормозит, жрёт ресурсы, в т.ч. память (приложение с урезанным, по сравнению с дестопом, функционалом начинает весить гигабайты) Skype, uTorrent, pgAdmin и другие просто вызывают боль.
И причина этого — тяжелое эволюционное наследие: HTML, как ни крути, сильно избыточен и пересыщен фичами, друг друга перекрывающими и пытающимися исправить косяки друг друга. CSS — изобилует исторически сложившимися стандартами. JS также стонет под грузом обратной совместимости. Все 3 основные технологии, со своими костылями, со своим синтаксисом и собственным наследием не могут жить друг без друга, но в одной экосистеме не позволяют друг другу жить хорошо. Браузер как платформа вынужден поддерживать каждый исторический выкидон их развития. Как и в Java, принцип «написано один раз — работает везде» обернулся принципом "выеживаемся пишем сразу для всех браузеров собственные хаки".
И новые фичи. Да, конечно, очень круто, что для проигрывания видео теперь не нужен Flash, нужно только написать >video< Очень круто, что у нас есть и рисовалка Canvas для рисования любой безумной хрени и для этого не надо строить хитрый DOM, поддержка OpenGL и управления звуком тоже впечатляет. Но за всё надо платить. А платим мы тем, что браузеры тяжелы, неповоротливы и прожорливы, при тяжёлой странице начинают (вынуждены?) дико тормозить.
Почему? Потому что Веб должен был остаться текстовым, но туда потащили сначала SPA-страницы, а затем полноценные приложения.
Как итог, мы имеем технологии, задавленные тяжестью собственного наследия, вынужденные работать в песочнице, ограниченной браузером, а браузер сейчас по сути является целой операционной системой… Работающей внутри еще одной операционной системы.
Ради чего? Ради того, чтобы щелкнуть на ссылку и начать работать с нужным приложением, не проходя процедуру инсталляции? Ради того, чтобы любой, купивший компьютер, мог за несколько часов сваять свое чудо-приложение? Платить каждый раз?
Нет, мой ответ. Мы идем не туда. Честно, я бы предпочел нативные приложения, весящие килобайты и работающие молниеносно. Но для этого надо избавиться от лишнего жира. От избыточности (X)HTML — к более лаконичной разметке вроде JSON или Yaml. От чудаковатового CSS к описательным стилям и раскладкам в том же синтаксисе (JSON\Yaml или какой будет разметка). От не менее странного JS к более строгим (но вместе с тем простым) императивным языкам — и пожалуйста, никакой обратной совместимости!
А еще нам нужно избавиться от браузера. Совсем. Пусть будет тонкий рантайм, который будет понимать свой байт-код, пусть это будет WASM или что-то другое, который будет контролировать разрешения приложений и не давать делать им ничего лишнего — и всё! И пусть он будет частью ОС, а не как сейчас браузер — ОС внутри ОС. Т.е. нам нужна новая ОС, которая заменит браузер, и будет более или менее стандартизирована при своей открытости, как это случилось с Linux и Android.
Революция — завершающий этап эволюции, она нам нужна. Нам нужно не убивать живущее, но нам нужно похоронить наших зомби.
Перемен требуют наши сердца! (ц)
из сегодня во вчера (=
Также напомнило:
Заголовок (да и общий тон) статьи намеренно чересчур претенциозен.
Но для сложных приложений эти особенности начинают мешать. Появляется потребность в фичах более сложных языков, которых в JS
неточень долго не было.Вот пример (немного спорный) На замену C был предложен D, который был намного проще, но, без массовой поддержки так и остался в своей маленькой нише с прочей эзотерикой.
Я все-таки хотел бы видеть дальнейшее развитие — что-то вроде WASM, но не в браузере, а в ОС. Но, тогда, конечно, это будет совсем иное, нежели WASM. Даже не предполагаю, какое именно.
Возможно, кроссплатформенность и есть тот самый неверный критерий, и возможно, нам требуется некий общий знаменатель, т.е. стандарт, который позволит выкинуть побольше хаков для истинной кроссплатформенности.
Но извините, я не могу за эту короткую жизнь изучить всё и написать всё.
Я пробовал писать фреймворки, библиотеки и т.д. И выкидывал их, когда обнаруживал, что почти одновременно или раньше появлялись аналогичные, и выкидывал свои наработки.
Я бы HTML был бы доволен видеть хотя бы таким:
html {
body {
div {
a(«link») {
target = blank
«Main site»
}
}
}
Т.е. нам надо, чтобы Веб был частью ОС, но не в том виде, в котором сейчас — с глубоким стеком не очень подходящих технологий. Т.е. эти технологии были хороши для Веба 1.0, но поскольку он развился и стал действительно сложным — нужно не бесконечно усложнять инструменты, дублируя их функциональность, а интегрировать их друг с другом.
помидорамиминусами, но, по моему мнению, новая мода всё тащить в Веб — очень плохая.Т.е., смотрите, у нас были десктопные приложения — сейчас всё делают на веб-технологиях, заворачивая это в Electron. Как результат — это безбожно тормозит, жрёт ресурсы, в т.ч. память (приложение с урезанным, по сравнению с дестопом, функционалом начинает весить гигабайты) Skype, uTorrent, pgAdmin и другие просто вызывают боль.
И причина этого — тяжелое эволюционное наследие: HTML, как ни крути, сильно избыточен и пересыщен фичами, друг друга перекрывающими и пытающимися исправить косяки друг друга. CSS — изобилует исторически сложившимися стандартами. JS также стонет под грузом обратной совместимости. Все 3 основные технологии, со своими костылями, со своим синтаксисом и собственным наследием не могут жить друг без друга, но в одной экосистеме не позволяют друг другу жить хорошо. Браузер как платформа вынужден поддерживать каждый исторический выкидон их развития. Как и в Java, принцип «написано один раз — работает везде» обернулся принципом "
выеживаемсяпишем сразу для всех браузеров собственные хаки".И новые фичи. Да, конечно, очень круто, что для проигрывания видео теперь не нужен Flash, нужно только написать >video< Очень круто, что у нас есть и рисовалка Canvas для рисования любой безумной хрени и для этого не надо строить хитрый DOM, поддержка OpenGL и управления звуком тоже впечатляет. Но за всё надо платить. А платим мы тем, что браузеры тяжелы, неповоротливы и прожорливы, при тяжёлой странице начинают (вынуждены?) дико тормозить.
Почему? Потому что Веб должен был остаться текстовым, но туда потащили сначала SPA-страницы, а затем полноценные приложения.
Как итог, мы имеем технологии, задавленные тяжестью собственного наследия, вынужденные работать в песочнице, ограниченной браузером, а браузер сейчас по сути является целой операционной системой… Работающей внутри еще одной операционной системы.
Ради чего? Ради того, чтобы щелкнуть на ссылку и начать работать с нужным приложением, не проходя процедуру инсталляции? Ради того, чтобы любой, купивший компьютер, мог за несколько часов сваять свое чудо-приложение? Платить каждый раз?
Нет, мой ответ. Мы идем не туда. Честно, я бы предпочел нативные приложения, весящие килобайты и работающие молниеносно. Но для этого надо избавиться от лишнего жира. От избыточности (X)HTML — к более лаконичной разметке вроде JSON или Yaml. От чудаковатового CSS к описательным стилям и раскладкам в том же синтаксисе (JSON\Yaml или какой будет разметка). От не менее странного JS к более строгим (но вместе с тем простым) императивным языкам — и пожалуйста, никакой обратной совместимости!
А еще нам нужно избавиться от браузера. Совсем. Пусть будет тонкий рантайм, который будет понимать свой байт-код, пусть это будет WASM или что-то другое, который будет контролировать разрешения приложений и не давать делать им ничего лишнего — и всё! И пусть он будет частью ОС, а не как сейчас браузер — ОС внутри ОС. Т.е. нам нужна новая ОС, которая заменит браузер, и будет более или менее стандартизирована при своей открытости, как это случилось с Linux и Android.
Революция — завершающий этап эволюции, она нам нужна. Нам нужно не убивать живущее, но нам нужно похоронить наших зомби.
Перемен требуют наши сердца! (ц)
А Вы поймёте две шутки про HTTP/2 одновременно?
… и в Вашем Умном Доме гаснет электричество...