ailev.ru

Обсуждение

В архиве: 22 комментария.

Читать и комментировать в ЖЖ ↗

indeyets · 22 марта 2007

Комментарий

использованию AOP в настоящий момент есть одно серьёзное препятствие по-настоящему правильная реализация концепции есть только для Java вся надежда на то, что в следующей итерации JVM станет просто подключать к ней новые языки и, следовательно, процесс портирования AOP-модуля упростится

Анатолий Левенчук · 22 марта 2007

Комментарий

Реализаций AOP есть множество, и не только для Java. Просто для Java реализаций очень много разных, среди них поэтому легко выбирать плохие и хорошие :) Серьезные препятствия перечислены в статьях по промышленным применениям: предрассудок, что изменения в тексте программы, вносимые AOP, приводят к меньшей устойчивости сопровождения программы, меньшему пониманию того, как программа работает. Главное препятствие тут то же, что в функциональном программировании -- требуется особый заворот мозгов, что не каждому программисту легко дается. Отсюда -- малый рынок сбыта, отсюда -- малое число проектов, которые доводятся до товарного вида (все финансирование пока грантовое, или open source -- большие деньги, достаточные для производства продуктов, а не "доказательства концепций" в эту область еще не пришли. И -- непонятно, придут ли, если присматриваться к судьбе "настоящего ООП/Smalltalk" и функционального программирования).

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

indeyets · 22 марта 2007

Комментарий

реализаций много, но вменяемая реализация одна: AspectJ. Она принципиально отличается тем, что накладывает аспекты поверх уже скомпилированной программы вмешиваясь в байткод а FP сейчас как раз на подъёме. В проф-кругах все только о Хаскелле и говорят :)

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

Анатолий Левенчук · 22 марта 2007

Комментарий

Так я, вроде, именно про вмешательство в байткод говорю (и ссылку на Piumarta привел, который в VVM обеспечивающие это функции вводит). Не только AspectJ вмешивается в байткод. Если говорить о "подъеме", то (кроме "логического программирования" типа Prolog, пожалуй ;) сейчас все разные "программирования" на подъеме -- тот же Smalltalk тоже вполне начинает процветать, по мере того, как скорость его приближается к 50% от скорости кода на C, но с сохранением всех его пряников. Я думаю, после работ Piumarta по синтезу объект-ориентированного и функционального подходов в рамках общей VVM-машины с портированием на десяток платформ в мозгах будет серьезный сдвиг, и можно говорить о новом поколении программирования. Уровень языков (число строк программы на один концепт, который программист пытается сообщить тупому компьютеру) поднимется существенно, оценки Алана Кея и Яна Пиумарты -- число строк в реализации полномасштабной программной среды с нынешних 230000 строк может упасть до 20000 строк. Это значит, что язык может быть выразительней в десяток раз по сравнению с сегодняшним Smalltalk. Ради такого дела в университетах можно и устроить массовый тренинг по заворачиванию мозгов.

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

Имя не сохранено · 22 марта 2007

Комментарий

Реализаций много: http://en.wikipedia.org/wiki/Aspect-oriented_programming Какая из них вменяемая, какая нет - черт его знает. Вот только каково практическое применение АОП? Я ищу средство повышения емкости и выразительности языка, скорости разработки, а получаю средство логгирования, абсолютно мне не нужное.

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

indeyets · 22 марта 2007

Комментарий

при чём тут логгирование? Цель AOP очень проста: вынесение избыточно повторяющегося кода во вне не изменяя иерархию объектов отсюда вытекают и возможные применения

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

Анатолий Левенчук · 22 марта 2007

Комментарий

Про трейсинг как основное применение AOP -- это такой миф, на этот миф как очень неудачный антипиар жалуются спецы по AOP. Поглядите на статьи по ссылкам: там совсем-совсем другие примеры (например, кэширование или работа с правами).

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

Имя не сохранено · 22 марта 2007

Комментарий

Вот при этом тут и логирование. А еще сериализация, маршаллинг, трассировка и еще пяток кроссклассовых задач. И все? Емкостью Сквика и VVM даже и не пахнет.

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

kouzdra · 22 марта 2007

Комментарий

Дело в том, что лямбда-выражения и функциональные типы - это вообще не ООП. В принципе замыкания-то в Жабе и так есть - вложенные анонимные классы. Тут в другом дело - уже и Java начинает уходить от ООП в сторону FP.

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

kouzdra · 22 марта 2007

Комментарий

ST довольно много позаимствовал из лямбда-исчисления (не только замыкания - например - красивая реализация булевских - прямая калька оттуда-же). Что и не удивительно - все-таки весьма значимая и известная вещь, а тогда народ был образованный. Но дело в том, что сейчас-то идет просто процесс трансформации всего этого в FP. Там в конце еще очень говорящий список фамилий - если знать, кто есть кто.

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

Анатолий Левенчук · 22 марта 2007

Комментарий

Вы неправильно понимаете процесс. Стремительно идет интеграция функционального и объектного подходов. Интеграция, а не отход от ООП и переход к функциональному. Я постил тут (уже неоднократно ;) ссылки про combined object-lambda. Будущее как раз за этим подходом. Лучшее из двух миров, и там в статьях еще теоретическое обоснование, почему любого одного из них -- недостаточно.

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

kouzdra · 22 марта 2007

Комментарий

"Интеграцию" эту уже лет 20 пытаются осуществить. Оно не скрещивается. Вопрос был только, кто кого сожрет. Сейчас видно кто сжирает. PS: Собственно и неудивительно - подходы слишком разные - "натурфилософия" против "формальной логики".

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

Анатолий Левенчук · 22 марта 2007

Комментарий

Никто никого не сжирает: у вас предвзятый взгляд. Эти "слишком разные подходы" наконец-то объединяются "на равных" -- в рамках общей VVM. Советую почитать оригинальные тексты Ian Piumarta, чтобы понять суть объединения object-lambda, и почему оно вообще стало возможным. И какие концепты добавляются еще (ибо ООП и лямбдой подходы в программировании не ограничиваются).

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

kouzdra · 22 марта 2007

Комментарий

Видите ли - FP - это не концепт. Это просто математический формализм. В том и дело - формализм нельзя смешать с "парадигмой" и прочим размахиванием руками. Если "размахивание руками" остается в теме - пролетает формализм. Иначе - формализм сжирает "интуитивные подходы". Ну это как пытаться сочетать алхимию с химией.

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

Анатолий Левенчук · 22 марта 2007

Комментарий

Да-да. Ian Piumarta как раз про формализмы. Формализм object и формализм lambda. Обратите внимание не FP, a lambda. Ну почитайте тексты, а то с вами неинтересно уже.

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

kouzdra · 22 марта 2007

Комментарий

Ну дайте ссылку на конкретные статьи - а то, то что мне находится говорит, что Ian Piumarta - молодой INRIA-шный деятель, который пытается высосать что-то "диссертабельное" из 15 лет назад вдоль и поперек истоптанной в том же INRIA темы. PS: Не никакого "формализма lambda". Есть обычная матлогика, частью которой является лямбда-исчисление (так же как теория типов, теория категорий и проч.). И есть "компьютерная наука". Ну не сочетаются они.

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