эх раз, еще раз (программистское)
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-08 10:50 pm (UTC)no subject
Date: 2009-10-08 10:54 pm (UTC)Блин. Терпеть не могу этого уродливого бегемота.
Вот то ли дело было читать исходники стандартной библиотеки в FreeBSD: все в очевидных местах, просто и ясно.
no subject
Date: 2009-10-08 10:56 pm (UTC)Так точно
Date: 2009-10-08 10:57 pm (UTC)Re: Так точно
Date: 2009-10-09 03:55 am (UTC)no subject
Date: 2009-10-09 02:30 am (UTC)no subject
Date: 2009-10-09 03:19 am (UTC)(если мы не говорим про желание узнать что же делает конкретно glibc)
no subject
Date: 2009-10-09 02:14 pm (UTC)no subject
Date: 2009-10-09 07:28 am (UTC)glibcmsvcrt не используется, и исходники его библиотек не менее интересны.Ты знаешь, например, что в Турции и Азербайджане toupper будет работать не так, как в остальном мире?
no subject
Date: 2009-10-09 08:05 am (UTC)меня всегда это удивляло в макакоси -- если они хранят FS case-нечувствительно, что они делают с неоднозначными преобразованиями upper <-> lower? типа сигма-сигма конечная, Ii.
no subject
Date: 2009-10-09 09:29 am (UTC)no subject
Date: 2009-10-09 03:39 pm (UTC)no subject
Date: 2009-10-09 09:43 pm (UTC)no subject
Date: 2009-10-09 10:43 pm (UTC)no subject
Date: 2009-10-09 10:46 pm (UTC)no subject
Date: 2009-10-11 02:19 am (UTC)no subject
Date: 2009-10-11 07:24 am (UTC)no subject
Date: 2009-10-20 12:51 am (UTC)звук, похожий на звук у в русском, но с неокругленными губами
по-русски обычно говорят "ы", и "ы" же используется в кириллических тюркских алфавитах. ı ближе к заднему ряду, но это детали.
в швейцарском (de-CH) умляуты ä/ö/ü при капитализации всегда переходят в диграфы Ae/Oe/Ue. это связано с тем, что на печатных машинках (и потом на клавиатурах) надо было уместить одновременно немецкую, французскую и итальянскую диакритику, и на редко использующиеся заглавные буквы места не хватило.
во французском (fr-FR, но не fr-CA!) есть различие между capitales (обычно без диакритики) и majuscules (обычно с диакритикой). и то, и другое переводится на английский как capital letter.
и т.п.
вообще правила сортировки, например, тоже часто зависят от языка, так что это всё никого удивлять по идее не должно.
no subject
Date: 2009-10-20 12:59 am (UTC)(звук, похожий на звук у в русском, но с неокругленными
Date: 2009-12-19 06:30 pm (UTC)no subject
Date: 2009-12-19 06:34 pm (UTC)