Здравствуйте, novitk, Вы писали:
N>Здравствуйте, gandjustas, Вы писали:
N>Все эти атомы, хромы и ноды ДжиЭс меня удручают. Все поставлено с ног на голову — вместо давно назревшей нормализации одной из платформ (web client), уродство теперь лезет во все дырки.
А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)
Здравствуйте, Философ, Вы писали:
Ф>Здравствуйте, gandjustas, Вы писали:
G>>При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать, на каком еще языке такое возможно?
Ф>А в этот Еxсel войдёт "Пакет анализа"?
Не знаю, может никогда. Надо же как-то эксель продавать.
Ф>Ну хотя-бы диаграммы он тоже из коробки умеет?
Умеет.
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Философ, Вы писали:
Ф>>Здравствуйте, gandjustas, Вы писали:
G>>>При этом JS очень мощный язык. Например exсel в браузере в 30 строк можно сделать, на каком еще языке такое возможно?
Ф>>А в этот Еxсel войдёт "Пакет анализа"? G>Не знаю, может никогда. Надо же как-то эксель продавать.
Ф>>Ну хотя-бы диаграммы он тоже из коробки умеет? G>Умеет.
Если ты про excel в 30 строк, то вопрос глупый изначально. А веб-эксель диаграммы вполне умеет.
Здравствуйте, 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.
Здравствуйте, gandjustas, Вы писали:
G>А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)
Месье с ними работал?
Там вон намедни компоненту ADAL для Angular 2 сломали. В пре-релизной версии оно работало, но с прибитыми наглухо ссылками на конкретные версии других библиотек. В релизной версии вообще сломалось, не взлетает и не дышит. Microsoft сказал, что они это разгребать не хотят и на поддержку ADAL вообще забили (!). Т.е. даже Microsoft не смог поправить ADAL (Active Directory Authentication Library) чтоб оно работало с обновлёнными версиями других библиотек.
Какие-то индейские способы заставить это работать есть, но нормальной библиотеки уже нет. И всего-то поменялись версии JS библиотек, а починить уже никто не может.
Здравствуйте, gandjustas, Вы писали:
G>>>на каком еще языке такое возможно? AK>>eval для выражений? Ну в .net есть DataTable, в котором eval написанного выражения поддерживается. Для простых формул сойдёт. G>Ок, напиши на .net такое в 30 строк с UI.
AK>>А уж для интерпретируемых языков это в порядке вещей — eval это их основа. G>Ок, напиши на perl\python\ruby эксель в 30 строк.
А можно, для начала, код экселя на JS в 30 строк?
30 строк excel.min.js не считается.
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
S>Если посмотреть на TS и C#, то по мне так C# не особо то и сильно проигрывает.
C# хорош для серверного кода и мобилок (xamarin), JS для клиентского кода . Проблема в том, что все интересное на сервере уже давно написано. И большая часть разработки приложений сводится к клиентскому коду.
S>А вот возможностей больше на порядки. Те же финализаторы.
за 10 лет ни одного финализатора на C# не написал.
Здравствуйте, Klikujiskaaan, Вы писали:
K>А можно, для начала, код экселя на JS в 30 строк? K>30 строк excel.min.js не считается.
Вы как-будто хабр не читаете https://habrahabr.ru/post/151593/
Здравствуйте, Serginio1, Вы писали:
S>Если посмотреть на TS и C#, то по мне так C# не особо то и сильно проигрывает. S>А вот возможностей больше на порядки. Те же финализаторы.
Ох. Одни борятся не только за скорость старта приложений, но и за скорость их закрытия, а другие усиленно хотят, что бы они закрывались на подобии студии — нажал на крестик и оно педалит там что-то (не важно — по делу или нет), но ещё и зависнуть может.
Вот на кой здались эти финализаторы — провоцировать писать код с непонятно какими характеристиками потребления ресурсов (в том числе и памяти)? ОС закроет все хэндлы за тебя всё равно, память всю вернет, не переживай. Браузер типа хрома, если видит, что рендерер более не нужен — не то, что финализаторы не вызовет — он вообще не позовёт никакие другие события. Он делает банально (в псевдокоде)
CloseCommunicationChannel(); SelfProcessKill();
.
Ну и конечно не стоит забывать, что это всё таки браузер — он должен быть хоть как-то устойчив к пользователям с шаловливыми ручками (зашли в таск менеджер и грохнули любой понравившийся процесс).
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Klikujiskaaan, Вы писали:
K>>А можно, для начала, код экселя на JS в 30 строк? K>>30 строк excel.min.js не считается. G>Вы как-будто хабр не читаете G>https://habrahabr.ru/post/151593/
Не читаю, но и там я не нашел упоминания про эксель в 30 строк.
Здравствуйте, 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 весьма показательна.
Проблема любого опенсорса. Я тоже самое с питоном наблюдаю, так как часть тулов питоновские и постоянно ломаются.
Здравствуйте, Klikujiskaaan, Вы писали:
K>Здравствуйте, gandjustas, Вы писали:
G>>Здравствуйте, Klikujiskaaan, Вы писали:
K>>>А можно, для начала, код экселя на JS в 30 строк? K>>>30 строк excel.min.js не считается. G>>Вы как-будто хабр не читаете G>>https://habrahabr.ru/post/151593/
K>Не читаю, но и там я не нашел упоминания про эксель в 30 строк.
Здравствуйте, 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>Какое количество? Ты хоть один объективный минус назови.
Помогите этим бедным ребятам из github-коммьюнити починить ADAL.
Там проблема-то не в чём-то фундаментальном, а тупо версии сторонних библиотек обновились и всё отвалилось так, что никто не может отладить и поправить это. Мы из-за этого начали пилить UI на Angular 1.x, хоть оно и устаревшее, но там интеграция с Active Directory нормально работает.
Сразу могу сказать, что там ничего особенно сложного нет — состряпал я кусок кода, который заставляет это дело работать через обычные HTTP-запросы к серверу аутентификации. Но я не JS-программер, я именно что сделал костыль чтоб оно работало. И мы решили этот костыль не использовать, ибо кроме меня никто не сможет это поддерживать, а я UI-частью не занимаюсь вообще.
Таким образом, вот вам пример проблемы, с которой JS-девелоперы не могут разобраться. Не только из моей команды, вон на github целая ветка и кроме какого-то костыля предложить ничего не смогли. Тот костыль в сообщении от 28 октября, кстати, там тоже довольно кривой, работает через пень-колоду и не всегда. У нас не взлетело.
Здравствуйте, gandjustas, Вы писали:
G>А при чем тут JS вообще? Это вообще проблема опен-сорса.
Я могу ошибаться, но вроде библиотеку ADAL поддерживал Microsoft.
А JS тут при том, что сервис Active Directory не менялся, менялись лишь библиотеки клиентской части и Microsoft это настолько надоело, что поддерживать это они перестали. Чехарда со всей этой JS инфраструктурой, ломающейся каждые пару недель, как бы напрямую сюда относится.
G>90% того, что ты скачаешь в открытых репозитариях в течение года поломается
Не припомню каких-то крупных поломок с C#.
А, не, вспомнил — в System.IdentityModel.Tokens.Jwt при переходе с версии 4 на версию 5 что-то сильно поменялось в структурах, да библиотека SendGrid решила вдруг стать dynamic. Других крупных поломок за много лет не помню. Но я использую только библиотеки от крупных вендоров, ноунейм-опенсорс не используем, за очень редким исключением.
Здравствуйте, gandjustas, Вы писали:
N>>Все эти атомы, хромы и ноды ДжиЭс меня удручают. Все поставлено с ног на голову — вместо давно назревшей нормализации одной из платформ (web client), уродство теперь лезет во все дырки. G>А если убрать эмоции, то в чем конкретно претензии к современному JS? (который ES 2017, NodeJS, TypeScript)
Тебе откуда претензии надо? От F#/Scala? Или от C#/Ява/Котлин? Или от Хаскелл/ОCaml? Или от C++/Rust?
ИМХО, несмотря на все бабло Гугла, Питон до сих пор лучше языком, библиотеками, тулчейнами и рантаймом, но дело даже не в этом. Я хочу выбирать язык, а не подстраиваться под, пусть и очень важную, платформу.
Здравствуйте, 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? То же самое на других языка видел неоднократно.
Здравствуйте, 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. Протрахался с установкой пакетов для сборки, потому что они хотели одну версию питона, но часть зависимостей уже была апгрейднута на другую и это нифига не работало. Пришлось руками лезть и менять зависимости.
Здравствуйте, AlexRK, Вы писали:
ARK>Здравствуйте, gandjustas, Вы писали:
G>>При этом JS очень мощный язык. ARK>И очень убогий.
А конкретнее?
G>>Например exсel в браузере в 30 строк можно сделать ARK>Нельзя.
Напиши об этом автору https://habrahabr.ru/post/202304/
Здравствуйте, novitk, Вы писали:
N>Тебе откуда претензии надо? От F#/Scala? Или от C#/Ява/Котлин? Или от Хаскелл/ОCaml? Или от C++/Rust?
Откуда найдешь.
N>ИМХО, несмотря на все бабло Гугла, Питон до сих пор лучше языком, библиотеками, тулчейнами и рантаймом, но дело даже не в этом. Я хочу выбирать язык, а не подстраиваться под, пусть и очень важную, платформу.
А я хочу денег зарабатывать. И если надо подстраиваться — буду подстраиваться, тебе желаю того же самого.