The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Проекты по созданию компиляторов из Java в JavaScript и исполняемые файлы

21.01.2018 10:29

В рамках проекта TeaVM развивается компилятор, позволяющий компилировать Java-байткод в JavaScript и WebAssembly для последующего выполнения в браузере. Ключевым отличием от проекта GWT (Google Web Toolkit) является то, что TeaVM выполняет трансляцию на уровне байткода (может компилировать файлы *.class или *.jar), без привязки к исходным текстам на языке Java, что позволяет компилировать проекты на языках Kotlin и Scala. Код TeaVM распространяется под лицензией Apache 2.0.

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

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

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

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Для управления разработкой Google Web Toolkit создан независимый комитет
  3. OpenNews: Открыт код Duetto, системы для запуска в web-браузере проектов на языке C++
  4. OpenNews: Релиз Cheerp 1.3, компилятора C++ в JavaScript
  5. OpenNews: Google выпустил J2ObjC 1.0, транслятор из Java в Objective-C
  6. OpenNews: BicaVM - написанная на JavaScript виртуальная машина для запуска программ на языке Java
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47940-java
Ключевые слова: java, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (102) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, key (??), 10:42, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +20 +/
    Мы сделали разные языки, каждый из которых решает свою задачу эффективнее.
    А теперь мы возмем самый медленный и ограниченный и будем в него транслировать остальные.
     
     
  • 2.6, Аноним (-), 11:27, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Какую же задачу решает Java эффективно?
     
     
  • 3.11, нэту (?), 11:42, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +12 +/
    задачу тормозить
     
     
  • 4.14, iZEN (ok), 11:57, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > задачу тормозить

    Не путай Java с JS.


     
     
  • 5.25, Аноним (-), 13:47, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Они оба с этой задачей справляются отлично. Благодаря сабжу, я уверен, ещё улучшат свои показатели.
     
     
  • 6.41, Отражение луны (ok), 18:09, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Производительность явы близка к сишной. Производительность JS-а крайне хороша из-за неименьшего iowait-а.
    Для меня вполне очевидно, что вы попросту пишите кривой код.
     
     
  • 7.45, Аноним (-), 18:32, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Производительность явы близка к сишной.

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

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

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

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

     
     
  • 8.52, iZEN (ok), 19:58, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы правы, Oracle HotSpot не все методы переводит в нативщину, а только те, котор... текст свёрнут, показать
     
  • 8.55, Отражение луны (ok), 20:21, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Когда речь заходит о десктопных приложениях - Ява действительно медлительна и пр... большой текст свёрнут, показать
     
     
  • 9.88, alltiptop (ok), 16:46, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо что напомнил - не в курсе как у плазмы чтобы отловить текущий виджет А ... текст свёрнут, показать
     
  • 8.75, Имя (?), 09:34, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Но ведь так и есть Достаточно сравнить netbeans и geany на не слишком мощной си... текст свёрнут, показать
     
     
  • 9.79, Просто так влез (?), 10:57, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Но у netbeans и у geany разные же весовые категории и набор функционала, не Пон... текст свёрнут, показать
     
  • 9.109, iZEN (ok), 21:22, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В netbeans есть встроенный отладчик, профилировщик, интроспекция, фоновая компил... текст свёрнут, показать
     
  • 7.46, Аноним (-), 18:40, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Абсолютно согласен, java уже давно не уступает по производительности c/c++. Человек который пишет о том что java тормозит ничего не имеет общего с программированием в целом.
     
     
  • 8.47, key (??), 19:10, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А приведите пример что на ней _не_ тормозит Даже если допустить, что не уступае... текст свёрнут, показать
     
     
  • 9.74, Аноним (-), 09:00, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сервак лора - отклик моментальный Сюрприз ... текст свёрнут, показать
     
     
  • 10.89, _ (??), 17:43, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дятел LOR - Это почти на 146 - статика Его можно с RaspberryPi с таким же ... текст свёрнут, показать
     
     
  • 11.99, Аноним (-), 20:20, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Чушь, вопрос был про быстрые приложения, поэтому смотри на время генерации стран... текст свёрнут, показать
     
  • 9.116, freehck (ok), 22:41, 26/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Долгоработающие веб-сервисы на JVM вполне себе живут и здравствуют Зато она хор... большой текст свёрнут, показать
     
  • 8.49, mumu (ok), 19:26, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть у меня традиция Раз в пару лет качаю Eclipse на посмотреть, не стал ли он ... текст свёрнут, показать
     
     
  • 9.51, iZEN (ok), 19:52, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    На какой JVM вы запускаете Eclipse Всё на старенькой, из JDK 6 0 В Android нет... текст свёрнут, показать
     
     
  • 10.91, Аноним (-), 18:22, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    1 Чем это JVM не подходит под определение интерпретатор байт-кода 2 С каких... текст свёрнут, показать
     
     
  • 11.110, iZEN (ok), 21:26, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В Android не JVM, интерпретирующая проприетарный формат байт-кода Google JVM вх... текст свёрнут, показать
     
  • 10.103, mumu (ok), 03:36, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Поскольку Eclipse - это _единственная_ программа на ПК для которой приходится ст... текст свёрнут, показать
     
  • 9.56, Отражение луны (ok), 20:26, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Вот только по сравнению с остальными ОС Андроид остаётся наиболее быстрым и нела... текст свёрнут, показать
     
     
  • 10.67, angra (ok), 02:25, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Огласите пожалуйста весь список этих остальных ОС, с которыми проводились сравне... текст свёрнут, показать
     
     
  • 11.87, Отражение луны (ok), 15:02, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Айось, венда, линух, макось ... текст свёрнут, показать
     
     
  • 12.102, mumu (ok), 03:34, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Никогда у меня не тормозили ни винда ни линукс на 2 ГБ оперативки от запуска цел... текст свёрнут, показать
     
  • 12.107, angra (ok), 09:34, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А тебе не приходила в голову такая простая мысль, что сравнивать надо на одинако... текст свёрнут, показать
     
  • 8.60, Аноним (-), 22:05, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вообще-то тормозит, если у тебя приложение начинает отжимать больше 20 гигов,... текст свёрнут, показать
     
     
  • 9.66, username (??), 01:48, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ты хоть бы посмотрел требования к нагруженному elasticsearch например, не позорь... текст свёрнут, показать
     
  • 8.68, rpm (?), 02:35, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Просто компы стали быстрее и тормоза не так заметны ... текст свёрнут, показать
     
  • 8.71, лютый жабист__ (?), 05:57, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    То то в wildfly 11 переключились с JSSE на OpenSSL А оказывается зря Ещё из ... текст свёрнут, показать
     
     
  • 9.76, Очередной аноним (?), 09:51, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тут еще сильно зависит от программистов каждого генератора Генератор на Си може... текст свёрнут, показать
     
     
  • 10.86, лютый жабист__ (?), 14:06, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    JSSE тоже первокурсники писали И bouncy castle первокурсники По сравнению с с... текст свёрнут, показать
     
  • 10.90, _ (??), 17:53, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это смотря у кого Пойдёшь работать в кровавый телеком - быстро вкуришь что перв... текст свёрнут, показать
     
  • 10.93, Аноним (-), 18:25, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это тоже Кнут с командой первокуров писали https benchmarksgame alioth debian... текст свёрнут, показать
     
  • 4.27, Аноним (-), 14:03, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > задачу тормозить и жрать

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

     
  • 3.15, iZEN (ok), 11:58, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Какую же задачу решает Java эффективно?

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

     
     
  • 4.16, Аноним (-), 12:11, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Это те, для которых нужен сервер с кучей оперативной памяти? Которые нужно "прогревать" минут 20 ради офигенного JIT, где нужно создавать сложные файлы с директивами для компилятора и профайлы, чтобы ускорить это все? Это те которые из-за деоптимизаций и очень эффективной сборки мусора считают, что киент может подождать со своим ненужным подсчетом денег?

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

     
     
  • 5.17, iZEN (ok), 12:29, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Это те, для которых нужен сервер с кучей оперативной памяти? Которые нужно
    > "прогревать" минут 20 ради офигенного JIT, где нужно создавать сложные файлы
    > с директивами для компилятора и профайлы, чтобы ускорить это все? Это
    > те которые из-за деоптимизаций и очень эффективной сборки мусора считают, что
    > киент может подождать со своим ненужным подсчетом денег?
    > Не, не видели, покажите.

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


     
     
  • 6.19, Аноним (-), 12:40, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    То, что ваш калькулятор денег на Java можно запустить на мейнфрейме как-то связано с его эффективностью?
    Попробуйте поискать не случайную статью из интернета, а привести реальный пример, который никто не видел конечно же.
     
     
  • 7.30, iZEN (ok), 14:22, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ещё: https://codeborne.com/ru/2012/12/17/online-bank-from-scratch-in-five-months-ru

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

     
     
  • 8.92, _ (??), 18:23, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Волшебный пример из 2013 года , ага, и вот что там написано самими аффтарами ... текст свёрнут, показать
     
  • 8.100, Аноним (-), 21:26, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо, отличные ссылки ... текст свёрнут, показать
     
  • 8.104, XoRe (ok), 08:10, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Оттуда же Что, как бы намекает ... текст свёрнут, показать
     
  • 5.44, Аноним (-), 18:27, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Уже не обязательно прогревать, с 9 версии есть AOT
     
  • 4.33, Аноним (-), 16:03, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И работают эти системы на ОС, которые написаны на, внезапно, С.
     
     
  • 5.53, iZEN (ok), 20:04, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > И работают эти системы на ОС, которые написаны на, внезапно, С.

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


     
     
  • 6.63, Славик (?), 23:59, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И как часто ты таскаешь свой старый код по разным архитектурам железа?
     
     
  • 7.77, лютый жабист__ (?), 09:57, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >И как часто ты таскаешь свой старый код по разным архитектурам железа?

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

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

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

     
     
  • 8.81, Аноним (-), 11:20, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В мире опенсорса перекомпилировать под другую аппаратную архитектуру это соверше... текст свёрнут, показать
     
  • 8.82, Клыкастый (ok), 11:36, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Другой проц Это на случай, когда вдруг нашли на складе ppc32 В binary-base... текст свёрнут, показать
     
     
  • 9.96, _ (??), 19:13, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Как обычно - из тины и грязи Не ломай челу заменитель моска, он и так квакае... текст свёрнут, показать
     
  • 8.84, Славик (?), 11:44, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Неужели у тебя небыло случая когда аппликуха на джаве требует определённую верси... текст свёрнут, показать
     
     
  • 9.106, лютый жабист__ (?), 08:52, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не было, жаба в обратную сторону совместимая Со временем ломается только связан... текст свёрнут, показать
     
     
  • 10.112, _ (??), 21:52, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И по аналогии Когда ты видишь stack overflow error а нас за що да - ... текст свёрнут, показать
     
  • 8.94, Аноним (-), 18:30, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Неужели никогда не пробовал на CentOS 6 запустить какую-нибудь жабопрожку, котор... текст свёрнут, показать
     
     
  • 9.105, лютый жабист__ (?), 08:47, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Давай пример проги, которая не работает в штатном jre 1 8... текст свёрнут, показать
     
  • 6.95, _ (??), 18:46, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >ОС ставили из бинарника [i386] на 64-битный процессор x86-64, то машкод не увидит расширенных регистров [amd64] и оперативную память больше 4GB.

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

     
     
  • 7.111, iZEN (ok), 21:29, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>ОС ставили из бинарника [i386] на 64-битный процессор x86-64, то машкод не увидит расширенных регистров [amd64] и оперативную память больше 4GB.
    > И ровно то же самое произойдёт если ты будешь гонять свою жабу на 32-битной JVM :-))))

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

     
     
  • 8.113, _ (??), 21:56, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А в реале половина ваших прог работает только под форточкой а иногда и прибита в... текст свёрнут, показать
     
     
  • 9.114, iZEN (ok), 22:37, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не подскажешь, почему валится mate-system-monitor mate-system-monitor... большой текст свёрнут, показать
     
  • 4.115, freehck (ok), 22:26, 26/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > На Java пишутся системы, которых вам не показывали, которые считают ваши деньги, если они у вас, конечно, есть.

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

     

  • 1.2, Аноним (-), 10:46, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Инвалидная коляска для тех, кто не может писать ни на чём кроме джавы?
     
     
  • 2.3, Джон Ленин (?), 10:52, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Попытка избавиться от джавы там, где легаси-код не перепишешь уже xD
     

  • 1.4, Аноним (-), 11:21, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > изощрённый оптимизатор

    )))

     
  • 1.5, Аноним (-), 11:26, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Не проще ли js выучить?
     
     
  • 2.7, Аноним (-), 11:28, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не проще ли js выучить?

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

     
  • 2.9, Аноним (-), 11:38, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    на pure-js пишут все меньше и меньше. оно превратилось в ассемблер мира web.
     
  • 2.10, A (?), 11:40, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ... и 100500 JS-фреймворков.
     
  • 2.13, iZEN (ok), 11:56, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Не проще ли js выучить?

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

     
  • 2.21, Dmitry77 (ok), 12:49, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    выучить-то не проблема.
    Проблема в другом: если разрабатывать большие проекты с большой командой то он достаточно плох.
    Будет много ошибок. язык позволяется слищком много. Компилятор слишком мало проверяет за программиста.
     
     
  • 3.59, KonstantinB (ok), 20:47, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для этого есть typescript и flow - выбирай на вкус. Или даже closure compiler, если совсем по олдскулу.
     
  • 2.22, Dmitry77 (ok), 12:52, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    для использоватния в крупных проектах проще выучить майкрософтовский Typescript.
     
     
  • 3.37, kai3341 (ok), 16:29, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > для использоватния в крупных проектах проще выучить майкрософтовский Typescript.

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

     
  • 2.78, Очередной аноним (?), 10:32, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Не проще ли js выучить?

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

     

  • 1.8, Аноним (-), 11:37, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Но ведь Kotlin и Scala итак уже умеют в JS собираться
     
  • 1.18, Иван_Лох (?), 12:30, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Битва за то, чтобы пропихнуть копирастическое разное в мир web. Хрен там разберешься, что они втихаря в твой браузер грузят.
     
     
  • 2.29, Crazy Alex (??), 14:21, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сюрприз - давно пропихнули, минифицированный жабаскрипт читать - всё равно, что тот же байткод
     

  • 1.20, Аноним (-), 12:45, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Ну извращение же, нет? Все эти попытки сделать из Web-а полноценный runtime. Изначально же не для этого создавался Web. Какое-то ощущение костылей от всех этих фреймворков... Мой мозг отказывается понимать этот мир. Действительно, столько языков программирования, концепций, компиляторов, богатая история платформ и ПО, сложнейшие вычисления, и что в итоге? Всё есть JavaScript? Ужас.
     
     
  • 2.72, Аноним (-), 07:26, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Деньги.
     
     
  • 3.83, Ю.Т. (?), 11:40, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Деньги.

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

     
  • 2.73, анонимбр (?), 07:27, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С компиляцией в WebAssembley все не так печально. C, C++, Rust и пр код. И это не JS, а напрямую с VM
     

  • 1.24, Аноним (-), 13:41, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Джава апплеты возвращаются?
     
  • 1.26, vitalif (ok), 13:58, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Новость-то в чём? Это ж древняя хрень уже
     
  • 1.28, Аноним (-), 14:13, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я так понимаю, это единственный способ гонять жабовские программы в каком-то ещё интерпретаторе, ктоме того, в котором находят десяток критических уязвимостей каждый квартал?
     
     
  • 2.31, Аноним (-), 14:37, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В браузерах их находят чаще
     

  • 1.32, Аноним (-), 16:00, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > в линейное представление с эмуляцией нескольких логических потоков в одном физическом потоке.

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

     
  • 1.35, IdeaFix (ok), 16:12, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Еще не ясно нужен ли angular (2?), но уже есть "такое же как angular, только лучше".
     
  • 1.36, Аноним (-), 16:24, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Напомните а почему все одно время носились с GWT как с писаной торбой, а потом как-то резко, раз - и все пр него забыли?

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

     
     
  • 2.43, EHLO (?), 18:26, 21/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Напомните а почему все одно время носились с GWT как с писаной
    > торбой, а потом как-то резко, раз - и все пр него
    > забыли?

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

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

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

     
  • 2.69, anonymous (??), 03:23, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Задача трансляции JVM -> JavaScript не решаемая, потому что эти платформы предоставляют разную функциональность и разные гарантии. Только ограниченный набор программ подвержен трансляции. А это значит, что вы изначально должны учитывать при программирования на Java (или Scala), что ваш код будет исполняться javascript платформой. Во-первых, теряются абстракции языка. Во-вторых, если вы собираетесь программировать под javascript платформу, зачем вам Java, не проще ли сразу писать на javascript.

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

     
  • 2.108, Аноним (-), 11:46, 23/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Напомните а почему все одно время носились с GWT как с писаной
    > торбой, а потом как-то резко, раз - и все пр него
    > забыли?

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

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

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

     

  • 1.42, Anonymoustus (ok), 18:12, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > компилировать Java-байткод в JavaScript и WebAssembly для последующего выполнения в браузере

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

     
     
  • 2.85, анонимбр (?), 14:04, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    браузер уже давно не является обычной читалкой:)
     

  • 1.50, AntonAlekseevich (ok), 19:36, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а что с GCJ?
    Вроде же он существовал.
     
     
  • 2.65, pangolin (?), 01:18, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    gcj закрыт в 2016 году.
    http://tromey.com/blog/?p=911
     
     
  • 3.80, AntonAlekseevich (ok), 11:16, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > gcj закрыт в 2016 году.

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

     
     
  • 4.97, _ (??), 19:21, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Даже если он закрыт это ещё не значит, что его нельзя скомпилировать сегодня.

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

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

     
     
  • 5.101, AntonAlekseevich (ok), 22:31, 22/01/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А завтра? А через год? Тянуть что то что уже на нём ... понятно. Новое плодить :-/

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

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

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

    [u] Что попадает в интернет то там и остается. [/u]

     

  • 1.117, 6blKAHAX (?), 14:20, 20/12/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Джавовский стиль программирования всяко лучше, особенно для крупных проектов. Да и байт-код по идее должен исполняться быстрее, чем код, который еще надо оттранслировать. Но ждать, что производители все поголовно вставят себе java-машины для целей js не приходится. Слишком уж сильна инерция.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру