The OpenNET Project / Index page

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

В рамках проекта PurpleJS развивается альтернатива Node.js, работающая поверх JVM

21.10.2016 18:32

Представлен проект PurpleJS, в рамках которого развивается похожий на Node.js фреймворк, позволяющий создавать серверные приложения на языке JavaScript. Ключевой особенностью PurpleJS является использование виртуальной машины Java (JVM) для выполнения приложений, что позволяет добиться неплохой производительности и предоставить возможность интеграции с приложениями и библиотеками на языке Java.

Код проекта написан на языке Java и распространяется под лицензией Apache 2.0. PurpleJS позволяет создавать быстрые и лёгковесные серверные приложения на языке JavaScript или комбинируя JavaScript с Java без применения модели асинхронного программирования, свойственной Node.js. Для сборки проектов используется инструментарий Gradle.

Возможности PurpleJS:

  • Запуск проектов на JavaScript поверх JVM;
  • Создание многопоточных приложений на JavaScript;
  • Создание серверных приложений на JavaScript, имеющих доступ к библиотекам Java;
  • Построение изоморфных приложений, в которых один код используется как на стороне сервера, так и на стороне клиента;
  • Создание серверных приложений, способных запускаться в любых инфраструктурах, где работает JVM;
  • Добавление в Java-проекты функциональности на языке JavaScript;
  • Создание JavaScript-проектов, используя в качестве основы имеющиеся наработки на Java.


  1. Главная ссылка к новости (http://webagility.com/posts/pu...)
  2. OpenNews: Выпуск серверной JavaScript-платформы Node.js 6.0
  3. OpenNews: NodeOS, операционная система с пользовательским окружением на JavaScript и Node.js
  4. OpenNews: Релиз Electron 1.0, платформы создания приложений на базе движка Chromium
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45357-java
Ключевые слова: java, javascript, nodejs, purplejs
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 18:42, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +22 +/
    Надо еще JVM на Phyton реализовать и прикрутить к этому чуду сверху. Так, для пущей красоты.
     
     
  • 2.30, anomymous (?), 14:58, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И обязательно под PyPy.
     
     
  • 3.37, Аноним (-), 00:23, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Даешь JVM на Python!
     
  • 2.38, Аноним (-), 00:32, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Jython же :D

    А по сабжу - эталон ненужности.

     
     
  • 3.40, Владимир (??), 10:00, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Jython это Python под JVM. А тут предлагают JVM НА Python. Под которой можно будет запустить Jython, да.
     
     
  • 4.51, MMx (?), 10:05, 25/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вспомнил старый анекдот:
    "Чуваки я запускаю Star Control первый в Dos Box, в Виндузе XP, которая в виртуальной машине VMWare, которая на Gentoo лиуксе крутится. Может кто знает - почему нет звука?"
     
     
  • 5.54, Windonimus (?), 11:03, 30/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И самое интересное все знают почему
     
     
  • 6.55, handicraftsman (?), 22:39, 26/08/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я не знаю
     

  • 1.2, SpaceRaven (ok), 18:45, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Непонятно зачем это надо... Для ноды уже столько наплодили всяких библиотек, что особой надобности в чем-то из java мира особо нет. Да и думаю тормознее будет чем если писать чисто под ноду или на java
     
     
  • 2.3, эцсамое (ok), 18:53, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    хотя бы для того чтобы иметь возможность ограничить память оборзевшим ноджс-приложениям.
     
     
  • 3.11, Виталик (??), 19:32, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    У ноды есть ключ в котором можно указать максимальный объем памяти на процесс.
     
     
  • 4.36, эцсамое (ok), 18:06, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    а расскажи пожалуйста?

    потому что я в прошлый раз не нашел.

     
     
  • 5.49, Виталик (??), 15:12, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    --max-old-space-size
     
  • 3.12, A.Stahl (ok), 19:46, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +12 +/
    >ограничить память

    Это с помощью Явы-то? Ну рассмешил, молодец...

     
     
  • 4.13, SpaceRaven (ok), 19:50, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>ограничить память
    > Это с помощью Явы-то? Ну рассмешил, молодец...

    ну для jvm можно задать рамки дозволенного так сказать :)

     
     
  • 5.15, Ignis (?), 20:23, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как и для ноды
     
  • 3.24, Аноним (-), 00:28, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ограничения для Java это только табличка "влезай не убьет", но следовать ей они не обязаны.
     

  • 1.4, Аноним (-), 18:58, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    зачем это когда есть Nashorn?
     
  • 1.6, th3m3 (ok), 19:14, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Очередной костыль.
     
  • 1.8, h31 (ok), 19:23, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Для изоморфных приложений - сойдет.
     
  • 1.9, Аноним (-), 19:24, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > без применения модели асинхронного программирования, свойственной Node.js

    Когда уже эти неосиляторы повымирают?

     
     
  • 2.16, Аноним (-), 20:34, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Когда за заваленные проекты фрилансеров сажать начнут.
     
     
  • 3.39, Алексей Морозов (ok), 01:21, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Боюсь даже представить, что в этом случае должны будут делать за неудачные проекты с остальными видами подрядчиков :)
     
     
  • 4.53, Mail (?), 10:09, 28/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Зато подпольный рынок органов расцветет

     
  • 2.18, Ан (??), 22:16, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А я уж было надеялся что скрестили многопоточность и асинхронность, но видно не судьба пока. Всё воюют и делают отсутствие поддержки друг друга преимуществом своим
     
  • 2.50, Тузя (ok), 16:13, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А при чем тут неосиляторы асинхронного программирования? Тут JS пересадили на JVM. Откуда там возьмётся асинхронное IO?
     

  • 1.10, Пользователь Debian (?), 19:29, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неосиляторы как раз написали node.js и всякие аналогичные Twisted'ы.
    Почитайте http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
     
     
  • 2.14, angra (ok), 19:57, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я читал когда-то. С одной стороны я согласен с автором, что в писать с корутинами проще, чем с колбеками, но с другой стороны я не разделяю его ужаса перед ними, это дело привычки или особенностей мышления. С тем же успехом его аналогию можно применить к ООП, оно тоже в свое время вызывало у многих ужас и неприятие, а сейчас неофиты с трудом представят, как можно было без ООП обходится.
     
     
  • 3.19, Аноним (-), 22:48, 21/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эт ты походу еще не писал на корутинах с колбеками вместе :)
     
  • 3.23, Аноним (-), 00:15, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты не прав. ООП всегда было красиво, просто не все понимали. JS был уродлив всегда, но абсолютно ясно это стало после появления нормальных техник программирвания.
     
     
  • 4.26, Свидетель Вирта (?), 01:33, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ты не прав. ООП всегда было красиво, просто не все понимали. JS
    > был уродлив всегда, но абсолютно ясно это стало после появления нормальных
    > техник программирвания.

    JS is OOP

     
  • 4.27, Аноним (-), 02:39, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Java is OOM
     
  • 3.41, freehck (ok), 10:53, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > С тем же успехом его аналогию можно применить к ООП, оно тоже в свое время вызывало у многих ужас и неприятие, а сейчас неофиты с трудом представят, как можно было без ООП обходится.

    Вы возможно удивитесь, но оно и сейчас вызывает огромное неприятие. Вот сравнительно недавняя, но очень годная статья:
    https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4

    Неофитам, которые в восторге от ООП, как правило не известно, что ООП-ов есть целая куча. Есть классовые модели, есть экземплярные, со множественным наследованием и без оного. Они ведут себя по-разному в статически типизированных языках и в динамически типизированных. И у всех у них свои преимущества и недостатки.

    И в каждом языке свои правила хорошего программирования, касающиеся ООП. Явисты имеют тенденцию включать свои объекты в качестве полей класса, чтобы избежать слишком глубокого наследования. Потому что это единственный способ гарантировать, что изменение в базовом классе не поломают дочерние. Но в этом случае приходится создавать в куче множество объектов, задача сборки мусора по куче имеет сложность O(n^2), что ведёт к тормозам при запуске GC. Окамлистам и вовсе требуется помогать компилятору, прописывая интерфейсы заранее, иначе в случае ошибки типа компилятор не сможет определить конкретное место её возникновения. И в этом случае теряется основная фишка ML-подобных языков: возможность забить на явные указания типов, перепоручив их вывод компилятору, что так удобно при начальной разработке, когда базвые типы и структуры могут ещё сто раз поменяться.

    И вот таких вот нюансов в каждой реализации ООП масса. Если ты знаешь ООП в одном языке - ты знаешь ООП только в этом языке и нигде больше. Если же владеешь процедурным программированием на хорошем уровне - ты хорошо владеешь им везде, и тебе везде эти навыки пригодятся (за исключением разве что языков, в которых ООП - это религия, и без него никуда).

     
     
  • 4.42, angra (ok), 12:05, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1. Меня это не удивит аж ни разу. А сама статья слабая и демонстрирует скорее плохое понимание ООП у автора, я читал куда более обоснованные претензии.
    2. Неофиты не в восторге от ООП, оно для них просто естественно, каких либо эмоций по этому поводу у них нет. Точно также как для тех, кто начинал с процедурного(или функционального) стиля, естественен он и тоже не вызывает восторга или неприятия. Восторг или непрятие может вызывать только смена привычной парадигмы.
    3. С процедурным программированием ровно та же история. Каждый язык имеет свои особенности. Гордые Сишники пишут отвратительный тормозной код на PHP(без учета ООП).
    4. Несмотря на массу различий, общие принципы все-таки сохраняются. Тому, кто знает ООП на одном ЯП, будет куда легче понять его на другом ЯП, чем человеку, не имеющему опыта с ООП вообще. Точно также и с другими парадигмами.
     
  • 2.28, KonstantinB (ok), 04:43, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    await уже есть в babel/ts, с ним жить намного проще.
     
     
  • 3.35, Andrey Mitrofanov (?), 17:43, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > await уже есть в babel/ts, с ним жить намного проще.

    "Chrome 55 Beta Brings Async/Await To JavaScript"" @ Phoronix
    Date: Fri, 21 Oct 2016 15:14:56 EDT (19 hours, 26 minutes, 37 seconds ago)

    Впрочем, можешь ещё раз перечитать (ты ж прочитал?!) последний абзай того поста на journal.stuffwithstuff.com, там про тебя.

     

  • 1.17, YetAnotherOnanym (ok), 21:45, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Java и JavaScript не имеют ничего общего, говорили они...
     
  • 1.20, Отражение луны (ok), 22:51, 21/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    C++ > Java
    Node.js > Фуфел.js
     
     
  • 2.25, Свидетель Вирта (?), 01:32, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    NAY, Delphi->Java
     

  • 1.29, Аноним (-), 06:43, 22/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Когда же они, наконец, напишут JavaScript на JavaScript?
     
     
  • 2.31, MPEG LA (ok), 15:01, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    eval()
     
  • 2.32, anomymous (?), 15:02, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда же они, наконец, напишут JavaScript на JavaScript?

    У меня вообще такое ощущение, что часть хипстерской среды с ума посходила полностью. Какие-то PyPy, Cython'ы.

     
     
  • 3.33, anomymous (?), 15:03, 22/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    JavaScript на JVM вот ещё.
    Осталось JVM на Go переписать, а тот на расте...
     
  • 3.43, angra (ok), 12:22, 23/10/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Точно, глупые хипстеры, вот  программистам на настоящих языках вроде С или Pascal никогда бы не пришло в голову делать компилятор своего языка на нем самом. Правда?

     
     
  • 4.44, Аноним (-), 00:20, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Компилятор C есть в 99 9 систем Он и ассемблер - основа действительно перено... большой текст свёрнут, показать
     
     
  • 5.45, Led (ok), 01:53, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ассемблер - основа действительно переносимого кода.

    Сам-то понял, что ляпнул?

     
  • 5.46, angra (ok), 09:54, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А компилятор С в 99.(9)% систем просто сам по себе заводится или его боженька посылает с небес. Не то что компиляторы какого-нибудь паскаля. А кросскомпиляция это вообще бесовская штука, верующим про нее не положено знать, также как и про существование паскаля или других языков для туевой хучи ОС и архитектур помимо Linux x86, Linux x86-64 и Windows x86. А не то могут разуверится в святом С.
     

  • 1.34, menangen (?), 17:26, 22/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Народ не в курсах про vert.x, который по сути node.js, но позволяет писать код на всяких groovy, Python, Ruby, JavaScript - и всё это прекрасно взаимодействует с java кодом, работает асинхронно и быстро.
     
     
  • 2.48, Аноним (-), 13:25, 24/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ты npm видел? Эти макаки свой репозиторий не знают и постоянно вилосипеды пишут(и выкладывают), что же говорить про весь оставшейся мир...
     

  • 1.47, Аноним (-), 13:18, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    js рвется в Ынтерпрайз? Бегите глупцы!
     
     
  • 2.52, Аноним (-), 13:46, 27/10/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Увы, он уже там.
     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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