>> по приведённой вами ссылке указаны НЕКОТОРЫЕ (но не все) отличия темплейтов от дженериков.
Поэтому этой статьёй можете хоть обчитаться.
> Это значит, что на очень большом числе архитектур генерики C# работать не будут вообще.
Гм. Учитывая, что C# работает на, по сути, ОДНОЙ архитектуре (.NET)...
> Если типов нет в языке, это не значит, что их нет вообще.
И откуда тогда В ЯЗЫКЕ возьмутся полиморфные типы?
> Кстати, конструкторов в этой таблице нет и поэтому нельзя вызвать конструктор для параметризованного типа.
В шарпе можно.
> Таким образом, генерик-функция работает фактически с одним типом -- void * с пришпиленными таблицами , по которым процессор может найти нужные ООП функции.
Это всё - исключительно детали реализации, которые никого не ебут. Вопрос не в том, что там происходит в бинарнике, вопрос в том, какие возможности у ЯЗЫКА.
> Следствие -- что генерики в Java бесполезны без ООП.
Что вы разумеете под "ООП", в данном случае? На самом деле, я полагаю, что жаба без наследования (но с реализацией интерфейсов) и с дженериками была бы весьма полезной штукой.
> Имеющий практического смысла меньше, чем ray-tracer в compile-time.
А вы что хотели от примера?
>> Вы спросили про продакшен. Мне лично представляется, что продакшен-код в подавляющем большинстве случаев содержит ОЧЕНЬ много строк. > Особенно если это индусский или китайский код.
Может быть, покажете продакшен-код, умещающийся в один ЖЖ-шный постинг?
> вбиваем sum(i=0..n-1,(2*i+1)*i*i) > После чего пишем в код обширный комментарий, проверку и строку, которая вычисляет нужное за O(1) > if(n<0) throw чего-то там; > return (n-1)*n*(3*n*n-n-1)/6;
Вы, надеюсь, понимаете, что мне не составит абсолютно никакого труда заполнять массив не заранее известными числами, а вводимыми пользователем? И будет при этом то же самое.
no subject
Date: 2010-02-12 08:57 am (UTC)Ещё раз:
>> по приведённой вами ссылке указаны НЕКОТОРЫЕ (но не все) отличия темплейтов от дженериков.
Поэтому этой статьёй можете хоть обчитаться.
> Это значит, что на очень большом числе архитектур генерики C# работать не будут вообще.
Гм. Учитывая, что C# работает на, по сути, ОДНОЙ архитектуре (.NET)...
> Если типов нет в языке, это не значит, что их нет вообще.
И откуда тогда В ЯЗЫКЕ возьмутся полиморфные типы?
> Кстати, конструкторов в этой таблице нет и поэтому нельзя вызвать конструктор для параметризованного типа.
В шарпе можно.
> Таким образом, генерик-функция работает фактически с одним типом -- void * с пришпиленными таблицами , по которым процессор может найти нужные ООП функции.
Это всё - исключительно детали реализации, которые никого не ебут. Вопрос не в том, что там происходит в бинарнике, вопрос в том, какие возможности у ЯЗЫКА.
> Следствие -- что генерики в Java бесполезны без ООП.
Что вы разумеете под "ООП", в данном случае? На самом деле, я полагаю, что жаба без наследования (но с реализацией интерфейсов) и с дженериками была бы весьма полезной штукой.
> Имеющий практического смысла меньше, чем ray-tracer в compile-time.
А вы что хотели от примера?
>> Вы спросили про продакшен. Мне лично представляется, что продакшен-код в подавляющем большинстве случаев содержит ОЧЕНЬ много строк.
> Особенно если это индусский или китайский код.
Может быть, покажете продакшен-код, умещающийся в один ЖЖ-шный постинг?
> вбиваем sum(i=0..n-1,(2*i+1)*i*i)
> После чего пишем в код обширный комментарий, проверку и строку, которая вычисляет нужное за O(1)
> if(n<0) throw чего-то там;
> return (n-1)*n*(3*n*n-n-1)/6;
Вы, надеюсь, понимаете, что мне не составит абсолютно никакого труда заполнять массив не заранее известными числами, а вводимыми пользователем? И будет при этом то же самое.