— Он ненавидел меня, потому что я с ним заговорил.
— Заговорил? — возбужденно воскликнул Форд. — То есть как «заговорил»?
— Очень просто. Меня охватила жуткая тоска. Я подключился к его компьютеру и подробно изложил ему свои взгляды на Вселенную.
— И что случилось? — напряженно спросил Форд.
— Он покончил жизнь самоубийством, — уныло сообщил Марвин и поплелся к «Золотому сердцу»
Сайты на lisp — шиза, но ведь и плюсы — не подарок:) Надо искать того, кто будет не просто писать на C++, а делать это осмысленно и крайне аккуратно. Иначе не просто прострелит себе ногу, а устроит взрыв кишки в стену расчлененку и т.д.
Впрочем, наверняка на hacker news все это тоже уже обсуждалось.
Мы изучили Ваше коммерческое предложение по разработке информационной системы и приняли решение приобрести некоторое количество травы, которую вы курите.
Кому как. Мне, например, принудительная группировка писем в обсуждения не нужна совершенно, но отключить ее в gmail не получается. Простого UI к почте для «телефонных» браузеров больше нет. Ну а IMAP-сервис и gtalk вообще регулярно уходят куда-то в астрал.
Во-первых, если язык не поддерживает value-типы, то вместо массива объектов получается массив ссылок на объекты, раскиданные по всему хипу.
Во-вторых, иногда нужно выполнять какую-то операцию над значением конкретного поля сразу у кучи объектов. В таком случае параллельные массивы эффективнее. Кроме того, при итерации по двум массивам процессор может выделить под это дело не одну, а две строки n-way-кэша.
Вдогонку к предыдущему комментарию:
(Notion of subsignature) allows a method whose signature does not use generic types to override any generified version of that method. А с MyClass получается наоборот — мы пытаемся generified-версией метода переопределить raw-версию.
Вроде все нормально. В 8.4.2 приводится пример наследования от обыкновенного, не-raw-типа с generic-методом. В посте — наследование от raw-типа со стертыми сигнатурами всех методов.
Ну да, так и есть. По сути, тут наследование не от исходного BaseClass, а от другого, raw-типа со стертыми параметрами. В raw-классе параметры типов стираются еще и у его собственных методов, полей и конструкторов. Поэтому абстрактный метод в этом raw-типе выглядит как test(Class clazz), и реализовывать надо именно такой метод.
Насчет обратной совместимости — тоже правильно, эту упячку придумали для того, чтобы можно было параметризовывать старый код, не затрагивая клиентов этого кода.
The type of a constructor (§8.8), instance method (§8.8, §9.4), or non-static field (§8.3) M of a raw type C that is not inherited from its superclasses or superinterfaces is the erasure of its type in the generic declaration corresponding to C.
Впрочем, наверняка на hacker news все это тоже уже обсуждалось.
Ну пользователи же умные, сами что-нибудь придумают. Вот, О'Рейли уже статьи пишет.
Во-вторых, иногда нужно выполнять какую-то операцию над значением конкретного поля сразу у кучи объектов. В таком случае параллельные массивы эффективнее. Кроме того, при итерации по двум массивам процессор может выделить под это дело не одну, а две строки n-way-кэша.
(Notion of subsignature) allows a method whose signature does not use generic types to override any generified version of that method. А с MyClass получается наоборот — мы пытаемся generified-версией метода переопределить raw-версию.
Насчет обратной совместимости — тоже правильно, эту упячку придумали для того, чтобы можно было параметризовывать старый код, не затрагивая клиентов этого кода.
The type of a constructor (§8.8), instance method (§8.8, §9.4), or non-static field (§8.3) M of a raw type C that is not inherited from its superclasses or superinterfaces is the erasure of its type in the generic declaration corresponding to C.