эх раз, еще раз (программистское)
Oct. 8th, 2009 11:45 pmЕще Бисмарк заметил, что стандартные библиотеки - как сосиски: приятнее использовать по назначению, не зная в подробностях, как их делают.
В исходниках java.util.Arrays, когда после множества фасадных методов сортировки с разными опущенными аргументами дело доходит до "мяса", до настоящего кода сортировки, его предваряет следующий комментарий:
А дальше идет семь совершенно одинаковых копий одного и того же кода квиксорта, отличающихся только типами аргументов и локальных переменных. По две страницы кода на каждую копию. Например, основной метод начинается так (к нему еще есть три вспомогательных, тоже в семи копиях каждый).
C'est la vie.
В исходниках java.util.Arrays, когда после множества фасадных методов сортировки с разными опущенными аргументами дело доходит до "мяса", до настоящего кода сортировки, его предваряет следующий комментарий:
/* * The code for each of the seven primitive types is largely identical. * C'est la vie. */
А дальше идет семь совершенно одинаковых копий одного и того же кода квиксорта, отличающихся только типами аргументов и локальных переменных. По две страницы кода на каждую копию. Например, основной метод начинается так (к нему еще есть три вспомогательных, тоже в семи копиях каждый).
private static void sort1(long x[], int off, int len) { ... private static void sort1(int x[], int off, int len) { ... private static void sort1(short x[], int off, int len) { ... private static void sort1(char x[], int off, int len) { ... private static void sort1(byte x[], int off, int len) { ... private static void sort1(double x[], int off, int len) { ... private static void sort1(float x[], int off, int len) { ...
C'est la vie.
no subject
Date: 2009-10-09 12:46 am (UTC)no subject
Date: 2009-10-09 01:51 am (UTC)А про убиться апстену спорить не буду. Если б не крайняя нужда, то писать на жабе нипочем не стал бы.
no subject
Date: 2009-10-09 02:06 am (UTC)no subject
Date: 2009-10-09 03:31 am (UTC)no subject
Date: 2009-10-09 03:33 am (UTC)no subject
Date: 2009-10-09 10:09 am (UTC)Даже имея Generics - в вещах, где в первую очередь важна скорость (таких, как сортировка), банальное копирование кода для разных типов разумнее красивой единой и абстрактной, но медленной реализации.
no subject
Date: 2009-10-09 02:16 pm (UTC)no subject
Date: 2009-10-09 08:34 pm (UTC)