среда, 30 ноября 2016 г.

EO и JVM

EO (Elegant Objects), как и Java выполняется на JVM (Java Virtual Machine) - виртуальной Java машине


Реализаций JVM достаточно много:
  • HotSpot - JVM Oracle - по-факту "стандарт" и входит в официальные JRE (Java Runtime Environment) и JDK (Java Development Kit);
  • Dalvik - регистровая версия JVM, основа платформы Android;
  • Apache Harmony - версия JVM от Apache;

и д.р.(была даже от Microsoft - MSJVM)


Самое интересное, что не только EO идет путем опоры на JVM, достаточно много и других языков используют/адаптированы под нее (как говорится - "Не все то джава, что на jvm"): 
Clojure (диалект Lisp), Groovy, Kotlin, Scala, Ceylon, JRuby (Ruby), Jython (Python), Nashorn (JavaScript) и т.д.


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

все дело в удобстве и возможностях JVM: 

JVM создает некоторый уровень абстракции, глубже которого программисту интерпретируемого языка погружаться нет необходимости (например, контроль за высвобождением памяти решается через Garbage Collector; JVM обеспечивает кроссплатформенность и т.п.).

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

В свете сумасшедшего развития вычислительной производительности и скоростей транзакций язык EOlang логически продолжает обозначенную тенденцию... не так важна производительность не только "в железе" (что показал нам JVM), но и внутри программы! 

Гораздо более важны возможность управлять собственным кодом, поддерживать его и сопровождать. Именно по этому EO это следующий и закономерный шаг развития прагматики программирования! И именно по этому EO ждет колоссальный успех!


Комментариев нет:

Отправить комментарий