Мы тут чудненько пофлеймили на тему "о применимости С++ в серьёзном коде" , но как то за кадром остался вопрос о том, что же такое "серьёзный код". Были правда некоторые попытки определить это понятие, но они быстро иссякли.
А вы как думаете — какой код можно назвать "серъёзным" или "сложным"? Как Вы вообще — разделяете ли код по каким-либо критериям и на какие то категории? И если да, то по каким?
Некоторые уже упоминались. Например "лохокод"
Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей. Какой нибудь навороченый алгоритм, с кучей условий (какая нибудь сложная сортировка или шифрование) — код сложный (алгоритмически), но тем не менее к серьёзному я его не отношу. По тем же причинам к серъёзному коду не отношу большинство модулей ОС, так как на мой взгляд — это код специфический — который должен быть написан крайне аккуратно и хорошо продуман, но чего-либо принципиально сложного в нем нет.
Наверняка у каждого из нас своя точка зрения по этому поводу. Предлагаю поделиться...
AF> Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей.
Это хреновый код который не поддается пониманию и рефакторингу, такой код обычно выбрасывается на помойку после ухода программиста, писавшего его.
AF> Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей. Какой нибудь навороченый алгоритм, с кучей условий (какая нибудь сложная сортировка или шифрование) — код сложный (алгоритмически), но тем не менее к серьёзному я его не отношу.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, AndreyFedotov, Вы писали:
AF>> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"?
IT>Не знаю какой код можно назвать "серьёзным", но вот "пальцастым" называется код, который пишут только настоящие пацаны
А какой код пишут "настоящие пацаны"? Кстати на чём? С? С++? C#? Ещё что то более пацанское?
Здравствуйте, Denwer, Вы писали:
D>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей.
D>Это хреновый код который не поддается пониманию и рефакторингу, такой код обычно выбрасывается на помойку после ухода программиста, писавшего его.
Это если код слишком сложен и содержит слишком много зависимостей, по сравнению с тем, что требуется для решения поставленной задачи. А если сама задача очень сложна? Экспертная система? Серврер БД? ERP система?
Здравствуйте, AndreyFedotov, Вы писали:
AF> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"?
Наверное,
серъёзный код — это код, за который дают серьезные деньги. Весь остальной код — несерьезен, за него дают или мало, или вообще ничего.
сложный код — это код, который не может быть написан программистом ниже определенного уровня. Весь остальной код — несложен, его пишет или любой новичок, или никто не пишет.
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, AndreyFedotov, Вы писали:
AF>> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"?
Vi2>Наверное,
Vi2>серъёзный код — это код, за который дают серьезные деньги. Весь остальной код — несерьезен, за него дают или мало, или вообще ничего.
Гениально! Мне очень понравилось.
Vi2>сложный код — это код, который не может быть написан программистом ниже определенного уровня. Весь остальной код — несложен, его пишет или любой новичок, или никто не пишет.
Логично...
"Конечно, все вышесказанное относится к большим промышленным проектам, где объем кода измеряется миллионами и десятками миллионов строк и над которым работает хотя бы человек 50. К софту класса "t.c" длиной в 100 строк это не относится -- это можно писать на любом языке программирования."
Здравствуйте, AndreyFedotov, Вы писали:
Vi2>>серъёзный код — это код, за который дают серьезные деньги. Весь остальной код — несерьезен, за него дают или мало, или вообще ничего. AF> Гениально! Мне очень понравилось.
Тогда получается, что российские программисты пишут не серьёзный код. Зато американские всегда серьёзный, даже индусы и китайцы
... << Rsdn@Home 1.1.4 beta 1 >>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, AndreyFedotov, Вы писали:
Vi2>>>серъёзный код — это код, за который дают серьезные деньги. Весь остальной код — несерьезен, за него дают или мало, или вообще ничего. AF>> Гениально! Мне очень понравилось.
IT>Тогда получается, что российские программисты пишут не серьёзный код. Зато американские всегда серьёзный, даже индусы и китайцы
В общем то — отчасти — наверное да...
Но вообще то я больше иронизировал. Просто хочется что бы написание кода щедро финансировалось...
Я прекрасно понимаю, что одни в ящике за 3000р операционку реального времени ваяют, а другие, за $1200 кнопку на VB с грехом пополам прикручивают...
Здравствуйте, adb, Вы писали:
adb>Здравствуйте, AndreyFedotov, Вы писали:
adb>Там ведь было сказано:
adb>"Конечно, все вышесказанное относится к большим промышленным проектам, где объем кода измеряется миллионами и десятками миллионов строк и над которым работает хотя бы человек 50. К софту класса "t.c" длиной в 100 строк это не относится -- это можно писать на любом языке программирования."
Полностью согласен. Но по-моему это вполне очевидно. Ну не может быть код в 1-2-3 строки серьёзным...
Но и в больших промышленных проектах — код то же быват разный...
AF> Полностью согласен. Но по-моему это вполне очевидно. Ну не может быть код в 1-2-3 строки серьёзным... AF> Но и в больших промышленных проектах — код то же быват разный...
Если вы заметите, то упоминание "серъезного кода" было только в сабже. В тексте же речь шла только о "серъезных проектах".На лицо несоответствие сабжа с содержанием.
Здравствуйте, adb, Вы писали:
AF>> Полностью согласен. Но по-моему это вполне очевидно. Ну не может быть код в 1-2-3 строки серьёзным... AF>> Но и в больших промышленных проектах — код то же быват разный...
adb>Если вы заметите, то упоминание "серъезного кода" было только в сабже. В тексте же речь шла только о "серъезных проектах".На лицо несоответствие сабжа с содержанием.
Согласен. Тогда какие проекты Вы считаете серъёзными, а какие — нет?
AF> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"?
Серьезный код — код, важный по содержанию, требующий пристального внимания; ошибки в котором могут привести к опасным последствиям.
С данной точки зрения даже простейший внешне код, являющийся частью системы управления атомным реактором или системой жизнеобеспечения в реанимации — серьезен (можно вспомнить Саттера с его 23 вариантами выполнения четырех строк внешне "несерьезного" кода).
AF>для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей.
А вот это бы я назвал именно сложным кодом.
AF> Наверняка у каждого из нас своя точка зрения по этому поводу.
Я придерживался не только "точкой зрения", но и значением слов "серьезный" и "сложный" в литературном русском языке.
Но есть и еще одно определение:
Серьезный код — код, который не вызывает приступов истерического смеха у серьезного программиста. (Желающие дать определение термину "серьезный программист" — welcome во флейм или юмор).
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Alex Reyst, Вы писали:
AF>> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"?
AR>Серьезный код — код, важный по содержанию, требующий пристального внимания; ошибки в котором могут привести к опасным последствиям. AR>С данной точки зрения даже простейший внешне код, являющийся частью системы управления атомным реактором или системой жизнеобеспечения в реанимации — серьезен (можно вспомнить Саттера с его 23 вариантами выполнения четырех строк внешне "несерьезного" кода).
Что же, на мой взгляд, очень разумно.
AF>>для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей.
AR>А вот это бы я назвал именно сложным кодом.
Иногда да, иногда нет. В таких системах часто сам код очень простой, но именно наличие множества скрытых и не очевидных связей делает его написание делом не простым.
AF>> Наверняка у каждого из нас своя точка зрения по этому поводу.
AR>Я придерживался не только "точкой зрения", но и значением слов "серьезный" и "сложный" в литературном русском языке.
Есть ведь такое понятие как трактовка или сравнение... Для начинающего и Hello World — код сложный, для профи — код и в 5000 строк может быть очень простым. Потому то и интересно, кто и какими критериями пользуется...
AR>Но есть и еще одно определение:
AR>Серьезный код — код, который не вызывает приступов истерического смеха у серьезного программиста. (Желающие дать определение термину "серьезный программист" — welcome во флейм или юмор).
Ну насчёт "серьёзных программистов" это точно во флейм или юмор. Мы или умеем что то делать или нет.
Здравствуйте, AndreyFedotov, Вы писали:
AF> Мы тут чудненько пофлеймили на тему "о применимости С++ в серьёзном коде" , но как то за кадром остался вопрос о том, что же такое "серьёзный код". Были правда некоторые попытки определить это понятие, но они быстро иссякли. AF> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"? Как Вы вообще — разделяете ли код по каким-либо критериям и на какие то категории? И если да, то по каким?
Судя по теме "о применимости С++ в серьёзном коде" единственный серьёзный код — это машинный код, набранный переключателями на панели управления.
Никаких толстенных стандартов на язык программирования, так как описание команд процессора умещается в тонкой книжке.
BTW, интеловский процессор не может исполнять серьёзный код, т.к. описание самого процессора занимает 3 тома.
Если серьёзно (сорри за каламбур), то серьёзный код — это миф, призванный удовлетворить самомнение пишушего его программиста.
Программа — это способ решить те или иные задачи. Если она написана в соответствии с требованиями, с заданным качеством и в срок, то IMHO без разницы, на каком языке написан код и как он выглядит (даже если это будет write-only код).
А _сложным_ может быть алгоритм, но не реализующий его код.