Re[19]: Расскажите профессионально, чем Java разработка быс
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.07 19:13
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

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


iT>Защищает?


Ага.

iT>хм... А ты в курсе, с java-generics что можно ненароком в якобы-genric-поле записать значение не соответствующего типа, а потом получить исключение на чтении этого поля?


Может и можно, но очень не просто. В любом случае их применение намного более безопасно нежели работа на Ява без них.

iT>Это называется защита от рантайм ошибок???


Ага. Если ошибку сделать труднее, то это защита.

iT>Java-generics — это катастрофа, вызыванная очень сильным желанием не менять jvm.


Согласен, что лажавато сделано. Но все же лучше чем ничего.

iT>До кучи, там хватает и других дебильных ограничений, уж не знраю, чем вызыванных. Короче, смешные очень эти java-generics. Плакать хочется.


Там есть и приемущества вроде ко/контрвариантности.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Расскажите профессионально, чем Java разработка быст
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.06.07 19:28
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Метапрограммирование же это более мощьное средство нежели АОП.


Ты сравниваешь теплое с мягким. АОП это прежде всего принцип вынесения аспектов. Метапрограммирование здесь всего лишь один из возможных инструментов для реализации.
АОП в этом плане ближе к ООП или ФП — использовать его можно и в обычных языках, но часть работы придется сделать руками.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[15]: Расскажите профессионально, чем Java разработка быс
От: IT Россия linq2db.com
Дата: 02.06.07 19:46
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Мы ведь с тобой сами через это прошли, так что нам нечего скрывать.


А я и не скрываю. Более того могу честно признаться, что впервые увидев джаву 10 лет назад, отверг её не задумываясь исключительно по причине костности мышления. Просветление начало наступать не сразу, приходилось по капле выдавливать из себя "крутого C++ программиста" и я всё ещё не уверен, что этот процесс завершён.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Расскажите профессионально, чем Java разработка быст
От: aka50 Россия  
Дата: 02.06.07 20:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, aka50, Вы писали:


A>>Я про другое. Дело в том, что тот же AOP дает возможность изменять поведение в рантайме. Шаблоны — это все таки compile-time.


VD>Это полнейшее заблуждение. АОП никакого отношения к компайл-тайму или рантайму не имеет. Все зависит от реализации. Самый известный АОП-инструкмент — это AspectJ. Он работает исключительно в компайлтайме.

Я знаю как работает AOP. Без рефлекшина — он работать не будет. это раз. Второе, он работает в комапайл-тайм (weaving), load-time (classloader) и как прокси (т.е. фактически рантайм, т.к. можно обвесить любой нужный объект. К тому же aspectj доступен и в рантайме в виде api. http://www.eclipse.org/aspectj/doc/next/runtime-api/index.html так что его использование не ограничивается только адвайсами секурити или транзакций. Другой вопрос, что он редко применяется динамическим образом в рантайме. Но все равно, я считаю, что АОП — это динамическая технлогия, в отиличии от макросов — они статичны. Естественно, макросы могут внедрять код какой-то библиотеки (той же Aspectj), но это не обсценивает идею АОП.

VD>Метапрограммирование же это более мощьное средство нежели АОП. Средствами МП воспроизвести АОП ничего не стоит. А вот обратное не верно.

? Мы кажется о разных вещях говорим. Есть механика внедрения АОП, а есть рантайм этого АОП. Более того метапрограммирование (как программирование на уровне АСТ, а не байткода) ничего особо великого сделать не сможет, если код уже скомпилирован и лежит в jar-е, а АОП (как методология) — сможет (например тот же spring позволит навесить нужный аспект без перекомпиляции)
VD>Одно время меня интересовал АОП, но потом я понял, что это детские потягушки. Просто метапрограммированием нужно заниматься на подобающих инструментах. Не на шаблонах С++ уж точно.
Возможно, но как инструмент для обвешивания кода разными фкусностями в рантайме — очень даже ничего... Во всяком случае в сочетании с Java
Re[8]: Расскажите профессионально, чем Java разработка быст
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.07 20:07
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ты сравниваешь теплое с мягким. АОП это прежде всего принцип вынесения аспектов.


Я ничего не путаю. При наличии в руках хороших средств МП об АОП не возникает даже мыслей.
По факту АОП — это техника приклеивания кода "сбоку". МП же это техника полного контроля над кодом (генераци, модификация, анализ, трансформация).

AVK> Метапрограммирование здесь всего лишь один из возможных инструментов для реализации.

AVK>АОП в этом плане ближе к ООП или ФП — использовать его можно и в обычных языках, но часть работы придется сделать руками.

АОП это костыли к ООП. Причем весьма посредственные. В ФП АОП просто не мыслим.
В общем, АОП — это полумера к которой пытаются прибечь потому что не видят более комплексных и универсальных решений.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Расскажите профессионально, чем Java разработка быст
От: Cyberax Марс  
Дата: 02.06.07 20:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>АОП это костыли к ООП. Причем весьма посредственные. В ФП АОП просто не мыслим.

Почему это? Вполне так и мыслим.

VD>В общем, АОП — это полумера к которой пытаются прибечь потому что не видят более комплексных и универсальных решений.

AOP — это хороший способ выносить из кода то, чего там не должно быть — работу с security, транзакции и т.п. С этим AOP очень неплохо справляется. Просто некоторые товарищи его пытались пихать везде, куда только можно.
Sapienti sat!
Re[8]: Расскажите профессионально, чем Java разработка быст
От: Cyberax Марс  
Дата: 02.06.07 20:26
Оценка: +1
Здравствуйте, aka50, Вы писали:

VD>>Это полнейшее заблуждение. АОП никакого отношения к компайл-тайму или рантайму не имеет. Все зависит от реализации. Самый известный АОП-инструкмент — это AspectJ. Он работает исключительно в компайлтайме.

A>Я знаю как работает AOP. Без рефлекшина — он работать не будет. это раз. Второе, он работает в комапайл-тайм (weaving), load-time (classloader) и как прокси (т.е. фактически рантайм, т.к. можно обвесить любой нужный объект. К тому же aspectj доступен и в рантайме в виде api.
Доктор, скажите, а AspectC++ — это галлюцинация?

Weaving на этапе компиляции вполне себе без reflection'а возможен.
Sapienti sat!
Re[3]: Расскажите профессионально, чем Java разработка быст
От: iZEN СССР  
Дата: 02.06.07 20:27
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

АХ>

АХ>У С++ есть только одно неоспоримое приемущество. На сегодно на нем можно создавать приложения которые более бережно относятся к ресурсам компьютера (памяти и процессору).

АХ>(C) VladD2

АХ>Я думаю что скажем в нишах видеокодеков, 3д- и физических движков, матрасчетах C++ еще будет жить приличное время


Необязательно. Достаточно на C++ написанной JVM.
Re[8]: Расскажите профессионально, чем Java разработка быст
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.07 20:30
Оценка: +1
Здравствуйте, aka50, Вы писали:

A>Я знаю как работает AOP.


Не похоже.

A> Без рефлекшина — он работать не будет. это раз.


Курим, к примеру AspectC++, а лучше начать с http://en.wikipedia.org/wiki/Aspect-oriented_programming

То что ты видил некоторые реинкарнации АОП (скороее всего в Ява) не влияет на сам АОП.

A> Второе, он работает в комапайл-тайм (weaving), load-time (classloader) и как прокси (т.е. фактически рантайм, т.к. можно обвесить любой нужный объект. К тому же aspectj доступен и в рантайме в виде api.


Еще раз. Все зависит от реалзации. В принципе нет никакой необходимости что-то делать в рантайме.

A> http://www.eclipse.org/aspectj/doc/next/runtime-api/index.html так что его использование не ограничивается только адвайсами секурити или транзакций.


В самой яве и дотнете тоже есть рефлекшен и можно даже код динамичемки генерировать, но это не отменяет того факта, что компиляторы компилируют код и реализуют все что нужно для ООП еще на стадии компиляции. Точно так же АОП может поддерживаться как в рантайме, так и в компайлтаме. Не будешь же ты утверждать, что тот же компилятор AspectJ вообще ничего не делает?

A> Другой вопрос, что он редко применяется динамическим образом в рантайме.


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

A> Но все равно, я считаю, что АОП — это динамическая технлогия,


Мало ли кто что считает? Есть факты. Спорить с ними не размуно.

A> в отиличии от макросов — они статичны. Естественно, макросы могут внедрять код какой-то библиотеки (той же Aspectj), но это не обсценивает идею АОП.


Опять ошибашся. Например, макросы в Лиспе вообще не ясно когда работают. Они полностью динамичны. Так что макросы в Немрле — это просто одна из возможных реализаций. Выбор в данном случае был сделан осознанно, так как это дает ряд премуществ. Да и никто не мешает запускать компилятор в рантайме.

VD>>Метапрограммирование же это более мощьное средство нежели АОП. Средствами МП воспроизвести АОП ничего не стоит. А вот обратное не верно.

A>? Мы кажется о разных вещях говорим. Есть механика внедрения АОП, а есть рантайм этого АОП. Более того метапрограммирование (как программирование на уровне АСТ, а не байткода) ничего особо великого сделать не сможет, если код уже скомпилирован и лежит в jar-е, а АОП (как методология) — сможет

Ты глубого заблуждаешся. АОП это детская поделка по сравнению с правильно приготовленным МП.

А костыли вроде Спринга, Струтса и Шале вообще никогда бы не появились будь в Яве хоть бледное подобие макросов.

A>(например тот же spring позволит навесить нужный аспект без перекомпиляции)


Ага. Потому что по факту Сприно использует интпретатор кривенького ДСЛ-я запакованного в ХМЛ. Вместо перекомпиляции будет интерпретации я никаких гарантий, что приложение не ляжет при подъеме. Таким образом программист просто переносит отвественность с себя на того кто будет конфирурировать систему.

VD>>Одно время меня интересовал АОП, но потом я понял, что это детские потягушки. Просто метапрограммированием нужно заниматься на подобающих инструментах. Не на шаблонах С++ уж точно.

A>Возможно, но как инструмент для обвешивания кода разными фкусностями в рантайме — очень даже ничего... Во всяком случае в сочетании с Java

Для этого достаточно КОП. Еще раз повторюсь, что Струтсы и Спринги — это реакция рынка на убогость Явы как языка. Фактически ява снабжается специализированными языками с ужасным ХМЛ-синтаксисом и дополнительными рантайм-модулями. И все это выдается за мега крутость и еще приправляется умными словами типа АОП.

Для Явы конечно Спринги и Струтсы позволяют решить ряд проблем и упростить разработку. Например, они помогают отказаться от привязки к конкретному контейнеру EJB, но все тоже самое можно было бы сделать и без излишней динамики. Или с динамикой, но не такой уж страншной. По крайней мере приплетение ХМЛ-ДСЛ-ей было точно перебором.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Расскажите профессионально, чем Java разработка быст
От: Константин Л. Франция  
Дата: 02.06.07 20:36
Оценка: -1 :))) :))
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, fmiracle, Вы писали:


F>>Еще там много по stl. Что характерно — часто с пояснениями, почему сделано именно так и чем это хорошо.


VD>Ага. Все пояснения начинаются с того, что компьютеры были слабенькими... оптимизаторы никакие... наследине С между ног мешало... приходилось удалять гланды через зад автогеном причем постоянно думать как не повредить наследие болтающиеся между ног.


Я понял! Для тебя с++ как баба, которая не дала. Так и хочется ее после этого вспомнить добрыми словами
Re[20]: Расскажите профессионально, чем Java разработка быс
От: Cyberax Марс  
Дата: 02.06.07 20:38
Оценка:
Здравствуйте, VladD2, Вы писали:

iT>>хм... А ты в курсе, с java-generics что можно ненароком в якобы-genric-поле записать значение не соответствующего типа, а потом получить исключение на чтении этого поля?

VD>Может и можно, но очень не просто. В любом случае их применение намного более безопасно нежели работа на Ява без них.
Элементарно просто. Уже не раз отлаживал подобный код коллег:

BasicList<User> list=.....;
setList(list); //Здесь принимается BasicList без параметров

...
BasicList<Role> roles=(BasicList<Role>)getList();
//Упс...


iT>>Java-generics — это катастрофа, вызыванная очень сильным желанием не менять jvm.

VD>Согласен, что лажавато сделано. Но все же лучше чем ничего.
Лучше, но на отдельную парадигму не тянет.

iT>>До кучи, там хватает и других дебильных ограничений, уж не знраю, чем вызыванных. Короче, смешные очень эти java-generics. Плакать хочется.

VD>Там есть и приемущества вроде ко/контрвариантности.
Ты видел КАК оно сделано внутри?
Sapienti sat!
Re[4]: Расскажите профессионально, чем Java разработка быст
От: Константин Л. Франция  
Дата: 02.06.07 20:39
Оценка:
Здравствуйте, VladD2, Вы писали:

[]

VD>Да он вообще поживет, так как есть не мало контро готовых платить в 10 раз болше за выигрышь в памяти. Только это особый рынок. А 3D уже очень скоро пересядит с С++. Ну, разве что отдельные оптимизации будут на нем писаться. Процесс уже пошел.


с++ == Герострат
Re[10]: Расскажите профессионально, чем Java разработка быс
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.07 20:43
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

VD>>АОП это костыли к ООП. Причем весьма посредственные. В ФП АОП просто не мыслим.

C>Почему это? Вполне так и мыслим.

Он там как неуловимый джо.

C>AOP — это хороший способ выносить из кода то, чего там не должно быть — работу с security, транзакции и т.п. С этим AOP очень неплохо справляется. Просто некоторые товарищи его пытались пихать везде, куда только можно.


АОП — это хреновый способ думать. Отого все рассказы про ООП заканчиваются примерамми логирования.

Что касается "справляется" хрошее МП справляется еще лучше и универсальнее. Ты можешь не просто припаивать куски тиупого кода (в смысле кода который нельзя гибко адаптировать) к неким разбросанным другим кускам кода, а можешь делать осмысленную трансформацию кода в том числе и вставляя некие куски по некоторому правилу. Причем и правило ты можешь сам придумать, и вставляемый код адаптировать к нужному месту.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Расскажите профессионально, чем Java разработка быс
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.07 20:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Элементарно просто. Уже не раз отлаживал подобный код коллег:

C>

C>BasicList<User> list=.....;
C>setList(list); //Здесь принимается BasicList без параметров

C>...
C>BasicList<Role> roles=(BasicList<Role>)getList();
C>//Упс...


Ну, и хрен ли ты хочешь если люди сами лепят приведения типов. Любое приведение типов — это потенциальный вилет. Привет любителям динамики .

C>Лучше, но на отдельную парадигму не тянет.


Тут согласен.

C>Ты видел КАК оно сделано внутри?


Я теоритически знаком.

В общем, я даже не собираюсь спорить, что это криво. Сам это много раз говорил. Но это лучше чем ничего. Да и приемущества все же какие-некакие, но есть.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Расскажите профессионально, чем Java разработка быст
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.06.07 20:59
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Я понял! Для тебя с++ как баба, которая не дала. Так и хочется ее после этого вспомнить добрыми словами


Не, как баба, что дала, но оказалась такой дурой и/или стервой, что я сам ее прогнал поганой метлой.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Расскажите профессионально, чем Java разработка быс
От: Cyberax Марс  
Дата: 02.06.07 21:03
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>>>АОП это костыли к ООП. Причем весьма посредственные. В ФП АОП просто не мыслим.

C>>Почему это? Вполне так и мыслим.
VD>Он там как неуловимый джо.
Как и все ФП в целом?

C>>AOP — это хороший способ выносить из кода то, чего там не должно быть — работу с security, транзакции и т.п. С этим AOP очень неплохо справляется. Просто некоторые товарищи его пытались пихать везде, куда только можно.

VD>АОП — это хреновый способ думать. Отого все рассказы про ООП заканчиваются примерамми логирования.
Почему же, можешь посмотреть JBoss — там оно очень даже широко используется. Там с помощью AOP делаются такие вещи, как прозрачное кэширование объектов.

Есть еще Terracotta как пример супер-AOP — там с помощью инструментации байт-кода делается прозрачная кластеризация приложений.

VD>Что касается "справляется" хрошее МП справляется еще лучше и универсальнее. Ты можешь не просто припаивать куски тиупого кода (в смысле кода который нельзя гибко адаптировать) к неким разбросанным другим кускам кода, а можешь делать осмысленную трансформацию кода в том числе и вставляя некие куски по некоторому правилу. Причем и правило ты можешь сам придумать, и вставляемый код адаптировать к нужному месту.

Просто с помощью МП можно реализовать АОП, никто с этим не спорит. Мне очень нравится современный АОП в Spring Framework'е, например, — по делу и без наворотов.

Другой вопрос, что МП можно намного проще abuse'ить.
Sapienti sat!
Re[5]: Расскажите профессионально, чем Java разработка быст
От: Didro Россия home~pages
Дата: 02.06.07 21:07
Оценка: :)))
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, VladD2, Вы писали:


КЛ>[]


VD>>Да он вообще поживет, так как есть не мало контро готовых платить в 10 раз болше за выигрышь в памяти. Только это особый рынок. А 3D уже очень скоро пересядит с С++. Ну, разве что отдельные оптимизации будут на нем писаться. Процесс уже пошел.

КЛ>с++ == Герострат

VD>>Процесс уже пошел.

Точно — уровень абстрактности С++ уже стремительно падает

Windows Vista предоставляет разработчикам новые и интересные технологии, включая WWF,WCF,WPF. Фактически в Windows Vista™ было представлено настолько много технологий, совместимых с .NET, что становится сложно отметить все новые возможности и функции, которые разработчики машинных кодов на C/C++ могут использовать в своих приложениях.

В этой статье мы рассмотрим некоторые новые возможности Windows Vista, которые затрагивают разработчиков машинных кодов на C/C++.

здесь
Re[22]: Расскажите профессионально, чем Java разработка быс
От: Cyberax Марс  
Дата: 02.06.07 21:12
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, и хрен ли ты хочешь если люди сами лепят приведения типов. Любое приведение типов — это потенциальный вилет. Привет любителям динамики .

Часто приходится из-за того, что Swing в Java не за-generic-фицирован.
Sapienti sat!
Re[9]: Расскажите профессионально, чем Java разработка быст
От: aka50 Россия  
Дата: 02.06.07 21:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, aka50, Вы писали:


VD>То что ты видил некоторые реинкарнации АОП (скороее всего в Ява) не влияет на сам АОП.

Мы о java или о чем? Конкретно для java есть AspectJ. Вот о нем и говорю, так как с другими реализациями не работал.

VD>Еще раз. Все зависит от реалзации. В принципе нет никакой необходимости что-то делать в рантайме.

> Я про другое. Дело в том, что тот же AOP дает возможность изменять поведение в рантайме. Шаблоны — это все таки compile-time.
Это полнейшее заблуждение. АОП никакого отношения к компайл-тайму или рантайму не имеет. Все зависит от реализации. Самый известный АОП-инструкмент — это AspectJ. Он работает исключительно в компайлтайме.

Ты сказал, что оно работает в компайл тайм... я тебе возразил, что aspectj замечательно работает как угодно. И в основном за счет рефлекшина. Что он умеет или не умеет по сравнению с МП мне в принципе все равно.

A>> http://www.eclipse.org/aspectj/doc/next/runtime-api/index.html так что его использование не ограничивается только адвайсами секурити или транзакций.


VD>В самой яве и дотнете тоже есть рефлекшен и можно даже код динамичемки генерировать, но это не отменяет того факта, что компиляторы компилируют код и реализуют все что нужно для ООП еще на стадии компиляции. Точно так же АОП может поддерживаться как в рантайме, так и в компайлтаме. Не будешь же ты утверждать, что тот же компилятор AspectJ вообще ничего не делает?

Не буду. Он делает. Эту часть вполне допускаю удобнее сделать с помощью МП. Но некоторых вещей (Cyberax уже написал каких) МП сам по себе не сделает...

VD>Да и никто не мешает запускать компилятор в рантайме.

Код уже скомпилирован (это допустим внешняя библиотека) и тогда это уже будет не компилятор, а "инструментатор"... И макросы тут будут хмм... ну тогда и сам AspectJ движок можно сразу макросом обозвать...

Про дсл-и и спринги не хочу в очередной флейм лезть... бо у меня самого абсолютно неоднозначное к ним отношение...
Re[2]: Расскажите профессионально, чем Java разработка быст
От: minorlogic Украина  
Дата: 02.06.07 21:24
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, flashinc, Вы писали:


VD>Да, забыл сказать об альтернативе.


VD>Если выбр стоит как Ява vs. С++. Причем ява как платформа, то можно ко всему прочему вместо языка Ява взять язык Скала. Тогда С++ будет в глубокой заднице по всем параметрам, так как кроме премущество перечисленный мной в предыдущем сообщении вы получите один из самых современных и гибких языков программирования.


VD>Другой альтернативой может стать .NET и C# 3.0, а еще лучше .NET и Nemerle. Вот тут С++ просто кромко давится бычками, а его фанаты тщетно бьются головой о бетонный пол .


Влад забыл написать конечто что это может быть альтернативой если вы пишете под WIN и ТОЛЬКО под win. Как мне кажется , это сравнительно небольшой сегмент ИТ.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.