Re[2]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 19:17
Оценка:
Здравствуйте, sr_dev, Вы писали:

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


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


_>Меня больше интересует, что мешает добавить туда корутины, чтобы убрать порнуху с калбеками и промисами


Ты удивишься https://basarat.gitbooks.io/typescript/content/docs/async-await.html
Re[4]: А что мешает заменить JS?
От: Ops Россия  
Дата: 14.03.17 19:19
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Да ладно. Такие попытки были неоднократно. Все сдохли. Недавно вот NaCL гугловый сдох. Хотя он по сути решал проблему запуска недоверенного кода (с++) на клиенте. Но оказался не нужен, JS его победил.


Да не надо запуска какого-то кода, нужен нормальный способ дергать DOM и прочее браузерное API не только из JS, тогда твой exсel в 30 строк будет сравнимого объема на любом языке. Но, похоже, там слишком сильно одно от другого зависит и/или это политика производителей браузеров такая.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[13]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 19:20
Оценка: -2 :)))
Здравствуйте, Ops, Вы писали:

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


G>>Это была ошибка, признали. Просто исправить не могут, поломается совместимость. В ES 2015 ввели arrow functions.


Ops>Так там и другие моменты "не как у всех", одни прототипы чего стоят.

И эта проблема уже решена, классы добавили в том же es 2015.

А вообще прототипы — офигенно удобная вещь, на классах как в java многие вещи не получится сделать.
Re[8]: А что мешает заменить JS?
От: MTD https://github.com/mtrempoltsev
Дата: 14.03.17 19:20
Оценка:
Здравствуйте, gandjustas, Вы писали:

MTD>>Вот этим гордится точно не стоит


G>Да ладно?


Да, лакмусовая бумажка.

G>Как раз стоит гордиться тем, что ты не используешь функцию, которая не нужна.


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

G>Я повидал много проектов, в которых программисты использовали вообще все что знали, потому что могли. Ни один из них не был хорош.


Само собой, потому что надо использовать надо не все что знаешь, а то, что делает код проще, гибче, надежней и понятней. Вот для этого хорошо выучить язык и использовать его возможности, а не утверждать, что это не нужно.
Re[10]: А что мешает заменить JS?
От: Ops Россия  
Дата: 14.03.17 19:30
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>А если отжать, то два листа А4 будет.

Это на 3 листа самого описания языка? Круто.
G>Для C++ например потребуется отдельная книга, чтобы просто перечислить все WTFы.
Только у плюсов они для сложных вещей, а не для элементарных.

G>А ты думал что разработка JS до сих пор ведется в блокноте? И ничем тут мегабайтные скрипты? Как они связаны с arrow functions или модулями?

При том, что это один из способов фактической реализации модульности — свалить все нужное и ненужное в один файл. Или поприседать с require.js и аналогами. Вот вам и import.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[8]: А что мешает заменить JS?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 14.03.17 19:37
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Ок, пусть говносайтиками.

G>А ты часто финализаторы пишешь? У тебя что за проекты?

Ну намного чаще чем ты
Проекты — в основном драйвера и протоколы к разным железякам. Там почти всегда есть неуправляемые ресурсы, которые надо по возможности грамотно "закрыть".
[КУ] оккупировала армия.
Re[12]: А что мешает заменить JS?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 14.03.17 19:58
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Это опровергает мнение что "И более-менее хорошо работает лишь с тем кодом, который изначально писался с прицелом на TS". То есть код из JS в TS можно превратить в 100-1000 раз быстрее, чем код был написан.

G>TS не дураки придумали (те же не дураки, которые придумали C# и Delphi), они долго изучали паттерны JS прежде чем выкатить TS.

Да только компилируется это все в тот же JS, а значит и со всеми его ограничениями. Один Number чего стоит. По сути это double и для int тоже. Decimal и прочие отдыхают
и солнце б утром не вставало, когда бы не было меня
Re[9]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 19:59
Оценка: :)
Здравствуйте, MTD, Вы писали:

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


MTD>>>Вот этим гордится точно не стоит

G>>Да ладно?
MTD>Да, лакмусовая бумажка.
То есть ты считаешь, что надо использовать все, даже если в этом нет необходимости?

G>>Как раз стоит гордиться тем, что ты не используешь функцию, которая не нужна.

MTD>Так можно довести до того, что необходим только стандартный набор по Тьюрингу, остальное все лишнее.
Не верно. Есть возможности которые повышают продуктивность программиста. Их не использовать глупо, это прямая экономическая выгода. Финализаторы к этому не относятся.

G>>Я повидал много проектов, в которых программисты использовали вообще все что знали, потому что могли. Ни один из них не был хорош.

MTD>Само собой, потому что надо использовать надо не все что знаешь, а то, что делает код проще, гибче, надежней и понятней. Вот для этого хорошо выучить язык и использовать его возможности, а не утверждать, что это не нужно.
Прекрасно! Как финализаторы делают код проще, гибче, надежней и понятней ?
Re[7]: А что мешает заменить JS?
От: Философ Ад http://vk.com/id10256428
Дата: 14.03.17 20:05
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

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


Ф>>>А в этот Еxсel войдёт "Пакет анализа"?

G>>Не знаю, может никогда. Надо же как-то эксель продавать.

Ф>>>Ну хотя-бы диаграммы он тоже из коробки умеет?

G>>Умеет.

G>Если ты про excel в 30 строк, то вопрос глупый изначально.


Фишка тут в том, что excel, который не умеет пакет анализа и диаграммы не нужен. Да и не эксель это совсем — так, имимитация, как надувные танки. Я когда-то значительно более сложные вещи БЕЗ ЕДИНОЙ СТРОЧКИ КОДА делал (на делфе, правда). То, что там намалёвано даёт тебе рантайм, стандартные компоненты и возможности браузера.
А если тебе нужно будет что-то, что в них не укладывается, то зело сомневаюсь, что ты и в 30 тыс строк уложишься — вот тогда и посмотрим, на что способен ваш JS....
Всё сказанное выше — личное мнение, если не указано обратное.
Re[9]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 20:09
Оценка: -1 :))
Здравствуйте, Somescout, Вы писали:

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


S>>>В примере демонстрируется кривая мощь DOM, а не js.

G>>От dom там только insertcell и innerHTML, остальное именно JS.
S>И таблицу js рисует, и вводи мыши обрабатывает, и с сетью работает. Правильно по соседству заметили — мы пахали, я и трактор.
Представь что у тебя в любом языке есть аналогичный dom с таким же API и оператор eval. Попробуй аналогичный excel записать на другом языке в те же 30 строк.
Внезапно окажется, что в других языках нет аналогов with и defineProperty и придется городить костыли в 10 раз длиннее для того же функционала.

S>>>Ога, в строку вписываешь =alert(1) и внезапно. Нафиг такие эксели.

G>>Да уж, докопался...
S>До того что там используется сырой eval без какой либо фильтрации данных? Да, это такая мелочь... зато 30 строк.
Ты не понял, что этот пример исключительно для демонстрации мощи JS и к реальному приложению не относится?

S>JS кривой уже сейчас, и разве в js собираются добавлять возможность аннотации типов? (а это как раз то, что мне нравится в TS).

Ты походу не понимаешь. В JS не будет аннотаций типов. Но никто не мешает использовать аннотации при разработке.
Например ты можешь загрузить пакеты из @types и пользоваться этими аннотациями для подсказок для JS кода в VSCode.
TS это часть экосистемы современного JS, не отдельный язык как dart. На TS ты пишешь тот же JS, используешь те же библиотеки. Только добавляешь аннотации прямо в код, а компилятор проверят тебя.
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 20:10
Оценка: :)
Здравствуйте, Ops, Вы писали:

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


G>>Да ладно. Такие попытки были неоднократно. Все сдохли. Недавно вот NaCL гугловый сдох. Хотя он по сути решал проблему запуска недоверенного кода (с++) на клиенте. Но оказался не нужен, JS его победил.


Ops>Да не надо запуска какого-то кода, нужен нормальный способ дергать DOM и прочее браузерное API не только из JS, тогда твой exсel в 30 строк будет сравнимого объема на любом языке. Но, похоже, там слишком сильно одно от другого зависит и/или это политика производителей браузеров такая.

Напиши сравнимого объема на любом языке. Представь что тот же DOM API у тебя есть.
Re[10]: А что мешает заменить JS?
От: Ночной Смотрящий Россия  
Дата: 14.03.17 20:21
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Сколько склепали и все сдохли Не смогли победить JS


Трансляторы в принципе не могут победить JS, потому что в него транслируют.
Re[6]: А что мешает заменить JS?
От: Ночной Смотрящий Россия  
Дата: 14.03.17 20:21
Оценка: +3
Здравствуйте, gandjustas, Вы писали:

S>>А вот возможностей больше на порядки. Те же финализаторы.

G>за 10 лет ни одного финализатора на C# не написал.

То что ты их не писал еще не означает, что они не нужны. Они просто грамотно упакованы в наследников CriticalFinalizerObject, кои, в свою очередь, завернуты во всякие I/O классы типа FileStream.
А в убогом JS что с нормальной финализацией, что с асинхронностью, что с IOCP полный швах. И выдавать его примитивизм и ограниченность за достоинство не очень умно. Да о чем мы вообще говорим, если за несколько итераций так и не придумалось нормального лаконичного foreach, а селекторы jquery до сих пор отдельный язык, существующий в виде текстовых констант? Отсутствие в современном языке удобных и лаконичных конструкций для работы с множествами — такого убожества нет больше ни в одном более менее популярном сейчас языке. Единственная причина почему JS не забыт навечно как страшный сон — его безальтернативность в браузерах.
Re[11]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 20:22
Оценка:
Здравствуйте, Ops, Вы писали:


G>>А ты думал что разработка JS до сих пор ведется в блокноте? И ничем тут мегабайтные скрипты? Как они связаны с arrow functions или модулями?

Ops>При том, что это один из способов фактической реализации модульности — свалить все нужное и ненужное в один файл. Или поприседать с require.js и аналогами. Вот вам и import.
При чем тут модльность и количество файлов? Ты же не жалуешься что у тебя на C++ все в один исполняемый файл компилируется?
Re[9]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 20:24
Оценка:
Здравствуйте, koandrew, Вы писали:

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


G>>Ок, пусть говносайтиками.

G>>А ты часто финализаторы пишешь? У тебя что за проекты?

K>Ну намного чаще чем ты

K>Проекты — в основном драйвера и протоколы к разным железякам. Там почти всегда есть неуправляемые ресурсы, которые надо по возможности грамотно "закрыть".
Драйвера на C#? Это как? Или ты просто по серийному порту подключаешься и шлешь байты?
Re[8]: А что мешает заменить JS?
От: Ночной Смотрящий Россия  
Дата: 14.03.17 20:34
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Фишка тут в том, что excel, который не умеет пакет анализа и диаграммы не нужен. Да и не эксель это совсем — так, имимитация, как надувные танки. Я когда-то значительно более сложные вещи БЕЗ ЕДИНОЙ СТРОЧКИ КОДА делал (на делфе, правда).


Я тебе больше скажу. У меня тут есть реальный боевой проект, довольно навороченный. Так вот, в части касающейся UI там всего строчек 200 кода. Остальное — куча XAML.
Re[7]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 20:38
Оценка: :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, gandjustas, Вы писали:


S>>>А вот возможностей больше на порядки. Те же финализаторы.

G>>за 10 лет ни одного финализатора на C# не написал.

НС>То что ты их не писал еще не означает, что они не нужны. Они просто грамотно упакованы в наследников CriticalFinalizerObject, кои, в свою очередь, завернуты во всякие I/O классы типа FileStream.

И что ты хочешь сказать? Я прекрасно знаю где и как используются финализаторы, но в моих проектах не было ни одного случая когда нужен был финализатор.

НС>А в убогом JS что с нормальной финализацией, что с асинхронностью, что с IOCP полный швах. И выдавать его примитивизм и ограниченность за достоинство не очень умно.

Это называется "язык высокого уровня". На тех задачах где прмиеняется JS не нужны IOCP и финализация. С финализацией все ОК.

НС>Да о чем мы вообще говорим, если за несколько итераций так и не придумалось нормального лаконичного foreach

Это ты про for\of ?

НС> а селекторы jquery до сих пор отдельный язык, существующий в виде текстовых констант?

Предложи вариант лучше? Для JQ важно чтобы селекторы совпадали с CSS селекторами



НС>Отсутствие в современном языке удобных и лаконичных конструкций для работы с множествами — такого убожества нет больше ни в одном более менее популярном сейчас языке.

Ты о чем? В каком яызке есть конструкции для работы со множествами? C#? Java?

НС>Единственная причина почему JS не забыт навечно как страшный сон — его безальтернативность в браузерах.

Попыток заменить JS было более чем дофига.
Re[8]: А что мешает заменить JS?
От: Ночной Смотрящий Россия  
Дата: 14.03.17 20:45
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>И что ты хочешь сказать? Я прекрасно знаю где и как используются финализаторы, но в моих проектах не было ни одного случая когда нужен был финализатор.


И из этого следует вывод о ненужности финалайзеров?

НС>>А в убогом JS что с нормальной финализацией, что с асинхронностью, что с IOCP полный швах. И выдавать его примитивизм и ограниченность за достоинство не очень умно.

G>Это называется "язык высокого уровня". На тех задачах где прмиеняется JS не нужны IOCP и финализация.

В Node.js — еще как нужны. Да и в браузерах — текучие скрипты сейчас скорее правило, чем исключение.

НС>> а селекторы jquery до сих пор отдельный язык, существующий в виде текстовых констант?

G>Предложи вариант лучше?

Любая современная вариация на тему list/query comprehension лучше.

G> Для JQ важно чтобы селекторы совпадали с CSS селекторами


Проблема не в селекторах, проблема в том что для JS они чужеродны. Учитывая, что в современных браузерах вызовы селекторов jquery еще и интринсиками являются, ситуация получается совершенно гомерической.

НС>>Единственная причина почему JS не забыт навечно как страшный сон — его безальтернативность в браузерах.

G>Попыток заменить JS было более чем дофига.

В браузерах? Только попытка МС впендюрить VBScript, который не сильно лучше. Все остальные "попытки" либо вообще не имели доступа к DOM, либо имели его через жопу.
Re[4]: А что мешает заменить JS?
От: TimurSPB Интернет  
Дата: 14.03.17 20:53
Оценка:
V>И после этого ещё идут разговоры о том, почему все не перешли на C#. А если я не хочу писать только для винды, или мне не хватает готовых библиотек алгоритмов. Потому и говорю, да, платформа .NET в каком-то смысле хороша, правильные идеи, язык C# тоже выглядит не плохо, но эти продукты созданы исключительно для продвижения майкрософт, а значит винды, всё остальное остаётся за бортом.
Unity разработка на С#. Пока популярно только в геймдеве. Язык то сам не плох.
Make flame.politics Great Again!
Re[9]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.03.17 20:55
Оценка: :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, gandjustas, Вы писали:


G>>И что ты хочешь сказать? Я прекрасно знаю где и как используются финализаторы, но в моих проектах не было ни одного случая когда нужен был финализатор.

НС>И из этого следует вывод о ненужности финалайзеров?
В большинстве прикладных приложений они не нужны.

НС>>>А в убогом JS что с нормальной финализацией, что с асинхронностью, что с IOCP полный швах. И выдавать его примитивизм и ограниченность за достоинство не очень умно.

G>>Это называется "язык высокого уровня". На тех задачах где прмиеняется JS не нужны IOCP и финализация.
НС>В Node.js — еще как нужны. Да и в браузерах — текучие скрипты сейчас скорее правило, чем исключение.
В ноде нужны, но я ноджс использую или для сборки (gulp или чето в этом роде) или для самых примитивных скриптов типа socket.io.
Полноценный сервер-сайд на нем делать никогда не буду.

НС>>> а селекторы jquery до сих пор отдельный язык, существующий в виде текстовых констант?

G>>Предложи вариант лучше?
НС>Любая современная вариация на тему list/query comprehension лучше.
Есть .filter, .map, .forEach, .reduce. Не хватает?
Ща еще генераторы подъедут.

G>> Для JQ важно чтобы селекторы совпадали с CSS селекторами

НС>Проблема не в селекторах, проблема в том что для JS они чужеродны. Учитывая, что в современных браузерах вызовы селекторов jquery еще и интринсиками являются, ситуация получается совершенно гомерической.
Для JS и DOM API немного чужеродный.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.