LINUX.ORG.RU

Ответ на: комментарий от x3al

В JS нет средств для AOT-компиляции

JS нет смысла компилировать AOT. Максимум - это грузить предварительно сформированный профиль, который, вполне возможно, изменится в процессе работы, особенно если это современный V8, который для экономии памяти ограничивает объем скомпилированного кода, поскольку нельзя урезать обычную интерпретацию, а жрет память компилятор будь здоров.

byko3y ()
Ответ на: комментарий от byko3y

Ну а как же

Что как же? Я его так прочитал, что он смирился с электроном, а не любит его.

Есть же люди, которым нравятся приложения на электроне. И эти люди будут писать, что кутя выглядит как неродная на маке, что жава жрет память

Веб-обезьяны сэр. Они не недолюбливают жабу за жор памяти, они пытаются жором памяти в жабе оправдать жор памяти электроном. Жабу они недолюбливают за то, что они в неё не умеют.

anonymous ()
Ответ на: комментарий от monk

У JS приходится перед любой операцией проверять тип.

Этой фразой всегда палятся «деятели», которые либо на современном JS никогда не писали (но «авторитетное» говномнение обязательно вставят), либо вследствие забитого стереотипами мозжечка пишут так, что лучше бы не писали вовсе.

rebforce ()
Ответ на: комментарий от x3al

Но тот же bucklescript спокойно берёт выхлоп AOT-компилятора ocaml’а и пишет из него жабоскрипт, экономя как минимум объём кода

Ну это транспиляция, я-то думал про компиляцию в маш коды, а при чему тут bucklescript - не понимаю. Он же не маш коды, а промежуточный код берет, и превращается его в жаваскрипт.

byko3y ()
Ответ на: комментарий от rebforce

Этой фразой всегда палятся «деятели», которые либо на современном JS никогда не писали

Ну покажи как в современном JS компилятор должен выполнить x[i].f() не проверяя тип i-го элемента массива x. Если речь про Typescript, то это не совсем JS и он всё равно компилируется в JS и результат передаётся компилятору JS.

monk ★★★★★ ()
Ответ на: комментарий от byko3y

без сей с плюсами

Кутя, wx

тонко.

К слову, я не понимаю, почему люди недолюбливают жаву за тормознутость и неродной вид, если у электрона точно такая же тормознутость и неродной интерфейс.

К слову сказать тот же VSCode в сравнении с жабоальтернативами просто ласточка. Субъективно, конечно же. Насчет неродного интерфейса - смотрю на QtCreator и недоумеваю, что же в нем такого родного по сравнению с неродным VSCode?

Ну и говорят на смену электрону грядут Progressive Web Applications , которые сделают десктоп еще более мягким и шелковистым. Ну не знаю. Обещают что PWA еще и аппетит поумерят.

olelookoe ()
Последнее исправление: olelookoe (всего исправлений: 1)
Ответ на: комментарий от monk

Ну покажи как в современном JS компилятор должен выполнить x[i].f() не проверяя тип i-го элемента массива x

Молча, блин. В JS оператор доступа к свойству (.) определён для объектов любого типа, а проверка идёт уже по значениям. Для значений null и undefined он перегружен выдавать TypeError. Во всех остальных случаях он проверяет, опять же, наличие непосредственно свойства f, а не тип x[i], который ему нафиг не упал.

rebforce ()
Ответ на: комментарий от olelookoe

Ну а что у нас еще есть десктопного, кроссплатформенного и чтоб без сей с плюсами, от которых у молодого поколения икота и несварение?

Racket/gui : https://docs.racket-lang.org/gui/

Работает на Win/Mac/Linux, на всём использует родные тулкиты (для Linux - GTK), компилируется в бинарник. Не си с плюсами.

monk ★★★★★ ()
Ответ на: комментарий от rebforce

Во всех остальных случаях он проверяет, опять же, наличие непосредственно свойства f

Так ещё хуже. Там где в нормальных компиляторах будет вызов функции по фиксированному смещению от адреса объекта, в JS будет поиск по строке в списке или хэше.

monk ★★★★★ ()
Ответ на: комментарий от olelookoe

Кутя, wx

тонко.

Может, по-твоему, нельзя уже и браузером пользоваться, потому что он на крестах написан?

К слову сказать тот же VSCode в сравнении с жабоальтернативами просто ласточка

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

смотрю на QtCreator и недоумеваю, что же в нем такого родного по сравнению с неродным VSCode?

Кутю можно сделать родной, это видно на менюшках и отдельных окошках криэйтора. Электрон можно заставить мимикрировать под определенное оформление системы, но после минимальных изменений настроек вся мимикрия раскрывается.

Ну и говорят на смену электрону грядут Progressive Web Applications , которые сделают десктоп еще более мягким и шелковистым. Ну не знаю. Обещают что PWA еще и аппетит поумерят.

Говорят, что кур доят.

byko3y ()
Ответ на: комментарий от byko3y

Может, по-твоему, нельзя уже и браузером пользоваться, потому что он на крестах написан?

Можно, конечно. На сях есть еще и GTK, IUP, Nuklear, из того что живо и кроссплатформенное. Есть еще и не на сях с плюсами всякое, тут вот подсказывают.

Но проблема в чем. Все это добро кто в лес кто по дрова, стандартного языка описания представления UI не имеет, в отличие от web, который стандартизован от и до. Это первое. Второе - js это фактически DSL, который сам отрисовкой не занимается. Это ЯП который обслуживает фронтенд. Библиотечные биндинги на ЯП, отличные от языка, на котором библиотека написана это не то же самое.

Да, js вывели за рамки UI. Хотя не сложно и обратно затолкать, и даже прямо сейчас. Просто тогда приложение придется паковать и с отдельным бекэндом, кроссплатформенность которого под вопросом. А так - все сразу, даром, и пусть никто.

olelookoe ()
Последнее исправление: olelookoe (всего исправлений: 1)
Ответ на: комментарий от byko3y

Кутю можно сделать родной, это видно на менюшках и отдельных окошках криэйтора. Электрон можно заставить мимикрировать под определенное оформление системы, но после минимальных изменений настроек вся мимикрия раскрывается.

Кстати о стандартах, вернее об их отсутствии. Если бы, к примеру, стили и свойства описывались в том же CSS, то с темами и оформлением чего угодно на десктопе не было бы никаких проблем. А сейчас затолкать все в единую схему оформления это пердолинг тот еще.

olelookoe ()
Ответ на: комментарий от olelookoe

Все это добро кто в лес кто по дрова, стандартного языка описания представления UI не имеет, в отличие от web, который стандартизован от и до

Чиво? JSX, vue, ATL, и так далее - это стандартизированное представление UI по-твоему?

Второе - js это фактически DSL, который сам отрисовкой не занимается

Вот же ж, можешь выдать годную аналитику, когда хочешь. Да, JavaScript - это DSL.

А так - все сразу, даром, и пусть никто.

Что «пусть никто»?

byko3y ()
Ответ на: комментарий от byko3y

JSX, vue, ATL, и так далее - это стандартизированное представление UI по-твоему?

(X)HTML и CSS - это стандарты. JS - это (стандартный же) ЯП, которым представление меняется на лету, при необходимости.

Все эти js примочки это разной степени успешности попытки упростить себе жизнь при разработке сложного фронтенда. Не стандарт, конечно же.

Нода - попытка дать ответ на вопрос кроссплатформенного бэкэнда. Ну и побочка в виде одного ЯП на все случаи жизни тоже многих вдохновила.

olelookoe ()
Ответ на: комментарий от olelookoe

Если бы, к примеру, стили и свойства описывались в том же CSS, то с темами и оформлением чего угодно на десктопе не было бы никаких проблем. Здрасьти, в гтк уже давно стили описываются в css. Только проблем прибавилось почему-то. Попробуй просто поменять цвет фона виджетов в дефолтной теме, нюхни вебни что называется (противогаз не забудь).

anonymous ()
Ответ на: комментарий от olelookoe

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

Здрасьти, в гтк уже давно стили описываются в css. Только проблем прибавилось почему-то. Попробуй просто поменять цвет фона виджетов в дефолтной теме, нюхни вебни что называется (противогаз не забудь).

anonymous ()
Ответ на: комментарий от olelookoe

(X)HTML и CSS - это стандарты.

И толку? Так же я могу сказать, что C++ это стандарт. Бери его и лепи себе виджеты. В чем проблема? Гибкость зато безграничная.

anonymous ()
Ответ на: комментарий от olelookoe

Простой редактор кода с минимальными фичами

Ну не знаю. По-моему там уже все необходимое в наличии. Чего-то не хватает?

Ну, может быть для JS/TS и есть всё необходимое. Правда, много ли для него нужно вообще? Посмотри на встроенный рефактор - фич как котик наплакал. А теперь посмотри на то, как VSCode работает с чем-то, помимо JS/TS, что требовательно к инструментам, как то Java, или C#, или C++ - VSCode отвратительно работает с этими языками.
Тебе напомнить, из чего был создан Intellij IDEA? Тупо из инструментов рефакторенья. Потому что когда ты теряешь инструментальную работу с кодом, то внезапно у тебя в руках оказывается... текстовой редактор. Все-таки фичи работы с кодом являются скорее заслугой языковых серверов, нежели самого редактора - VSCode лишь обеспечивает минимальный интерфейс к серверу. Только вот беда - языковой сервер не может заменить тесно интегрированного инструмента. Еще раз: для JS/TS это прокатывает, потому что это менее требовательные к инструментам языки, а вот именно на жаве/шарпе/крестах начинается самый угар, который VSCode уже никак не вывозит.

byko3y ()
Ответ на: комментарий от anonymous

Ну во-первых это только gtk, а у меня на десктопе полно всякой не гтк хрени, которая плевать хотела на то, что там в гтк описано. Во-вторых то, как это реализовано в гтк это песец, конечно. Ну там парни вообще креативные.

olelookoe ()
Ответ на: комментарий от olelookoe

(X)HTML и CSS - это стандарты. JS - это (стандартный же) ЯП, которым представление меняется на лету, при необходимости.

Современные фронтенд фреймворки не используют (X)HTML - они оперируют DOM. CSS - да, используется, потому что обычно оно статично.

byko3y ()
Ответ на: комментарий от byko3y

Это именно то, про что я писал: невозможно создать инструмент, который смог бы оценить покрытие всех вариантов работы произвольного алгоритма.

Как это, невозможно? Для JS такой инструмент есть: nyc

А это именно то, что ты хочешь.

Да, я хочу такой же для питона.

anonymous ()
Ответ на: комментарий от byko3y

Ну а что у нас еще есть десктопного, кроссплатформенного и чтоб без сей с плюсами

Кутя, wx, жава не только под плюсы есть

А ещё Tk!

Но это фреймворки. А вот если мы ищем единый язык под веб, десктоп и мобилки, то тут либо java либо javascript.

anonymous ()
Ответ на: комментарий от anonymous

единый язык под веб, десктоп и мобилки

Никакой джавой тут не пахнет, потому что под веб, десктоп и мобилки это три совсем разные джавы.

JS - особенно в виде electron - это ад и погибель.

Поэтому только C#

lovesan ★☆ ()
Ответ на: комментарий от byko3y

VSCode уже никак не вывозит

Что касается рефакторинга тут да, хотя прогресс есть. За всем не слежу, но для крестов и чистых сей фич, на мой взгляд, достаточно. Вполне может быть что у меня такое ощущение только потому что я слаще морковки ничего не ел. Обычно обхожусь куда более аскетичным набором инструментов и интерфейсов. VSCode лично мне полезен поддержкой разных ЯП (вместе с их инструментами) в пределах одной коробки. Ну и плюс всякие мелкие радости бытия. Я знаю, чего мне еще хотелось бы или чего не хватает, но самому пилить лень и недосуг, хотя об этом можно было бы подумать. А вот при попытке подумать как нужный функционал запилить на какой-нибудь другой той-которой-нельзя-называть (ибо флейм) платформе у меня начинают болеть зубы и голова )

olelookoe ()
Последнее исправление: olelookoe (всего исправлений: 1)
Ответ на: комментарий от olelookoe

JSX, vue, ATL, и так далее - это стандартизированное представление UI по-твоему?

(X)HTML и CSS - это стандарты. JS - это (стандартный же) ЯП, которым представление меняется на лету, при необходимости.

OpenGL – это стандарт. Рисуй виджеты, сколько хочешь.

Вообще я не понял твоих претензий. HTML и CSS это не альтернатива зоопарку qt, gtk, winapi, cocoa и прочих, которая их всех заменит, потому что стандарт. Это ещё один зверь в зоопарке.

anonymous ()
Ответ на: комментарий от olelookoe

VSCode лично мне полезен поддержкой разных ЯП (вместе с их инструментами) в пределах одной коробки.

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

Первая моя реакция, когда я узнал про такое построение системы, была чем-то вроде «а зачем тут нужен редактор вообще?». То есть, VSCode - это мелкое звено в цепочке, легковесный клиент LSP. И в итоге вся сложность упирается в LSP, который для жавы сделан на каком-нибудь эклипсе, и по тяжести/тормознутости соответствует эклипсу, и по сути VSCode с такой жавой - это и есть эклипс, только с заметно урезанным функционалом и кучей багов, вызванных независимостью разработкой эклипса и VSCode.

Как грица «гладко было на бумаге - да забыли про овраги».

byko3y ()
Ответ на: комментарий от anonymous

если мы ищем единый язык под веб, десктоп и мобилки, то тут либо java либо javascript.

Ну смотри. Во-первых никакого другого стандарта описания UI кроме вебнутого у нас нет. И в наличии соблюдающие стандарт парсеры-рендереры, ака браузеры.

А они поддерживают только JS, как часть веб стандартов. И приехали.

WebAssembly может помочь исправить ситуацию. Ну или нужна либа, парсер-рендерер , дергать которую можно будет из какого угодно ЯП снаружи.

Есть молодой проект, который пилит один человек

https://lexbor.com/

olelookoe ()
Ответ на: комментарий от byko3y

Несоответствие инструментов Javascript современным требованиям

… asm.js … WASM

Довольно смешно слышать про «несоответствие инструментов», когда как раз вокруг этих инструментов и крутиться bleeding edge (причём по твоим же словам).

no-such-file ★★★★★ ()
Ответ на: комментарий от anonymous

OpenGL – это стандарт. Рисуй виджеты, сколько хочешь.

Иксы тоже какой-никакой стандарт, и чо? Понаворотили кучу всякой несовместимой хрени поверх. OpenGL в этом смысле какой то особенный?

Стандарты вебни не говорят о том, чем и как рендерить. Они просто дают возможность описать конечный результат. То, как это должно выглядеть. Оперировать DOM ты можешь декларативно, а можешь интерактивно им манипулировать при помощи js.

olelookoe ()
Ответ на: комментарий от byko3y

Как грица гладко было на бумаге

ну это всегда так.

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

Так тоже можно, но по нынешним временам фичастости маловато )

olelookoe ()
Ответ на: комментарий от olelookoe

Иксы тоже какой-никакой стандарт, и чо?

Да ни чо. Это ты пафосно заявляешь, что вебня – стандарт, а остальное нестандарт, поэтому вебня хорошо. Я вообще не осилил, найти в этом заявлении какую-то логику. Привёл тебе контрпример, чтобы ты понял, что ты фигню несёшь либо оспорил.

Понаворотили кучу всякой несовместимой хрени поверх. OpenGL в этом смысле какой то особенный?

Выше же сам написал, что поверх dom понаворотили всяких vuejs с реактами. Нет, не особенный, такое же говно как и веб.

Стандарты вебни не говорят о том, чем и как рендерить. Они просто дают возможность описать конечный результат. То, как это должно выглядеть. Оперировать DOM ты можешь декларативно, а можешь интерактивно им манипулировать при помощи js.

И чо? Все эти тысячи зверей в зоопарке либо декларативно описывают картинку на экране, либо позволяют ей интерактивно манипулировать. DOM с js чем-то особенные?

anonymous ()
Ответ на: комментарий от menangen

Я тут уже высказывал мысли по поводу компилируемой ноды, но тут у некоторых сомнения появились. Ты прикинь?)
Это вполне реально. Пока планирую компилировать в LLVM и линковать с libuv/libev/livevent.
И мой прогноз: оригинальную ноду легко по скорости обойдет, будет на уровне гошечки.
Начну со стандарта 5.1 и по нарастающей.

anonymous ()
Ответ на: комментарий от anonymous

Это ты пафосно заявляешь, что вебня – стандарт, а остальное нестандарт, поэтому вебня хорошо

Да нет никакого пафоса, тебе показалось. Стандарт - это хорошо, вот и вся логика. Так уж случилось, что в вебе стандарт сформировали, а на десктопе нет. И какие у нас теперь варианты? Стопицот уникальных гуи тулкитов, каждый из которых «не такой как все и даже лучше»? Зоопарк кути девелоперов, гтк девелоперов, wx девелоперов, название-еще-одного-самого-правильного-подхода-к-гуйне девелоперов? Причем все они блин на месте-то не стоят, креатив прет изо всех гномо-щелей и плазм.

Случится чудо, все одумаются и придут к консенсусу? Вероятно сразу после того как рак на горе свистнет.

Что нам дает DOM и его декларативное описание? Независимо от того, на каком ЯП ты это запилишь и чем отрендеришь результат будет тот самый, ожидаемый. И макет UI ты тоже можешь отрисовать, хоть на чистых HTML+CSS, причем тебя не волнует на чем там и как это потом будут девелопить. Для этого вообще не нужно у девелоперов интересоваться какая им в голову фантазия придет насчет фреймворков и библиотек. Не нужно изучать очередное васипупкинское творение и его встроенный самый совершенный в мире (кто бы мог подумать) язык описания UI. Если он вообще там есть. Дезигнер может заниматься своим делом, а девелоперы своим.

Кровь, кишки, трэш угар и содомию в результате отсутствия стандартов описывать не буду, и так все с этим наощупь знакомы.

olelookoe ()
Ответ на: комментарий от olelookoe

Ок, допустим вебня стандарт. Но стандарт же как раз на кишки, кровь, треш, угад и содомию, причём одновременно.

Где вебня 3.0 для, мать его, страниц, а не долбаных приложений? Да ладно там, где хотя бы вебня 3.0 для приложений, а не растленного до неузнаваемости трупа гипертекста? Что это за пущенная на самотек приколюха и почему она не покоится в позорных главах истории индустрии?

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

стандарт же как раз на кишки, кровь, треш, угад и содомию, причём одновременно

А нет других. Других нет. Все, конец истории. Походи по базару, поторгуйся.

Ты думаешь я рад? Какой-то восторг по этому поводу испытываю? Наслаждаюсь жабоскриптом каждую минуту? А варианты-то какие? Даже если начинать бодягу с каким-нибудь десктоп-консорциумом, по аналогии с w3c, то все равно придется начать с того, что есть. А что у нас есть? пущенная на самотек приколюха(с) Этого Франкенштейна уже невозможно упокоить, его можно только уныло-понуро допиливать до вменяемого состояния, в надежде на то, что совсем нежизнеспособное по пути само отвалится. Альтернатива? А вот она родная, прямо у нас перед глазами. И сколько эта песня уже длится, без выхода продукции наружу? Что ни скриншот на лоре - шревты, стопицот конфигов от того, от пятого, от десятого с единственной целью - чтобы вся эта ботва в совокупности хоть как-то прилично выглядела. А других десктопов у нас для вас нет.

olelookoe ()
Ответ на: комментарий от olelookoe

А варианты-то какие?

Отойти от отрасли подальше и писать приложения средствами для написания приложений.

Даже если начинать бодягу с каким-нибудь десктоп-консорциумом, по аналогии с w3c, то все равно придется начать с того, что есть.

С нормального тулкита для удаленно выполняющихся приложений.

t184256 ★★★★★ ()
Ответ на: комментарий от no-such-file

Несоответствие инструментов Javascript современным требованиям

Ю… asm.js … WASM
Довольно смешно слышать про «несоответствие инструментов», когда как раз вокруг этих инструментов и крутиться bleeding edge (причём по твоим же словам).

WAsm и asm.js исполняются не на жаваскрипте - что не так? asm.js предназначен для специальной виртуалки, но может быть исполнен на обычном JS движке, только смысла особого в этом нет, и в итоге asm.js распространения не получил.

byko3y ()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от olelookoe

Стандарт - это хорошо, вот и вся логика. Так уж случилось, что в вебе стандарт сформировали, а на десктопе нет.

Ты опять попёрся противопоставлять веб всему остальному? Это так не работает. Тем более в контексте всяких электронов.

Веб – это пятнадцатый стандарт. Благодаря вебу мы вместо зоопарка кути и гтк девелоперов получили зоопарк кути, гтк и электрон-девелоперов. Не будет тут никакого консенсуса, потому что он нахуй никому не нужен.

Что нам дает DOM и его декларативное описание? Независимо от того, на каком ЯП

Ты написал ЕЩЁ ОДИН маркетинговый булшит. Ещё один, потому что замени DOM/HTML/JS/CSS на любой гуефреймворк и получишь соответствующий рекламный буклет. Ещё в делфях втирали, как дезигнер может заниматься своим делом, не мешая девелоперам.

Кровь, кишки, трэш угар и содомию в результате отсутствия стандартов описывать не буду, и так все с этим наощупь знакомы.

Кровь, кишки и содомия в результате отсутствия стандартов бывает только в вебе, ввиду присутствия стандартов. Внезапно, да? Потому что был как бэ один станадрт, но реализовывают его кто в лес, а кто рак и щука.

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

anonymous ()
Ответ на: комментарий от olelookoe

Так уж случилось, что в вебе стандарт сформировали, а на десктопе нет.

А ты пробовал вообще смотреть описание фактически поддерживаемых фич HTML, CSS, JS? Там единым стандартом и не пахнет.

Что нам дает DOM и его декларативное описание? Независимо от того, на каком ЯП ты это запилишь и чем отрендеришь результат будет тот самый, ожидаемый. И макет UI ты тоже можешь отрисовать, хоть на чистых HTML+CSS, причем тебя не волнует на чем там и как это потом будут девелопить.

Я могу сделать из этой фразы простые вывод: ты либо не писал никакого значительного по размерам сайта, либо писал, но совсем не поддерживал его.

byko3y ()
Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ещё в делфях втирали, как дезигнер может заниматься своим делом, не мешая девелоперам.

Какая дичь. А можно ссыль? Я столько лет бился об клаву лбом с запущенным делфи, но никогда не слышал про «дизайнер занимается своим делом...».

byko3y ()