LINUX.ORG.RU

Поддержка динамических языков в Java 7

 , ,


0

0

В JSR 292 предлагают реализовать динамический вызов метода без указания типов аргументов (invokedynamic) и инъекцию интерфейсов, которая позволит «на лету» добавлять в класс новые методы. Хотя «родная» реализация eval все еще под вопросом (в основном, из-за проблем с безопасностью), предложенные изменения повысят скорость исполнения программ на JavaScript в несколько тысяч раз и практически сравняют ее со скоростью исполнения программ на Java.

>>> Подробности

★★★

Проверено: maxcom ()
Последнее исправление: eugine_kosenko (всего исправлений: 2)

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

> А за новость про RC VS2010 - спасибо, пошёл качать.

Только для сабскребастов MSDN. Простым смертным пока не выложили.

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

> В Python и других плюшек много которым Шарпу и Яве идти и идти...

Пистон одел не те коньки для асфальта, да и идёт медленно и на три буквы. Шарп тоже за ним дёрнулся, но чисто для виду - основа языка всё же статическая и намного более надёжная.

matumba ★★★★★
()

Джаба ненужна, пусть лучше компилятор js под parrot допилят.

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

> Сосет он не переставая, 24х7. Рот уже не закрывается.

Про Java топик ты ничего не понял, кроме дибильных мыслей сказать нечего ?

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

queen3, NightmareZ, пасипки!
Давно уже жду замену глюкоWPFайнеру.
Говорят, финальный релиз будет 12 апреля - времени у них совсем мало.

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

Понос ртом.

А почему у тебя на фотке рот открыт?

Излучаю лучи поноса.

РТОМ?!

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

>У кого-нибудь IDEA завелась на Java7?

А что, может не завестись? Это значит сломали обратную совместимость? Это ж какая-то пионерия школьная получается, а не ынтерпрайз. Эти люди ещё наезжали на питон3 и говорили, что мол «в ынтерпрайзе должны работать проги 10 летней давности».

anonymous
()

>В JSR 292 предлагают реализовать динамический вызов метода без указания типов аргументов (invokedynamic) и инъекцию интерфейсов, которая позволит «на лету» добавлять в класс новые методы.

Надеюсь это будет опционально как Java Reflection API. Не хотелось бы чтобы так внезапно джава перешла на динамическую типизацию.

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

> А что, может не завестись? Это значит сломали обратную совместимость? Это ж какая-то пионерия школьная получается, а не ынтерпрайз.

В ынтерпрайзе бетами не пользуются.

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

сама java на динамику не переходит, не беспокойтесь

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

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

faustus
()

>У кого-нибудь IDEA завелась на Java7?

Заводиться, как работает не проверял.

anonymous
()

Ну наконец то, и десяти лет не прошло с тех пор, как это впервые начали обсуждать. Ещё лет десять, и в конце концов оно войдет в стандарт.

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

>Проваливай с моих лоров, линуксоед.
с какого района, ща рога-то пообломаем, не думай потом в общество защиты животных обратиться

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

JavaScript - один из языков, работающих поверх JVM. Так что сходи мимо, пожалуйста, неумный человек.

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

> А JIT информацию о типах будет через libastral получать!

Смотри на V8, много думай.

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

> В шарпе уже есть dynamic

В шарпе есть, а в CLR нет. В шарпе оно реализовано поверх reflection, и работает ужасно медленно.

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

В шарпе есть, а в CLR нет. В шарпе оно реализовано поверх reflection, и работает ужасно медленно.

Ты бы хоть погуглил, прежде чем пургу нести. В четвёртом фреймворке есть DLR.

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

Четвертого фреймворка еще нет. А dynamic уже есть.

Ты упоротый напрочь. На днях вышел Release Candidate четвёртого фреймворка. И dynamic появился именно в четвёртом, а не раньше.

Школота, хватит муть гнать.

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

А, блин, в четвертом фреймворке оно тоже не на уровне CLR. Ты облажался. Почитай, как DLR устроен. Новых инструкций в IL они не добавили.

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

> JavaScript - один из языков, работающих поверх JVM.

Это действительно так? Насколько я понял, в Java 6 засунули Rhino, который простой интерпретатор. Есть компиляторы из Javascript в байткод?

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

Так, во первых - школота это ты. Годочками ты соплив. Во вторых, С# 4 + DLR работает и поверх второго фреймворка. Так что, гуляй мимо.

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

Придурок, тебе еще раз повторить? dynamic работает поверх рефлексии. Никакой поддержки на уровне VM для него нет.

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

Так, во первых - школота это ты. Годочками ты соплив. Во вторых, С# 4 + DLR работает и поверх второго фреймворка. Так что, гуляй мимо.

Ты идиото-кретино неотёсаное, иди хотя бы wikiпедию почитай. Четвёртый фреймфорк несовместим со вторым.

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

>В шарпе уже есть dynamic

Ну и сиди в своей винде, и пользуйся серверами от них же... И радуйся.. :-) Какая конкурентная платформа .NET

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

Ну и сиди в своей винде, и пользуйся серверами от них же... И радуйся.. :-) Какая конкурентная платформа .NET

Моно уже пришло к вам, красноглазики.

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

Придурок, такой придурок. Почитай, что изменили в четвёртом CLR. Новых инструкций там не добавили. DLR - чисто managed решение. Тормозное.

Я как раз недавно закончил править поддержку четвертого фреймворка в Mono.Cecil, так что уж всяко лучше тебя знаю, о чем говорю.

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

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

Итак, даю тебе, сопливому недоумку, последний шанс. Назови те инструкции или префиксы, которые якобы добавлены в четвертый фреймворк для быстрых динамических вызовов. Вместе посмеёмся.

Учти - ты сейчас уже выглядишь полным идиотом. Дальше будет ещё хуже. Так всегда бывает, когда школота начинает вонять о том, в чем ни хера не понимает.

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

>Фап-фап-фап на жабу, линуксоеды. Билли никсы сношает старой шваброй.

Смотри чтобы твоя система не рухнула из за подвисшего GUI...

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

NightmareZ ты инфу по дотнету в википедии черпаешь? :D Или у вас Клвадия Ивановна по информатике такое рассказывает? не кури больше драп.

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

>Моно уже пришло к вам, красноглазики.

Он за тобой пришел.. А не к нам.. :-) А по поводу красных глаз не надо.. Всегда все настраивал с пол пинка.. Только доку почитать и все... Вначале с архитектурами разберись а потом брызгать начинай... .NET судьба плавать где то в серединке и обслуживать максимум корпоративные порталы, мелкие и так развели из своих .NET библиотек зоопарк... Сплошная фугасность...

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

> .NET судьба плавать где то в серединке и обслуживать максимум корпоративные порталы, мелкие и так развели из своих .NET библиотек зоопарк...

Вот этого не надо. .NET все еще намного обгоняет JVM. Как виртуальная машина, CLR на порядок лучше жабы. К сожалению. Авторы жабы слишком уперты и слишком ООПнуты.

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

>> Во вторых, С# 4 + DLR работает и поверх второго фреймворка. Так что, гуляй мимо.

иди хотя бы wikiпедию почитай. Четвёртый фреймфорк несовместим со вторым.

Почитал:

In contrast to other efforts like the Parrot virtual machine (with no dependencies) or Da Vinci Machine (built on Java's JVM by adding new bytecodes in the JVM instruction set), the DLR is built on top of the existing Common Language Runtime, the .NET Framework virtual machine

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

>.NET все еще намного обгоняет JVM. Как виртуальная машина, CLR на порядок лучше жабы.

Мне достаточно что я вижу на ынтырпрайзе... Когда RIA реализованные средствами Java в РАЗЫ!!!!( не в 2 не в 3 а намного более) быстрее летают чем тоже самое сделанное на .NET

anonymous
()

пинг-понг какой-то

в CLR захотели передавать классы через стек, но не осилили искейп анализис. поэтому наплодили сущность под названием «структура». в JVM категорически отказались плодить сущность и улучшили имеющееся, осилив искейп анализис.

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

фигня какая-то у них у всех в головах.

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

> Мне достаточно что я вижу на ынтырпрайзе...

Прелесть. Anecdotical evidence теперь уже за авторитетный источник считается?

огда RIA реализованные средствами Java в РАЗЫ!!!!( не в 2 не в 3 а намного более) быстрее летают чем тоже самое сделанное на .NET

Кривые руки у всех бывают, это нормально.

Но то, что тот же F# под .NET генерит гораздо более шустрый код, чем Scala под JVM - это показательно. JVM пригодна только для одного языка, для Java. И язык этот глубоко ублюдочен по природе своей. .NET же годится для любых языков, каких угодно.

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

> Мне достаточно что я вижу на ынтырпрайзе... Когда RIA реализованные средствами Java в РАЗЫ!!!!( не в 2 не в 3 а намного более) быстрее летают чем тоже самое сделанное на .NET

пример? наверняка написано вчерашними ява-обезьянками, которые яву-то еле осилили, а уж увидели со стороны, что сишарп — это «такая же ява», то и начали кодить по явовским стандартам, подходам и прочему — «чо доки-то читать, всё как в яве тут». вот и начало тормозить... встречался с таким.

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

> в CLR захотели передавать классы через стек, но не осилили искейп анализис. поэтому наплодили сущность под названием «структура». в JVM категорически отказались плодить сущность и улучшили имеющееся, осилив искейп анализис.

Это не лишняя сущность, это контроль. В JVM escape analysis ни хера не работает, кроме как в самых тривиальных случаях. В .NET же можно сколь угодно сложные ситуации разруливать через стек. Совершенно рациональное решение.

в CLR решили не плодить сущность, и всё мутить силами статики,

Потому как их не волнует производительность динамики. Это тоже рациональное решение (хоть и дурацкое).

фигня какая-то у них у всех в головах.

Есть такое дело

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

>пример?

Трехзвенка.... Обычная... Ни каких супер наворотов кроме динамических сущностей...

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

> JVM пригодна только для одного языка, для Java.

Есть такая компания - Mainsoft, мне там даже когда-то предлагали работать. Компания пишет продукты, которые позволяют запускать .NET под JVM (возможно, и наоборот - не помню), без разницы в производительности. Такие дела. Так что (ну ты понял).

И язык этот глубоко ублюдочен по природе своей.

Java - отличный язык. Его недостатки с лихвой компенсируются легким рефакторингом.

.NET же годится для любых языков, каких угодно.

Что, CLR даже multiple-inheritance поддерживает?

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