эх раз, еще раз (программистское)
Еще Бисмарк заметил, что стандартные библиотеки - как сосиски: приятнее использовать по назначению, не зная в подробностях, как их делают.
В исходниках 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
no subject
Блин. Терпеть не могу этого уродливого бегемота.
Вот то ли дело было читать исходники стандартной библиотеки в FreeBSD: все в очевидных местах, просто и ясно.
no subject
Так точно
Re: Так точно
no subject
no subject
(если мы не говорим про желание узнать что же делает конкретно glibc)
(no subject)
no subject
glibcmsvcrt не используется, и исходники его библиотек не менее интересны.Ты знаешь, например, что в Турции и Азербайджане toupper будет работать не так, как в остальном мире?
(no subject)
(no subject)
(no subject)
(Anonymous) - 2009-10-09 15:39 (UTC) - Expand(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(звук, похожий на звук у в русском, но с неокругленными
(no subject)
no subject
no subject
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Как это -
// somedev1 - 6/7/02 Adding temporary tracking of Login screen
// somedev2 - 5/22/07 Temporary my ass
no subject
no subject
#define TYPE int
#include "sort1.inc"
#undef TYPE
#define TYPE long
#include "sort1.inc"
#undef TYPE
а в sort.inc написать единственную копию void sort(TYPE x[], int off, int len) { ... }
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
no subject
no subject
но про костыль и его характеристику ты, безусловно, прав :)
no subject
И что, при подстановки 7 разных типов он не сгенерирует 7 реализаций, отличающихся только типом?
(no subject)
(Anonymous) - 2009-10-09 20:15 (UTC) - Expand(no subject)
(no subject)
no subject
Копаясь в исходниках SDK, мне вот это понравилось в комментарии (или JavaDoc-е):
Fairness generally decreases throughput but reduces variability and avoids starvation.
Это для BlockingQueue было написано. Но отлично подходит для макроэкономики :) Особенно в условиях кризиса.
no subject
no subject
Мне кажется не смотря на дублирование, производительность таких критичных функций, слегка выросла...
no subject
Вообще в джаве что-то многовато религии - перегрузка операторов плохо, запретим (но сам попользуемся немного в стрингах, так удобнее), темплейты - плохо, запретим (впрочем, без них грустно, подумали и разрешили на половину), enums - вообще зло (но подумав пару лет добавили, но из религиозных соображений в виде жуткого монстра), и т.д.
Мне кажется, что дизайн языка для реального использования, за стенами университета, должен следовать более прагматичному подходу...