Немного крем-ликёра перед сном, и вот что хочется сказать...
В начале сотворил Бог небо и землю.
Земля была пуста и безлика, тьма была над бездной, и Дух Божий парил над водами.
Бог задался вопросом, что такое "над", если еще не заданы системы отсчёта, и тут же словил null pointer exception.
"Пить надо меньше" подумал Он, и задался вопросом: каким хреном отличается небо и земля?
Допустим,...
Читать далее... земля - это то что черное, а небо - то что синее.
Но почему небо синее, а не фиолетовое? Ведь длина волны фиолетового спектра короче, а значит он должен лучше рассеиваться?
И сказал Бог: «Да будет свод между водами, чтобы отделить воду от воды».
Воду от воды. Где-то я это уже видел. Вода вода = new Вода();
Бог написал воду на Джаве и увидел, что в принципе это хорошо.
Никакой воды за небесным сводом не было, но облегчать людишкам квест отсутствием общения с эфирщиками Он не собирался.
Бог создал свод и отделил воду под сводом от воды над ним, что бы это ни значило, и стало так.
Бог назвал свод небом, потому что дефинишены можно пихать в любую часть бейсик блока, несмотря на форвард референс на "небо" в самом начале файла.
Каким-то образом это собралось, это было подозрительно, но фичу нужно было допилить до конца недели.
Был вечер, и было утро – день второй.
И сказал Бог: «Да соберутся вместе воды под небом, и да появится суша», и стало так.
Вообще-то воды были уже собраны и слинкованы.
В этом месте начали появляться циклические ссылки, потому что слинкованная вода и так уже была и над небом, и под небом, и Garbage Collector начал натужено поскрипывать.
Бог позвал Шипилёва, но тот не отозвался.
Плюнув на всё, бог назвал сушу землей (тут тоже должно было упасть, смотри начало файла - но не упало), а собранные воды назвал морями.
И увидел Бог, что это хорошо, хоть и тормозит.
Спишем всё на джаву, подумал Бог, все знают, что джава тормозит.
«Да произведет земля растительность: растения с их семенами и различные виды деревьев на земле, которые приносят плод с семенем внутри»,
– сказал Бог, и стало так.
Так как ни случайности, ни эволюции бог еще не произвел, то пришлось сделать PlantFactory и вызывать у него методы.
Земля произвела растительность: разные виды растений, приносящих семя, и все виды деревьев, приносящих плод с семенем внутри.
Какая срань, подумал Он. Ведь если фактори грузит РАЗНЫЕ виды растений, то для каждого растения по классу, а мы же не можем собирать класс дефинишены через Garbage Collector.
Когда-нибудь это упадет с out of memory, и то станет концом света.
И Бог увидел, что это хорошо. Был вечер, и было утро – день третий
И Бог сказал: «Да будут светила на небесном своде,
чтобы отделять день от ночи,
и пусть они служат знаками,
чтобы различать времена,
дни и годы,
и пусть они будут светильниками на небесном своде,
чтобы светить на землю».
И стало так.
Он создал два API - одно для календаря, а другое Joda Time, чтобы управлять временем. И оба были говно.
Тогда он создал еще и время по JEP 150/JSR 310, но и оно было полное говно.
С программированием у него всегда было так себе.
Тогда в отчаянии,
Бог создал два великих светила – большое светило, чтобы управлять днем, и малое светило, чтобы управлять ночью, а также Он создал звезды.
Бог поместил их на небесном своде, чтобы они светили на землю, управляли днем и ночью и отделяли свет от тьмы.
Бог увидел, что это хорошо.
По крайней мере, лучше, чем JSR 310.
Был вечер, и было утро – день четвертый.
Бог сказал: «Да наполнится вода живностью, и да полетят над землей по небосводу птицы».
Бог создал огромных морских чудищ, разные виды движущейся живности, кишащей в воде, и разные виды крылатых птиц.
И увидел Бог, что это хорошо, но тормозит пиздец.
Идея была в том, что если наполнять всё императивным образом вручную, то нельзя использовать рантайм оптимизации, для копирования горячих участков описаний живности.
Пусть плодятся сами - понял Он.
Бог благословил их и сказал: «Плодитесь и размножайтесь, наполняйте воды в морях, и пусть птицы множатся на земле».
Был вечер, и было утро – день пятый.
И сказал Бог: «Да произведет земля разные виды живности: скот, пресмыкающихся и диких зверей», и стало так.
Бог создал разные виды диких зверей, и скота, и все виды пресмыкающихся.
Особенно ему нравилось, когда перед ним пресмыкались всякие джаваскриптеры, не ведающие джаву, также всякие скоты не умеющие чистить память.
И увидел Он, что это хорошо. Очень хорошо.
Но потом Бог понял, что дедлайн близится, и писать осмысленно уже нет времени.
Время применить копипасту - понял он, не предчувствуя ничего хорошего.
Тогда Бог сказал: «Создадим человека – Наш образ и Наше подобие" и нажал shift+F5.
Копипаста собралась, и это уже внушило надежду.
« – пусть он царствует над рыбами морскими и птицами небесными, над скотом, над всей землей, и над всеми пресмыкающимися».
Вначале он подумал, что не стоит так обижать джаваскриптеров, но потом понял, что джаваскриптеров еще не существует. Они появятся только в 21м веке после рождества его.
Так Бог сотворил человека копипастой по образу Своему,
по образу Божьему Он сотворил его;
мужчиной и женщиной Он сотворил их.
Бог благословил их и сказал: «Плодитесь и размножайтесь; наполняйте землю и владейте ею. Царствуйте над рыбами морскими, и птицами небесными, и над всеми пресмыкающимися, а джаваскриптеров не трогайте, у них няшные кнопочки».
Затем Бог сказал: «Я даю вам все языки программирования со всеми паттернами по всей земле и все деревья включая красно-черные,
дающие более оптимальный код;
они будут вам в пропитание, потому что если жить в россии, а получать бабки за рубежом - неплохие деньги выходят.
И всем зверям земным, и всем птицам небесным, и всем пресмыкающимся и джаваскриптерам – всем, в ком дышит жизнь,
– Я даю в пищу всякую зелень (в смысле, не рубли)».
И стало так.
Бог посмотрел на все, что Он создал, и все было очень хорошо.
Был вечер, и было утро – день шестой. Бухнуть, выспаться до 8 утра, и на встречу с заказчиком.
Мироздание продолжало немного подлагивать на stop-the-world'ах.