Здравствуйте, rudzuk, Вы писали:
R>Это, конечно, глупость несусветная. Особенно про перегрузку операторов (запахло костыльным дженерик-мафом ).
При чём тут женерик-маф? Я на Delphi оттрубил своё по полной программе, так что пишу с полной ответственностью.
Банально никаких коллекций на Delpgi не было, кроме TList.
Сделать простую штуку типа "отсортировать список по пользовательскому критерию" —
боль, ужас, унижение.
R>Например, дженерики появились в дельфях всего на три года позже, чем в шарпе.
И на 20 лет позже, чем в C++.
R>А во времена турбовижн алгоритмы кастомизировались — та-да-м — процедурными типами!
Ага. Расскажите мне, во сколько строк кода запишется на Object Pascal какая-нибудь банальщина типа "обойти граф, заданный моей объектной моделью, в глубину, отфильтровав по параметру, частично заданному пользователем, и собрать некую агрегатную величину". Ну там — берём AST программы, ищем узлы-референсы, заимпортированные из модуля X, для них считаем сумму условной вычислительной сложности.
На более-менее любом современном языке это будет весьма простой генератор/итератор, за которым .filter(...).map(...).reduce(...).
На Delphi остаётся только пердолиться с "процедурными типами" и/или Visitor Pattern.
R>
Возможно, на
современном Delphi ситуация как-то поменялась; в том, который был актуален во времена расцвета его популярности, всё это суровая правда.