The OpenNET Project / Index page

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



"Проекты по созданию компиляторов из Java в JavaScript и испо..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Проекты по созданию компиляторов из 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.ru/opennews/art.shtml?num=47940

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от keyemail (??), 21-Янв-18, 10:42   +20 +/
Мы сделали разные языки, каждый из которых решает свою задачу эффективнее.
А теперь мы возмем самый медленный и ограниченный и будем в него транслировать остальные.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6

2. Сообщение от Аноним (-), 21-Янв-18, 10:46   +12 +/
Инвалидная коляска для тех, кто не может писать ни на чём кроме джавы?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3

3. Сообщение от Джон Ленин (?), 21-Янв-18, 10:52   +/
Попытка избавиться от джавы там, где легаси-код не перепишешь уже xD
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

4. Сообщение от Аноним (-), 21-Янв-18, 11:21   +4 +/
> изощрённый оптимизатор

)))

Ответить | Правка | Наверх | Cообщить модератору

5. Сообщение от Аноним (-), 21-Янв-18, 11:26   –2 +/
Не проще ли js выучить?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #9, #10, #13, #21, #22, #78

6. Сообщение от Аноним (-), 21-Янв-18, 11:27   +3 +/
Какую же задачу решает Java эффективно?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #11, #15

7. Сообщение от Аноним (-), 21-Янв-18, 11:28   +1 +/
> Не проще ли js выучить?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

8. Сообщение от Аноним (-), 21-Янв-18, 11:37   +/
Но ведь Kotlin и Scala итак уже умеют в JS собираться
Ответить | Правка | Наверх | Cообщить модератору

9. Сообщение от Аноним (-), 21-Янв-18, 11:38   +/
на pure-js пишут все меньше и меньше. оно превратилось в ассемблер мира web.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

10. Сообщение от A (?), 21-Янв-18, 11:40   +3 +/
... и 100500 JS-фреймворков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

11. Сообщение от нэту (?), 21-Янв-18, 11:42   +12 +/
задачу тормозить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #14, #27

13. Сообщение от iZEN (ok), 21-Янв-18, 11:56   –1 +/
> Не проще ли js выучить?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

14. Сообщение от iZEN (ok), 21-Янв-18, 11:57   +/
> задачу тормозить

Не путай Java с JS.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #25

15. Сообщение от iZEN (ok), 21-Янв-18, 11:58   +3 +/
> Какую же задачу решает Java эффективно?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #16, #33, #115

16. Сообщение от Аноним (-), 21-Янв-18, 12:11   +13 +/
Это те, для которых нужен сервер с кучей оперативной памяти? Которые нужно "прогревать" минут 20 ради офигенного JIT, где нужно создавать сложные файлы с директивами для компилятора и профайлы, чтобы ускорить это все? Это те которые из-за деоптимизаций и очень эффективной сборки мусора считают, что киент может подождать со своим ненужным подсчетом денег?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #17, #44

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

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #19

18. Сообщение от Иван_Лохemail (?), 21-Янв-18, 12:30   +2 +/
Битва за то, чтобы пропихнуть копирастическое разное в мир web. Хрен там разберешься, что они втихаря в твой браузер грузят.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29

19. Сообщение от Аноним (-), 21-Янв-18, 12:40   +6 +/
То, что ваш калькулятор денег на Java можно запустить на мейнфрейме как-то связано с его эффективностью?
Попробуйте поискать не случайную статью из интернета, а привести реальный пример, который никто не видел конечно же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #30

20. Сообщение от Аноним (-), 21-Янв-18, 12:45   +9 +/
Ну извращение же, нет? Все эти попытки сделать из Web-а полноценный runtime. Изначально же не для этого создавался Web. Какое-то ощущение костылей от всех этих фреймворков... Мой мозг отказывается понимать этот мир. Действительно, столько языков программирования, концепций, компиляторов, богатая история платформ и ПО, сложнейшие вычисления, и что в итоге? Всё есть JavaScript? Ужас.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #72, #73

21. Сообщение от Dmitry77 (ok), 21-Янв-18, 12:49   –1 +/
выучить-то не проблема.
Проблема в другом: если разрабатывать большие проекты с большой командой то он достаточно плох.
Будет много ошибок. язык позволяется слищком много. Компилятор слишком мало проверяет за программиста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #59

22. Сообщение от Dmitry77 (ok), 21-Янв-18, 12:52   –2 +/
для использоватния в крупных проектах проще выучить майкрософтовский Typescript.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #37

24. Сообщение от Аноним (-), 21-Янв-18, 13:41   +/
Джава апплеты возвращаются?
Ответить | Правка | Наверх | Cообщить модератору

25. Сообщение от Аноним (-), 21-Янв-18, 13:47   +8 +/
Они оба с этой задачей справляются отлично. Благодаря сабжу, я уверен, ещё улучшат свои показатели.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #41

26. Сообщение от vitalif (ok), 21-Янв-18, 13:58   +1 +/
Новость-то в чём? Это ж древняя хрень уже
Ответить | Правка | Наверх | Cообщить модератору

27. Сообщение от Аноним (-), 21-Янв-18, 14:03   +5 +/
> задачу тормозить и жрать

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

28. Сообщение от Аноним (-), 21-Янв-18, 14:13   +/
Я так понимаю, это единственный способ гонять жабовские программы в каком-то ещё интерпретаторе, ктоме того, в котором находят десяток критических уязвимостей каждый квартал?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31

29. Сообщение от Crazy Alex (??), 21-Янв-18, 14:21   +1 +/
Сюрприз - давно пропихнули, минифицированный жабаскрипт читать - всё равно, что тот же байткод
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

30. Сообщение от iZEN (ok), 21-Янв-18, 14:22   –2 +/
Ещё: https://codeborne.com/ru/2012/12/17/online-bank-from-scratch...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #92, #100, #104

31. Сообщение от Аноним (-), 21-Янв-18, 14:37   +/
В браузерах их находят чаще
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

32. Сообщение от Аноним (-), 21-Янв-18, 16:00   +2 +/
> в линейное представление с эмуляцией нескольких логических потоков в одном физическом потоке.

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

Ответить | Правка | Наверх | Cообщить модератору

33. Сообщение от Аноним (-), 21-Янв-18, 16:03   +/
И работают эти системы на ОС, которые написаны на, внезапно, С.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #53

35. Сообщение от IdeaFixemail (ok), 21-Янв-18, 16:12   +/
Еще не ясно нужен ли angular (2?), но уже есть "такое же как angular, только лучше".
Ответить | Правка | Наверх | Cообщить модератору

36. Сообщение от Аноним (-), 21-Янв-18, 16:24   –2 +/
Напомните а почему все одно время носились с GWT как с писаной торбой, а потом как-то резко, раз - и все пр него забыли?

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #43, #69, #108

37. Сообщение от kai3341 (ok), 21-Янв-18, 16:29   +/
> для использоватния в крупных проектах проще выучить майкрософтовский Typescript.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

41. Сообщение от Отражение луны (ok), 21-Янв-18, 18:09   +/
Производительность явы близка к сишной. Производительность JS-а крайне хороша из-за неименьшего iowait-а.
Для меня вполне очевидно, что вы попросту пишите кривой код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #45, #46

42. Сообщение от Anonymoustus (ok), 21-Янв-18, 18:12   +8 +/
> компилировать Java-байткод в JavaScript и WebAssembly для последующего выполнения в браузере

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #85

43. Сообщение от EHLO (?), 21-Янв-18, 18:26   +1 +/
> Напомните а почему все одно время носились с GWT как с писаной
> торбой, а потом как-то резко, раз - и все пр него
> забыли?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

44. Сообщение от Аноним (-), 21-Янв-18, 18:27   –1 +/
Уже не обязательно прогревать, с 9 версии есть AOT
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

45. Сообщение от Аноним (-), 21-Янв-18, 18:32   +7 +/
> Производительность явы близка к сишной.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #52, #55, #75

46. Сообщение от Аноним (-), 21-Янв-18, 18:40   –11 +/
Абсолютно согласен, java уже давно не уступает по производительности c/c++. Человек который пишет о том что java тормозит ничего не имеет общего с программированием в целом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #47, #49, #60, #68, #71

47. Сообщение от keyemail (??), 21-Янв-18, 19:10   +4 +/
А приведите пример что на ней _не_ тормозит?
Даже если допустить, что не уступает(это не так), то она откусывает столько памяти, что вываливается даже на серверах. Я уже молчу про различные ситуации с джавовскими GC, про них легенды пишут и отдельные доклады рассказывают - как писать приложение под GC и правильно его потом настраивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #74, #116

49. Сообщение от mumu (ok), 21-Янв-18, 19:26   +3 +/
Есть у меня традиция: Раз в пару лет качаю Eclipse на посмотреть, не стал ли он меньше тормозить. Удаляю спустя 10 минут.
Ну а в Android смотрю каждый день. Каждый день у меня наполнен блаженством от "нетормозящей" жабы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #51, #56

50. Сообщение от AntonAlekseevichemail (ok), 21-Янв-18, 19:36   +/
Интересно, а что с GCJ?
Вроде же он существовал.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #65

51. Сообщение от iZEN (ok), 21-Янв-18, 19:52   –4 +/
> Есть у меня традиция: Раз в пару лет качаю Eclipse на посмотреть, не стал ли он меньше тормозить. Удаляю спустя 10 минут.

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

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

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #91, #103

52. Сообщение от iZEN (ok), 21-Янв-18, 19:58   +2 +/
>> Производительность явы близка к сишной.
> Это после нескольких тысяч итераций, когда JIT скомпилировал код. Другими словами, это
> работает только на высоконагруженных сервисах (где и памяти как грязи) и
> на бенчмарках.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

53. Сообщение от iZEN (ok), 21-Янв-18, 20:04   –4 +/
> И работают эти системы на ОС, которые написаны на, внезапно, С.

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #63, #95

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #88

56. Сообщение от Отражение луны (ok), 21-Янв-18, 20:26   –4 +/
Вот только по сравнению с остальными ОС Андроид остаётся наиболее быстрым и нелагучим, что должно наводить на мысли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #67

59. Сообщение от KonstantinB (ok), 21-Янв-18, 20:47   –1 +/
Для этого есть typescript и flow - выбирай на вкус. Или даже closure compiler, если совсем по олдскулу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

60. Сообщение от Аноним (-), 21-Янв-18, 22:05   +1 +/
Ну вообще-то тормозит, если у тебя приложение начинает отжимать больше 20 гигов, gc не хило так грузить начинает.
Да только отбитый человек может написать такое приложение вы скажете, но увы такое вполне себе бывает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #66

63. Сообщение от Славик (?), 21-Янв-18, 23:59   +/
И как часто ты таскаешь свой старый код по разным архитектурам железа?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #77

65. Сообщение от pangolin (?), 22-Янв-18, 01:18   +3 +/
gcj закрыт в 2016 году.
http://tromey.com/blog/?p=911
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #80

66. Сообщение от username (??), 22-Янв-18, 01:48   +/
Ты хоть бы посмотрел требования к нагруженному elasticsearch например, не позорься.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

67. Сообщение от angra (ok), 22-Янв-18, 02:25   +/
Огласите пожалуйста весь список этих остальных ОС, с которыми проводились сравнения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #87

68. Сообщение от rpm (?), 22-Янв-18, 02:35   +1 +/
> Абсолютно согласен, java уже давно не уступает по производительности c/c++.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

71. Сообщение от лютый жабист__ (?), 22-Янв-18, 05:57   +/
>java уже давно не уступает по производительности c/c++

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #76

72. Сообщение от Аноним (-), 22-Янв-18, 07:26   +/
Деньги.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #83

73. Сообщение от анонимбр (?), 22-Янв-18, 07:27   +1 +/
С компиляцией в WebAssembley все не так печально. C, C++, Rust и пр код. И это не JS, а напрямую с VM
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

74. Сообщение от Аноним (-), 22-Янв-18, 09:00   +/
> А приведите пример что на ней _не_ тормозит?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #89

75. Сообщение от Имяemail (?), 22-Янв-18, 09:34   +/
>Большинство же "пишущих кривой код" знакомы с ней по десктопным приложениям:

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #79, #109

76. Сообщение от Очередной аноним (?), 22-Янв-18, 09:51   –1 +/
> Ещё из смешного: генератор биткоиновых адресов на жабке 20к в сек, на си 600к в сек.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #86, #90, #93

77. Сообщение от лютый жабист__ (?), 22-Янв-18, 09:57   +/
>И как часто ты таскаешь свой старый код по разным архитектурам железа?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #81, #82, #84, #94

78. Сообщение от Очередной аноним (?), 22-Янв-18, 10:32   +/
> Не проще ли js выучить?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

79. Сообщение от Просто так влез (?), 22-Янв-18, 10:57   +/
Но у netbeans и у geany разные же весовые категории и набор функционала, не? Понятно, что нативное приложение будет меньше и быстрее при прочих равных, но так Вы же сравниваете приложения не одного уровня. Например, на java есть jedit: у него возможностей гораздо меньне, чем у netbeans, но так и по скорости и потреблению памяти он мильно выигрывает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

80. Сообщение от AntonAlekseevichemail (ok), 22-Янв-18, 11:16   +3 +/
> gcj закрыт в 2016 году.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #97

81. Сообщение от Аноним (-), 22-Янв-18, 11:20   +/
В мире опенсорса перекомпилировать под другую аппаратную архитектуру это совершенно НОРМАЛЬНО. Поэтому появилась альтернатива Жабе в виде D, который изначально в машкоды компилит и без всяких там JVM.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

82. Сообщение от Клыкастый (ok), 22-Янв-18, 11:36   +/
> Потом на другом сервере с другим процом бинарник не работает, надо там ещё раз пересобирать.

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #96

83. Сообщение от Ю.Т. (?), 22-Янв-18, 11:40   +1 +/
> Деньги.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

84. Сообщение от Славик (?), 22-Янв-18, 11:44   +2 +/
Неужели у тебя небыло случая когда аппликуха на джаве требует определённую версию JVM, и это не всегда последняя версия ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #106

85. Сообщение от анонимбр (?), 22-Янв-18, 14:04   –1 +/
браузер уже давно не является обычной читалкой:)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

86. Сообщение от лютый жабист__ (?), 22-Янв-18, 14:06   +/
JSSE тоже первокурсники писали?
И bouncy castle первокурсники?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

87. Сообщение от Отражение луны (ok), 22-Янв-18, 15:02   +/
Айось, венда, линух, макось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #102, #107

88. Сообщение от alltiptop (ok), 22-Янв-18, 16:46   +/
>Тебе придется очень постараться чтобы найти лагающее qml приложение

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

89. Сообщение от _ (??), 22-Янв-18, 17:43   –1 +/
Дятел :)
LOR - Это почти на 146% - статика. Его можно с RaspberryPi с таким же откликом раздавать если от жабы избавиться и DB на другом серваке держать :-р
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #99

90. Сообщение от _ (??), 22-Янв-18, 17:53   +1 +/
>А вообще к яве нарекания только за прорву сжираемой памяти и некоторую "многословность" исходного кода.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

91. Сообщение от Аноним (-), 22-Янв-18, 18:22   +/
> В Android нет JVM. Там свой нескучный мирок интерпретаторов байт-кодов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #110

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

94. Сообщение от Аноним (-), 22-Янв-18, 18:30   +/
> Какое убогое понимание переносимости ПО. Неужели ни разу не пробовал например под
> CentOS 6 скомпилить какую-нибудь прожку или либу, которая хочет последнюю poco
> и cmake и gcc и ядро.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #105

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #111

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

97. Сообщение от _ (??), 22-Янв-18, 19:21   +1 +/
>Даже если он закрыт это ещё не значит, что его нельзя скомпилировать сегодня.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #101

99. Сообщение от Аноним (-), 22-Янв-18, 20:20   +/
Чушь, вопрос был про быстрые приложения, поэтому смотри на время генерации страницы, а не картинки и js/css. Мы видим, что логика + база + рендер в шаблоны отрабатывает моментально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

100. Сообщение от Аноним (-), 22-Янв-18, 21:26   +1 +/
Спасибо, отличные ссылки!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

101. Сообщение от AntonAlekseevichemail (ok), 22-Янв-18, 22:31   +1 +/
> А завтра? А через год? Тянуть что то что уже на нём ... понятно. Новое плодить :-/

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

102. Сообщение от mumu (ok), 23-Янв-18, 03:34   +/
Никогда у меня не тормозили ни винда ни линукс на 2 ГБ оперативки от запуска целых ТРЁХ программок параллельно или открытия аж целых десяти вкладочек в браузере. А при попытке открытия аж целых пяти программулек андроид начинает биться конвульсиями в луже крови и свопить всё что может.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

103. Сообщение от mumu (ok), 23-Янв-18, 03:36   +/
Поскольку Eclipse - это _единственная_ программа на ПК для которой приходится ставить JVM, качается всегда самая свежая. Потом ещё и её удалять приходится, чтобы она каждый день не вопила как истеричка, умоляя себя обновить. А что?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

104. Сообщение от XoRe (ok), 23-Янв-18, 08:10   +2 +/
> Ещё: https://codeborne.com/ru/2012/12/17/online-bank-from-scratch...

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

105. Сообщение от лютый жабист__ (?), 23-Янв-18, 08:47   +/
Давай пример проги, которая не работает в штатном jre 1.8
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

106. Сообщение от лютый жабист__ (?), 23-Янв-18, 08:52   +/
> Неужели у тебя небыло случая когда аппликуха на джаве требует определённую версию
> JVM, и это не всегда последняя версия ?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84 Ответы: #112

107. Сообщение от angra (ok), 23-Янв-18, 09:34   +/
А тебе не приходила в голову такая простая мысль, что сравнивать надо на одинаковом железе и нагрузках?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

108. Сообщение от Аноним (-), 23-Янв-18, 11:46   +/
> Напомните а почему все одно время носились с GWT как с писаной
> торбой, а потом как-то резко, раз - и все пр него
> забыли?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

109. Сообщение от iZEN (ok), 23-Янв-18, 21:22   –1 +/
> Но ведь так и есть. Достаточно сравнить netbeans и geany на не
> слишком мощной системе. Первая и память отожрет и продолжит тормозить. Вторая
> летает и не жрет ничего.

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

110. Сообщение от iZEN (ok), 23-Янв-18, 21:26   +/
>> В Android нет JVM. Там свой нескучный мирок интерпретаторов байт-кодов.
> 1. Чем это JVM не подходит под определение "интерпретатор байт-кода"?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #113

112. Сообщение от _ (??), 23-Янв-18, 21:52   +/
>Можешь пойти и набить морду прогеру. Жаба тут непричём.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

113. Сообщение от _ (??), 23-Янв-18, 21:56   +/
А в реале половина ваших прог работает только под форточкой а иногда и прибита в определённой версии\вендору JVM\JDK :-p

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #114

114. Сообщение от iZEN (ok), 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 при переключении на вкладку "Процессы".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

115. Сообщение от freehckemail (ok), 26-Янв-18, 22:26   +/
> На Java пишутся системы, которых вам не показывали, которые считают ваши деньги, если они у вас, конечно, есть.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

116. Сообщение от freehckemail (ok), 26-Янв-18, 22:41   +/
> А приведите пример что на ней _не_ тормозит?

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

117. Сообщение от 6blKAHAXemail (?), 20-Дек-22, 14:20   +/
Джавовский стиль программирования всяко лучше, особенно для крупных проектов. Да и байт-код по идее должен исполняться быстрее, чем код, который еще надо оттранслировать. Но ждать, что производители все поголовно вставят себе java-машины для целей js не приходится. Слишком уж сильна инерция.
Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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