LINUX.ORG.RU

JVM не будет поддерживать Python


0

0

Гослинг заявил что в планы развития платформы Java не входит
реализация поддержки каких-либо скриптовых языков виртуальной
машиной (JVM), несмотря на то что необходимость подобного шага
давно назрела. В качестве основного довода в поддержку этой
позиции Гослинг называет нежелание вызвать недовольство одних,
оказав поддержку другим кандидатам, основными среди которых
являются Python и Groovy. Стоит отметить, что в случае выпуска
исходных кодов JVM под свободной лицензией подобная проблема
возникнуть не смогла бы.

>>> Gosling on JVM Scripting

★★★

Проверено: Demetrio ()

Ответ на: комментарий от mst_72

>>Страуструпа за template никто не уволил. И бездарью лишь немногие >>называют.
>>Кстати, нечто схожее легко и красиво на python делается, что даже >>как-то на мысль навело (мимолетную), что сам python с шаблонами >>работает. Типа сделал алгоритм, и главное, чтобы используемый в >>алгоритме класс нужные методы поддерживал.
На самом деле python решает эту проблему с другой стороны-
классы имеюют динамическую природу и специальнsq API для итераторов, например.
На самом деле современный код особенно с GUI лучше всего описывается
клеточными автоматами.К сожалению java создавалась как некое упрощение с++, при этом за снижения сложности языка появились трудности с реализацией этих самых клеточных автоматов, теперь предлагается вводить параметризованные типы,и это в общем только усложняет язык и приводит к менее ясному коду и прямо противоречит первоначальной концепции.
С++ за счет своей универсальности позволяет описывать автоматы достаточно элегантно. Проблема только в том, что очень долго отсутствовали практические реализации многих возможностей(в том числе и параметризованные типы) в компиляторах и кроме того все-таки сложность понятий в с++ чрезмерна,что провоцирует отказ от многих возможностией из за непонимания концепций кодерами, плюс слишком низкий уровень языка и долбанная совместимость с C--.
STL-Это замечательная реализация двух наборов(семейств) клеточных автоматов-контейнеров и итераторов.
Подобные автоматы в Python обеспечиваются встроенными API классов,
а динамическая типизация позволяет наводить довольно абстрактные интерфейсы между автоматами-классами.
В общем для полноценной жизни в python не хватает только понятия триггера-переключателя и триггера фильтра.И вроде такие конструкции регулярно обсуждаются, но они органично не вписываются в существующую архитектуру языка.
Хотя exceptions -этакий специальный триггер всё-таки есть.
Ближе всех к идеалу подошёл Effel, но я практического опыта с ним не имею, хотя концепт очень привлекателен.Но библиотеки и прочая обвязка очень слабы.
Поэтому python это всего лишь вторая (на мой взгляд после Effel), контрукция, которая практически более пригодна(чем Effel) к реальному применению и при этом имеет некоторую нишу.










obp
()
Ответ на: комментарий от obp

С клеточными автоматами - к крэнку Стиву Вольфраму. ;)

А для GUI есть более интересная модель - google: Fudgets.

Mauhuur
()
Ответ на: комментарий от obp

> На самом деле современный код особенно с GUI лучше всего описывается клеточными автоматами.

Уточните, плз. Именно "клеточными", не "конечными"? ЕМНИС, клеточные автоматы это игрушка Life. Как они привязываются к реализации GUI?

--

SVK

anonymous
()
Ответ на: комментарий от anonymous

>>точните, плз. Именно "клеточными", не "конечными"? ЕМНИС, клеточные >>автоматы это игрушка Life. Как они привязываются к реализации GUI
Конечно конечные автоматы , меня вчера слегка переклинило после работы.

obp
()
Ответ на: комментарий от anonymous

А ты видел сколько памяти отжирает WSAD? После него IDEA просто летает

CruZ
()
Ответ на: комментарий от CruZ

> Разве Ruby не от perl'a пошел?

От перла и Smalltalk, но неуловимых дух питона там витает =)

int19h ★★★★
()
Ответ на: комментарий от anonymous

> Ткните в простое объяснение, что есть боксинг/анбоксинг?

// боксинг
Integer a = new Integer(123);

// анбоксинг
int b = a.intValue();

> Ткните в простое объяснение, что есть женерикс?

List<Integer> list_of_ints;
...
Integer i = list_of_ints.get(0);

int19h ★★★★
()
Ответ на: комментарий от Mauhuur

> Boost ацтой - всё это заворачивается в очень убогий, и не поддающийся улучшениям синтаксис.

Про кривость синтаксиса - согласен. Но это имхо все же не так важно, главное, что эта фича при необходимости есть. В отличие от той же жабки или C#...

int19h ★★★★
()
Ответ на: комментарий от int19h

Ну дык. Всё же, C++, хоть и плохонький, но метаязык. Так что он - расширяемый, и, следовательно, хотя бы некоторое право на существование имеет.

Mauhuur
()
Ответ на: комментарий от Mauhuur

>> раз расклинило, тем более посмотри на Fudgets
спасибо уже смотрю

obp
()
Ответ на: комментарий от Mauhuur

>> раз расклинило, тем более посмотри на Fudgets.
Занятная декларативная игрушка
практической пользы-0
Если конечно не ставить перед собой цель быть единственным владельцем кода.
и я думаю что никто не занимается автоматической оптимизацией выполнения декларативных языков.(Кроме SQL)
И к тому же плохо читабельный синтаквис-с лиспом похоже

obp
()
Ответ на: комментарий от obp

Ну почему же 0? Аналогичная мат. модель железячниками-ембеддщиками используется.

Про синтаксис - не догнал. Чем тебе Haskell не нравится?

Mauhuur
()
Ответ на: комментарий от Mauhuur

>>Про синтаксис - не догнал. Чем тебе Haskell не нравится?
Пока ни сам не понял что не нравится, почитаю пока мануал
Но вложенные скобки это уже не очень читабельно.

obp
()
Ответ на: комментарий от Mauhuur

> Про синтаксис - не догнал. Чем тебе Haskell не нравится?

Очевидно, тем же, что и питон - значащими отступами =)

int19h ★★★★
()
Ответ на: комментарий от Mauhuur

> Ну дык. Всё же, C++, хоть и плохонький, но метаязык. Так что он - расширяемый, и, следовательно, хотя бы некоторое право на существование имеет.

А ты вот, помнится, говорил, что дескать жабка - это прогресс по сравнению с плюсами. Значит ли сие высказывание, что она имеет еще более веское право на существование? ;)

int19h ★★★★
()
Ответ на: комментарий от Mauhuur

Мне не понравилось смешивание поведения и внешнего вида интерфейса. Как-то это не кузяво.

WFrag ★★★★
()
Ответ на: комментарий от obp

> Ближе всех к идеалу подошёл Effel, но я практического опыта с ним не имею, хотя концепт очень привлекателен. Но библиотеки и прочая обвязка очень слабы.

А ты версию для .NET не щупал? Там с этим по понятным причинам намного получше...

> Поэтому python это всего лишь вторая (на мой взгляд после Effel), контрукция, которая практически более пригодна(чем Effel) к реальному применению и при этом имеет некоторую нишу.

Погляди лучше на Ruby. Полноценные closures - святое дело, про итераторы забываешь, как про страшный сон =)

int19h ★★★★
()
Ответ на: комментарий от int19h

>> Ткните в простое объяснение, что есть боксинг/анбоксинг?

> // боксинг > Integer a = new Integer(123);

> // анбоксинг > int b = a.intValue();

Не, это до(ан)боксинговый код. С убогсингом надо так:

Integer a = 123; int b = a;

Только в бетах 1.5 была лажа с боксингом и ==, даже на ЛОРе по-моему обсуждалась. В релизе они с ней что-нибудь сделали или так и осталось?

pitekantrop ★★★
()
Ответ на: комментарий от anonymous

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

Имя в студию, страна желает знать своих героев! :)

-- Alexey Efimov

anonymous
()
Ответ на: комментарий от pitekantrop

> Не, это до(ан)боксинговый код. С убогсингом надо так:

> Integer a = 123; int b = a;

Боксинг - это мой код. Твой - это _авто_боксинг.

int19h ★★★★
()
Ответ на: комментарий от int19h

> Боксинг - это мой код. Твой - это _авто_боксинг.

Да, сорри :) хотя если пользоваться общепринятой терминологией, то твой код это wrapping

Чего-то про OCaml никто не вспоминает.

pitekantrop ★★★
()
Ответ на: комментарий от pitekantrop

А что про него вспоминать? На JVM не компилится практически - в силу ровно в точности тех же причин, которые ранее были озвучены.

Mauhuur
()
Ответ на: комментарий от Mauhuur

> Жабка - прогресс только в плане runtime. Но не как язык. И лучше бы жабки не было вообще.

Ты имеешь в виду наличие таких вещей, как проверка обращений по null, выходов за границы массива, GC и reflection? Так первые три вещи в плюсах есть, просто они опциональны. Или речь о стандартных библиотеках?

int19h ★★★★
()
Ответ на: комментарий от pitekantrop

> Да, сорри :) хотя если пользоваться общепринятой терминологией, то твой код это wrapping

Возможно. В доках по 1.5 используется именно термин "boxing", похоже,передранный с C# (я с последним по долгу службы больше знаком).

> Чего-то про OCaml никто не вспоминает.

А никто и не забывал =)

Хотя у хаскелля синтаксис получше продуман...

int19h ★★★★
()
Ответ на: комментарий от int19h

>// боксинг >Integer a = new Integer(123);

>// анбоксинг >int b = a.intValue();

Пасиба. Просто и понятно! GOOD

И типа что, это оченно тормозит программу или из-за чего такие все недовольные?

anonymous
()
Ответ на: комментарий от anonymous

> И типа что, это оченно тормозит программу или из-за чего такие все недовольные?

Теоретически - тормозит. Зачем пихать на кучу то, что прекрасно живет на стеке? В случае запихивания в коллекшены (скажем, ArrayList) наблюдается совершенно избыточная фрагментация памяти - вместо 100-байтного сплошного массива из 25-и int'ов имеем массив из 25 ссылок на 16-байтные объекты Integer. Количество мусора можешь посчитать сам.

Практически же - тот же питон по жизни гоняет все то, что в жабке называется primitive types, т.е. всякие там int и float, именно в виде указателей, и вроде никто не жалуется =)

int19h ★★★★
()
Ответ на: комментарий от int19h

Теоретически в связи с отсутствием адресной арифметики в Жаве можно реализовать очень эффективные алгоритмы выделения памяти в куче и сборки мусора, что мы и наблюдаем в последних бенчмарках практически :)

pitekantrop ★★★
()

>Почему всегда хамят ананимусы? >Не неинтерсен тебе этот тред ну и не пиши сюда, >а про то что трава зеленая а небо голубое мы и сами догодаемся.

Почему всегда анонимусы пишут неадекватные ответы? Где ты увидел хамство в моем ответе? Пишу в тред как раз потому, что тред интересен.

>2) не читать книжек никиих, кроме как про java

А ты хоть одну книжку ПРО java прочитал? Я ничего хорошего в книжках по питону и руби не почерпнул.

>Слышь, гнида, тебе же сказано было - заткни свою блядовую пасть своим калом, и не воняй, выродок. Хули разпизделся, гадёнышь?

Ну если нет аргументов нормальных, то... Я то думал, почерпну реально толковых мыслей от толкового программиста. А Mauhuur оказывается может только про нерастяжимые нити, упругие шары и сверических коней в вакууме речи толкать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.