LINUX.ORG.RU

Java: Поддержка скриптовых языков


0

0

SUN обещает обновить JVM изнутри для лучшей поддержки нетипизированных (скриптовых) языков:
"There is growing interest in running a variety of programming languages on the the Java platform, and consequently, on the Java virtual machine (JVM). This interest is increasingly focused on dynamically typed languages, in particular scripting languages. To make it easier to produce performant, high quality implementations of such languages, we propose to add support at the virtual machine level. Specifically, we seek to add a new JVM instruction, invokedynamic, designed to support the implementation of dynamically typed object oriented languages. We will also investigate support for hotswapping, the capability to modify the structure of classes at run time."
http://today.java.net/pub/n/4058

Также Eclipse расширяет свой API для возможности скриптования:
http://www.eclipsezone.com/forums/thr...

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

★★★

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

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

> Лучше найди для JVM технологии столь же мощные, как Nemerle и F#. Нет таких, и не будет - ибо убог JVM и крут CLR.

Если .NET настолько "крут" то почему люди портировали на него Hibernate (кажись NHibernate зовется)?

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

Да их как говна, только вот чистый jsp это тоже уже прошлый век ;)

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

Hibernate не при делах. Ты на конкретный вопрос отвечай - есть под JVM похожие технологии? Я вот хорошо знаю, что их нет. А Hibernate - из другой оперы. Узкоспециализированная фиговина.

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

И заметь - Hibernate портировали. Легко. А вот F# на JVM ты не портируешь. Совсем. Только с очень большими потерями. CLR гораздо мощнее, и отрицать этот очевидный факт будет только тупой фанатик.

Фанатик побежит цитировать зарплаты быдлокодеров с dice.com, вместо того чтобы просто проанализировать набор инструкций JVM и IL. Фанатик начнёт сравнивать сайты на JSP и ASP, а не теоретические пределы для каждой из помянутых VM. Ну так все фанатики без исключений - глупцы. Жаль только, что 90% ЛОРа - безграмотные фанатики.

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

Все должно быть в меру и функциональность ассемблера виртуальной машины и наличие удобных библиотек. Да у NET CLR мощнее (то бишь функций больше), зато JVM портирована на множество платформ, инсталлируеться в разы удобнее и не медленнее NET. А у NET еще болезни роста, одна графическая библиотека чего стоит, ужас да и только. Вот чего действительно в JVM не хватает - поддержка функциональных примочек, вот тогда наступит полное счастие :-)

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

Слышь, клоун. Гы. ;) А зачем тогда NHibernate портировали, если под .NET такие "мегакрутые" технологии есть? Зачем такие мегакрутые технологии нужны, если еще и NHibernate приходится перетаскивать. Заметь, не Nemerle в Java перетаскивают, а NHibernate в .NET Это говорит о том, что .NET изначально более ущербна, чем Java. Может в Java просто никому не нужны эти аляпистые навороты Nemerle и F#?

Только не надо про "NHibernate из другой оперы".

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

Ну вот опять всякие вторичные, нерелевантные мелочи сравниваем. Какие библиотеки? Какие инсталляторы?

Мы говорим про VM. Только про VM. В .NET она гораздо умнее, чем в JVM. И один только этот факт делает .NET гораздо более привлекательной средой для разработки чем JVM.

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

О, вот и тупой фанатик вылез вякать. Заглохни, тупица, тут умные люди общаются, твоя харя тупая тут никому не нужна.

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

>Фанатик начнёт сравнивать сайты на JSP и ASP, а не теоретические пределы для каждой из помянутых VM.

Титиретические пределы, говоришь? А смысл? У меня вон проц теоретически может поддерживать 64Гб памяти, а реально в жизни больше 4х2Гб в материнку не воткнуть. Не выпускают 4Гб модули. Практически. Так что теориями занимаются в башнях из слоновой кости те, кто считают количество ангелов, умещающихся на острие иглы. Титиретики. Людям важнее практика.

>Ну так все фанатики без исключений - глупцы. Жаль только, что 90% ЛОРа - безграмотные фанатики.

Не, не Луговский. Не его слог. Либо ему лоботомию уже сделали и встроили спеллчекер в моск

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

>итал книжку по петтернам банды четырех. Там примеры были на smalltalk: это полный писец, я ничего не понял, такой пиз...тый синтаксис!

Это типа записки онаниста:

Понедельник: дрочил двумя руками - испытал сильный кайф

Понедельник: дрочил правой рукой - испытал кайф

Среда: дрочил левой рукой - испытал слабый кайф

Четверг: трахал девушку - слабое подобие левой руки.

> в институте изучал С++. Больше всего меня добивала венгерская нотация lptsr_name ил pvoid_че-то там. Или то что и имя класса и имя метода называют с большой буквы!

Ну так! Это несомненно свидетельствует о отстойности С++!

>И по деньгам хорошо и я благодаря Java наконец в осознал что такое OOP и ощутил всю его мощь!

Мда.... Или на незалежная настолько обветшала, что таких кадров в вузы принимают и они еще эти вузы ЗАКАНЧИВАЮТ? Или вуз называется ПТУ?

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

У тебя моск ваще отсутствует. Показали же тебе технологии которые на этом пределе возможностей и работают. Посмотри на макры для БД в Nemerle, твой глупый Hibernate рядом тихо отдыхает.

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

Даунито. В куалалумпур построено здание из стекла и железа. Высотой 200 этажей. А люди везде живут в домах из кирпича. Вот так же соотносятся ФП и ООП. На ФЯ пишут уникальные программы однодневки для уникальных потребителей, вроде Google, никому абсолютно больше не нужные. А на ООП языках (Java, C#) пишется 99% остального софта, в котором нуждаются массы. В т.ч. проги для мобильных устройств

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

Мда... Вот как начинают что-то постить про Java - сразу все сбегаются(анонимусы, заметьте). А от чего? Завидуют. Завидуйте дальше и можете продолжать флеймить про то, какой "мега-крутой .Net" и как "сосёт Java". Те, у кого голова есть на плечах - всё понимают... А читать этот бред фанов идола .Net - бессмысленно...

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

>Показали же тебе технологии которые на этом пределе возможностей и работают. Посмотри на макры для БД в Nemerle, твой глупый Hibernate рядом тихо отдыхает.

Ты так и не ответил на вопрос, зачем же портируют NHibernate, если уже есть Nemerle?

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

Затем, что портируют жабские приложения. Хочут это делать с минимальной кровью.

Так что глуп ты. Логике не обучен. Можешь удалиться. Не интересен.

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

> Затем, что портируют жабские приложения. Хочут это делать с минимальной кровью. > Так что глуп ты. Логике не обучен. Можешь удалиться. Не интересен.

Да весь .Net - порт Java by Microsoft ... Саму идею стырили, теперь части копи-пейстят. Но всё ражно членов JCP M$ никогда не задавит, уж больно много народу любит Java.

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

Смешной ты человек. А сама Java, по твоему, не стыренная целиком и полностью?

А народ, любящий жабу - это фигня. Одно время было полно народу кто фортран любил - и где теперь тот народ?

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

Вот только не надо нести ерунду. Никто не будет переносить нормальное веб приложение на быдлосервер IIS. Hibernate - отличный ORM инструмент и в этом причина портирования.

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

Ну Hibernate - это чисто пример ;) А вопрос в том действительно ли нужны эти фичи в VM? Вот лично ты насколько плотно используешь эти технологии и для чего?

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

Я эти фичи использую при написании компиляторов. Для того чтобы код оптимальный получался, чтоб работал быстро, чтоб языки можно было сложные и гибкие делать. А не одни только реинкарнации Java с разным синтаксисом, как того требует ущербная и ограниченная JVM.

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

Ну так может задуматься о правильном выборе инструмента? Все равно .Net это не та штука, которая "write once, use anywhere" ;)

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

Затем что это удобная VM. И достаточно низкоуровневая, чтобы можно было легко компилять очень разнообразные языки, и одновременно достаточно высокоуровневая, чтобы не тратить силы на всякую досадную и раздражающую мелочь типа register scheduling, GC и тому подобных приколов, которые очень надоедают при реализации нативных компиляторов. Да и не люблю я ассемблер IA32, тогда как IL вполне приятен.

Для JVM я, конечно же, тоже пишу компиляторы. Но это тот ещё геморрой.

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

Ну вот с этого и надо было начинать. Согласись, что если JVM не подходит под твои конкретные задачи, это еще не повод называть ее суксем ;) Мне например проблема .Net видится именно в зависимости ее от Microsoft, что влечет за собой несовместимость версий и тому подобные прелести. Если Mono дорастет до чего-то стоящего и будет фунциклировать на равне с майкрософтовской поделкой, то дай то бог.

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

Так понимаешь в чём дело - Java - хорошая платформа. С богатым community и развитыми библиотеками. От этого то и обидно, что она не подходит для моих задач. Что разработчики пожадничали добавить несколько инструкций в VM, от которых всем бы (включая их самих) стало бы только легче. Они намеренно ограничили возможности своей платформы, привязали её к языку Java, хотя прекрасно могли этого и не делать.

Разве это не мерзко?

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

> Для JVM я, конечно же, тоже пишу компиляторы. Но это тот ещё геморрой.
На нихера ты не пишешь. Только гадить в комментах умеешь.

Написание кода под JVM на порядке проще чем под .NET. А про debug это вообще отдельная песня.

Гы. Вспоминается Луговской который также блевался от JVM, а когда начал писать свой язык под .NET, то плюнул на это дело и реализовал его под JVM.

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

Дело в том что в 95м (или даже еще чуть раньше :)) эти фичи были не нужны в VM :) Но потерпи еще немного и все будет в шоколаде ;)

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

Нет не на порядки проще. Совсем не на порядки. JVM и IL почти одинаковые, за исключением тех нескольких инструкций, которых под JVM так не хватает. То есть если хочешь - пиши под IL как под JVM, все в managed коде, а если надо что-то сложное сделать - тогда только вылезаешь из пеленок и начинаешь хулиганить с указателями и хвостовыми вызовами. Простые вещи в JVM и IL одинаково просто делать а сложные проще в IL.

Debug в mono это да это отдельная песня. Дебажу в .NET Framework. Под виндой. Каюсь. Готов к справедливому порицанию.

И если кто ниасилил IL то это еще не значит что IL хуже JVM. Мы же тут уже про обезьянок пришли к правильному выводу, не так ли?

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

Как это были не нужны? В любом реальном процессоре они были, в той VM, с которой JVM нагло содрали (P-коды) они были, а в JVM оказались ненужными? Не верю в такие ненужности. Я думаю что это сознательная диверсия товарища Гослинга.

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

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

проблемы заключаются в том что если делать это правильно то нужно получить базовые знания в этой области, а по Lecture notes из какого нить там Кембриджа это сделать практически невозможно(книги типа Redbook отстали от жизни и к тому же ни как не помогут мне реализовать Lazy Evaluation Call by need etc), плюс перерыть огромное кол-во статей с citeseer и acm и реализаций чтобы не делать так как продвинутые товарищи перестали делать еще в 70-х

в россии литературы на эту тему вроде нет ваабще , а заказывать чтото с Amazon как-то дорого потому что надо много и хрен знает что внутри этых книг + нет списка стандартных книг, тех которые профессор порекомендовал бы студентам

В наших вузах с этим плохо и к тому же я не в МГУ учусь.

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

Функциональные языки я не трогаю. Для них и интерпретаторов хватает. Компиляторы пишу для всякой экзотики типа dataflow и конечных автоматов.

Если же тебе интересно как реализовывать именно функциональные языки то лучший источник это http://research.microsoft.com/Users/simonpj/Papers/slpj-book-1987/index.htm

И можно ещё другие работы того же автора почитать. Вроде бы он в этих делах главный спец.

Если нужно не 87-го года инфу (хотя с тех пор мало что поменялось), то читай работы авторов Helium:

http://www.cs.uu.nl/~daan/pubs.html

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

Спасибо что отозвались

Кто такой Simon Peyton Jones из Microsoft Research мне известно... (GHC + приличный процент статей на тему ленивых языков)

Кажется смотрел эту книгу(неуверен), если смотрел то отложил из-за высокого изложения , как статья, короче требует от меня знаний которые дают CS факультетах ихних универов (что такое язык, Denotational Symantics, Axiomatic Symantics, и еще куча всякой теории искать которую я непонимаю где)

короче мне нужен список литературы который поможет мне ликвидировать отсутствие БАЗОВЫХ знаний(я не имею ввиду дискретную математику, теорию графов ... c этим все в порядке)

и еще, не могли бы вы назвать хотябы пару книг по которым вы научились делать то что делаете

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

s/высокого изложения/высокого уровня требований к знаниям

короче не Cookbook in Nutshell for Dummies ;-)

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

Эта книга очень базовая. Например я оттуда тупо взял алгоритм компиляции pattern matching для автоматного языка, не читая фактически всего остального, сразу. Никаких специальных знаний не потребовалось. В книге готовые рецепты. Денотационные семантики и всё такое прочее - это если Рейнольдса читать (John C. Reynolds, "Theories of Programming Languages") - рекомендую как продвинутый курс по семантикам языков программирования. Чем он хорош - у него в приложениях вся необходимая математика с нуля изложена, с понятия "пары".

Сам я учился по Dragon Book, естественно, старой книге "Компьютерная математика" (не помню авторов, но название точное), тому же Рейнольдсу и куче чужого кода. Последовательных и формальных знаний, увы, не имею, но очень хотел бы получить. Лень, увы, мешает...

anonymous
()

Вот чем мне нравится LOR, так это тем, что "все пидарасы, один я д'артаньян". просто блюю.

"Быдлокодеры" есть везде и в любом виде: С-быдлокодеры, С++-быдлокодеры, .NET-быдлокодеры, Java-быдлокодеры .... и даже (о ужас!) lisp-быдлокодеры. Вы, уважаемые поборники lisp и других функциональных языков часто ли используете эту самую "функциональность"? Я уверен (часто сталкивался), что 90% lisp-"программистов" пишут на лиспе, как на императивном языке. Не это-ли быдлокодерство?

PS: какой дол..еб придумал слово "быдлокодер". дайте ему в репу.

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

>Врёшь. В VS 2005 всё отлично.

Даже не прошло и 100 лет. А в VS 2008 Enterprise Edition наверняка появится десяток Code Inspections, а 170 их число достигнет году так в 2020-м.

Слышь, клоун, а почему ты ждешь, когда MS, плетущаяся в хвосте прогресса, реализует то, чем остальные уже 5 лет как пользуются? Тебя MS кормит с ложечки?

>> Ты так и не ответил на вопрос, зачем же портируют NHibernate, если уже есть Nemerle?

>ИДИОТО!!! Редбулл окрыляет

Отсюда вывод: Nemerle очередной аляпистый квази-язычок для баловства, а для решения реальных проблем люди используют подходы жабабыдлокодеров

- Java fan

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

>>Врёшь. В VS 2005 всё отлично.

> Даже не прошло и 100 лет. А в VS 2008 Enterprise Edition наверняка появится десяток Code Inspections, а 170 их число достигнет году так в 2020-м.

> Слышь, клоун, а почему ты ждешь, когда MS, плетущаяся в хвосте прогресса, реализует то, чем остальные уже 5 лет как пользуются? Тебя MS кормит с ложечки?

Убей себя. Давай я щас вспомню про нормальные дженерики, итераторы, делегаты, наконец, LINQ. Что там насчёт прогресса, а?

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

Generics в Java5 ни фига пока ещё не нормальные. Так что вспоминать про них будем лет через 10, сейчас вспоминать нечего.

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

> Generics в Java5 ни фига пока ещё не нормальные. Так что вспоминать про них будем лет через 10, сейчас вспоминать нечего.

Ты еще не догодался что человек про дотнет говорил?

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

> Generics в Java5 ни фига пока ещё не нормальные. Так что вспоминать про них будем лет через 10, сейчас вспоминать нечего.

Вот, об этом-то и речь... А ещё рассказывают тут про MS в хвосте прогресса...

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

> Вы, уважаемые поборники lisp и других функциональных языков часто ли используете эту самую "функциональность"?

Lisp - императивный язык. Функциональный код писать можно, но это не является необходимым требованием хорошего стиля. Макросы не должны иметь side-effects, это да (разьве что что-то где-то закэшировать), а так - ничего особо страшного в императивном подходе с точки зрения Лиспа нет.

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

Что плохого в сайд-эффектах у макр (прочитать файл/записать в файл/подправить таблицу символов/...)?

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

Давай детка такой пример: Надо замутить generic и не-generic версию класса. Как будем делать? Писать и реализовывать 2 интерфейса как аффтары System.Collections.Generic?

class Fucker : IFucker<T>, IFucker
{
public void FuckInAsshole(T target)
{
// process harrasment
}

public void IFucker.FuckInAsshole(PrettyGirl target)
{
// Process fucking pretty girls's asshole
(T)target;
}
}

Такое воротить?

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