Так, вот о чем я вам сегодня поведаю. Речь опять пойдет о программистах. Да, знаю, за$бал.
Как уже много говорилось, программист это призвание, болезнь, и прочее, и ху$ мое... но как бы то ни было - это профессия. А профессией надо овладевать. Овладевать настойчиво, нежно и целеустремленно. Повышать свой, так сказать, профессиональный уровень. Учиться. Развиваться. Не стоять на месте. Не давать мозгу гнить. А что мы имеем на самом деле? На самом деле, в реальном мире, мы имеем кучу народа, которая называет себя представителями той или иной профессией. И даже что то там умеет. Хотя на поверку, каждый конкретный индивидуум из этой толпы, да и что там мелочиться, все они вместе взятые - оказываются .... даже слово такое есть - профанами. Нет не профи. Профаны.
Вот я например, если переборю свою лень, могу замастырить оху$нную яичницу, ну или там пельмени сварить. Могу пойти дальше и пожарить окорочка и застругать салатик там какой. Но. Я же себя не называю поваром. Можно поклеить обои и постелить линолеум, да и чего там, потрахавшись и с помощью такой то матери ковролин. Но. Ты от этого не станешь специалистом по евроремонту. Ну могу я кирпичи класть, и что с того? Я каменщик получается? Ну да, из меня еще балерина оху$нная.
И тут появляются врачи, журналисты, охранники, продавцы, менеджеры. Все туда же. Все такие же.
Возникает вопрос. Нет, два вопроса. Почему, каждого кто сидит за компом, называют программистом? Почему, каждый сидящий за компом называет себя программистом? Ответьте мне на эти вопросы. Пожалуйста. Ну, с первым все просто, баранов много везде. Но вот второй...
Почему, какой нибудь ламо-недоучка, написавший, с помощью мышки Hello World - начинает себя считать охуенным программистом? Не знаете? Я тоже. Причем с пеной у рта доказывает это окружающим. Представляете себе ученика каменщика, положившего метр в полтора кирпича и заявляющего что он теперь охуенный специалист. Что он получит? Правильно, тем же кирпичом в $бач от мастера. И отеческий указ, не пи#дить и мешать раствор. Недели две. Это мы вот с вами все такие вежливые и культурные.
Вы спросите, а сам то? Сам таким разве не был? Отвечу. Вряд ли. Я начинал во времена программируемого калькулятора МК-61. Таких вольностей тогда не позволялось. Времена были другие. Тогда не было и в помине долбанного Visual Basic. Программы умещались максимум в 105 (кажется) команд. Информации не было. Были только весьма немногочисленные статьи в журналах "Техника молодежи" и "Наука и Жизнь", руководство пользователя и собственные мозги. Потом были БК, Радио. Партнер с пикселем чуть меньше ногтя мизинца. Чудо графика. Про RAD тогда только мечтали. УКНЦ, кто помнит? И прорыв в виде Синклер/Спектрум. Их собирали собственными руками. Их прошивку знали от и до. Только Россия, только Ассемблер, только Красный Огонь Победы. Ассемблер, ассемблер и еще раз ассемблер. Руками, в машинных кодах. Предел мечтаний Пентагон 128К с флоповодом. Билли со своими 640 килобайтами, которых должно было ненадолго хватить всем - с@сал. Да и сейчас с@сет. Инета тогда не было. Искра (пол одиннадцатого которая), XTишки и двушки. Это было уже будущее во плоти. Из этих машин выжимали всё до капли. На двушках запускалось чудо, виндовс 3.1. Но под нее пока еще не писали. Двушки были, лишь у посвященных. Читай большой блат и огромные деньги. Короче их не было. Графический фейс писали руками. Либо юзай TurboVision, либо шамань через VESA. А иногда и без нее. Параметры видеокарточек определялись в режиме отладки, там же, на месте, прописывались, там же компилялись. Потом была разработка под вынь. Зачитанные до дыр книги Фроловых. Vusial C++, с MFC, визардами, отладчиками и прочим появился только потом. А были Win API и Simantec с неудобным донельзя отладчиком. Кто все это помнит? [hEAD смахивает скупую мужскую слезу]
Тогда были совсем другие времена. Тогда были другие люди. Другие мы. Тогда все было проще. Тогда все было сложнее. Потом... потом наступило настоящее.
Вернемся к программистам. Институты штампуют специалистов. Программист на программисте сидит. Девать некуда. От переизбытка ажо за бугор выплескиваются. Каков же уровень подготовки этих свежеиспеченных спецов? Вы знаете, порой он просто шокирует. Большинство и понятия не имеет о той специальности, которую они получили. Хороших спецов выпускается крайне мало. К ним, правда, потом еще примыкают инженеры способные чему либо учиться. Нормальные знания порой просто не даются людям. Люди учатся сами. Но уже потом. Порой, теряя время. Я понимаю, что всему научить за 5 лет невозможно. Но. Давайте давать инженерам правильные основы. А основы чаще даются неправильные. Либо не даются вовсе. Как вы думаете, чему может научить препод, который на экзамене по ассемблеру проверяет правильность написания практического задания, сверяя написанным студентом, с эталонной бумажкой. Или же доцент, читающий курс С, приходящий в священный трепет от написанного в легкую за неделю тетриса на С++ студентом второго курса? Чему эти люди могу научить? Конечно, есть и обратное. Есть преподы, способные научить очень многому. И огромное им за это спасибо. За то, что они есть. Только много ли их осталось в ВУЗАХ?
А еще остается накипь человеческая. Нихера ничего не знающая или обладающая куцыми знаниями, но что самое главное - ничему не желающая учиться.
Комрады, это наплевательское отношение к своей профессии - Признак непрофессионализма. Из-за наплевательского отношения к своим обязанностям все у нас ху$во. Это преступники. Если хотите изменники Родины. За измену Родине наказание расстрел.
А они продолжают писать. $бан@рот, ты посмотри, что ты написал?! Посмотри, какую х#йню!
Вот люди не знающие что такое ООП. Как же ты жить то будешь, родной? Вот стоят, маячат. А вы знаете, что такое ООП? Вооо, закивали. Знают. Ага, знают они, только пользоваться нихера не умеют. Слышали звон, что вроде как какие то классы вот есть. И херачат. Все на классах. Ага. Не придерешься, Cплюсплюс плюс Copy&Past. Знаете такой метод? И поскакали.
А уж какое там наследование... Наследование... во вспомнил! Это когда мне дедушка из америки баксы завещал. Ну-ну. Инкапсуляция какая то... где она живет? И за сколько в рот берет? Не берет? Плохо. А с аналом как? Поли....мор..физ..м. А это не заразно? Это с фимозом ничего общего не имеет?
Помнится, меня как-то спросил коллега. Бывший. Программист, ученый, без пяти минут кандидат технических наук. Ну, а зачем оно нам? Ну и чего с ним делать? Какие преимущества оно нам дает, это твое ООП? Х#ли тут ответишь. Правда. Нах$ра оно нам. О чем говорить, чувак MFC от Win API не отличал, при этом писал на С++ вроде как, под вынь. Программист х#ли тут.
Ой, ладно. Сейчас вообще ругаться страшными словами буду. Девушки прикройте ушки. Объектно-ориентированное проектирование. Нет девушки, я еще не закончил. Шаблоны проектирования. Ну и дох#я ли народа этим пользуются? Не, пользуются. Чаще, правда, одним шаблоном. Его название "Per rectum". В переводе на русский "Через жопу". Девушки, эй, открывайтесь.
Шаблоны, методологии. Да о чем я вообще говорю. Знаю контору, которая пишет коммерческий софт. Мощный, сильный, умный. Системами контроля версий не пользуются. Вообще. Ни в каком виде. Может и вообще не знают что это такое. А чего. Может это форма протеста такая. На х#й оно нам. Х#ли мы, не кабаны что ли?! Может форма мазохизма. Вы когда нибудь видели процесс сливания одного и того же проекта, исходники которого еле лезут на дискету в заархивированном виде, от двух-трех разработчиков, после недели разработки и исправлений? Я видел. Крайне занимательное зрелище. Если бы до этого я не умел ругаться матом - точно бы научился.
Повторное использование кода. Да вот еще глупости. Участвовал в проекте. Нужна была реализация МНК (Метод Наименьших Квадратов). Я знал, как называется уже написанная функция в этом проекте. Запустил поиск по файлам. Знаете, сколько нашел? 3 (три) раза. В трех разных местах. Код одинаковый до знака препинания. Повторное использование кода это не то, что вы думаете. Это так - берете уже написанный код, копируете, и вставляете еще раз в проект. Ясно вам. И не умничайте.
Рефакторинг, упокой Господь его душу. Слово какое то нехорошее. Что-то в нем от слова Fuck есть. Ну его. Тут и там грозди условий, вместо одного case. Кода на экран, а за ним еще один, точно такой же, но чуть с другими, параметрами в количестве двух-трех. Вот еще. Процедуру писать. Потом разбирайся с этими параметрами.
Самодокументирующийся код. Х#йню ты какую то написал, товарисч Голова. Не выговоришь даже. Это не наш метод. Даешь код такой, что бы не то чтобы потенциальный противник, сам автор в нем через месяц нихера не понял. И вообще, что такое стандарты кодирования?
Что!? Вот только скажи это! Вот только скажи. Вот и скажу - комментарии. Уууу, бл@дь гнида. Буржуйское отродье. Настоящие программисты никогда, слышите, никогда не пишут комментариев. Даже под страхом голодной смерти. Комментарии должны использоваться только, слышите, только для того что бы закомментарить кусок ненужного кода. Кстати, не в коем случае не выбрасывайте такой код из проекта. Вдруг пригодится.
Вот так вот. Вот такие мы. Пишем на коленке. А чего. И так нормально. Компиляется? Компиляется. Работает? Ну бывает. И нехера нам тут засирать мозги.
Это любительство. О, да PHP рулит. Все кому не лень знают как это круто. Куча страничек, авторы которых после написания нескольких строчек, начинают считать себя мега девелоперами. Лепят из чужих скриптов движок к своему сайту. Заметка первая. Смотрите, я программист! Я тоже могу! И в следующей заметке. Ой, я читал документацию (уже радует, чувак читать умеет), видел там крутую функцию rand! Ух тыыыы!!! Щастья полны штаны. И так каждый день. Кучи сайтов, трафик, трафик, трафик. Вы думаете, таких проектов в рунете мало? ха тире ха тире ха. В п#зду, иди и программируй стиральную машинку, что бы та тебе постирала обтруханные от радости штаны. А о ПХП как о языке программирования поговорим после выхода второго Zenda. Расставляйте приоритеты правильно.
Это недобросовестное отношение к своим обязанностям. Поэтому-то и не люблю халтурщиков и халтуру. Нет, ну куда деваться, сам писал дипломы тем, чьи мозги не позволяют себе такой роскоши. Но не люблю. Такое наплевательское отношение входит в привычку и начинает нравиться. Сделай правильно, да? Да ладно, и так сойдет. Работает же. Ну да, работает. Пока. И появляются проекты в критической стадии. Где изменения или добавления в одной части - приводят к полной жопе и краху в другой. Чтобы включился свет в ванной, надо постучать по трубе в подвале. Что, мало мы таких видели?
Возьмите ReportBuilder (система генерации отчетов), не к ночи упомянутом. Класная штука. В рамках их же примеров и туториалов. Пока ничего нормального не захочешь на нем сделать. Все что можно - сделано через жопу. Был у нас ReportBuilder v.5. Вышла шестая. Вы думаете, отчеты сделанные в пятой версии нормально отображались в 6-ой? Ну, по идее должны. Должны, ха. Неправильный ответ. Что бы под себя что нить там заточить... думать даже не моги. Только через глобальные изменения исходников от производителя. Если конечно разберешься что там к чему. Думаете, там есть комментарии? Наивные. В пятерке даже хелп х%р знает как написан. Половина функций работает только если ты сидишь при этом на стуле с задранной левой ногой, большим пальцем левой руки в правой ноздре, и при этом правой рукой стучащей по специальному бубну. Кстати для ReportBulder пятой версии стучать надо семь раз. Все на уровне вот такого шаманства. В шестой стало чуть лучше. В смысле некоторые глюки, ой извините фичи, стали работать, так как от них ожидается. Дальше не проверял. Но на нее так и не перешли. Еще бы, где найти такого отвязного панка, который за минимальные сроки перелопатит двести с лишним отчетов. Да и какой смысл? Старые глюки уже известны и супротив них придуманы жопы с хитрой резьбой. Недавно вроде как вышла седьмая версия этого чуда. Digital Metaphors писали про мега трех уровневую систему генерации и еще что то. Живописно представляю, какая задница. И знаете что самое смешное? Эта херня продается за деньги. За относительно немалые.
Возьмите творчество Oxigen. Ну например 2DPlan. Это что-то типа векторного редактора. Шаблон Per Rectum рулит. Нет бы, как нормальные люди сделать. Не дождетесь. Полная задница. Этот компонент, правда, бесплатный. Вроде. Какие то они продают. Что-то мне подсказывает, что в них тоже самое. Гляньте хотя бы в исходники. А теперь представьте, что вся эта беда, плюс заточка под наши специальные нужды, плюс добавления, исправления, испражнения, плюс обвязка с БД (кстати, думаете там данные в XML хранятся? наивные), плюс обвязка с приложением и многое и многое и многое... короче раньше это было не полная задница, а просто задница, а вот теперь это ПОЛНАЯ ЖОПА! И все это счастье сваливается на меня в виде наследства от увольняющегося сотрудника. Какие такие документация, спецификации, комментарии, самодокументирующийся код? Чего думаете в сказку попал? Два листочка, с описанием какие есть модули и чего примерно они делают. Фсё. И х%р бы с ней, если бы все уже работало как часы, и ничего не надо было исправлять, добавлять, сопровождать... Если бы. Если бы у бабушки был бы х#й, она была бы дедушкой. Бери два метра витой пары и иди вешайся. (Кстати, Дима, вдруг ты читаешь. Если последние полгода, и далее, тебя внезапно будет обуревать икота, не переживай - в основном это я. В основном матом. С наступающими праздниками.)
Возьмите всеми любимый The Bat! и запустите из под memproof. А потом выгрузите и оцените размеры бедствия всерьез. Тот же, всеми клятый MSWord и то меньше говна после себя оставляет. Или же, чем больше говна после выгрузки - тем лучше приложение работает? Ой и не надо мне тут п#здить про лицензионные версии.
Еще примеры приводить? Или достаточно?
Так что давайте, будем больше думать головой, лучше писать код и как завещал дедушка Ленин учиться, учиться и еще раз учиться.