А что мешает заменить JS?
От: turbocode  
Дата: 13.03.17 17:18
Оценка: +6 :)
На что то более вменяемое типа C# с хорошей стандартной библиотекой? Сколько можно тянуть этот JS легаси из 90-х годов?
Re: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 17:26
Оценка: +4 -9 :)
Здравствуйте, turbocode, Вы писали:

T>На что то более вменяемое типа C# с хорошей стандартной библиотекой? Сколько можно тянуть этот JS легаси из 90-х годов?


А какая причина его заменять, кроме того что он тебе не нравится?
Re: А что мешает заменить JS?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 13.03.17 17:39
Оценка:
Здравствуйте, turbocode, Вы писали:

T>На что то более вменяемое типа C# с хорошей стандартной библиотекой? Сколько можно тянуть этот JS легаси из 90-х годов?


На прошлой неделе вышел Firefox с поддержкой WebAssembly.
Пока там только C/C++, но со временем обещали и другие языки прикрутить.
С уважением, Artem Korneev.
Re[2]: А что мешает заменить JS?
От: turbocode  
Дата: 13.03.17 17:42
Оценка: 1 (1)
AK>На прошлой неделе вышел Firefox с поддержкой WebAssembly.
AK>Пока там только C/C++, но со временем обещали и другие языки прикрутить.

Is WebAssembly trying to replace JavaScript?

No! WebAssembly is designed to be a complement to, not replacement of, JavaScript. While WebAssembly will, over time, allow many languages to be compiled to the Web, JavaScript has an incredible amount of momentum and will remain the single, privileged (as described above) dynamic language of the Web. Furthermore, it is expected that JavaScript and WebAssembly will be used together in a number of configurations:
•Whole, compiled C++ apps that leverage JavaScript to glue things together.
•HTML/CSS/JavaScript UI around a main WebAssembly-controlled center canvas, allowing developers to leverage the power of web frameworks to build accessible, web-native-feeling experiences.
•Mostly HTML/CSS/JavaScript app with a few high-performance WebAssembly modules (e.g., graphing, simulation, image/sound/video processing, visualization, animation, compression, etc., examples which we can already see in asm.js today) allowing developers to reuse popular WebAssembly libraries just like JavaScript libraries today.
•When WebAssembly gains the ability to access garbage-collected objects :unicorn:, those objects will be shared with JavaScript, and not live in a walled-off world of their own.

Re[2]: А что мешает заменить JS?
От: turbocode  
Дата: 13.03.17 17:47
Оценка: +8
G>А какая причина его заменять, кроме того что он тебе не нравится?
А что в нем хорошего? Как костыль для HTML он свое дело делал в 90-х, но все идет к тому что нужно делать на нем целые аппликации, а для этого он никак не годится. Масштабирования никакого.
Re[3]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 17:59
Оценка: 1 (1) -10 :))
Здравствуйте, turbocode, Вы писали:

G>>А какая причина его заменять, кроме того что он тебе не нравится?

T>А что в нем хорошего? Как костыль для HTML он свое дело делал в 90-х, но все идет к тому что нужно делать на нем целые аппликации, а для этого он никак не годится. Масштабирования никакого.
На историю ссылаться последнее дело.

Если что ES сейчас развивается очень бурно, модульность и масштабирование в современном стандарте есть.
Быстродействие JS превышает быстродействие других интерпретируемых языков, кроме того есть приятные мелочи типа asm.js.
JS — очень простой язык. Все его особенности можно уместить на двух листах А4, в отличие от всяких плюсанутых языков.
При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать, на каком еще языке такое возможно?

Если что на JS сделаны почтовые клиенты, word и excel (не 30 строк, а почти полноценный) в браузере, яндекс, гугл и прочие карты. А ты говоришь для целых аппликаций не годится.
Re[2]: А что мешает заменить JS?
От: novitk США  
Дата: 13.03.17 18:22
Оценка: +8
Здравствуйте, gandjustas, Вы писали:

G>А какая причина его заменять, кроме того что он тебе не нравится?

ИМХО главная проблема с JS — все больший ареал распространения. Разработка на едином, пусть даже очень корявом языке вместо двух и более дает столько гибкости, что JS начал вытеснять остальное даже в нишах где есть намного более удобные инструменты. Все эти атомы, хромы и ноды ДжиЭс меня удручают. Все поставлено с ног на голову — вместо давно назревшей нормализации одной из платформ (web client), уродство теперь лезет во все дырки.

Раньше я думал, что wasm это попытка сделать наконец адекватную VM/API для браузеров, a теперь выясняется что это просто еще одни "applets" от которых никому ни жарко ни холодно.
Отредактировано 13.03.2017 18:25 novitk . Предыдущая версия .
Re[4]: А что мешает заменить JS?
От: Философ Ад http://vk.com/id10256428
Дата: 13.03.17 18:26
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать, на каком еще языке такое возможно?


А в этот Еxсel войдёт "Пакет анализа"? Ну хотя-бы диаграммы он тоже из коробки умеет?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[4]: А что мешает заменить JS?
От: turbocode  
Дата: 13.03.17 18:38
Оценка: +3
G>При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать, на каком еще языке такое возможно?
Это плохой признак, на Perl-e в одну строку можно много чего сделать, но через месяц ты уже свой мозг сломаешь чтобы понять что ты совсем недавно сделал.

G>Если что на JS сделаны почтовые клиенты, word и excel (не 30 строк, а почти полноценный) в браузере, яндекс, гугл и прочие карты. А ты говоришь для целых аппликаций не годится.

Сделаны ИТ гигантами, они и на чистом ASM-е могут при желании тоже самое сделать.
Re[4]: А что мешает заменить JS?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.03.17 18:46
Оценка:
Здравствуйте, gandjustas, Вы писали:

Если посмотреть на TS и C#, то по мне так C# не особо то и сильно проигрывает.
А вот возможностей больше на порядки. Те же финализаторы.
При этом C# 7 мало уступает.
Жалко, что не добавили короткую запись

https://github.com/dotnet/csharplang/issues/75
type Person = {first:string; last:string}  // define a record type 
type IntOrBool = I of int | B of bool

type MixedType = 
  | Tup of int * int  // a tuple
  | P of Person       // use the record type defined above
  | L of int list     // a list of ints
  | U of IntOrBool    // use the union type defined above
Using C# records, this could potentially be expressed in C#, using a form of union definition syntax, as:
class Person(string first, string last); // define a record type
enum class IntOrBool { int I; bool B; }

enum class MixedType
{
    (int, int) T;
    Person P;
    IList<int> L;
    IntOrBool U;
}
и солнце б утром не вставало, когда бы не было меня
Re[3]: А что мешает заменить JS?
От: Ops Россия  
Дата: 13.03.17 18:49
Оценка: :)
Здравствуйте, novitk, Вы писали:

N>Раньше я думал, что wasm это попытка сделать наконец адекватную VM/API для браузеров, a теперь выясняется что это просто еще одни "applets" от которых никому ни жарко ни холодно.


Зато под ним можно запустить браузер и в нем запускать JS скрипты. Рекурсивная кунсткамера.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[4]: А что мешает заменить JS?
От: turbocode  
Дата: 13.03.17 18:50
Оценка: +2
G>Если что ES сейчас развивается очень бурно, модульность и масштабирование в современном стандарте есть.

Проблема в том что в браузерах HTML первичен, а JS вторичен.
Тогда как сейчас в свете разработки web-апликаций нужно ровно наоборот: грузится JS программа которая подгружает и управляет разметкой. И для этих целей выходит что JS ни в какие ворота не лезет.
Re[5]: А что мешает заменить JS?
От: Слава  
Дата: 13.03.17 19:00
Оценка:
Здравствуйте, turbocode, Вы писали:

T>Тогда как сейчас в свете разработки web-апликаций нужно ровно наоборот: грузится JS программа которая пишет в видеобуфер и получает события путём опроса портов ввода-вывода


fixed
Re[4]: А что мешает заменить JS?
От: novitk США  
Дата: 13.03.17 19:02
Оценка: :)
Здравствуйте, Ops, Вы писали:

Ops>Зато под ним можно запустить браузер и в нем запускать JS скрипты. Рекурсивная кунсткамера.


+1. теперь вот жду когда пришлют сшот "смотрите как круто — Хром внутри Хрома!", как раньше было с XUL в огнелисе. Замкнутый круг какой-то...
Re[5]: А что мешает заменить JS?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.03.17 19:09
Оценка:
Здравствуйте, novitk, Вы писали:

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


Ops>>Зато под ним можно запустить браузер и в нем запускать JS скрипты. Рекурсивная кунсткамера.


N>+1. теперь вот жду когда пришлют сшот "смотрите как круто — Хром внутри Хрома!", как раньше было с XUL в огнелисе. Замкнутый круг какой-то...


На самом деле затраты на вызовы большие. Я не буду приводить ссылки, а то меня за них забанят ( можно посмотреть статьи в пофайле),


но скорость вызова тех же cef / JavaScriptIntegration


порядка 60к -200к вызовов в секунду в зависимости от типов параметров.
и солнце б утром не вставало, когда бы не было меня
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 19:28
Оценка: -4 :)
Здравствуйте, turbocode, Вы писали:

G>>При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать, на каком еще языке такое возможно?

T>Это плохой признак, на Perl-e в одну строку можно много чего сделать, но через месяц ты уже свой мозг сломаешь чтобы понять что ты совсем недавно сделал.
На перле не сделаешь Excel в 30 строк, ну вообще никак.
Если не в курсе — посмотри https://habrahabr.ru/post/202304/

G>>Если что на JS сделаны почтовые клиенты, word и excel (не 30 строк, а почти полноценный) в браузере, яндекс, гугл и прочие карты. А ты говоришь для целых аппликаций не годится.

T>Сделаны ИТ гигантами, они и на чистом ASM-е могут при желании тоже самое сделать.
Так ты сам упрекал что не масштабируется. Оказывается гигантам не проблема иметь команду в 60 человек, которая OWA пилит, и все у них масштабируется. А что тебе мешает?
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 19:30
Оценка:
Здравствуйте, turbocode, Вы писали:

G>>Если что ES сейчас развивается очень бурно, модульность и масштабирование в современном стандарте есть.


T>Проблема в том что в браузерах HTML первичен, а JS вторичен.

T>Тогда как сейчас в свете разработки web-апликаций нужно ровно наоборот: грузится JS программа которая подгружает и управляет разметкой. И для этих целей выходит что JS ни в какие ворота не лезет.


Да ладно? Расскажи это тем, кто на angular делает.
Re[5]: А что мешает заменить JS?
От: c-smile Канада http://terrainformatica.com
Дата: 13.03.17 19:32
Оценка: +2
Здравствуйте, turbocode, Вы писали:

G>>Если что ES сейчас развивается очень бурно, модульность и масштабирование в современном стандарте есть.


T>Проблема в том что в браузерах HTML первичен, а JS вторичен.

T>Тогда как сейчас в свете разработки web-апликаций нужно ровно наоборот: грузится JS программа которая подгружает и управляет разметкой. И для этих целей выходит что JS ни в какие ворота не лезет.

Ты забываешь про accessibility и прочие проблемы стоящие за понятием semantic markup.

На самом деле идея иметь HTML как язык описания структуры UI (но не layout) она достаточно здравая.
Любая UI система имеет что-то "самописное" на эту тему. Windows — .res files, Visual Basic — .frm , .NET — XAML, в Delphi — что-то свое... У всех короче оно есть с разными степенями корявости.

Я в другой ветке уже сказал, повторю здесь.

Представим себе что вместо JS в browser есть голая JavaVM, скажем расширенная поддержкой VARIANT.
DOM exposed как дерево Java objects.
Плюс CSS расширен behavior property как в Sciter:

widget {
  display:block; 
  behavior: MyWidgetController url(/controllers/MyWidgetController.class);
}


Этот MyWidgetController занимается event handling и прочим. И написан неважно на чем, c VARIANT любой существующий script язык может быть странислирован в .class + все Java derived языки типа той же Scala и прочего.


Кстати весь существующий W3C DOM API был изначально описан в терминах Java interfaces: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-745549614

С самого начала предполагалось что Java будет first class citizen в Web UI. Жаль что сообщество не выкупило изначально права на Java у Sun.
Re: А что мешает заменить JS?
От: TK Лес кывт.рф
Дата: 13.03.17 19:38
Оценка:
Здравствуйте, turbocode, Вы писали:

T>На что то более вменяемое типа C# с хорошей стандартной библиотекой? Сколько можно тянуть этот JS легаси из 90-х годов?


C# со своим то legacy разобраться толком не может — двоих боливар точно не вытянет.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: А что мешает заменить JS?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 13.03.17 19:56
Оценка: +5
Здравствуйте, gandjustas, Вы писали:

G>JS — очень простой язык. Все его особенности можно уместить на двух листах А4, в отличие от всяких плюсанутых языков.


Два листа особенностей вовсе не значат, что язык простой.
Там запросто в нескольких строчках можно наворочать такого, что люди будут бояться лезть в этот код.

G>При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать,


Да не будет там excel, там будет вычисление выражений через eval. В 30 строчек, в принципе, можно ещё добавить поддержку ссылок на другие ячейки. Ну и всё.

G>на каком еще языке такое возможно?


eval для выражений? Ну в .net есть DataTable, в котором eval написанного выражения поддерживается. Для простых формул сойдёт.
А уж для интерпретируемых языков это в порядке вещей — eval это их основа.
Но суть не в этом. Толку-то от таблички в 30 строк, если у JavaScript такое количество минусов?

G>Если что на JS сделаны почтовые клиенты, word и excel в браузере, яндекс, гугл и прочие карты.


Всего этого не сказать чтоб очень много. И нормальные JS-приложения, в основном, выпускаются крупными софтверными вендорами. Да и те нечасто используют JavaScript как есть, ибо в неразбавленном виде он просто ужасен. Тот же Microsoft продвигает TypeScript, который добавляет хоть какую-то типизацию.
С уважением, Artem Korneev.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.