URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 113352
[ Назад ]

Исходное сообщение
"Проекты по созданию компиляторов из Java в JavaScript и испо..."

Отправлено opennews , 21-Янв-18 10:42 
В рамках проекта TeaVM (http://teavm.org/) развивается компилятор, позволяющий компилировать Java-байткод  в JavaScript и WebAssembly для последующего выполнения в браузере. Ключевым отличием от проекта GWT (http://www.gwtproject.org/) (Google Web Toolkit) является то, что TeaVM выполняет трансляцию на уровне байткода (может компилировать файлы *.class или *.jar), без привязки к исходным текстам на языке Java, что позволяет компилировать  проекты на языках Kotlin и Scala. Код TeaVM распространяется (https://github.com/konsoletyper/teavm) под лицензией Apache 2.0.


Основной целью TeaVM  является предоставление средств по созданию web-приложений для разработчиков знакомых с Java, унификации платформы для разработки (фронтэнд на базе те же технологий, что и бэкенд) или при необходимости задействования в web-приложении уже имеющегося кода на Java. TeaVM по возможности сохраняет оригинальную структуру методов, выдавая читаемый и понятный JavaScript.  Для разработки одностраничных web-приложений на  Java, Kotlin  или Scala предлагается web-фреймворк Flavour, похожий на Angular, но базирующийся а идиомах Java, а не JavaScript.


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


Также можно отметить фреймворк Substrate VM (https://github.com/oracle/graal/tree/master/substratevm), позволяющий выполнить компиляцию Java-приложений в форму самодостаточных исполняемых файлов или разделяемых библиотек (ELF-64 или 64-bit Mach-O). В Substrate VM применяется полноценная AOT-компиляция  (Ahead-of-Time) без симуляции через запуск байткода в виртуальной машине. Фреймворк распространяется под лицензией GPLv2 и развивается компанией Oracle  в рамках проекта Graal (https://github.com/oracle/graal) по разработке нового JIT-компилятора и runtime для JVM.

URL: https://news.ycombinator.com/item?id=16075933
Новость: http://www.opennet.me/opennews/art.shtml?num=47940


Содержание

Сообщения в этом обсуждении
"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено key , 21-Янв-18 10:42 
Мы сделали разные языки, каждый из которых решает свою задачу эффективнее.
А теперь мы возмем самый медленный и ограниченный и будем в него транслировать остальные.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 11:27 
Какую же задачу решает Java эффективно?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено нэту , 21-Янв-18 11:42 
задачу тормозить

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 11:57 
> задачу тормозить

Не путай Java с JS.



"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 13:47 
Они оба с этой задачей справляются отлично. Благодаря сабжу, я уверен, ещё улучшат свои показатели.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Отражение луны , 21-Янв-18 18:09 
Производительность явы близка к сишной. Производительность JS-а крайне хороша из-за неименьшего iowait-а.
Для меня вполне очевидно, что вы попросту пишите кривой код.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 18:32 
> Производительность явы близка к сишной.

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

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

> Производительность JS-а крайне хороша из-за неименьшего iowait-а.
> Для меня вполне очевидно, что вы попросту пишите кривой код.

Я уверен, что конкретно вы пишете на яваскрипте эффективный и производительный код, пользоваться которым - одно удовольствие. И мне жаль, что в повседневной жизни приходится пользоваться не вашим кодом, а кодом остальных 99.99999% приматов, которым до вас как до Луны пешком.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 19:58 
>> Производительность явы близка к сишной.
> Это после нескольких тысяч итераций, когда JIT скомпилировал код. Другими словами, это
> работает только на высоконагруженных сервисах (где и памяти как грязи) и
> на бенчмарках.

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

И ещё, в "клиентской" 32-битной версии JRE используются совсем другие стратегии JIT-оптимизаций и сборки мусора, чем в "серверной" 64-битной JRE.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Отражение луны , 21-Янв-18 20:21 
Когда речь заходит о десктопных приложениях - Ява действительно медлительна и прожорлива. Но на Яве (ровно как и на питоне и электроне) десктопные приложения пишут исключительно отбитые люди. Компетенция джавы - исключительно бекенды.
Что касается js - действительно, большинство веб сайтов и электрон приложений тормозит. Вот только вызваны эти тормоза отнюдь не js-ом, а убогостью веб технологий (хтмл, css, dom) и необходимостью из-за их убогости на стороне кода браузера кешировать все подряд, на стороне разработчиков - использовать фреймворк и на каждый чих, со стороны пользователя - покупать девайсы с тоннами оперативки.

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


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено alltiptop , 22-Янв-18 16:46 
>Тебе придется очень постараться чтобы найти лагающее qml приложение

Спасибо что напомнил - не в курсе как у плазмы чтобы отловить текущий виджет? А то они в процессах как один значатся


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Имя , 22-Янв-18 09:34 
>Большинство же "пишущих кривой код" знакомы с ней по десктопным приложениям:

Но ведь так и есть. Достаточно сравнить netbeans и geany на не слишком мощной системе. Первая и память отожрет и продолжит тормозить. Вторая летает и не жрет ничего.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Просто так влез , 22-Янв-18 10:57 
Но у netbeans и у geany разные же весовые категории и набор функционала, не? Понятно, что нативное приложение будет меньше и быстрее при прочих равных, но так Вы же сравниваете приложения не одного уровня. Например, на java есть jedit: у него возможностей гораздо меньне, чем у netbeans, но так и по скорости и потреблению памяти он мильно выигрывает

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 23-Янв-18 21:22 
> Но ведь так и есть. Достаточно сравнить netbeans и geany на не
> слишком мощной системе. Первая и память отожрет и продолжит тормозить. Вторая
> летает и не жрет ничего.

В netbeans есть встроенный отладчик, профилировщик, интроспекция, фоновая компиляция, разбор и верификация DOM XML, автодополнение кода, куча плагинов. А в Geany что-нибудь из этого есть кроме подсветки синтаксиса и команд на кнопках? Geany надо сравнивать с jEdit, но не никак не с IDE.



"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 18:40 
Абсолютно согласен, java уже давно не уступает по производительности c/c++. Человек который пишет о том что java тормозит ничего не имеет общего с программированием в целом.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено key , 21-Янв-18 19:10 
А приведите пример что на ней _не_ тормозит?
Даже если допустить, что не уступает(это не так), то она откусывает столько памяти, что вываливается даже на серверах. Я уже молчу про различные ситуации с джавовскими GC, про них легенды пишут и отдельные доклады рассказывают - как писать приложение под GC и правильно его потом настраивать.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 09:00 
> А приведите пример что на ней _не_ тормозит?

Сервак лора - отклик моментальный. Сюрприз.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 22-Янв-18 17:43 
Дятел :)
LOR - Это почти на 146% - статика. Его можно с RaspberryPi с таким же откликом раздавать если от жабы избавиться и DB на другом серваке держать :-р

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 20:20 
Чушь, вопрос был про быстрые приложения, поэтому смотри на время генерации страницы, а не картинки и js/css. Мы видим, что логика + база + рендер в шаблоны отрабатывает моментально.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено freehck , 26-Янв-18 22:41 
> А приведите пример что на ней _не_ тормозит?

Долгоработающие веб-сервисы на JVM вполне себе живут и здравствуют.

> Даже если допустить, что не уступает(это не так)

Зато она хорошо параллелится. А нынче при дешёвых ядрах это не так уж дурно.

> то она откусывает столько памяти, что вываливается даже на серверах.

Ну так это и плюс, и минус. Интеграторы, например, очень любят продавать решения на JVM, ибо они вкупе с ними продадут ещё и хорошее, дорогое железо. А тем, кто покупает такие решения и железо, как правило пофиг на память: это явно не самая большая статья расходов.

> Я уже молчу про различные ситуации с джавовскими GC, про них легенды пишут

Да, но в целой куче задач GC не сильно критичен. Вот например прокся на яве. Из-за GC каждый сотый запрос обрабатывается не мгновенно, а аж 60 секунд. Неприятно? Да. Критично? Нет. Юзер даже не заметит, что у него этот 1% выстрелил. Перезагрузит страницу, и всего делов-то.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено mumu , 21-Янв-18 19:26 
Есть у меня традиция: Раз в пару лет качаю Eclipse на посмотреть, не стал ли он меньше тормозить. Удаляю спустя 10 минут.
Ну а в Android смотрю каждый день. Каждый день у меня наполнен блаженством от "нетормозящей" жабы.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 19:52 
> Есть у меня традиция: Раз в пару лет качаю Eclipse на посмотреть, не стал ли он меньше тормозить. Удаляю спустя 10 минут.

На какой JVM вы запускаете Eclipse? Всё на старенькой, из JDK 6.0?

> Ну а в Android смотрю каждый день. Каждый день у меня наполнен блаженством от "нетормозящей" жабы.

В Android нет JVM. Там свой нескучный мирок интерпретаторов байт-кодов.



"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 18:22 
> В Android нет JVM. Там свой нескучный мирок интерпретаторов байт-кодов.

1. Чем это JVM не подходит под определение "интерпретатор байт-кода"?
2. С каких это пор в OpenJDK не входит JVM?


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 23-Янв-18 21:26 
>> В Android нет JVM. Там свой нескучный мирок интерпретаторов байт-кодов.
> 1. Чем это JVM не подходит под определение "интерпретатор байт-кода"?

В Android не JVM, интерпретирующая проприетарный формат байт-кода Google.

> 2. С каких это пор в OpenJDK не входит JVM?

JVM входит в OpenJDK, но не входит в Android.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено mumu , 23-Янв-18 03:36 
Поскольку Eclipse - это _единственная_ программа на ПК для которой приходится ставить JVM, качается всегда самая свежая. Потом ещё и её удалять приходится, чтобы она каждый день не вопила как истеричка, умоляя себя обновить. А что?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Отражение луны , 21-Янв-18 20:26 
Вот только по сравнению с остальными ОС Андроид остаётся наиболее быстрым и нелагучим, что должно наводить на мысли.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено angra , 22-Янв-18 02:25 
Огласите пожалуйста весь список этих остальных ОС, с которыми проводились сравнения.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Отражение луны , 22-Янв-18 15:02 
Айось, венда, линух, макось.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено mumu , 23-Янв-18 03:34 
Никогда у меня не тормозили ни винда ни линукс на 2 ГБ оперативки от запуска целых ТРЁХ программок параллельно или открытия аж целых десяти вкладочек в браузере. А при попытке открытия аж целых пяти программулек андроид начинает биться конвульсиями в луже крови и свопить всё что может.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено angra , 23-Янв-18 09:34 
А тебе не приходила в голову такая простая мысль, что сравнивать надо на одинаковом железе и нагрузках?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 22:05 
Ну вообще-то тормозит, если у тебя приложение начинает отжимать больше 20 гигов, gc не хило так грузить начинает.
Да только отбитый человек может написать такое приложение вы скажете, но увы такое вполне себе бывает.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено username , 22-Янв-18 01:48 
Ты хоть бы посмотрел требования к нагруженному elasticsearch например, не позорься.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено rpm , 22-Янв-18 02:35 
> Абсолютно согласен, java уже давно не уступает по производительности c/c++.

Просто компы стали быстрее и тормоза не так заметны


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено лютый жабист__ , 22-Янв-18 05:57 
>java уже давно не уступает по производительности c/c++

То то в wildfly 11 переключились с JSSE на OpenSSL. А оказывается зря...

Ещё из смешного: генератор биткоиновых адресов на жабке 20к в сек, на си 600к в сек.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Очередной аноним , 22-Янв-18 09:51 
> Ещё из смешного: генератор биткоиновых адресов на жабке 20к в сек, на си 600к в сек.

Тут еще сильно зависит от программистов каждого генератора. Генератор на Си может писал какой-нибудь Дональд Кнут, а на яве - студент-первокурсник, ругающий себя за то что пошел учиться на программиста. А вообще к яве нарекания только за прорву сжираемой памяти и некоторую "многословность" исходного кода. Ну и временами "jar-hell" (может появившаяся в Java 9 "модульность" что-то упростит).


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено лютый жабист__ , 22-Янв-18 14:06 
JSSE тоже первокурсники писали?
И bouncy castle первокурсники?

>некоторую "многословность" исходного кода

По сравнению с си? Мусье вообще видел жабу в глаза?


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 22-Янв-18 17:53 
>А вообще к яве нарекания только за прорву сжираемой памяти и некоторую "многословность" исходного кода.

Это смотря у кого! Пойдёшь работать в кровавый телеком - быстро вкуришь что первое решается самым простым и я бы даже сказал - вульгарным ;) способом, второе - парит только первые 3 буквы девопса, а вот лаги, _непредсказуемые_ лаги, когда в самое ****ть! не подходящее время оно начинает GC ... это то, что вытесняет жабу в сектор максимум провижинга, а то и в CRM\склад\магазин :-\

Но есть и светлая сторона, Люк! : оттеда жабу не выдавит никто. И это надолго :)


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 18:25 
>> Ещё из смешного: генератор биткоиновых адресов на жабке 20к в сек, на си 600к в сек.
> Тут еще сильно зависит от программистов каждого генератора. Генератор на Си может
> писал какой-нибудь Дональд Кнут, а на яве - студент-первокурсник, ругающий себя
> за то что пошел учиться на программиста.

Это тоже Кнут с командой первокуров писали?
https://benchmarksgame.alioth.debian.org/u64q/java.html


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 14:03 
> задачу тормозить и жрать

Не благодари.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 11:58 
> Какую же задачу решает Java эффективно?

На Java пишутся системы, которых вам не показывали, которые считают ваши деньги, если они у вас, конечно, есть.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 12:11 
Это те, для которых нужен сервер с кучей оперативной памяти? Которые нужно "прогревать" минут 20 ради офигенного JIT, где нужно создавать сложные файлы с директивами для компилятора и профайлы, чтобы ускорить это все? Это те которые из-за деоптимизаций и очень эффективной сборки мусора считают, что киент может подождать со своим ненужным подсчетом денег?

Не, не видели, покажите.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 12:29 
> Это те, для которых нужен сервер с кучей оперативной памяти? Которые нужно
> "прогревать" минут 20 ради офигенного JIT, где нужно создавать сложные файлы
> с директивами для компилятора и профайлы, чтобы ускорить это все? Это
> те которые из-за деоптимизаций и очень эффективной сборки мусора считают, что
> киент может подождать со своим ненужным подсчетом денег?
> Не, не видели, покажите.

Показываю: http://samolisov.blogspot.ru/2016/04/java-ee-7-140-10.html



"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 12:40 
То, что ваш калькулятор денег на Java можно запустить на мейнфрейме как-то связано с его эффективностью?
Попробуйте поискать не случайную статью из интернета, а привести реальный пример, который никто не видел конечно же.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 14:22 
Ещё: https://codeborne.com/ru/2012/12/17/online-bank-from-scratch...

Где ещё Java не тормозит: https://www.youtube.com/watch?v=TJUiTA-BluI


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 22-Янв-18 18:23 
Волшебный пример (из 2013 года), ага, и вот что там написано самими аффтарами:
"Мы хотели писать на Java, так как имеем большой опыт с языком и платформой. Java ещё не мертва, если её использовать правильно" :) Но нынче то 2018-ый ...

Ну подобьём итог:
- веб сайтик за пол-года. Ну так себе, пыхеры бы ещё быстрей управились бЭ ...
- не тормозит на вводе от юзеров. Аж целых 10\сек согласно аффтараф статьи ... не тормозит да? 8-)
А уж перлы: "Java запускается на Линуксе, администрирование которого в разы проще и быстрее, чем всяких там Виндовсов. Это мне за пивом подтвердили администраторы, намучившиеся с прежними решениями." - многое говорят о том _как_ такую команду допустили к самой мякотке :-))) Сынок чей-то походу, или отнесли назад 80% :-))))


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 21:26 
Спасибо, отличные ссылки!

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено XoRe , 23-Янв-18 08:10 
> Ещё: https://codeborne.com/ru/2012/12/17/online-bank-from-scratch...

Оттуда же:
> Для маскирования невысокой производительности АБС мы используем интеграцию Play с memcached, что далеко не стандартное решение в мире Java.

Что, как бы намекает.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 18:27 
Уже не обязательно прогревать, с 9 версии есть AOT

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 16:03 
И работают эти системы на ОС, которые написаны на, внезапно, С.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 20:04 
> И работают эти системы на ОС, которые написаны на, внезапно, С.

Работает, внезапно, не код на C, а код в машкодах того процессора, таргет-архитектура которого была указана в опциях компиляции программы на C. Если ОС ставили из бинарника [i386] на 64-битный процессор x86-64, то машкод не увидит расширенных регистров [amd64] и оперативную память больше 4GB. Так и будет оставаться 32-битным.



"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Славик , 21-Янв-18 23:59 
И как часто ты таскаешь свой старый код по разным архитектурам железа?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено лютый жабист__ , 22-Янв-18 09:57 
>И как часто ты таскаешь свой старый код по разным архитектурам железа?

Какое убогое понимание переносимости ПО. Неужели ни разу не пробовал например под CentOS 6 скомпилить какую-нибудь прожку или либу, которая хочет последнюю poco и cmake и gcc и ядро. Гребубли на полдня, оно ведь даже явно не пишет, что ему не нравится. Потом на другом сервере с другим процом бинарник не работает, надо там ещё раз пересобирать.

Я понимаю, что ты уже привык и ничего слаще си не пробовал. Но на жабку зачем гавкать?

Хотя про смену аппаратной платформы ты и сам понимаешь насколько у си ЕЩЁ УЖАСНЕЕ ;)


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 11:20 
В мире опенсорса перекомпилировать под другую аппаратную архитектуру это совершенно НОРМАЛЬНО. Поэтому появилась альтернатива Жабе в виде D, который изначально в машкоды компилит и без всяких там JVM.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Клыкастый , 22-Янв-18 11:36 
> Потом на другом сервере с другим процом бинарник не работает, надо там ещё раз пересобирать.

"Другой проц"... Это на случай, когда вдруг нашли на складе ppc32?

>  Гребубли на полдня, оно ведь даже явно не пишет, что ему не нравится.

В binary-based нет проблем собрать пакет, говорили они...

> Но на жабку зачем гавкать?

Может он пытается расшевелить её?

> Хотя про смену аппаратной платформы ты и сам понимаешь насколько у си ЕЩЁ УЖАСНЕЕ ;)

Ну а жаба-то, жаба то там откудавозьмётся?


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 22-Янв-18 19:13 
>> Хотя про смену аппаратной платформы ты и сам понимаешь насколько у си ЕЩЁ УЖАСНЕЕ ;)
>Ну а жаба-то, жаба то там откудавозьмётся?

Как обычно - из тины и грязи :)
Не ломай челу заменитель моска, он и так квакает очень уж жалобно :~~-(


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Славик , 22-Янв-18 11:44 
Неужели у тебя небыло случая когда аппликуха на джаве требует определённую версию JVM, и это не всегда последняя версия ?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено лютый жабист__ , 23-Янв-18 08:52 
> Неужели у тебя небыло случая когда аппликуха на джаве требует определённую версию
> JVM, и это не всегда последняя версия ?

Не было, жаба в обратную сторону совместимая. Со временем ломается только связанное с безопасностью, типа rsa1204bit больше нельзя.

Либо в коде стоит
if (!"blabla".equals(System.getProperty("java.version"))) return;
Можешь пойти и набить морду прогеру. Жаба тут непричём.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 23-Янв-18 21:52 
>Можешь пойти и набить морду прогеру. Жаба тут непричём.

И по аналогии:
Когда ты видишь stack overflow error  ... а нас за що?! да?! :-))))


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 18:30 
> Какое убогое понимание переносимости ПО. Неужели ни разу не пробовал например под
> CentOS 6 скомпилить какую-нибудь прожку или либу, которая хочет последнюю poco
> и cmake и gcc и ядро.

Неужели никогда не пробовал на CentOS 6 запустить какую-нибудь жабопрожку, которая требует распоследний JDK, причём непременно оракловский?


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено лютый жабист__ , 23-Янв-18 08:47 
Давай пример проги, которая не работает в штатном jre 1.8

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 22-Янв-18 18:46 
>ОС ставили из бинарника [i386] на 64-битный процессор x86-64, то машкод не увидит расширенных регистров [amd64] и оперативную память больше 4GB.

И ровно то же самое произойдёт если ты будешь гонять свою жабу на 32-битной JVM :-))))
Зеня - перестань нюхать клей перед постингом сюды!
А впрочем ... доставляй! :)


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 23-Янв-18 21:29 
>>ОС ставили из бинарника [i386] на 64-битный процессор x86-64, то машкод не увидит расширенных регистров [amd64] и оперативную память больше 4GB.
> И ровно то же самое произойдёт если ты будешь гонять свою жабу на 32-битной JVM :-))))

JVM написана на C++ под определённую ОС. Выше головы или жо.ы не прыгнешь;) Зато можно написать программу на Java, которая работает и в 32-, и 64-х системах без необходимости перекомпиляции-пересборки (только нужную JVM подавай). Масштаб ощущаешь?


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 23-Янв-18 21:56 
А в реале половина ваших прог работает только под форточкой а иногда и прибита в определённой версии\вендору JVM\JDK :-p

Ни и знаменитое - мы из опен сорса ... какая проблема _пересобрать_ то?!?!?!  Это вам сырков не дают :-)


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 23-Янв-18 22:37 
> А в реале половина ваших прог работает только под форточкой а иногда
> и прибита в определённой версии\вендору JVM\JDK :-p
> Ни и знаменитое - мы из опен сорса ... какая проблема _пересобрать_
> то?!?!?!  Это вам сырков не дают :-)

Не подскажешь, почему валится?:

% mate-system-monitor
<...>
(mate-system-monitor:83599): Gtk-CRITICAL **: gtk_tree_store_set_valist: assertion 'VALID_ITER (iter, tree_store)' failed

(mate-system-monitor:83599): Gtk-CRITICAL **: gtk_tree_store_set_valist: assertion 'VALID_ITER (iter, tree_store)' failed

(mate-system-monitor:83599): Gtk-CRITICAL **: gtk_tree_store_get_value: assertion 'VALID_ITER (iter, tree_store)' failed

(mate-system-monitor:83599): GLib-GObject-WARNING **: gtype.c:4264: type id '0' is invalid

(mate-system-monitor:83599): GLib-GObject-WARNING **: can't peek value table for type '<invalid>' which is not currently referenced
LibGTop-Server(c=83600): [WARNING] pid 83600 received eof.
Ошибка сегментации
%

- весь сишный стек пересобрал, все зависимые библиотеки - не могу победить ошибку сегментации mate-system-monitor при переключении на вкладку "Процессы".


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено freehck , 26-Янв-18 22:26 
> На Java пишутся системы, которых вам не показывали, которые считают ваши деньги, если они у вас, конечно, есть.

Не, биржевое ПО пишут на вещах посерьёзнее. Например на OCaml.
А под JVM пишут в основном менее критичные вещи. Веб, DLP, IGA...
А, или вы про автоматы для оплаты всякой хрени, что в универмагах стоят? Тогда согласен. )


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 10:46 
Инвалидная коляска для тех, кто не может писать ни на чём кроме джавы?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Джон Ленин , 21-Янв-18 10:52 
Попытка избавиться от джавы там, где легаси-код не перепишешь уже xD

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 11:21 
> изощрённый оптимизатор

)))


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 11:26 
Не проще ли js выучить?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 11:28 
> Не проще ли js выучить?

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


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 11:38 
на pure-js пишут все меньше и меньше. оно превратилось в ассемблер мира web.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено A , 21-Янв-18 11:40 
... и 100500 JS-фреймворков.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено iZEN , 21-Янв-18 11:56 
> Не проще ли js выучить?

Апплеты не получились. Так хоть тушкой, хоть чучелком Java в web-браузер проберётся...


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Dmitry77 , 21-Янв-18 12:49 
выучить-то не проблема.
Проблема в другом: если разрабатывать большие проекты с большой командой то он достаточно плох.
Будет много ошибок. язык позволяется слищком много. Компилятор слишком мало проверяет за программиста.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено KonstantinB , 21-Янв-18 20:47 
Для этого есть typescript и flow - выбирай на вкус. Или даже closure compiler, если совсем по олдскулу.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Dmitry77 , 21-Янв-18 12:52 
для использоватния в крупных проектах проще выучить майкрософтовский Typescript.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено kai3341 , 21-Янв-18 16:29 
> для использоватния в крупных проектах проще выучить майкрософтовский Typescript.

Есть ещё Elm-lang, он вообще изумительно ведёт себя в отношении ошибок. Но TS будет действительно проще :)


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Очередной аноним , 22-Янв-18 10:32 
> Не проще ли js выучить?

Не проще, если хорошо знаешь другие языки. И на них уже написаны многие тысячи строк работающего кода (я про веб-приложения, а не про системные утилиты). Сейчас вот напряжешься, выучишь ява-скрипт и перепишешь (за пару лет) все приложения. А позднее придется еще WebAssembly выучить и переписать всё "нажитое непосильным трудом" на него ( на ассемблере, хоть и веб :) ). А потом еще через пару лет несколько лет учить и переписывать все приложения на новый, вошедший в моду, XpенАссембли. Нет уж. Лучше потом с известного тебе (но распространенного) языка скомпилировать прикладухи в очередной новый модный "ассембли". Твой JS когда-то (в очень отдаленном будущем) будет не в своей виртуальной машине крутиться, а в машине ВебАссембли (чтобы две машины в браузере не держать и не распыляться с их поддержкой), как и компилированный код с других языков программирования. Т.е. разницы, что именно учить для веба, не будет, ява-скрипт встанет в один ряд и на один уровень с остальными языками (повторюсь - для веба!). Важно будет для языка наличие компилятора в ВебАссембли и наличие на этом языке мощного веб-фреймворка. Т.е, например, есть тот же GWT. Предположим, что в гугле его очень любят, холят и лелеют и забрасывать не собираются (можно же помечтать). Сейчас приложения в GWT компилятся в ява-скрипт. Через годА наконец-то доведут до ума веб-ассембли (дадут ему все те возможности, которые сейчас имеет ява-скрипт, тот же DOM). Программисты гугла поднапрягутся - и о чудо - в GWT можно будет все существующие старенькие (но очень нужные) приложения перекомпилировать на новую технологию, по минимуму изменяя проекты.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 11:37 
Но ведь Kotlin и Scala итак уже умеют в JS собираться

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Иван_Лох , 21-Янв-18 12:30 
Битва за то, чтобы пропихнуть копирастическое разное в мир web. Хрен там разберешься, что они втихаря в твой браузер грузят.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Crazy Alex , 21-Янв-18 14:21 
Сюрприз - давно пропихнули, минифицированный жабаскрипт читать - всё равно, что тот же байткод

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 12:45 
Ну извращение же, нет? Все эти попытки сделать из Web-а полноценный runtime. Изначально же не для этого создавался Web. Какое-то ощущение костылей от всех этих фреймворков... Мой мозг отказывается понимать этот мир. Действительно, столько языков программирования, концепций, компиляторов, богатая история платформ и ПО, сложнейшие вычисления, и что в итоге? Всё есть JavaScript? Ужас.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 22-Янв-18 07:26 
Деньги.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Ю.Т. , 22-Янв-18 11:40 
> Деньги.

Уточним: ты на своём оборудовании крутишь неведомое что-то, а деньги за это получает кто-то ещё.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено анонимбр , 22-Янв-18 07:27 
С компиляцией в WebAssembley все не так печально. C, C++, Rust и пр код. И это не JS, а напрямую с VM

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 13:41 
Джава апплеты возвращаются?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено vitalif , 21-Янв-18 13:58 
Новость-то в чём? Это ж древняя хрень уже

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 14:13 
Я так понимаю, это единственный способ гонять жабовские программы в каком-то ещё интерпретаторе, ктоме того, в котором находят десяток критических уязвимостей каждый квартал?

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 14:37 
В браузерах их находят чаще

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 16:00 
> в линейное представление с эмуляцией нескольких логических потоков в одном физическом потоке.

ой, чёт у нас веб, кажется, недостаточно тормозит


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено IdeaFix , 21-Янв-18 16:12 
Еще не ясно нужен ли angular (2?), но уже есть "такое же как angular, только лучше".

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 21-Янв-18 16:24 
Напомните а почему все одно время носились с GWT как с писаной торбой, а потом как-то резко, раз - и все пр него забыли?

Не скиснет ли TeaVM точно так же как GWT? Может, сама по себе идея трансляции  Java в JavaScript - мертворождённая? Хотя выглядит неплохо.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено EHLO , 21-Янв-18 18:26 
> Напомните а почему все одно время носились с GWT как с писаной
> торбой, а потом как-то резко, раз - и все пр него
> забыли?

так происходит с 95% проектов G. Это нормально.

> Не скиснет ли TeaVM точно так же как GWT?

Предположу первый этап оно пропустит и сразу перейдёт ко второму.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено anonymous , 22-Янв-18 03:23 
Задача трансляции JVM -> JavaScript не решаемая, потому что эти платформы предоставляют разную функциональность и разные гарантии. Только ограниченный набор программ подвержен трансляции. А это значит, что вы изначально должны учитывать при программирования на Java (или Scala), что ваш код будет исполняться javascript платформой. Во-первых, теряются абстракции языка. Во-вторых, если вы собираетесь программировать под javascript платформу, зачем вам Java, не проще ли сразу писать на javascript.

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


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Аноним , 23-Янв-18 11:46 
> Напомните а почему все одно время носились с GWT как с писаной
> торбой, а потом как-то резко, раз - и все пр него
> забыли?

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

Имхо от того, что они притянули в Жаву DOM манипулирование. Если бы на жаве была только pure логика, то норм было бы.

Плюс в Гугле внутри был конкурирующий проект, google closure compiler (не путать с clojure), на котором имхо было проще писать, чем на ГВТ.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено Anonymoustus , 21-Янв-18 18:12 
> компилировать Java-байткод в JavaScript и WebAssembly для последующего выполнения в браузере

С тех пор, как в браузер стало возможно добавить что-либо кроме текста, нам постоянно норовят встроить чуть ли не в мозг что-то «интерактивное». Цель-то их понятна — рекламный телевизор. Но называть это прогрессом…


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено анонимбр , 22-Янв-18 14:04 
браузер уже давно не является обычной читалкой:)

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено AntonAlekseevich , 21-Янв-18 19:36 
Интересно, а что с GCJ?
Вроде же он существовал.

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено pangolin , 22-Янв-18 01:18 
gcj закрыт в 2016 году.
http://tromey.com/blog/?p=911

"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено AntonAlekseevich , 22-Янв-18 11:16 
> gcj закрыт в 2016 году.

Даже если он закрыт это ещё не значит, что его нельзя скомпилировать сегодня.
Последний релиз 4 июля 2017 с версией 6.4


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено _ , 22-Янв-18 19:21 
>Даже если он закрыт это ещё не значит, что его нельзя скомпилировать сегодня.

А завтра? А через год? Тянуть что то что уже на нём ... понятно. Новое плодить :-/
>Последний релиз 4 июля 2017 с версией 6.4

Вот Ыманно. Ты можешь предсказать (а лучше - гарантировать) что с ним будет 4 Июля 201_8_ ?!  В трэш, тчк.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено AntonAlekseevich , 22-Янв-18 22:31 
> А завтра? А через год? Тянуть что то что уже на нём ... понятно. Новое плодить :-/

Пока доступны старые версии, собирать можно использовать тоже, улучшать и плодить новое на основе старого. У вас свободы не отнимали на старые версии.

> Вот Ыманно. Ты можешь предсказать (а лучше - гарантировать) что с ним будет 4 Июля 201_8_ ?!  В трэш, тчк.

Опять же говорю что его не выбросят, а если приготовят к выбросу то хоть кто-то запросит заранее снэпшот в вэб-архив.

Что попадает в интернет то там и остается.


"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Отправлено 6blKAHAX , 20-Дек-22 14:20 
Джавовский стиль программирования всяко лучше, особенно для крупных проектов. Да и байт-код по идее должен исполняться быстрее, чем код, который еще надо оттранслировать. Но ждать, что производители все поголовно вставят себе java-машины для целей js не приходится. Слишком уж сильна инерция.