Re[39]: Чем вам всем не угодил Delphi?
От: iyura  
Дата: 12.05.08 14:44
Оценка:
Здравствуйте, kuj, Вы писали:

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


kuj>>>Еще и как имеет. Java и .NET позволяют бОльшую часть кода покрыть юнит-тестами, и позволяют применять более высокоуровневые техники: IoC, AOP, O/RM ect


I>>Юнит тестами и С++ покрывается.


kuj>Пример interaction testing на C++ в студию.


Ты и в правду считаешь технологии тестирования прерогативой управляемых сред?

I>>IoC, AOP — не знаю, что это. ORM и С++ живет.


kuj>Пример O/RM для C++ (native) в студию.


Погугли

I>>И в чем уникальность .Net и Java?


kuj>Странный вопрос, учитывая, что ты банально их не знаешь.


Хамишь
Re[40]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 12.05.08 14:49
Оценка:
Здравствуйте, iyura, Вы писали:

kuj>>>>Еще и как имеет. Java и .NET позволяют бОльшую часть кода покрыть юнит-тестами, и позволяют применять более высокоуровневые техники: IoC, AOP, O/RM ect


I>>>Юнит тестами и С++ покрывается.


kuj>>Пример interaction testing на C++ в студию.


I>Ты и в правду считаешь технологии тестирования прерогативой управляемых сред?


Я тебя попросил пример. Покажи мне аналог Moq`а, но для C++.

I>>>IoC, AOP — не знаю, что это. ORM и С++ живет.


kuj>>Пример O/RM для C++ (native) в студию.


I>Погугли


Значит сам не знаешь? Все ясно.

I>>>И в чем уникальность .Net и Java?


kuj>>Странный вопрос, учитывая, что ты банально их не знаешь.


I>Хамишь


Констатирую факт. Чего только стоит твой вопрос про try finally.
Re[38]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.05.08 15:22
Оценка:
Здравствуйте, iyura, Вы писали:

I>Юнит тестами и С++ покрывается.

Так можно говорить только с большой натяжкой.

I>IoC, AOP — не знаю, что это.

Неудивительно

I>ORM и С++ живет.

Не живет.
Покажи ORM хотябы издалека похожий на Linq2SQL

I>И в чем уникальность .Net и Java?

Может сам немного почитаешь?
Re[39]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.05.08 15:26
Оценка:
Здравствуйте, iyura, Вы писали:

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


___>>Не надо путать память и workset. Воспользуйся поиском хотя бы по местному форуму дотнет. Вопрос этот уже набил аскомину.


I>Мнэ.....А в двух словах? Ну искать и вправду долго.

Workset — количество страниц, находящихся в оперативной памяти. Именно эту величину показывает TaskManager. Эта величина никак не коррелирует с общим объемом COMMITED памяти процесса.
Re[39]: Чем вам всем не угодил Delphi?
От: iyura  
Дата: 12.05.08 15:41
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


I>>Юнит тестами и С++ покрывается.

G>Так можно говорить только с большой натяжкой.

Unit testing + C++ в гугле выдает 2 450 000 ссылок. Я не могу и не хочу заниматься анализом всего этого

I>>IoC, AOP — не знаю, что это.

G>Неудивительно

Давай так — Aspect-oriented programming.
Тогда так, например, получается http://www.aspectc.org/

IoC
http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F

(Извините, что-то не соображу как ссылки вставлять)

Где сказано, что это только в NET

I>>ORM и С++ живет.

G>Не живет.
G>Покажи ORM хотябы издалека похожий на Linq2SQL

MS не позиционирует LINQ как ORM

I>>И в чем уникальность .Net и Java?

G>Может сам немного почитаешь?

Может и ты напряжешься?
И вообще, может сбавим обороты?
Re[40]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 12.05.08 16:02
Оценка:
Здравствуйте, iyura, Вы писали:

I>>>Юнит тестами и С++ покрывается.

G>>Так можно говорить только с большой натяжкой.

I>Unit testing + C++ в гугле выдает 2 450 000 ссылок. Я не могу и не хочу заниматься анализом всего этого


Можешь не стараться. Полноценный unit testing (interaction testing в частности) без reflection не возможен.

I>>>IoC, AOP — не знаю, что это.

G>>Неудивительно

I>Давай так — Aspect-oriented programming.

I>Тогда так, например, получается http://www.aspectc.org/

Основан на препроцессинге кода — костыль.

I>IoC

I>http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F

Базируется на генерации прокси для эмуляции reflection — костыль.

I>>>ORM и С++ живет.

G>>Не живет.
G>>Покажи ORM хотябы издалека похожий на Linq2SQL

I>MS не позиционирует LINQ как ORM


Покажи хотя бы издалека похожий на nHibernate.
Re[40]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.05.08 18:40
Оценка:
Здравствуйте, iyura, Вы писали:

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


I>Unit testing + C++ в гугле выдает 2 450 000 ссылок. Я не могу и не хочу заниматься анализом всего этого

В unit-тестировании немаловажная часть — mock объекты. При отсутствии метаданных придется все писать ручками. Это очень большой оверхед.

I>Давай так — Aspect-oriented programming.

I>Тогда так, например, получается http://www.aspectc.org/
Это статическая кодогенерация, при изменении некторых параметров надо перекомпилировать приложение.
В Java и .NET можно обойтись изменением конфига.

I>IoC

I>http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F
Тут имелся ввиду не сам принцип IoC, а т.н. IoC-контейнеры. Для них верно тоже, что и для AOP.

I>>>ORM и С++ живет.

G>>Не живет.
G>>Покажи ORM хотябы издалека похожий на Linq2SQL
I>MS не позиционирует LINQ как ORM
А какая разница? C++ные варианты даже близко не валались к не-до-ORM Linq2sql

I>>>И в чем уникальность .Net и Java?

G>>Может сам немного почитаешь?
I>Может и ты напряжешься?
Я вроде как на .NET пишу, Java знаю, да и C++ немного понимаю
Re[45]: Чем вам всем не угодил Delphi?
От: _d_m_  
Дата: 12.05.08 22:45
Оценка:
Здравствуйте, kuj, Вы писали:

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


___>>Не курю, глупник. Тебе уже сто раз сказано и на пальцах показано, что тебе еще не понятно? Что, кроме документации по Visual Studio (ака MSDN) ты больше ничего не знаешь и знать не хочешь?


kuj>Есть конкретный документ — спецификация языка C# 3.0, в котором четко написано что такое деструкторы в C#. Если до тебя так туго доходит, то извини — ничем больше помочь не могу.


Тебе уже конкретно пояснили, что этот документ по Visual C# 3.0 составлен из документов ранних версий. Тебе дать ссылку на конкретный документ, стандарт языка ECMA C# 2.0 где слова деструктор нет вообще, а есть слово Finalizer? На вот, если уж с использованием гугля у тебя трудности.
Re[71]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 04:43
Оценка:
Здравствуйте, Mamut, Вы писали:

H>>MyInterface расширяется декларацией IUnknown. Расширение ни есть наследование. Идеология.


M>Обьясни, что значит расширяется.


M>

M>РАСШИРЯТЬ несов. перех.
M>1. Делать большим по площади.
M>2. Увеличивать в количестве, в объеме.
M>3. перен. Делать более обширным, распространять круг действия чего-л.



M>В любом нормальном понимании (даже не ЯП — а просто понимании) расширение это:

M>- мы сохраняем все свойства предыдущей сущности
M>- мы добавляем к предыдущей сущности новые свойства

M>И ООП здесь не причем.


Правильно, ООП тут ни при чем.

M>>>То есть AddRef, Release и QueryInterface в нем все равно будут присутствовать? Тогда любой класс, преализующий любой интерфейс будет COM-объектом, потому что в нем есть три необходимых и достаточных для COM метода — AddRef, Release и QueryInterface


H>>Все верно. С чем ты споришь? Класс будет COM-объектом (если таки продекларирует реализацию IUnknown), а MyInterface не будет COM-интерфейсом. Я это уже несколько раз написал.


M>Так как объект, реализующий MyInterface все равно обязан реализовать COM-методы AddRef, Release и QueryInterface, то MyInterface все равно является COM-интерфейсом, в котором есть три COM-совместимых метода


Мамут, ты не прав Для тебя, зебра черная или белая? (она полосатая)
Re[13]: наши менеджеры памяти самые менеджеристые менеджеры
От: hattab  
Дата: 13.05.08 04:50
Оценка:
Здравствуйте, Mamut, Вы писали:

H>>Во всех 32-битных версиях AnsiStrings используется по умолчанию.


M>Они уже научились Юникод содержать и выводить на экран?


Юникод присутствует очень давно. В VCL поддержки юникода нет. Есть сторонние компоненты, тот же TNT, с поддержкой юникода. Юникод в VCL будет в Тибуроне (Delphi 2008).
Re[73]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 04:57
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>Ни с чем она не расходится и не конфликтует. Интерфейсы, вообще, не являются фундаментальной единицей идеологии ООП.

G>Само понятие расширения однозначно соответствует наследованию в ООП. Во многих языках наследование обозначается ключевым словом extends — "расширяет".
G>Только в делфи как-то неправильно сделано.

Все правильно сделано. Ты просто понять не можешь.

G>Интерфейсы кстати имеют немалое значение в ООП.


Конечно имеют, кто же спорит.
Re[73]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 04:58
Оценка:
Здравствуйте, Mamut, Вы писали:

H>>>>MyInterface расширяется декларацией IUnknown. Расширение ни есть наследование. Идеология.

G>>>Эта идеология расходится с ООП. При том, что COM сам по себе никак с ООП не конфликтует.
G>>>Это еще раз доказывает что делфи — плохой язык.

H>>Ни с чем она не расходится и не конфликтует. Интерфейсы, вообще, не являются фундаментальной единицей идеологии ООП.


M>Кто это такое сказал?

M>Интерфейс (объектно-ориентированное программирование)

Мамут, ты сам подумай
Re[72]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 05:00
Оценка:
Здравствуйте, kuj, Вы писали:

H>>>>RTTI как раз таки позволяет (и много чего еще позволяет)


kuj>>>Что в таком случае мешает неявно добавить всех предков в таблицу COM (или что там в Delphi в этой роли)?


H>>Мешает неявность. Язык требует явного указания реализуемых интерфейсов. Кстати, этот вопрос (иерархию) вполне можно разруливать в момент компиляции и без всякой RTTI.


kuj>Вот я и говорю, что язык кривой, раз требует явно перечислять всех предков интерфейса... Это ж надо было додуматься


Ну так наследуйся от классов реализующих требуемые интерфейсы, в чем проблема?
Re[73]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 05:07
Оценка:
Здравствуйте, kuj, Вы писали:

H>>>>MyInterface расширяется декларацией IUnknown. Расширение ни есть наследование. Идеология.

G>>>Эта идеология расходится с ООП. При том, что COM сам по себе никак с ООП не конфликтует.
G>>>Это еще раз доказывает что делфи — плохой язык.

H>>Ни с чем она не расходится и не конфликтует. Интерфейсы, вообще, не являются фундаментальной единицей идеологии ООП.


kuj>Слышал про одну из основных/фундаментальных техник ОО, называемой инкапсуляцией? Похоже, что нет...


Прикол в том, что инкапсуляция достигается на уровне классов, а ни как не интерфейсов. Инкапсуляция относится к реализации, в то время, как интерфейсы есть суть чистейшая абстракция. Контракт. Интерфейсы повышают степень инкапсуляции? Как посмотреть. Свойства, в данном контексте, куда более значимы для увеличения степени инкапсуляции, но ни кто же не говорит, что они есть фундаментальная единица ООП.
Re[73]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 05:12
Оценка:
Здравствуйте, Mamut, Вы писали:

kuj>>>>Что в таком случае мешает неявно добавить всех предков в таблицу COM (или что там в Delphi в этой роли)?


H>>>Мешает неявность. Язык требует явного указания реализуемых интерфейсов. Кстати, этот вопрос (иерархию) вполне можно разруливать в момент компиляции и без всякой RTTI.


kuj>>Вот я и говорю, что язык кривой, раз требует явно перечислять всех предков интерфейса... Это ж надо было додуматься


M>Там все гораздо хуже:

M>
M>MyInterface : Interface(IUnknown)

M>MyClass : Class(MyInterface)

M>MyClass2 : Class(MyInterface, IUnknown)
M>


M>В обоих классах мы обязаны реализовать методы _AddRef, _Release и QueryInterface, потому что так требует их наличие в IUnknown, но MyClass мы не сможем привести к IUnknown. Несмотря на то, что он является наследником IUnknown


Мамут, класс не может являться наследником интерфейса.

M>И эта кривизна называется "идеологией"


Как ты можешь рассуждать об идеологии, в то время как, позволяешь себе подобные высказывания (выделено)
Re[69]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 13.05.08 05:14
Оценка:
Здравствуйте, AndrewJD, Вы писали:

H>>Передай, пожалуйста, по DCOM, динамический массив из анси-строк. Если при этом у тебя проблем с маршалингом не возникнет, я съем свои носки, а ты сможешь сказать, что в Delphi все интерфейсы COM-совместимы.


AJD>Думаю, с custom маршалером можно будет передать без проблем.


Да. Только после этого называть такой интерфейс COM-совместимым, это все равно, что назвать танк летающим только потому, что он в транспортном самолете находится.
Re[10]: Препроцессоры для Delphi
От: hattab  
Дата: 13.05.08 05:18
Оценка:
Здравствуйте, squid, Вы писали:

H>> ...CodeGear сообщает о намерениях вести разработки для гетерогенных платформ (пойдем на Linux, MacOS?)


S>они бы хидеры из Windows SDK хоть перевели на Delphi...


Это давно не проблема... У джедаев давно есть полный комплект (JWA), есть конверторы C2Pas.
Re[74]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.05.08 05:47
Оценка:
Здравствуйте, hattab, Вы писали:

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


H>>>Ни с чем она не расходится и не конфликтует. Интерфейсы, вообще, не являются фундаментальной единицей идеологии ООП.

G>>Само понятие расширения однозначно соответствует наследованию в ООП. Во многих языках наследование обозначается ключевым словом extends — "расширяет".
G>>Только в делфи как-то неправильно сделано.

H>Все правильно сделано. Ты просто понять не можешь.

Это ты понять не можешь в силу ограниченности кругозора.

G>>Интерфейсы кстати имеют немалое значение в ООП.

H>Конечно имеют, кто же спорит.
Ты споришь
Re[14]: наши менеджеры памяти самые менеджеристые менеджеры
От: Mamut Швеция http://dmitriid.com
Дата: 13.05.08 06:04
Оценка: +2
H>>>Во всех 32-битных версиях AnsiStrings используется по умолчанию.

M>>Они уже научились Юникод содержать и выводить на экран?


H>Юникод присутствует очень давно. В VCL поддержки юникода нет.


Все. На этом на Дельфи можно ставить крест. Если они за нцать лет так и не удосужились в Юникодном мире в свои собственные стандартные компоненты не вставить Юникод

H> Есть сторонние компоненты, тот же TNT, с поддержкой юникода. Юникод в VCL будет в Тибуроне (Delphi 2008).


Внимательно смотри отличие:
Java — поддержка Юникода нативно
.NET — поддержка Юникода нативно
Qt — поддержка Юникода нативно
Delphi- а вот есть сторонние компоненты...
... << RSDN@Home 1.2.0 alpha 4 rev. 1084>>


dmitriid.comGitHubLinkedIn
Re[11]: Препроцессоры для Delphi
От: squid  
Дата: 13.05.08 06:06
Оценка:
Здравствуйте, hattab, Вы писали:

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


H>>> ...CodeGear сообщает о намерениях вести разработки для гетерогенных платформ (пойдем на Linux, MacOS?)


S>>они бы хидеры из Windows SDK хоть перевели на Delphi...


H>Это давно не проблема... У джедаев давно есть полный комплект (JWA), есть конверторы C2Pas.


простой пример — DirectShow. Видел 3 варианта, во всех куча багов и нет Вистовских фич вроде EVR в нормальном виде.

начнешь плотно работать — видно сколь криво это сделано. а чтото более бажное и громоздкое чем JVCL вообще сложно представить.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.