![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Попалась в сети маленькая статья. Думаю кому-то будет интересно:
http://www.itk.ru/article/oo_paul.shtml |
|||
|
||||
setq |
|
|||
Unregistered |
Интересно посмотреть на этот CLU
|
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
Несогласен со многими утверждениями. Тем более, статья устарела.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
||||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
LSD
![]() Для начала, в Яве уже есть дженерики aka параметризованные типы aka шаблоны. Потом я совершенно не вкурил, что там аффтар писал про "сохранение доступности" и необходимость использования public-членов в Яве. Затем, меня удивило, что "в новых версиях С++ появились шаблоны...". Я думал, они были еще давным-давно ![]() |
|||
|
||||
LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Генерики, это не шаблоны.
Как я его понял, с классами надо работать только через интерфейс, есть такие-то методы и все, никаких полей наружу не выводить. А вообще мне кажется что за идеал он считает COM, особенно вот эта фраза:
Ну просто один в один Windows Scripting. На ML можно, ты правда повесишься реализовывать хотябы сложение для него, но теорерически возможно. Про производительность я даже не упоминаю. Это скорей так, математическая абстракция, чем жизненная необходимость. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
Хм. А чем дженерики отличаются от шаблонов в Сцы++?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Не порождают дополнительный код, это только опция языка. Что-то типа autoinboxing, чуть удобней писать код, но ничего принципиально нового нет. Код с генериками запросто можно скомпилировать для выполнения в JVM версий младше 1.5. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
||||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Я не знаком с генериками в .NET. Борландовский компилятор это умеет. Там нет ничего такого, что требавало бы поддержки со стороны JVM. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
В Java, как сказал LSD, это не более чем синтаксический сахар. В .NET дженерики напрямую поддерживаются рантаймом, и JIT создает для value-типов более эффективные специализации — без boxing/unboxing. Хм... «Формализовано» — это, пожалуй, не совсем удачный термин в данном контексте. Никакого математического формализма за повсеместным применением исключений в Java/.NET не стоит. Просто их фреймворки навязали стиль “exceptions everywhere”, и им предпочитают пользоваться, хотя «индусам» от программирования это не помеха. Что до C++, то как раз в стандартной библиотеке используются только исключения. Сама статья производит впечатление поверхностной. Почему-то из громадного числа ОО-языков выбраны только три, и один из них является академическим экспериментом, не дожившим до наших дней. Почему не Smalltalk или не CLOS, раз уж захотелось рассмотреть немейнстримные подходы к ООП. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
chipset |
|
||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 4 Всего: 164 |
А ну, попробуй обратиться к Win32Api функциям из C#? Неужто тоже выбрасывают исключения? :O Задолбало уже ассоциирование С++ c MFC или, того хуже, Win32Api. C++ это STL и Boost. А теперь критика статьи.
Я так полагаю аффтар немного недоучил C++. Если выделять C++ методы в .cpp файл то не надо никакой перекомпиляции.
Если вы такие умные то почему вы такие бедные? Я про этот CLU в первый раз вообще слышу, судя по тому что статья старая, он так и остался "идеальным" языком.
Аффтар не читал никогда Александреску. --- Со всем остальным я согласен. --------------------
|
||||||||||
|
|||||||||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Я так полагаю, речь идет об изменении сигнатур private-методов. Тогда от перекомпиляции уже не отвертишься, хотя по идее это не меняет контракт класса, и клиентам должно быть все равно. И с трехуровневой моделью тоже? По мне так это overkill во многих случаях. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
да, частенько это неприятно, прчина простая - чтобы выделить объект в стеке надо знать его размер но если это уж сильно напрягает и если никто не хочет выделять объект в стеке, то пусть выделит public-часть, а реальный объект унаследует от нее и никому снаружи модуля не показывает... в том-то я приятность C++ - в нем много чего не встроено (как элемент языка), но это можно сделать Добавлено @ 23:55 ну или privat-часть выделить в отдельный объект, а в основном оставить на нее указатель, это уж кому как нравится... -------------------- qqq |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |