Про моду та класику в програмуванні
Jul. 8th, 2021 11:36 amЗнайшов у мотлоху стару книгу Рея Конопки "Создание оригинальных компонент в среде Delphi". Я купив її наприкінці 90-х як вчився програмувати. Тоді навколо Делфі був хайп. Досі пам'ятаю яке враження справила тоді на мене передмова. Я в картинці спеціально виділив ті місця. Ого, думав я, яка розумна людина... З того часу пройшла майже чверть століття. Я й досі толком не розумію що хотіли сказати в передмові, окрім того, що там гонять на конкурентів.


Сьогодні є кілька рейтингів популярності мов програмування. Я скористався гітхабовським: Python, Java, JavaScript та С лідирують. А якщо брати мутний рейтинг TIOBE, то те саме, тільки C всіх порвав. І скрізь Делфі в кінці списку. Навіть Visual Basic, про який прохолодно відзивались у передмові, входить в десятку.
По суті, окрім хайпу, Делфі в програмування нічого не внесла. Її компонентна модель вкрай невдала, основна мова — нечитабельна. Стиль програмування на який вона провокувала — складний у підтримці. Доступ до баз даних — незручний, робити графічний інтерфейс чи обробляти текст — сумно. І все це за чималі гроші.
Мови-лідери теж, м'яко кажучи, далекі від ідеалу, якщо не сказати, що вони, місцями, жахливі. Але вони перекривають вирішення переважної більшості задач. Хайп, як та хвиля, завжди відходить. Залишаться якісь базові речі. С нікуди не дівся і не дінеться, як і Java чи її потомки. Завжди буде потреба у чомусь Python-подібному. Нікуди вже не дінеться JavaScript чи SQL.
І це найпродуктивніші молотки та гаєчні ключі в програмуванні на роки перед. Класика мов ппрограмування вже сформована.
ЗІ. Кому цікаво, ще одна сторінка передмови.
ЗІ. Кому цікаво, ще одна сторінка передмови.
no subject
Date: 2021-07-08 11:58 am (UTC)По-перше, геть усі релізи Embarcadero забаговані. Таке враження, що там нема нікого, хто би то всьо тестував.
По-друге, воно жирне і досить повільне (але не таке повільне, як програми JetBrains). RAD Studio тягне щось на 10 ГБ після інсталяції. Чого вони туди напхали?
По-третє, скомпільовані цим дивом програми теж виходять жирними й повільними. Ймовірно, що можна робити й маленькі та швидкі, як раніше у перших версіях Delphi, але то додаткова морока і треба в тому щось тямити.
Наприклад, є така файна невеличка IDE Dev-C++. Поки вона була незалежною, була маленькою, жвавою і гарною. Відколи Embarcadero зробили її форк та прийняли його під своє крило, цей форк почав жерти втричі більше пам’яті та повільніше працювати, зате має фірмову наліпку Embarcadero і срані гидотні теми для зовнішнього вигляду. На мій смак у такому вигляді воно просто непридатне для використання.
По-четверте, промоція продукту жалюгідна.
Щоб отримати будь-який їхній дистрибутив (з урахуванням безкоштовних та опенсорсних), на сайті треба заповнити цілу форму даних. З капчою, авжеж.
У тому, що вони надсилають дописувачам поштою, зазвичай нецікава реклама, а чогось корисного майже нема.
Головний писун книжок про Delphi та пропагандист Embarcadero — Марко Канту — з видання у видання переписує ті ж пасажі, які колись давно писав ще про старий Pascal і про відповідний Object Pascal. Я спеціяльно порівняв старі видання з новітніми. Я не маю на увазі, що книжки нездалі, а лише хочу сказати, що це все троха недобре тхне.
А от для порівняння Free Pascal — мені подобається. Він універсальний та порівняно компактний: повна інсталяція разом з вихідними текстами і всіма видами довідки заважить менше гігабайта на диску. А ще до нього можна додати Lazarus — разом буде десь півтора.
no subject
Date: 2021-07-08 12:27 pm (UTC)Моделі Делфі не було куди рости. Крім компілятора, там буквально все було недоколиханим. Python, ціною архітектурних рішень, підвищував продуктивність розробки в рази в порівнянні з. І це за відсутності потужної IDE і мого, тоді ще слабкого, його знання. Хоча я не вважаю, що у Python вдалий дизайн. Як мова він відверте гавнинячко.
Чому я викинув Дельфі
1. Win1251-only. Щось вліво-вправо і приплили. З CP866 — проблема, з юнікодом — проблема. Підтримка була заявлена, але воно валилось ХЗ чому. Розв'язувати питання можна, але кожен раз складно. А з мене вимагають бізнес-логіки, а не бубна з кодуваннями.
2. Погана компонентна модель. В Python чи Java я можу прямо в методі наслідуватися, використати потомка і тут же забути. Наприклад, при динамічній побудові GUI. Хочу таке в Delphi в картинках та зі звуком.
3. Відсутність менеджера геометрії (анхори це не менеджер геометрії). Мало того, що це невдобно, так ще лізуть лаги на різних розподільчих здатностях екрану. А якщо ще юзер збільшить системний шрифт...
4. Робота з СУБД. Хочу просто оновити конкретний запис в екземплярі TQuery. У 7-ці щось таке з'явилось, але толком не працювало. Плати гроші за сторонній компонент, де таке реалізували.
5. відсутність інтеграції з системами контролю версій. На той час я вже активно ними користувався. Без простору імен та генериків прожити можна. Без VCS теж, але вибираючи між генериками та VCS я виберу останню.
6. На той час я вже освоїв Emacs 😉 Після цього користуватися убогим редактором Delphi я вже не хотів.
Все те мені боліло при розробці саме під Win32. Писати під інші ОС я почав на піку популярності Delphi. Але вже тоді вона не могла перекрити й помітну частину моїх задач.
no subject
Date: 2021-07-08 12:48 pm (UTC)Але з якогось часу і якоїсь версії воно таки стало юнікодове.
У сучасному Free Pascal цієї проблеми теж нема. Навіть у консолі Windows можна мати символи різних алфавітів разом. Ось який це має вигляд:
no subject
Date: 2021-07-08 01:08 pm (UTC)У мене тільки кириличних кодувань на той момент було 3 + юнікод. Дельфі тільки за цим параметром йшла на помийницю. На відміну від жаби, пітона та ємакса.
no subject
Date: 2021-07-08 12:39 pm (UTC)І це не кажучи вже про претензії до мови, де не було дженеріків, цукру, простору імен. Я завжди дуже важко сприймав Pascal. Моє то C-like мови, чи S-вирази.
Так що, як на мене, RAD воно дуже самозване.
no subject
Date: 2021-07-08 12:23 pm (UTC)no subject
Date: 2021-07-08 12:28 pm (UTC)Архангельский? Товстелезний такий фоліант.
no subject
Date: 2021-07-08 12:49 pm (UTC)no subject
Date: 2021-07-08 01:08 pm (UTC)Значить не він. Там була тверда. В ній дуже гарно було розкрито тему СУБД та SQL.
no subject
Date: 2021-07-08 05:35 pm (UTC)О, какие забытые имена! Гари Визин, Зак Урлокер...
Я, кстати, в Дельфи вклад сделал - ускорил им (почему им, сам не знаю) функцию strlen. То ли в 4 раза, что-то такое.
Но вообще, к тому времени, когда я был в Борланде, команда Дельфи была уже порядочно деморализована. Однажды украли в Джейбилдере какое-то техническое решение и пошли патентовать, например. А однажды их умоляли работать быстро и много, чтобы к новому году релизнуть, уж не помню, к какому. Как только релизнули, треть команды сократили нах. Но народ был не дураки, все свои лишние часы и выходные записывали, и подали на Борланд в суд, и слупили какие-то хорошие деньги, но деталей я уже не помню.
no subject
Date: 2021-07-08 07:04 pm (UTC)Те, що деморалізовані не дивно. Продукт вичерпав себе десь з другої-третьої версії. А куди його розвивати незрозуміло. І їх підхід так досі розвитку і не отримав. То й забуксовало, а потім заглохло.