Re[3]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:01
Оценка: +2 -2
Здравствуйте, novitk, Вы писали:

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


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

А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:03
Оценка:
Здравствуйте, Философ, Вы писали:

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


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


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

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

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

Умеет.
Re[6]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:04
Оценка: -4 :)))
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Философ, Вы писали:


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


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


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

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

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

G>Умеет.

Если ты про excel в 30 строк, то вопрос глупый изначально. А веб-эксель диаграммы вполне умеет.
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:10
Оценка: -2
Здравствуйте, Artem Korneev, Вы писали:

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


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


AK>Два листа особенностей вовсе не значат, что язык простой.

Вообще-то значит. Простота языка измеряется объемом предварительных знаний для его использования и количеством кода, нужным для решения задачи.

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

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


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

AK>Да не будет там excel, там будет вычисление выражений через eval. В 30 строчек, в принципе, можно ещё добавить поддержку ссылок на другие ячейки. Ну и всё.
Этого достаточно https://habrahabr.ru/post/151593/


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

AK>eval для выражений? Ну в .net есть DataTable, в котором eval написанного выражения поддерживается. Для простых формул сойдёт.
Ок, напиши на .net такое в 30 строк с UI.

AK>А уж для интерпретируемых языков это в порядке вещей — eval это их основа.

Ок, напиши на perl\python\ruby эксель в 30 строк.

AK>Но суть не в этом. Толку-то от таблички в 30 строк, если у JavaScript такое количество минусов?

Какое количество? Ты хоть один объективный минус назови.

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

AK>Всего этого не сказать чтоб очень много. И нормальные JS-приложения, в основном, выпускаются крупными софтверными вендорами. Да и те нечасто используют JavaScript как есть, ибо в неразбавленном виде он просто ужасен. Тот же Microsoft продвигает TypeScript, который добавляет хоть какую-то типизацию.
TS тоже часть экосистемы современного JS. При этом в TS очень мало фич, которые не входят в существующие\перспективные стандарты ES.
Если что уже сейчас можно писать на plain JS используя intellisence от TS.
Re[4]: А что мешает заменить JS?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 13.03.17 20:10
Оценка: 2 (2)
Здравствуйте, gandjustas, Вы писали:

G>А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)


Месье с ними работал?
Там вон намедни компоненту ADAL для Angular 2 сломали. В пре-релизной версии оно работало, но с прибитыми наглухо ссылками на конкретные версии других библиотек. В релизной версии вообще сломалось, не взлетает и не дышит. Microsoft сказал, что они это разгребать не хотят и на поддержку ADAL вообще забили (!). Т.е. даже Microsoft не смог поправить ADAL (Active Directory Authentication Library) чтоб оно работало с обновлёнными версиями других библиотек.

Какие-то индейские способы заставить это работать есть, но нормальной библиотеки уже нет. И всего-то поменялись версии JS библиотек, а починить уже никто не может.

И вот эта проблема для JS весьма показательна.
С уважением, Artem Korneev.
Re[6]: А что мешает заменить JS?
От: Klikujiskaaan КНДР  
Дата: 13.03.17 20:13
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

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

AK>>eval для выражений? Ну в .net есть DataTable, в котором eval написанного выражения поддерживается. Для простых формул сойдёт.
G>Ок, напиши на .net такое в 30 строк с UI.

AK>>А уж для интерпретируемых языков это в порядке вещей — eval это их основа.

G>Ок, напиши на perl\python\ruby эксель в 30 строк.

А можно, для начала, код экселя на JS в 30 строк?
30 строк excel.min.js не считается.
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:13
Оценка: -2
Здравствуйте, Serginio1, Вы писали:

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


S>Если посмотреть на TS и C#, то по мне так C# не особо то и сильно проигрывает.

C# хорош для серверного кода и мобилок (xamarin), JS для клиентского кода . Проблема в том, что все интересное на сервере уже давно написано. И большая часть разработки приложений сводится к клиентскому коду.

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

за 10 лет ни одного финализатора на C# не написал.
Re[7]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:14
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

K>А можно, для начала, код экселя на JS в 30 строк?

K>30 строк excel.min.js не считается.
Вы как-будто хабр не читаете
https://habrahabr.ru/post/151593/
Re[5]: А что мешает заменить JS?
От: fddima  
Дата: 13.03.17 20:17
Оценка: -2
Здравствуйте, Serginio1, Вы писали:

S>Если посмотреть на TS и C#, то по мне так C# не особо то и сильно проигрывает.

S>А вот возможностей больше на порядки. Те же финализаторы.
Ох. Одни борятся не только за скорость старта приложений, но и за скорость их закрытия, а другие усиленно хотят, что бы они закрывались на подобии студии — нажал на крестик и оно педалит там что-то (не важно — по делу или нет), но ещё и зависнуть может.
Вот на кой здались эти финализаторы — провоцировать писать код с непонятно какими характеристиками потребления ресурсов (в том числе и памяти)? ОС закроет все хэндлы за тебя всё равно, память всю вернет, не переживай. Браузер типа хрома, если видит, что рендерер более не нужен — не то, что финализаторы не вызовет — он вообще не позовёт никакие другие события. Он делает банально (в псевдокоде)
CloseCommunicationChannel(); SelfProcessKill();
.
Ну и конечно не стоит забывать, что это всё таки браузер — он должен быть хоть как-то устойчив к пользователям с шаловливыми ручками (зашли в таск менеджер и грохнули любой понравившийся процесс).
Re[8]: А что мешает заменить JS?
От: Klikujiskaaan КНДР  
Дата: 13.03.17 20:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


K>>А можно, для начала, код экселя на JS в 30 строк?

K>>30 строк excel.min.js не считается.
G>Вы как-будто хабр не читаете
G>https://habrahabr.ru/post/151593/

Не читаю, но и там я не нашел упоминания про эксель в 30 строк.
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:21
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

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


G>>А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)


AK>Месье с ними работал?

Конечно

AK>Там вон намедни компоненту ADAL для Angular 2 сломали. В пре-релизной версии оно работало, но с прибитыми наглухо ссылками на конкретные версии других библиотек. В релизной версии вообще сломалось, не взлетает и не дышит. Microsoft сказал, что они это разгребать не хотят и на поддержку ADAL вообще забили (!). Т.е. даже Microsoft не смог поправить ADAL (Active Directory Authentication Library) чтоб оно работало с обновлёнными версиями других библиотек.

А при чем тут JS вообще? Это вообще проблема опен-сорса. 90% того, что ты скачаешь в открытых репозитариях в течение года поломается, хорошо если разработчики починят, но это не всегда бывает.
Насколько я знаю adal для angular вообще хрен пойми кто пилит. Бери adal и напиши свой сервис, там не сильно сложно.

AK>Какие-то индейские способы заставить это работать есть, но нормальной библиотеки уже нет. И всего-то поменялись версии JS библиотек, а починить уже никто не может.

Нормальные чуваки поддерживают свои либы, но таких 10%.

AK>И вот эта проблема для JS весьма показательна.

Проблема любого опенсорса. Я тоже самое с питоном наблюдаю, так как часть тулов питоновские и постоянно ломаются.
Re[9]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:26
Оценка: 3 (1) :)
Здравствуйте, Klikujiskaaan, Вы писали:

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


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


K>>>А можно, для начала, код экселя на JS в 30 строк?

K>>>30 строк excel.min.js не считается.
G>>Вы как-будто хабр не читаете
G>>https://habrahabr.ru/post/151593/

K>Не читаю, но и там я не нашел упоминания про эксель в 30 строк.


не ту ссылку скопировал. вот правильная https://habrahabr.ru/post/202304/
Re[6]: А что мешает заменить JS?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 13.03.17 20:28
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Вообще-то значит. Простота языка измеряется объемом предварительных знаний для его использования и количеством кода, нужным для решения задачи.


Простота языка это не только кривая вхождения и количество кода.
Читабельность кода и простота нахождения ошибок при чтении тоже вполне себе критерии.

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

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

Ну так с JS неочевидного хватает.
Я в Microsoft как-то раз переписывал HTML-приложение, которое один товарищ написал за год до этого и никто не хотел туда лезть — там была сплошная лапша из JS кода с хитровывернутым обращением с UI-элементами. Может даже для правоверных JS-программеров там код и был замечательным, я не знаю. Но .net full-stack девелоперы не могли в этом разобраться.

G>Этого достаточно https://habrahabr.ru/post/151593/


Угу. И это не excel.

G>Ок, напиши на .net такое в 30 строк с UI.


UI, по очевидным причинам, в 30 строк не влезет. Он и в JS не влезет — он просто не является частью самого языка, он является частью платформы, на которой JS запускается.
Тот ваш замечательный 30-строчный excel, скорее всего, не будет работать под Visual Studio Code, ибо оно не предоставляет того же рантайма, что и браузер. А язык тот же, JS.

На ASP.NET это уже можно написать. Сколько строчек займёт — не знаю, но всю вычислительность можно спрятать в DataTable, так что весь код там будет только для работы с UI и поддержкой ссылок.
Писать не буду — бесплатно не пишу.

AK>>А уж для интерпретируемых языков это в порядке вещей — eval это их основа.

G>Ок, напиши на perl\python\ruby эксель в 30 строк.

См. выше.

AK>>Но суть не в этом. Толку-то от таблички в 30 строк, если у JavaScript такое количество минусов?

G>Какое количество? Ты хоть один объективный минус назови.

https://github.com/AzureAD/azure-activedirectory-library-for-js/issues/194

Помогите этим бедным ребятам из github-коммьюнити починить ADAL.
Там проблема-то не в чём-то фундаментальном, а тупо версии сторонних библиотек обновились и всё отвалилось так, что никто не может отладить и поправить это. Мы из-за этого начали пилить UI на Angular 1.x, хоть оно и устаревшее, но там интеграция с Active Directory нормально работает.
Сразу могу сказать, что там ничего особенно сложного нет — состряпал я кусок кода, который заставляет это дело работать через обычные HTTP-запросы к серверу аутентификации. Но я не JS-программер, я именно что сделал костыль чтоб оно работало. И мы решили этот костыль не использовать, ибо кроме меня никто не сможет это поддерживать, а я UI-частью не занимаюсь вообще.

Таким образом, вот вам пример проблемы, с которой JS-девелоперы не могут разобраться. Не только из моей команды, вон на github целая ветка и кроме какого-то костыля предложить ничего не смогли. Тот костыль в сообщении от 28 октября, кстати, там тоже довольно кривой, работает через пень-колоду и не всегда. У нас не взлетело.
С уважением, Artem Korneev.
Re[6]: А что мешает заменить JS?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 13.03.17 20:37
Оценка: 2 (1)
Здравствуйте, gandjustas, Вы писали:

G>А при чем тут JS вообще? Это вообще проблема опен-сорса.


Я могу ошибаться, но вроде библиотеку ADAL поддерживал Microsoft.
А JS тут при том, что сервис Active Directory не менялся, менялись лишь библиотеки клиентской части и Microsoft это настолько надоело, что поддерживать это они перестали. Чехарда со всей этой JS инфраструктурой, ломающейся каждые пару недель, как бы напрямую сюда относится.

G>90% того, что ты скачаешь в открытых репозитариях в течение года поломается


Не припомню каких-то крупных поломок с C#.
А, не, вспомнил — в System.IdentityModel.Tokens.Jwt при переходе с версии 4 на версию 5 что-то сильно поменялось в структурах, да библиотека SendGrid решила вдруг стать dynamic. Других крупных поломок за много лет не помню. Но я использую только библиотеки от крупных вендоров, ноунейм-опенсорс не используем, за очень редким исключением.
С уважением, Artem Korneev.
Re[4]: А что мешает заменить JS?
От: AlexRK  
Дата: 13.03.17 20:38
Оценка: +2
Здравствуйте, gandjustas, Вы писали:

G>При этом JS очень мощный язык.


И очень убогий.

G>Например exсel в браузере в 30 строк можно сделать


Нельзя.
Re[4]: А что мешает заменить JS?
От: novitk США  
Дата: 13.03.17 20:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

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

G>А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)

Тебе откуда претензии надо? От F#/Scala? Или от C#/Ява/Котлин? Или от Хаскелл/ОCaml? Или от C++/Rust?
ИМХО, несмотря на все бабло Гугла, Питон до сих пор лучше языком, библиотеками, тулчейнами и рантаймом, но дело даже не в этом. Я хочу выбирать язык, а не подстраиваться под, пусть и очень важную, платформу.
Re[7]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:41
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

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


G>>Вообще-то значит. Простота языка измеряется объемом предварительных знаний для его использования и количеством кода, нужным для решения задачи.


AK>Простота языка это не только кривая вхождения и количество кода.

AK>Читабельность кода и простота нахождения ошибок при чтении тоже вполне себе критерии.
Читабельность у JS не хуже других С-подобных языков. Для нахождения ошибок рекомендую TS.

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

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

AK>Ну так с JS неочевидного хватает.

AK>Я в Microsoft как-то раз переписывал HTML-приложение, которое один товарищ написал за год до этого и никто не хотел туда лезть — там была сплошная лапша из JS кода с хитровывернутым обращением с UI-элементами. Может даже для правоверных JS-программеров там код и был замечательным, я не знаю. Но .net full-stack девелоперы не могли в этом разобраться.
Проблема в JS или в конкретном товарище, который писать не умеет? Я тоже самое и на других языках видел.


AK>UI, по очевидным причинам, в 30 строк не влезет. Он и в JS не влезет — он просто не является частью самого языка, он является частью платформы, на которой JS запускается.

AK>Тот ваш замечательный 30-строчный excel, скорее всего, не будет работать под Visual Studio Code, ибо оно не предоставляет того же рантайма, что и браузер. А язык тот же, JS.
Ну то есть на .net этого нельзя сделать.


AK>На ASP.NET это уже можно написать. Сколько строчек займёт — не знаю, но всю вычислительность можно спрятать в DataTable, так что весь код там будет только для работы с UI и поддержкой ссылок.

Сильно больше 30 строк это займет.

AK>>>А уж для интерпретируемых языков это в порядке вещей — eval это их основа.

G>>Ок, напиши на perl\python\ruby эксель в 30 строк.
AK>См. выше.
То есть тоже нельзя

AK>>>Но суть не в этом. Толку-то от таблички в 30 строк, если у JavaScript такое количество минусов?

G>>Какое количество? Ты хоть один объективный минус назови.
AK>https://github.com/AzureAD/azure-activedirectory-library-for-js/issues/194
То есть то что МС не поддерживает разработку гугла это проблема языка?
Без комментариев.

Вообще это же опенсорс, сделай пуллреквест.


AK>Помогите этим бедным ребятам из github-коммьюнити починить ADAL.

AK>Там проблема-то не в чём-то фундаментальном, а тупо версии сторонних библиотек обновились и всё отвалилось так, что никто не может отладить и поправить это. Мы из-за этого начали пилить UI на Angular 1.x, хоть оно и устаревшее, но там интеграция с Active Directory нормально работает.
AK>Сразу могу сказать, что там ничего особенно сложного нет — состряпал я кусок кода, который заставляет это дело работать через обычные HTTP-запросы к серверу аутентификации. Но я не JS-программер, я именно что сделал костыль чтоб оно работало. И мы решили этот костыль не использовать, ибо кроме меня никто не сможет это поддерживать, а я UI-частью не занимаюсь вообще.
Я не использую, мне не надо.
Вам надо — почините, сделайте пуллреквест. Я думаю там проблема от силы на пару часов. Если не холиварить на форуме вполне можно починить.

AK>Таким образом, вот вам пример проблемы, с которой JS-девелоперы не могут разобраться. Не только из моей команды, вон на github целая ветка и кроме какого-то костыля предложить ничего не смогли. Тот костыль в сообщении от 28 октября, кстати, там тоже довольно кривой, работает через пень-колоду и не всегда. У нас не взлетело.

А при чем тут JS? То же самое на других языка видел неоднократно.
Re[7]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:51
Оценка: 1 (1)
Здравствуйте, Artem Korneev, Вы писали:

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


G>>А при чем тут JS вообще? Это вообще проблема опен-сорса.


AK>Я могу ошибаться, но вроде библиотеку ADAL поддерживал Microsoft.

Сам adal — да. Компоненты для всяких ангуларов писали люди по своей инициативе. Им это не надо, им за это не платят.

AK>А JS тут при том, что сервис Active Directory не менялся, менялись лишь библиотеки клиентской части и Microsoft это настолько надоело, что поддерживать это они перестали. Чехарда со всей этой JS инфраструктурой, ломающейся каждые пару недель, как бы напрямую сюда относится.

Сам adal прекрасно работает.

G>>90% того, что ты скачаешь в открытых репозитариях в течение года поломается

AK>Не припомню каких-то крупных поломок с C#.
А я помню. Несколько пакетов с nuget ссылались на разные версии одного пакета с разным поведением. Деталей уже не помню, год назад было.
А что происходит с версиями xamarin и его пакетами вообще сложно описать. При том что их вообще одна команда вроде как пилит.

AK>А, не, вспомнил — в System.IdentityModel.Tokens.Jwt при переходе с версии 4 на версию 5 что-то сильно поменялось в структурах, да библиотека SendGrid решила вдруг стать dynamic. Других крупных поломок за много лет не помню. Но я использую только библиотеки от крупных вендоров, ноунейм-опенсорс не используем, за очень редким исключением.

Разница в том, что в .NET очень много всего входит в стандартную библиотеку, в том числе UI. В JS в стандарт не входит почти ничего и около десятка ui-фреймворков существует и около сотни всяких байндингов одного к другому. Естественно при таком количестве внешних зависимостей они будут отваливаться.
Ровно ту же самую картину можно наблюдать в python.

Я тут недавно пытался сделать нативный модуль для nodejs. Протрахался с установкой пакетов для сборки, потому что они хотели одну версию питона, но часть зависимостей уже была апгрейднута на другую и это нифига не работало. Пришлось руками лезть и менять зависимости.
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:52
Оценка:
Здравствуйте, AlexRK, Вы писали:

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


G>>При этом JS очень мощный язык.

ARK>И очень убогий.
А конкретнее?

G>>Например exсel в браузере в 30 строк можно сделать

ARK>Нельзя.
Напиши об этом автору https://habrahabr.ru/post/202304/
Re[5]: А что мешает заменить JS?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.03.17 20:54
Оценка: +1
Здравствуйте, novitk, Вы писали:

N>Тебе откуда претензии надо? От F#/Scala? Или от C#/Ява/Котлин? Или от Хаскелл/ОCaml? Или от C++/Rust?

Откуда найдешь.

N>ИМХО, несмотря на все бабло Гугла, Питон до сих пор лучше языком, библиотеками, тулчейнами и рантаймом, но дело даже не в этом. Я хочу выбирать язык, а не подстраиваться под, пусть и очень важную, платформу.

А я хочу денег зарабатывать. И если надо подстраиваться — буду подстраиваться, тебе желаю того же самого.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.