Флудилка ушибленных яваскриптом

Всё, что не касается темы рогаликов
Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 11 апр 2016, 11:41

Максим Кич писал(а): Юмор ситуации в том, что окаменелое говно мамонтов всё равно оказывается более стабильным, совместимым и лучше задокументированным, чем очередная хипстерская безделушка, которую хайпят на всех конференциях в этом году, и которая уж точно убьёт технологию умирающую дольше, чем оные хипстеры живут на белом свете (а заодно прикончит самую хайповую технологию прошлого сезона).
Да, с совместимостью действительно всё чётко, она простирается до ~1998-х годов, что, конечно же, жизненно необходимо для процесса разработки. Ну и средства разработки тоже соответствующие, тот же эклипс чего стоит... На наших соседних проектах, правда, больше повезло: смогли пересесть на Идею.

Приложение может быть стабильным (очень условно), совместимым и хорошо задокументированным, что достаточно для бизнес аналитиков (хоть они и утверждают, что качество кода им важно), но при детальном рассмотрении оказывается сабжем, который вообще непонятно как работает. Держится на тех самых миллионах человекочасов, многоуровневых костылях и заплатах. Ну и производительность такая, что и для лёгких проектов без кластера - никуда.

Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 11 апр 2016, 11:55

Феникc писал(а):Ящитаю что просто вся идеология web-разработки ещё до конца не сложилась. И, кстати, я более чем уверен что проблема тут как минимум наполовину в самом js, который как язык - плох
Я бы даже сказал - сугубо имхо - что не то что не сложилась, а что она требует тотального пересмотра стандартов, реинженееринга всего, изменения подходов к и клиентской, и серверной части, исходя из современных задач и возможностей, и желательно с учётом комфорта для программиста.
Историческое нагромождение технологий имеет место быть: как начиналось всё с обычных статических хтмл страничек, так до сих пор этот хвост тянется. Потом добавились примитивные формы... А сейчас чего только стоят потуги сделать вменяемый поиск на странице и контекстное меню, игнорируя стандартные фишки браузеров, например... Это всё надо, но вот если поставить все эти задачи и с нуля попробовать разработать стандартные приложения для клиентской части (new generation IE ;)) и, возможно, пересмотреть протоколы обмена с серверной частью... Но это меня немного не в ту степь уже заносит, да.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1560
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 11 апр 2016, 12:57

Феникc писал(а):Ящитаю что просто вся идеология web-разработки ещё до конца не сложилась. И, кстати, я более чем уверен что проблема тут как минимум наполовину в самом js, который как язык - плох.
А я вот не скажу, что JS плох как язык. Просто на нём нельзя писать как на Java, скажем.
Феникc писал(а):Взять тот же ember - там ведь половина базовых вещей реализуется с нуля.
Я в эмбер особо не ходок, особенно вглубь. Что там базового с нуля сделано?
Феникc писал(а):Или, например, незабвенный left-pad, в ситуации вокруг которого все почему-то хейтят npm, а надо - js, в котором даже такая базовая функциональность требует костылей -_-

А нефиг тянуть микрозависимости на каждый чих ))) Кому утилит не хватает — есть lodash (ну или underscore, но я lodash пользую).
Феникc писал(а):Не знаю как можно делать что-нибудь более-менее сложное на языке, не дающем никаких гарантий, где практически все вещи, являющиеся обыденностью в любом современном высокоуровневом языке надо реализовывать самому или же брать с npm.
Надо всё-таки разделять язык, как набор инструкций и правил, и библиотеки, которые идут в комплекте. Если бы тот же lodash ставился с node.js автоматом — что бы изменилось? И, потом, а какие гарантии нужны? Строгая типизация? Спасибо, я имел счастье парсить всякие JSON-ы на языках со строгой типизацией.
Феникc писал(а):То есть, конечно, знаю - плакать и кушать кактус, мы ж, разрабы, сильные и умные, справимся и с таким - но лично я этим заниматься не желаю.
Так никто и не заставляет. Есть куча всего в этой жизни кроме JS.
Феникc писал(а):Думаю, это всё будет реализовано уже году к двадцатому и примерно тогда же "старые" фреймворки - та же джанга, рор и всякие пхп-базед - сильно потеснятся, потому что они даже уже сейчас морально устаревают, превращаясь в красивый адаптер бд-апи, следящий за пермишнами, исключительно к которому их роль вскоре и сведётся.
Это очень мрачное будущее, которое, на самом деле — прошлое. Если взять документацию по HTTP-протоколу, то он изначально что-то такое и описывал в чистом и незамутнённом виде. Потом оказалось, что это не очень удобно и с HTTP мы работаем в какой-то степень не совсем корректно, зато удобно ))) В любом случае, между DB и Server API прослойка серверной логики будет, и будет тем толще, чем серьёзнее приложение. Вынести «View» в клиента — окей, но «Controller» всё-таки останется на сервере.
Феникc писал(а):Думаю, браузеры научатся рендерить странички в отдельные окна ОСи
Феникc писал(а):все стэндэлон приложения потихоньку переберутся полностью в html+css
Electron.js?
Феникc писал(а):а браузер глубоко интегрируется с кишками системы (как chromeos, ага-ага) и как отдельное окошко вовсе исчезнет.
На эту тему тоже много говорили большевики, но кто из основных производителей осей это сделает? MS разве что. И то, это будет особый, мелкомягкий html и css )))
Феникc писал(а): Уфф, чего-то растёкся я мысию по древу - очень уж накипело. Пожалуй, тему надо переименовать в "Javascript" и унести в "За жизнь", тем более что по rot.js темка-то уже есть :)
Хорошая мысль )))
Anfeir писал(а):Я бы даже сказал - сугубо имхо - что не то что не сложилась, а что она требует тотального пересмотра стандартов, реинженееринга всего, изменения подходов к и клиентской, и серверной части, исходя из современных задач и возможностей, и желательно с учётом комфорта для программиста.
«Всё написать заново» — любимое развлечение в стране неограниченных бюджетов и сроков.
Anfeir писал(а):Да, с совместимостью действительно всё чётко, она простирается до ~1998-х годов, что, конечно же, жизненно необходимо для процесса разработки.
Дык совместимость нужна не для процесса разработки, а для процесса использования в дикой природе. И во вменяемой аналитике учитывается куча факторов.
Anfeir писал(а):Ну и средства разработки тоже соответствующие, тот же эклипс чего стоит... На наших соседних проектах, правда, больше повезло: смогли пересесть на Идею.
Явисты, чтоль? )))
Dump the screen? [y/n]

Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 11 апр 2016, 13:40

Максим Кич писал(а): «Всё написать заново» — любимое развлечение в стране неограниченных бюджетов и сроков.
Речь идёт о фундаментальных вещах, которые не дают сиюминутную прибыль. Ну, а на данном этапе это пустые слова, да. Есть ещё студенты-волонтёры.) Кто-то может и напишет свой HTML с блекджеком и девками, да такой, что он затмит всё старое, но как-то на добровольной основе лень этим заниматься в настоящий момент )
Максим Кич писал(а):
Anfeir писал(а):Да, с совместимостью действительно всё чётко, она простирается до ~1998-х годов, что, конечно же, жизненно необходимо для процесса разработки.
Дык совместимость нужна не для процесса разработки, а для процесса использования в дикой природе. И во вменяемой аналитике учитывается куча факторов.
Во вменяемой аналитике главенствует принцип: правда там, где прибыль .( Ну, да и ладно. Писать на всём этом энтерпрайзе вполне можно. При наличии прямых рук писать и получать удовольствие можно даже на пхп и на каком-нибудь ушибленном фреймворке типа друпала.
Максим Кич писал(а):
Anfeir писал(а):Ну и средства разработки тоже соответствующие, тот же эклипс чего стоит... На наших соседних проектах, правда, больше повезло: смогли пересесть на Идею.
Явисты, чтоль? )))
Ага. Хотя, впрочем, почему-то имею склонность к продукции микрософта (только для разработки). И субд у них более-менее, хотя тоже с большой историей, и документация на высоте, и сишарп всё лучшее вобрал из жавы и не только... Правда, энтерпрайз на нём не писал. Винду правда последнюю они выпустили - вот это шлак полный. Особенно для мобильных. Есть у нас на работе один фанат майкрософт, дак и он дико плевался.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 11 апр 2016, 13:52

Максим Кич писал(а):А я вот не скажу, что JS плох как язык. Просто на нём нельзя писать как на Java, скажем.
Он слишком непродуманный. Нецелостный. Аморфный. Выразить это словами тяжко, лучше всего подойдёт тот самый "фрактал плохого дизайна". Интересно что это общая характеристика для PHP и JS, которые вообще очень похожи по целому скопу параметров :)
Максим Кич писал(а):Я в эмбер особо не ходок, особенно вглубь. Что там базового с нуля сделано?
Массивы, словари, классы (ну тут опять же js виноват, ООП-то все городят костылями), асинхронные операции (с этим в js тоже всё плохо, так хорошо подходящим к нему async/await еле завезли), ивенты... То, что с ходу вспомнил.
Максим Кич писал(а):А нефиг тянуть микрозависимости на каждый чих ))) Кому утилит не хватает — есть lodash (ну или underscore, но я lodash пользую).

Ну лично я придерживаюсь простой философии - человек есть существо ленивое и поэтому постараться за пользователей должны разработчики. Почему микрозависимости на каждый чих не тянут в питоне или шарпе? Потому что языки продуманные, имхо. Если у тебя есть другой ответ, я очень жажду его услышать.
Максим Кич писал(а):Надо всё-таки разделять язык, как набор инструкций и правил, и библиотеки, которые идут в комплекте. Если бы тот же lodash ставился с node.js автоматом — что бы изменилось? И, потом, а какие гарантии нужны? Строгая типизация? Спасибо, я имел счастье парсить всякие JSON-ы на языках со строгой типизацией.
Ты же не путаешь сильную и статическую типизацию? Сильная типизация - благо, слабая - зло. Для поддержки больших проектов статическая типизация - благо, особенно если в ней есть инструменты для эмулирования динамической типизации - dynamic в C#.
Гарантии мне нужны не такие уж и сильные - если я сделаю не самую очевидную фигню, которая может оказаться ошибкой, язык мне на неё покажет и попросит явно пояснить что это не ошибка. И другая гарантия - если я осознанно захочу сделать что-то магическое, язык мне это позволит. Мы все здесь взрослые, верно? Сама концепция "молчать до последнего" в js меня убивает. Делишь на ноль, получаешь элемент из коллекции по несуществующему ключу? Конечно же это не ошибка, так всё и запланировано! Держи свои инфинити и андефайнед, которые в худшем случае вылезут через тысячу строк кода. Про this уж и говорить не стоит.
А вот если ты хочешь переопределить оператор - иди отсюда, фу! У тебя ж методы есть, чего ещё надо?!
Максим Кич писал(а):Так никто и не заставляет. Есть куча всего в этой жизни кроме JS.
Полностью согласен. Только вот JS очень неудачно занимает ключевое место в самой интересной и динамично развивающейся вопреки его сопротивлению нише, мимо которой в современном мире хрен пройдёшь. Вот и приходится плакать и кушать, кушать и плакаться на всяких форумах :)
Максим Кич писал(а):Это очень мрачное будущее, которое, на самом деле — прошлое. Если взять документацию по HTTP-протоколу, то он изначально что-то такое и описывал в чистом и незамутнённом виде. Потом оказалось, что это не очень удобно и с HTTP мы работаем в какой-то степень не совсем корректно, зато удобно ))) В любом случае, между DB и Server API прослойка серверной логики будет, и будет тем толще, чем серьёзнее приложение. Вынести «View» в клиента — окей, но «Controller» всё-таки останется на сервере.
Потому я везде упор на "визуализацию" и делал. Разумеется что все пермишны будут на сервере, некуда им оттуда деться. Другое дело что кроме контроля доступа на сервер в роли API-хоста остаётся только некая часть бизнес-логики, что, конечно, офигенно, но не так уж и толсто, по сравнению с визуализацией и обработкой инпута юзеров. Да и эта логика как раз и укладывается в обычное, относительно несложное преобразование данных на пути API <=> DB. Впрочем, тут вопрос дискуссионный, потому как всё IT про преобразования данных :lol:
Максим Кич писал(а):Electron.js?
Exactly. Только интегрированное сразу в браузер, шоб девелоперам вообще не напрягаться каким-то там портированием.
Максим Кич писал(а):На эту тему тоже много говорили большевики, но кто из основных производителей осей это сделает? MS разве что. И то, это будет особый, мелкомягкий html и css )))
А это не со стороны осей движения, а со стороны браузеров. Вот взять тот же вк-плеер, который у меня включён круглосуточно - насколько сложно для браузеров прокинуть апи, через которое можно будет этот виджет в системный трей запихнуть? Ставлю шляпу что на месяц работы высокопрофессиональной команды для той же винды и иксов. Или вон, уведомления. У меня в линупсе есть свои, нативные уведомления, в которые тот же elctron умеет (это ведь через него работает стэндэлон слак и телеграм?). А браузеры своими костылями обходятся, которые тоже можно заместить на нативные возможности на некоторых платформах уже буквально вотпрямщас. Кстати, вот слак и телеграм - отличный пример того, о чём я говорю. Они пока ещё обходятся сторонними решениями, но сколь сложно для команды профессионалов сделать браузеру апи для создания отдельного нативного окна со всеми плюхами вроде нормальной иконки на панели задач, контекстного меню или меню окна?.. Ставлю всё ту же шляпу что не очень :wink:
Максим Кич писал(а):Явисты, чтоль? )))
PyCharm - лучшая IDE для питона. Сделана на основе той самой IDEA, как и WebStorm, которая предназначена для JS. Современный аналог эклипса, по сути.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1560
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 11 апр 2016, 15:34

Феникc писал(а):Массивы, словари, классы (ну тут опять же js виноват, ООП-то все городят костылями), асинхронные операции (с этим в js тоже всё плохо, так хорошо подходящим к нему async/await еле завезли), ивенты... То, что с ходу вспомнил.
Ну вот я и говорю, это называется «Мы возьмём JS и будем на нём пытаться писать как на %some_other_language%». То же ООП может быть на классах, может быть на прототипах — и это два разных ООП. Классы в js (даже нативные из ECMA6) — это синтаксический сахар чистой воды, они уродливы потому что они там, где их быть не должно.
Феникc писал(а):Почему микрозависимости на каждый чих не тянут в питоне или шарпе?
Я не в курсе за питон. Может там нет стандартного удобного и наполненного репозитория пакетов/пакетного менеджера? В Rust, скажем, есть crate и зависимости тянут за милую душу, хотя сам язык по своему очень продуманный. А для браузерного JS так чисто исторически неоткуда было взяться изобилию библиотек, потому что до совсем недавшего времени перед языком принципиально другие задачи стояли.
Феникc писал(а):Ты же не путаешь сильную и статическую типизацию?
Не путаю. С института эта ошибка перевода как завязла на зубах, так и висит.
Феникc писал(а):Сильная типизация - благо, слабая - зло. Для поддержки больших проектов статическая типизация - благо, особенно если в ней есть инструменты для эмулирования динамической типизации - dynamic в C#.
C# как сферический язык в вакууме мне очень нравится. Но потом начинается Asp.Net и вся элегантность языка теряется за монструозностью навороченных поверх конструкций.
Феникc писал(а):Мы все здесь взрослые, верно? Сама концепция "молчать до последнего" в js меня убивает. Делишь на ноль, получаешь элемент из коллекции по несуществующему ключу? Конечно же это не ошибка, так всё и запланировано!

JS проектировался, чтобы работать со структурой, которая может измениться по независящим от данного конкретного скрипта причинам.
Феникc писал(а):Держи свои инфинити и андефайнед, которые в худшем случае вылезут через тысячу строк кода. Про this уж и говорить не стоит.
Случается. Но не так часто, как может показаться. Возможно, это просто сила привычки. this в js ведёт себя не так как в другом языке? Ну так и js — это не другой язык.
Феникc писал(а): А вот если ты хочешь переопределить оператор - иди отсюда, фу! У тебя ж методы есть, чего ещё надо?!
А в какой области видимости и на каких типах данных JS должен уметь переопределять операторы?
Феникc писал(а):не так уж и толсто, по сравнению с визуализацией и обработкой инпута юзеров. Да и эта логика как раз и укладывается в обычное, относительно несложное преобразование данных на пути API <=> DB. Впрочем, тут вопрос дискуссионный, потому как всё IT про преобразования данных :lol:
Очень дискуссионный. Кроме API и DB есть ещё third party API, приём и отправка e-mail-ов и сообщений для ботов, cron-job-ы всяческие, генерация контента типа pdf-ин — и это не считая того, что «относительно несложное преобразование» может слегка растянуться.
Феникc писал(а):А это не со стороны осей движения, а со стороны браузеров.
Третья война Браузеров? Спасибо, я слишком стар для этого ))) Я лучше перебьюсь меньшим количеством свистоперделок, но они будут гарантированно работать.
Феникc писал(а):PyCharm - лучшая IDE для питона. Сделана на основе той самой IDEA, как и WebStorm, которая предназначена для JS. Современный аналог эклипса, по сути.
Ну, IDEA и Eclipse, имхо, сверстники. Хотя лично мне IDEA нравится больше. Сам в основном пользую WebStorm, (IDEA у меня для Corona SDK и Lua в общем) и крайне им доволен.
Dump the screen? [y/n]

Аватара пользователя
Cfyz
Сообщения: 761
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: Флудилка ушибленных яваскриптом

Сообщение Cfyz » 11 апр 2016, 15:46

Феникс писал(а):А это не со стороны осей движения, а со стороны браузеров. Вот взять тот же вк-плеер, который у меня включён круглосуточно - насколько сложно для браузеров прокинуть апи, через которое можно будет этот виджет в системный трей запихнуть? Ставлю шляпу что на месяц работы высокопрофессиональной команды для той же винды и иксов. Или вон, уведомления. У меня в линупсе есть свои, нативные уведомления, в которые тот же elctron умеет (это ведь через него работает стэндэлон слак и телеграм?). А браузеры своими костылями обходятся, которые тоже можно заместить на нативные возможности на некоторых платформах уже буквально вотпрямщас. Кстати, вот слак и телеграм - отличный пример того, о чём я говорю. Они пока ещё обходятся сторонними решениями, но сколь сложно для команды профессионалов сделать браузеру апи для создания отдельного нативного окна со всеми плюхами вроде нормальной иконки на панели задач, контекстного меню или меню окна?.. Ставлю всё ту же шляпу что не очень :wink:
Иронично, что год назад браузеры были к этому ближе, чем сейчас -- я имею в виду что еще недавно в браузерах поддерживались native-бинарные плагины, посредством которых можно было хоть заинтегрироваться в ОС. Но все выпилили. Давать браузеру пускать корни в ОС это опасно: кто-то запихнет в трей плеер, а кто-то -- шифровальщик-вымогатель. Браузеру наоборот нельзя давать быть на равных с десктопными приложениями, потому что иначе это фактически эксплоит выполнения произвольного кода прямиком из сети. Electron.js и основанные на нем приложения -- это совсем другое дело, потому что это товар штучный, пользователь начинает с ним работу осознанно и на индивидуальной основе.
Cfyz теперь - наглая морда.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1560
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Флудилка ушибленных яваскриптом

Сообщение Максим Кич » 11 апр 2016, 16:25

Cfyz писал(а):Electron.js и основанные на нем приложения -- это совсем другое дело, потому что это товар штучный, пользователь начинает с ним работу осознанно и на индивидуальной основе.
Ну и предполагается, что весь исполняемый код уже находится внутри бандла, так что никакая зараза ниоткуда не придёт.
Dump the screen? [y/n]

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 11 апр 2016, 17:01

Максим Кич писал(а):Ну вот я и говорю, это называется «Мы возьмём JS и будем на нём пытаться писать как на %some_other_language%». То же ООП может быть на классах, может быть на прототипах — и это два разных ООП. Классы в js (даже нативные из ECMA6) — это синтаксический сахар чистой воды, они уродливы потому что они там, где их быть не должно.
Увы, но если это самое ООП все с прототипов переделывают на классы - это о чём-то да говорит. Я далёк от не умеющих ошибаться миллионов, я считаю, как уже говорил выше, что языки всё же тоже продукт, у которого есть пользователи. И если пользователи в большинстве своём пытаются писать на JS как на %some_other_language%, это означает что где-то js свернул не туда, ведь для этих самых пользователей он и делался.
Максим Кич писал(а):Я не в курсе за питон. Может там нет стандартного удобного и наполненного репозитория пакетов/пакетного менеджера? В Rust, скажем, есть crate и зависимости тянут за милую душу, хотя сам язык по своему очень продуманный. А для браузерного JS так чисто исторически неоткуда было взяться изобилию библиотек, потому что до совсем недавшего времени перед языком принципиально другие задачи стояли.
Есть. Раньше с этим похуже было, но даже лет семь-десять назад Python Package Index существовал. Но никаких left-pad и lodash там нет - потому что в сам язык встроены str.rjust, map, filter, for и т. д. Не знаю что там ещё есть в лодаше, но практически уверен что любой пример с ней перелагается на питон без использования сторонних библиотек. Хотя ладно, питон конечно силён именно своей концепцией "батарейки в комплекте", у него есть свои модули, которые по большей части включены в стандартную поставку. Но, если честно, лично я теми же functools/itertools пользовался от силы пару раз, бьюлтинов хватало на всё. Вопрос в том, почему js не имеет встроенных штуковин для такого простого, базового поведения как, например, форматирование строк?
Максим Кич писал(а):C# как сферический язык в вакууме мне очень нравится. Но потом начинается Asp.Net и вся элегантность языка теряется за монструозностью навороченных поверх конструкций.
Хехе. Буквально недавно один знакомый мне директор серьёзной фирмы, занимающейся вебом на дотнете, написал что они перешли именно на ту схему апи + тяжёлый клиент, потому что она лучше. https://habrahabr.ru/post/275333/ вот она. Именно про это я и говорил, как ты ни пытайся, а js (пока) обойти особо не получится. Сильно надеюсь что в будущем это изменится.
Максим Кич писал(а):JS проектировался, чтобы работать со структурой, которая может измениться по независящим от данного конкретного скрипта причинам.
Тут у меня сразу два возражения. Первое - увы, но как пользователя языка меня не особо волнует почему оно сделано плохо, какие там давние причины изуродовали младенца. Не знаю как там было в девяносто пятом (между прочим, js - мой ровесник), но уже давненько содержимое страницы зависит только от разработчика. Второе - такие проблемы есть у любого многопоточного приложения, но почему-то там не жертвуют явностью ошибок в пользу... В пользу чего? Не вижу никаких преимуществ. Особенно учитывая что js строго однопоточен, так что можно и обычную проверку провести, не боясь что между ифом и использованием проверяемого значения кто-то внезапно внедрится.
А теперь такая явная проверка - единственное что остаётся, пиши свой бойлерплейт и и думать забудь что язык может тебе помогать хоть чуточку.
Максим Кич писал(а):Случается. Но не так часто, как может показаться. Возможно, это просто сила привычки. this в js ведёт себя не так как в другом языке? Ну так и js — это не другой язык.
И поэтому пиши бойлерплейт с var self = this или байндами, ага. Ты действительно думаешь что это признак хорошо спроектированного языка? Я ведь лишь утверждаю что js спроектирован слишком плохо для свалившейся на него популярности, ты с этим согласен?
Максим Кич писал(а):А в какой области видимости и на каких типах данных JS должен уметь переопределять операторы?
А мне не слишком это важно. Пусть вызов a + b транслируется в a.__add__(b), или как угодно - хоть какой-нибудь путь для сокращения бойлерплейта! Чем меньше кода - тем лучше, чем легче его прочитать - тем лучше. JS почему-то предпочитает избегает соблюдения этого правила, и я искренне не понимаю, почему.
Максим Кич писал(а):Очень дискуссионный. Кроме API и DB есть ещё third party API, приём и отправка e-mail-ов и сообщений для ботов, cron-job-ы всяческие, генерация контента типа pdf-ин — и это не считая того, что «относительно несложное преобразование» может слегка растянуться.
Ну да, согласен. На сервере останется ещё куча работы, но вот та часть что связана с UI полностью уедет на клиента - смотри статью выше.
Максим Кич писал(а):Третья война Браузеров? Спасибо, я слишком стар для этого ))) Я лучше перебьюсь меньшим количеством свистоперделок, но они будут гарантированно работать.
А я вот, пожалуй, жду её с нетерпением. Хотя и думаю что она будет выглядеть скорее как "один запилил, все остальные быстренько стырили, энтузиасты выпустили полифил чтобы всё выглядело как наиболее удобный вариант". Если война - цена удобства для юзера, то я, как юзер, только за.
Cfyz писал(а):Иронично, что год назад браузеры были к этому ближе, чем сейчас -- я имею в виду что еще недавно в браузерах поддерживались native-бинарные плагины, посредством которых можно было хоть заинтегрироваться в ОС. Но все выпилили. Давать браузеру пускать корни в ОС это опасно: кто-то запихнет в трей плеер, а кто-то -- шифровальщик-вымогатель. Браузеру наоборот нельзя давать быть на равных с десктопными приложениями, потому что иначе это фактически эксплоит выполнения произвольного кода прямиком из сети. Electron.js и основанные на нем приложения -- это совсем другое дело, потому что это товар штучный, пользователь начинает с ним работу осознанно и на индивидуальной основе.
Извечная гонка. Появились автомобили, появились и ДТП, появились ПДД. Так и тут будет - попапы забороли, вредоносные экстеншены борют, тут тоже заборют, никуда не денутся. Тем более что я говорю не про встраивание нативного кода, а скорее про апи вида create_tray_icon(icon_image, context_menu_text_to_func_dict, on_click_func, on_double_click_func, widget_dom) - ну, ты понял. И работу с ним сделать по аналогии с нотификациями, с явным запросом разрешения юзера.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Cfyz
Сообщения: 761
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: Флудилка ушибленных яваскриптом

Сообщение Cfyz » 11 апр 2016, 17:54

Феникс писал(а):Извечная гонка. Появились автомобили, появились и ДТП, появились ПДД. Так и тут будет - попапы забороли, вредоносные экстеншены борют, тут тоже заборют, никуда не денутся. Тем более что я говорю не про встраивание нативного кода, а скорее про апи вида create_tray_icon(icon_image, context_menu_text_to_func_dict, on_click_func, on_double_click_func, widget_dom) - ну, ты понял. И работу с ним сделать по аналогии с нотификациями, с явным запросом разрешения юзера.
Но в нашем случае эту гонку порешили как гордиев узел, не будет вам ДТП. А вот с API на мой взгляд полная утопия: никогда не получится сделать устраивающий всех набор функций. Усредненный набор API, к примеру, сделали для HTML5 видео, но вот в области видеонаблюдения-видеоконференций им пользоваться невозможно. Нотификации и системный трей это достаточно просто, но согласись, это не тянет на глубокую интеграцию с ОС о которой мы начали говорить. С разрешениями на доступ тоже не все слава богу. Мало что придется как-то все ОС уравнять, так еще и разрешения придется где-то хранить и управлять ими: идентификация, установка и удаление приложений, подписи и контрольные суммы и пошло-поехало, чем это будет отличаться от обычных приложений?
Cfyz теперь - наглая морда.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1560
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 11 апр 2016, 18:18

Феникc писал(а):И если пользователи в большинстве своём пытаются писать на JS как на %some_other_language%, это означает что где-то js свернул не туда, ведь для этих самых пользователей он и делался.
В своё время Ален Голуб предостерегал от попыток писать на С/C++, как на COBOL или Basic. Была ли проблема C++ в том, что на нём нельзя было писать, как на Коболе? У любого языка есть своя специфика, её надо понимать. JS нигде не сворачивал «не туда» потому что он всегда был таким.
Феникc писал(а):Вопрос в том, почему js не имеет встроенных штуковин для такого простого, базового поведения как, например, форматирование строк?
В node.js есть встроенный util.format В браузере до недавнего времени особого смысла не было в этом. Сейчас есть template string-и, например.
Феникc писал(а):Не знаю как там было в девяносто пятом (между прочим, js - мой ровесник), но уже давненько содержимое страницы зависит только от разработчика.
От разработчика, от того, что фреймворк делает с DOM-деревом, от того, что third-party библиотеки делают с DOM-деревом, от того, что браузерные плагины вроде Ad-block-а делают с DOM-деревом.
Феникc писал(а):Не вижу никаких преимуществ. Особенно учитывая что js строго однопоточен, так что можно и обычную проверку провести, не боясь что между ифом и использованием проверяемого значения кто-то внезапно внедрится. А теперь такая явная проверка - единственное что остаётся, пиши свой бойлерплейт и и думать забудь что язык может тебе помогать хоть чуточку.
Есть идея, как это исправить, не искалечив половину страниц в Интернете?
Феникc писал(а):И поэтому пиши бойлерплейт с var self = this или байндами, ага. Ты действительно думаешь что это признак хорошо спроектированного языка? Я ведь лишь утверждаю что js спроектирован слишком плохо для свалившейся на него популярности, ты с этим согласен?
Дело за малым: слетать в 95-й год и объяснить, как спроектировать скриптовый язык для мигания буквами так, чтобы 20 лет спустя им было приятно пользоваться в энтерпрайзных решениях.
Феникc писал(а):
Максим Кич писал(а):А в какой области видимости и на каких типах данных JS должен уметь переопределять операторы?
А мне не слишком это важно.
Это пока какой-нибудь залётный модуль не устроит переопределение в духе happy debugging, bitches. Я против перегрузки операторов ничего не имею. Но для того, чтобы сделать перегрузку в JS, надо сначала убрать JS, потом добавить перегрузку, а потом добавить C#. Что уже было сделано в лучшем мире с бесконечными бюджетами, отсутствующими дедлайнами и одним Идеальным Браузером Последней Версии на всех.
Феникc писал(а):А я вот, пожалуй, жду её с нетерпением. Хотя и думаю что она будет выглядеть скорее как "один запилил, все остальные быстренько стырили, энтузиасты выпустили полифил чтобы всё выглядело как наиболее удобный вариант". Если война - цена удобства для юзера, то я, как юзер, только за.
Меня текущее развитие событий устраивает. А когда заработают Proxy — я буду почти абсолютно счастлив )))
Dump the screen? [y/n]

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Флудилка ушибленных яваскриптом

Сообщение Феникc » 11 апр 2016, 18:32

Cfyz писал(а):Мало что придется как-то все ОС уравнять, так еще и разрешения придется где-то хранить и управлять ими: идентификация, установка и удаление приложений, подписи и контрольные суммы и пошло-поехало, чем это будет отличаться от обычных приложений?
Да ничем, пожалуй ¯\_(ツ)_/¯
Кроме, конечно, бесплатной кроссплатформенности и унификации работы со всем этим делом. Может, это будет выглядеть похоже на Mac-way - причём, в ограниченном виде это возможно уже сейчас, создать ярлыки на открытие сайта в отдельном окне не так уж и сложно. Другое дело что лично у меня, например, панель задач автоматически скрывается, лазить на неё я не люблю и вообще браузер сворачиваю исключительно редко. Открыты у меня дома обычно только вивальди с максимум десятком вкладок и слак, так что если бы я мог нормально объединить панель задач и панель вкладок в браузере (со всеми плюшками панели задач, вроде трея, в который можно вынести тот же вк-плеер или там значок сообщений в почте и все прочие оперативные показатели), а также объединить рабочий стол с экспресс-панелью... Чёрт, вообще-то это звучит как интересная идея для нового браузера :lol: Пользовался бы кто-нибудь таким?
И да, никакой сверхглубокой интеграции с системой все мои хотелки пока не требуют. Куча работы, конечно, но ничего даже слегка экстраординарного. Просто браузер становится эдаким метаприложением, повыше ОСи, скрывая её для тех задач, для которых она не важна. Такое себе приложение дополненной реальности :)
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 11 апр 2016, 18:41

Максим Кич писал(а):Дело за малым: слетать в 95-й год и объяснить, как спроектировать скриптовый язык для мигания буквами так, чтобы 20 лет спустя им было приятно пользоваться в энтерпрайзных решениях.
Рад что ты согласен :)

Ну, собственно, если продолжать, то дальше это уже будет разговор о том, что с js делать. Моё мнение - js останется как есть, а с помощью wasm для браузеров запилят поддержку других языков и новые, крутые шутки для разработки будут делать на них, а js останется в качестве легаси. Всё как с PHP, в общем, но усугублено тем, что браузеры всё же довольно серьёзно к js привязаны, в отличии от серверов, которые к PHP не привязаны ничем.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 15 апр 2016, 08:59

Феникc писал(а): Всё как с PHP, в общем, но усугублено тем, что браузеры всё же довольно серьёзно к js привязаны, в отличии от серверов, которые к PHP не привязаны ничем.
PHP, пожалуй, ещё хуже жаваскрипта. Если эти два языка можно сравнивать, конечно.
Хотя сам писал на нём лет пять на работе ,) Не покидало ощущение, что делался он студентами на коленке в перерывах между парами, когда закрыт буфет. Документация - лучше бы её не было. Пространство глобальных имён засрано под завязку... Да и много ещё чего.
Последний вышедший пхп сразу же ознаменовался дичайшими фейлами и сплошными сегфолтами на ровном месте. Зато запретили(наконец-то) дублирующий default - прогресс.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1560
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 15 апр 2016, 12:44

Anfeir писал(а):
Феникc писал(а): Всё как с PHP, в общем, но усугублено тем, что браузеры всё же довольно серьёзно к js привязаны, в отличии от серверов, которые к PHP не привязаны ничем.
PHP, пожалуй, ещё хуже жаваскрипта. Если эти два языка можно сравнивать, конечно.
Хотя сам писал на нём лет пять на работе ,) Не покидало ощущение, что делался он студентами на коленке в перерывах между парами, когда закрыт буфет.
Однако, парадокс: всё мало-мальски стабильное, юзабельное и предназначенное на низкие/средние нагрузки (т.е. практически всё) — как правило написано на PHP. Ну, сейчас ещё node.js добавился.

В целом, я за годы пришёл к странному выводу: красивые, продуманные, структурированные проекты не взлетают. Потому что пока бригада инженеров в стерильном боксе прикручивает к физюляжу филигранно исполненный реактивный двигатель на атомной тяге — адовое чудо из спичек, желудей и велосипедов, бешено размахивая асимметричными костылями, отрывается от земли и, кренясь один борт, летит навстречу первому туру инвестиций.

Поэтому я перестал делить проекты на «красивые» и «некрасивые». Есть только взлетевшие и невзлетевшие. Пользователю вообще всё равно, на чём крутится система, если она крутится.
Dump the screen? [y/n]

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей