Современная мОлодежь и пОдостки чрезмерно увлечены написанием наборов глюков на "кросплатформенных" жабах (java) и прочих точечных минетах (.net), старательно пытаясь обидеть нас, старых хрычей, презрительным "OMG! опять этот Object Pascal!". Таки да! Это он! И я попробую объяснить - почему.
Все мы, стар и млад, интернетчики ныне. Ибо где еще найти среду обитания, относительно свободную от террора ворья, которое мы избираем своими правителями, где мы сами выбираем себе круг общения, удовлетворяющий нашим интересам и воспитанию; где ищем нужную литературу, фильмы, песни и прочие милые пустяки, необходимые для питания нашего разума; где путешествуем, не поднимая задницы с кресла... Да что там говорить! Хорошее и нужное дополнение к нашей реальности. Но, как и любое творение, он несет и побочные эффекты. Я сейчас о быдлолингве - упрощенном огрызке человеческого языка. Что интересно, сие явление поразило не один лишь "великий и могучий" - пострадали все.
Такая же неприятность когда-то произошла и с языками программирования и красивым и выразительным фортрану, паскалю и иже с ними на смену пришел язык быдлокодеров "С". Ну действительно! Какой смысл писать "по моему скромному мнению", когда можно энергично пукнуть "имхо"? А смысл есть! Он в "читаемости кода". Причем, штука эта полезна не только для друзей и последователей горе-писаки, но и для него самого - банальный вопрос поддержки и развития программ. Вы пытались вчитываться в чужой сишный код, со всеми его "переопределениями операторов"? А мне вот доводилось... То еще "удовольствие"!
Я тоже не святой! И тоже иногда вынужденно использую GCC, но исключительно в тех случаях, когда без этого не обойтись (ну не сделали приличного компилятора нормального языка для микроконтроллеров!). И то - пишу в стиле "чайника-пасквилянта", который вполне позволяет переделать что-нибудь в прошивке спустя пару-тройку лет.
Со временем сложилось несколько концепций таких "прослоек":
- интерпретаторы языка, последовательно конвертирующие и выполняющие команды построчно;
- компиляторы, преобразующие весь код программы в машинный, который можно было хранить в виде файла и выполнять уже без предварительной обработки значительно быстрее;
- интерпретаторы компилирующего типа, собирающие машинный код всей программы в памяти и выполняющие результат сего преобразования...
Да много их! Все и не упомнишь - перечислил основные. Но самое важное в них было - "стандартизация". Все библиотеки базового уровня и конструкции языка жестко регламентировались и внедрялись во все программы-конверторы (компиляторы и интерпретаторы). Расширение функциональности опиралось на использование дополнительных библиотек, входящих в среду разработки или саму программу.
Я не буду описывать всю историю развития технологий программирования, немалой части коей я являюсь пока еще живым свидетелем, - вам будет скучно это читать, а мне - лень писать. Пробегусь только по некоторым интересным фактам, имеющим отношение к конкурентной борьбе на рынке, а не "борьбе идей".
В бытность мою студентом, мы (да и не только мы!) предпочитали использовать среды разработки фирмы Borland. И не мудрено - эта компания производила продукцию исключительно для нужд разработчиков программного обеспечения. У них было все - удобная среда интегрированной разработки (IDE), прекрасные богатые библиотеки, хорошая совместимость со стандартами языков и великолепный компактный и быстрый код ваших программ в результате. И не стоит говорить, что предпочтение отдавалось исключительно паскалю! Среда разработки для языка "С" тоже имела весьма заслуженную популярность (в те времена ваш любимый мелкософт был конченым аутсайдером в этой области). Но они имели наглость отъедать долю рынка у производителей операционных систем, которым таки тоже хотелось кушать. И травля началась...
Какое-то время, после окончания института, я посвятил разработке настольных Баз Данных, так востребованных в те года. Тогда Borland еще не очень активно развивал это направление, сосредоточившись на своей клиент-серверной платформе Interbase, долгое время не поставлявшейся на территорию совка и постсоветского пространства. Весьма приемлемой альтернативой для рапидной разработки приложений оказался FoxPro, заточенный под создание подобных программ на базе собственного расширения стандарта DBase IV. Но счастье было недолгим - корпорация Microsoft выкупила продукт вместе со всей командой разработчиков и всего за полгода превратила его в сраное говно (что весьма характерно для этой компашки - украл/изговнял/слил). Пришлось искать альтернативу и с уже несколько большими возможностями. И тут Borland не подкачали и выпустили таки IDE для разработки под, весьма популярную в то время, windows 3.Х - Delphi и CBuilder. Практически идентичные среды для разработки на все еще популярном паскале и нелюбимом мной С++.
Delphi
Самой удивительной штукой в этих продуктах была концепция VCL (библиотеки визуальных классов), позволяющая в несколько минут сляпать вполне приличную оболочку к базе данных или какую-нибудь утилиту. Я уж не говорю про возможность написания утилит для командной строки и сервисов windows! Т.е. инструмент получился великолепным и весьма универсальным. На пути его развития были и успехи и провалы, как и у любого "живого" продукта. Могу лишь отметить "гвозди": Delphi-16 (стабильная и вылизанная версия для шестнадцатиразрядных форточек); Delphi-2 (первая и очень неплохо причесанная версия под вынь32); Delphi-7 (предмет обожания большинства пасквилянтов).
Последней ВМЕНЯЕМОЙ версией "дельфы" была семерка. В это время мелкософт переманил основного разработчика концепции VCL в свой проект ".NET", созданный исключительно в пику Oracle. И дальнейшее развитие продукта пошло по скользкой дорожке "угнаться за модой". Он был изуродован внедрением .NET в конструкцию самой среды и в бесплодной попытке выдавать на выходе (как один из вариантов) приложения для точечного минета.
Дети гор! Они просто не подумали о том, что любой высер мелкомягких кончается весьма токсичным запахом. Эти ребята умудрились почти не испоганить единственный украденный продукт - Sybase, гордо именуемый ими "MS SQL Server".
Немного помаявшись с этим чудом, они все же нашли для себя забавный выход - платформу MONO (тот же минет, но сделанный потомками Novell). Что до моего презрения к "интерпретаторам интерпретатора", этот проект заслуживает несколько большего уважения, поскольку, в отличии от мокрософтовской поделки, действительно является кроссплатформенным и даже относительно стабильно работает! Но прогибы на тему "соответствовать великим и могучим" все ж остались...
IDE современных дельфей стелится под MS Studio (самое смешное в том, что раньше мелкософт всегда воровал борландовский дизайн и концепции).
FPC/Lazarus
Но я несколько увлекся историей злоключений "разработчика для разработчиков" и его детищем. В то же время, Borland отнюдь не является последней "надежей и опорой" пасквилянтов. Творение Вирта продолжает жить во множестве инкарнаций и не дает помереть с тоски программистам (я сейчас не про глюкописцев).
Кое-как перетерпев вынь-7, я все же не смог дальше смотреть на это безобразие и перешел на Linux. Эти системы движутся в разных направлениях: "линь" - в сторону вменяемости, "вынь" - все ближе к полному идиотизму. И это даже не касаясь технологий разработки! Только с точки зрения обычного пользователя.
Да! Пришлось переучиваться. Но оно того стоит - масса КАЧЕСТВЕННОГО и бесплатного софта и очень мало вирусни и троянов. Работаем не напрягаясь...
"Дельфю" мне полностью заменил проект CodeOcean (CodeTyphon) - форк Lazarus, отличающийся от последнего простотой настройки кросскомпиляции, которая в этом продукте не виртуальна, а более чем реальна - можно выбирать не только целевую операционную систему из списка большинства популярных, но и целевой процессор - компилятор генерирует машинный код почти под что угодно.
Как и Delphi, Lazarus имеет собственную библиотеку виджетов, опирающуюся на системные, но унифицированную за счет своего кода. Кроме LCL (библиотеки виджетов), есть и библиотеки самого Free Pascal, описывающие большое количество собственных, не визуальных, классов и системных вызовов. Библиотеки универсальны и работают во всех операционках. В самом крайнем случае, в системе предусмотрен режим "Custom Drawn" для обслуживания графической платформы X11 без посредников в виде QT или GTK (win GUI - тем более).
IDE может работать в системах Linux, Windows и MacOS. Настраивается по вкусу - от "классической" Delphi-7 до полустудийного вида.
итОго
Я вполне могу себе позволить абсолютно легально и не заморачиваясь ни с какими лицензиями писать оболочки и системные сервисы почти под что угодно. Оно гарантированно ОДИНАКОВО работает на любой оси и на любом камне. Мои программы легко и удобно читаемы.
А вы, господа глюкописцы, можете похвастаться тем же?