(no subject)
May. 31st, 2012 12:40 amЯ не часто мучаю вас программистскими постами. Это сойдет за извинение.)
Был у нас на работе такой программист. Не задержался.
Однако успело изрядно накодить. Меня забавляет, как код отражает всю человеческую персоналию. Можно писать психологическую диссертацию "Код, как образ и схемотехника личности".
Я бы сказал, что самый лучший код отражает личность, способную на бесконечное саморазвитие. В живую я сталкивался с тем или иным маразмом. Да и мой мои творения в общем-то тоже. Но тут речь идет об особом клиническом случае. Человек курил махорку, имеет шрамы на голове, разведен, полу-вменяем и психует по пустякам. При этом перфекционист. Любит чтобы было написано "чистенько". Я с ним не спорил, потому, что не люблю слез и истерик.
Теперь мы решили откомпилить этот С++ код на униксе. На старой "соляре" SunOS 5.8. На униксе маразм не проходит. Старые компиляторы, как противные старые вахтеры, не любят извращенцев и секс после 12 ночи. Суть проблемы, которую вытерпел виндовый компилятор: Имеется класс А, в котором определен reference-counted обьект Б, который и является имплементацией почти всей функциональности. Далее програмеру вступило в голову и ниже пояса в классе Б использовать класс А, потому, что нужно было векторное представление А, которое тоже было А. И конечно в классе Б используются STL темплейты и контейнеры класса А. Тут вообще можно уже мучительно застонать от маразма.
Виндовый компилятор не истанциирует темплейт пока его где-то об этом не попросят, что на самом деле весьма разумная идея. Старый униксовый компилятор, как старый zольдат, который "не знает слов любви". Ну не знает он слов любви, не знает этих дополнительных 150 восточных сексуальных позиций в приложении к Камасутре. Представляете, как может купулировать очень старый контуженый артиллерист? Ну так вот старый "соляровый" компилятор хочет сразу ясности в отношениях и инстанциировании темплейтов не отходя от кассы. И конечно нарывается на несознанку программиста. Конечно когда компилируется класс Б нельзя инстанциировать темплейты с классом А, потому, в классе А обьект Б используется. В принципе мне понятно ощущение компилятора - он не хочет лишнего геморроя и хочет пепси-колу в постель.
Но тут еще есть и мои чувства, наблюдающего весь этот ментальный зоопарк. Я вообще за то, чтобы переписать эти два класса, чтобы было действительно "чистенько"... Но это больше похоже не лечение шизофрении в параноидальной форме. Сначала надо купировать паранойю, потом, медленно лечить от раздвоения личности. В общем работа программиста мне очень напоминает работу психиатра, который зачислен на позицию нейрохирурга. Надеюсь мне дадут время для операции. Очень сложный и запущенный случай...
А ведь очень хочется просто нюхать фиалки!..)
Был у нас на работе такой программист. Не задержался.
Однако успело изрядно накодить. Меня забавляет, как код отражает всю человеческую персоналию. Можно писать психологическую диссертацию "Код, как образ и схемотехника личности".
Я бы сказал, что самый лучший код отражает личность, способную на бесконечное саморазвитие. В живую я сталкивался с тем или иным маразмом. Да и мой мои творения в общем-то тоже. Но тут речь идет об особом клиническом случае. Человек курил махорку, имеет шрамы на голове, разведен, полу-вменяем и психует по пустякам. При этом перфекционист. Любит чтобы было написано "чистенько". Я с ним не спорил, потому, что не люблю слез и истерик.
Теперь мы решили откомпилить этот С++ код на униксе. На старой "соляре" SunOS 5.8. На униксе маразм не проходит. Старые компиляторы, как противные старые вахтеры, не любят извращенцев и секс после 12 ночи. Суть проблемы, которую вытерпел виндовый компилятор: Имеется класс А, в котором определен reference-counted обьект Б, который и является имплементацией почти всей функциональности. Далее програмеру вступило в голову и ниже пояса в классе Б использовать класс А, потому, что нужно было векторное представление А, которое тоже было А. И конечно в классе Б используются STL темплейты и контейнеры класса А. Тут вообще можно уже мучительно застонать от маразма.
Виндовый компилятор не истанциирует темплейт пока его где-то об этом не попросят, что на самом деле весьма разумная идея. Старый униксовый компилятор, как старый zольдат, который "не знает слов любви". Ну не знает он слов любви, не знает этих дополнительных 150 восточных сексуальных позиций в приложении к Камасутре. Представляете, как может купулировать очень старый контуженый артиллерист? Ну так вот старый "соляровый" компилятор хочет сразу ясности в отношениях и инстанциировании темплейтов не отходя от кассы. И конечно нарывается на несознанку программиста. Конечно когда компилируется класс Б нельзя инстанциировать темплейты с классом А, потому, в классе А обьект Б используется. В принципе мне понятно ощущение компилятора - он не хочет лишнего геморроя и хочет пепси-колу в постель.
Но тут еще есть и мои чувства, наблюдающего весь этот ментальный зоопарк. Я вообще за то, чтобы переписать эти два класса, чтобы было действительно "чистенько"... Но это больше похоже не лечение шизофрении в параноидальной форме. Сначала надо купировать паранойю, потом, медленно лечить от раздвоения личности. В общем работа программиста мне очень напоминает работу психиатра, который зачислен на позицию нейрохирурга. Надеюсь мне дадут время для операции. Очень сложный и запущенный случай...
А ведь очень хочется просто нюхать фиалки!..)