Кожен москаль вибирає Паскаль,
Хохли ж усі програмують на Сі.
По психиатрической кодерологии, предложенной луркоморьем, я - типичный быдлокодер. То бишь, выбрал, что полегче (Паскаль), и как обычное быдло начал шпарить говнокод, спотыкаясь на ходу, изобретая велосипеды (в том числе вложенные, инкапсулированные и с элементами полиморфизма), не озаботясь ни предварительным прочтением инструкции, ни зубрежкой наизусть трудов Кнута, ни проникновением в метафизику рефакторинга.
Зачем мне всё это? Наадо. Ну ладно, объясню. Предположим, вы - типичный унылый планктон, работающий 5/7:09-18 в четырех стенах. Перед вами компьютер и множество бумажек формата А4, с которыми совершаются элементарные операции: сортировка, переноска, подшивание, переписывание, перепечатывание, - а кроме того ведение разного рода электронных реестров, журналов →∞. В определенный момент вы осознаете, что некоторые типичные рутинные операции неплохо было бы автоматизировать, дабы высвободить время, исключить повторяющиеся и накапливающиеся ошибки, ну и в целом повысить производительность труда (мега-profit). Сначала вы начинаете с изготовления каких-то шаблонов, форм документов, но потом дорастаете до вставки полей в word'е и сопряжением документа с таблицей excel. Если дальше стоит граница между вами и ПК - вы приседаете на уши своему админу 1С и пытаетесь заставить его прикрутить что-нибудь эдакое к рабочей конфигурации.
Но у меня всё хуже и узкоспециализированнее. Поэтому пришлось расчехлить одно из забытых хобби прежних лет, а именно - программирование.
Понадобилось мне сделать небольшую базу данных для своих нужд, прикрутить к ней всяких отчетов, реестров и редакторов, автоматизировать некоторые процессы. Силами какого-нибудь excel или access это сделать, наверное, можно, но, говорят, за это дают двушечку, и то - если все участники совершеннолетние. И тут вышло так, как обычно и бывает: самая первая идея стала самой верной. И нужно было мне сразу расчехлить delphi или lazarus, давно б уж всё готово было. Но нет, я решил поизмудряться. Ведь создают же для чего-то специальные СУБД! Ну вот, тот же Microsoft SQL Server, он же ведь для чего-то же нужен? Или Oracle, или FoxPro.
В общем, много свободного времени (которого, как известно, и так мало) у меня ушло на переваривание и осознание полного энантобиоза между моим я и этими системами. Некоторые даже не смогли установиться до конца. А из того, что установилось, я в силу тупости и не желания читать тонну документации, так и не смог извлечь хоть какой-то гибкости и настраиваемости под свои нужды.
Изучать тру-язык программирования типа С++ или java мне не очень-то хочется, и никогда не хотелось. Это потому что сильно душевные личности впадают в истерику, когда видят совершенно нечитаемый код. Кстати, вы знали, что у программистов на си есть даже настоящий
конкурс на самый нечитаемый код? Полюбуйтесь на этот шедевыр, занявший почетное второе место (да, да, по той же причине, что в анекдоте):
Поскольку мы такое не курим, выбор пал на старый добрый паскаль и его современную реинкарнацию - FPC & Lazarus (сказалась быдлотяга к леопарду). К удивлению, текущая версия этой среды программирования оказалась вполне жизнеспособной и практически полным клоном самой стабильнейшей Delphi 7. А средств разработки баз данных оказалось более, чем предостаточно. Да, я к слову, вообще не помню, чтоб на си или яве делали базы данных. Что может быть прекраснее и проще - запилить мышкой пользовательский интерфейс и полностью сосредоточиться на логике работы с самими данными, а не возиться по пол дня с отрисовкой каждой формочки через API! Кроме того, система оказалась настолько кроссплатформенной, что я через пару тупых шагов назад (дурацкие сторонние компоненты, не работающие то в винде, то в линуксе) получил возможность работать с проектом где угодно.
В общем, через пару-тройку десятков первых сборок, я понял, что десять лет не брать в руки паскаля - это много. Пришлось вспоминать практически всё, начиная от типов данных и правильного написания операторов, а заканчивая кучей функций и тонкостей объектно-ориентированного программирования. Ошибки были элементарные и глупые. И даже стало обидно, что я забыл как правильно: Object.Create(TObject) или Object:=TObject.Create. Методом тыка я познавал заново синтаксис и логику языка. А кроме того, столкнулся с тем, что язык за эти годы ушёл далеко вперед и оброс множеством полезностей, которые поначалу я пытался велосипедизировать самостоятельно (после того, как вымучил несколько функций по работе с календарным типом данных, узнал, что давно уже есть готовый модуль, где функции написаны более правильно и изящно).
Пытаясь вспомнить, почему же изначально был паскаль, можно задним числом придумать множество объяснений: отец поставил дельфи, наняли преподавателя по паскалю, модно было, все-пошли-и-я-пошёл и т.д. Но ведь никто не заставлял, а конкретный преподаватель сам стал следствием выбора языка, но не наоборот. Ну да, было модно в лихие годы кодить базы данных и клоны NNNNCommander в борландовских песочницах. Но скорее, магия эта, и даже любовь, корнями уходит в детство, когда появился ZX-Spectrum, а соответственно, ненавистный всеми BASIC.
..... продолжение следует