Я працюю в ІТ вже 25 років. Ось що я можу сказати про зміну технологій за цей час

💡 Усі статті, обговорення, новини про .NET — в одному місці. Приєднуйтесь до .NET спільноти!

Майже чверть століття у сфері комерційної розробки ПЗ — досить суттєвий проміжок часу, щоб спостерігати зміни технологічних трендів. Мене звати Олександр Єременко, я співпрацюю з ЕРАМ Україна як провідний .NET-інженер. Мій професійний шлях стартував на початку нульових і за цей час я працював з різними технологіями, на різних платформах, в різних доменах і пройшов загалом близько 20 проєктів.

Це дозволяє мені проаналізувати зміни в технологіях і підходах до розробки софта за 25 років. Зауважу, що в матеріалі відображено мій суб’єктивний погляд, який базується суто на особистому досвіді.

Від зірки оптимізації до жертви продуктивності

Кажуть, що якось Стів Джобс під час розробки однієї з моделей Apple Macintosh звернувся до інженера Ларрі Кенйона з проханням скоротити час завантаження системи. Джобс переконував Кенйона, що якщо той зможе зробити завантаження на 10 секунд швидше, це в сукупності зекономить багато часу користувачів. Основний аргумент був такий: мільйони людей щодня витрачатимуть на 10 секунд менше часу на очікування, що в кінцевому підсумку додасть багато зекономлених років життя.

Пам’ятаю, як колись в старших класах я програмував на ZX Spectrum. Це такий популярний на той час персональний комп’ютер з процесором на 3.5 МГц і 48 Кб пам’яті (зараз, напевно, в кавоварці встановлено більш потужне залізо). Щоб зробити плавні рухи на екрані, треба було враховувати кожен такт процесора. Тому я мав саморобну табличку з усіма командами асемблера і числом тактів на виконання кожної команди.

Часом доводилось посидіти над кодом, оптимізувати його, адже 30 років тому неефективність могла коштувати десятки або сотні зайвих операцій і це одразу було помітно. Зараз же навіть мільйони зайвих операцій або виділені декілька сотень МБ зайвої пам’яті в більшості випадків не впадуть в око.

Заради експерименту я прокрутив цикл на 10 мільйонів ітерацій на робочому ноуті з 11th Gen Intel® Core™ i7-1185G7 @ 3.00GHz кодом C# .NET 8:

Це зайняло ~8мс! Через потужність сучасної техніки й великі обсяги пам’яті навіть погано оптимізований код може працювати швидко. Ось одна зі змін за останні 25 років: немає сенсу сильно перейматися ефективністю, адже залізо витягне. Але якщо раніше було доречним витрачати ресурс на оптимізацію сотень команд, то, можливо, зараз варто робити це для сотень мільйонів? Адже зручність і швидкість, яку дарують нові технології, мають зворотний бік. Погано оптимізований код може працювати швидко, але при збільшенні навантаження проблеми стануть очевидними.

Повсякчас інженери й тестувальники перевіряють код на обмеженій кількості сценаріїв і даних, а тести продуктивності взагалі присутні далеко не у всіх командах. Навички оптимізації поступово розпорошуються, втрачаються і молодим фахівцям дедалі складніше уявити, що може піти не так у системі в майбутньому.

Питання продуктивності не обмежуються лише процесорами. Швидкий інтернет і об’ємні накопичувачі дозволяють передавати та зберігати величезну кількість даних, часто непотрібних. Зайві логи, метрики й трейси часто залишаються після розробки та потрапляють на продакшн. Це може створювати додаткове навантаження і викликати проблеми продуктивності навіть непомітно для інженерів.

Протоколи обміну даними також стали менш ефективними — передача декількох зайвих мегабайт мережею зараз не вважається проблемою. В перспективі це може спричинити ще більші втрати продуктивності та ресурсу.

Цікаво було б порахувати, скільки енергії та часу глобально витрачається через неефективний код або непотрібні дані, і скільки загальнолюдських років можна було б зекономити, оптимізуючи ці аспекти, як рекомендував Джобс.

Гугл у поміч

За 25 років дуже помітною стала зміна підходу до програмування. Раніше кількість доступної інформації, готових програм або прикладів була дуже обмеженою. Доводилось багато експериментувати, досліджувати, вигадувати, винаходити та вчитися на інших програмах, дезасемблювати (умовно кажучи, розбирати на деталі), якщо не було вихідного коду, дебажити в рантайм тощо. Різноманітних шаблонів проєктування, архітектурних стилів ще не знали або не придумали, тому кодування було дуже творчим і непередбачуваним процесом.

16-17 травня, Київ. Квитки тут!👇

Я пам’ятаю, як на початку 2000-х невеличкою командою ми писали тренажерну систему для авіадиспетчерів, намагаючись імітувати одну з існуючих реальних систем. Треба було відписати клієнт-сервер по TCP/IP, зробити кастомний юзер інтерфейс, який би водночас підтримував швидкий растровий і векторний вивід і мав віконні компоненти, які виглядали й поводились зовсім не так, як у Windows. Плюс картографічна компонента, база даних тощо.

Це все при відсутності інтернету, книжок і прикладів! Ми проводили багато експериментів, відкидали неробоче, поки не знаходили робочий варіант. Це все займало дуже багато часу, зараз те саме можна вже зробити в рази швидше.

Згодом з розвитком інтернету і збільшенням ком’юніті почали вимальовуватися шаблони, зросла кількість готових бібліотек, які перемістилися в інтернет у вигляді пакетів, деякі системи стали опенсорсними, з’явилися професійні сайти на кшталт Stack Overflow... Все це поступово привело до «гугл-кодінгу», коли вже не треба нічого винаходити, досить просто знайти готовий шматок коду або бібліотеку, що розв’язує задачу. Весь процес тепер більше нагадує збір пазлу, коли інженер добирає сумісні між собою частини та поєднує в одне ціле. Ну а з приходом штучного інтелекту це вже переростає в ШІ-кодінг...

З іншого боку дуже сильно зросла кількість інфраструктурної, нефункціональної роботи. Якщо раніше програму розробляли, збирали та тестували вручну локально, а потім віддавали на носії замовнику, то зараз треба налагодити репозиторії, CI, хмарні ресурси, CD, написати та налагодити запуск автотестів, код для моніторінгу/аналітики тощо. Тобто деякі моменти з часом спростилися, а у чомусь задачі стали більш комплексними.

Замість вертикального зростання — горизонтальне

За моїми спостереженнями знання інженерів стають скоріше широкими, ніж глибокими. Одиниці фокусуються і спеціалізуються на чомусь одному, бо це вже немає сенсу. Адже технології змінюються, вимоги ринку нестримно ростуть. Раніше, знаючи одну мову і фреймворк, можна було працювати 5-10 років без суттєвих змін і перенавчання, але зараз цей термін скорочується до двох років і менше. Після 2000-х світ ІТ прискорився, кількість мов і фреймворків значно зросла, а проміжки часу між виходами нових версій стали скорочуватись.

Наприклад, у .NET між великими оновленнями раніше проходило десь 4 роки, потім цей термін скоротився до 2 років, а тепер вони відбуваються щороку. Платформи розвинулись і виросли в кількості: інтернет-застосунки від простого гіпертексту доросли у функціональності до десктопних рішень. Також наприкінці «нульових» з’явились смартфони, планшети, смарт ТБ, різноманітні пристрої, розумні годинники, приставки тощо. Через це попит на кросплатформенні мови виріс, а деякі з них (як от .NET і JavaScript) почали експансію на інші платформи. Деякі мови почали стагнувати (наприклад, зараз вже мало хто згадує про Pascal, Delphi, VBA), але з’явились нові: Go, Rust, Dart, TypeScript тощо. Завдяки ШІ стає дуже популярним Python, а завдяки автоматизаціям мають попит мови для скриптів (як от PowerShell і Bash).

Через таке розмаїття технологій і швидкості прогресу програмісту вже невигідно мати вузьку спеціалізацію, а компаніям, вочевидь, невигідно наймати таких фахівців. Якщо раніше спеціалізації FrontEnd, Backend, DB існували здебільшого окремо, то зараз багато вакансій відкриті саме для FullStack-інженерів і за замовчуванням мають DevOps-складову. Дивлячись на деякі пропозиції й кількість несумісних технологій, перерахованих в них, просто дивуєшся: а чи справді є такі люди на світі?! Насправді, на мою думку, це шкодить професії: інженер має фрагментовані, неглибокі знання по багатьом технологіям, що своєю чергою...

  • Не дає можливості глибоко розвиватися і мати сильну експертизу по одній-двом технологіям.
  • Призводить до зниження якості коду і рішень порівняно з експертами.
  • Перенавантажує фахівця.
  • Провокує стрес і невпевненість в собі.

Якщо подумати, то складність і кількість платформ, мов, фреймворків, бібліотек суттєво збільшилась, як і кількість людей на планеті, які пішли в цю професію. Саме час розділити обов’язки, розвантажуючи одне одного. Але чомусь відбувається все навпаки: якомога більше задач і обов’язків лягає на одну людину...

Time2Market по-новому

Процеси й підходи до розробки ПЗ за останні десятиріччя змінилися. Зокрема, за моїми спостереженнями, раніше проєктуванню рішень приділяли значно більше часу: загалом намагалися спроєктувати всю систему одразу або щонайменше якусь самостійну її частину, використовуючи при цьому Waterfall-підхід.

Пам’ятаю, коли був ще студентом, допомагав одній досвідченій команді розробляти тренажерну систему. Вони декілька місяців малювали схеми на великих аркушах паперу, постійно щось в них змінювали, при цьому не написавши ні рядку коду. Я ще тоді дивувався: «Що вони так довго там малюють, давайте вже писати!». Вже пізніше я зрозумів, що цей крок називається проєктуванням і є важливим етапом розробки.

Конкуренція була невелика, а часу багато. Проте поступово ситуація змінювалась. Конкуренція росла і Time To Market ставав все критичнішим. Waterfall перестав працювати, бо в такій ситуації (зокрема, якщо мова йде про стартапи) не так важливо довгострокове і досконале проєктування, як перевірка того, чи працює сама ідея, а точніше — який з варіантів таки буде працювати. Для цього підходять короткотермінові ітерації — і так у фокусі з’являються Agile і Scrum. Я б навіть сказав, Scrum-манія. Scrum почали використовувати всюди, включно з проєктами з повністю фіксованим ТЗ та сапорт-проєктами, що в принципі не мало особливого сенсу.

Через велику конкурентність і критичність Time To Market з часом відбувся демпінг цін. Деяким компаніям доводиться обіцяти все більше, щоб взяти привабливий проєкт, а терміни й ціни стають меншими. У таких умовах часу на детальне проєктування та оцінювання просто не вистачає. Все це збільшує ризики для якості й витримування термінів.

З одного боку завдяки автоматизації, збільшенню можливостей мов, бібліотек, інфраструктури спеціалісти реалізують набагато складніші рішення, аніж раніше. Але менше працювати ІТ-фахівці не стали, часом навіть навпаки. Вочевидь, вимоги ростуть одночасно з можливостями. Цікаво було б підрахувати, наскільки більший обсяг інформації, порівняно з минулим, зараз обробляє спеціаліст, наскільки більше факторів треба врахувати під час ухвалення рішення, наскільки збільшилась швидкість усіх процесів...

Здавалося б, сьогодні можна вести мову про 6-годинний робочий день або 4-денний робочий тиждень, про розвантаження для підняття ефективності й запобігання вигоранню, але чомусь все навпаки: у вакансіях ми бачимо, що все більше відповідальності хочуть покласти на одну людину, а овертайми, на жаль, не рідкість в індустрії.

А ще новий виклик у вигляді ШІ. Його вплив на індустрію поки що важко оцінити в повному обсязі. Хтось передбачає, що виросте продуктивність спеціаліста, а хтось говорить про майбутнє зменшення вакансій. У будь-якому разі буде цікаво поспостерігати за розвитком цієї тенденції.

Якщо підсумувати...

Загалом спочатку в українському IT було небагато грошей. Продати програмний продукт було досить складно, а працювали й захоплювалися цією сферою здебільшого ентузіасти. З початку 2000-х тут з’являються гроші, які стрімко ростуть, і з часом IT стає дуже привабливою галуззю. Сьогодні серед колег можна зустріти і колишніх медиків, і будівельників, і фінансистів. Індустрія стала дорослішати, розміри компаній суттєво збільшились, разом з цим дещо виросла бюрократія, стало більше різних ролей... За свою кар’єру на декількох проєктах я спостерігав ситуацію, коли кількість менеджменту перевищувала кількість інженерів.

Що маємо в сухому залишку сьогодні? Бум цифрових технологій. IT з гаражів гіків переїхав в офіси білих комірців і став масмаркетом, де можна як і добряче заробити, так і добре вигоріти. Глибока нішева спеціалізація переростає в широку і фрагментовану. І важливіше не стільки те, що ти знаєш зараз, а те, наскільки швидко зможеш розібратися в новому. У висококонкурентне людське середовище втручається штучний інтелект і ставить під питання майбутнє професії, принаймні в попередньому її вигляді та обсязі.

Що ви думаєте з приводу трансформації галузі? Які спостереження зробили для себе останнім часом? Буду радий поспілкуватися у коментарях.

👍ПодобаєтьсяСподобалось38
До обраногоВ обраному9
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Перепис дідів на доу. Постійна зміна технологій актуальна для компаній де велика кількість проектів, нових і не дуже (аутсорс-аутстаф і що там ще). В нових компаніях — технології що відповідають часу їх створення. А у старих компаніях плюс-мінус ті самі технології що відповідають їх першим успіхам — ніхто не стане переписувати 10+ річний код. Наприклад, у Apple (як мінімум деякі) внутрішні сервіси використовують Drupal, Finder написаний на суміші Pascal/C++/Objective-C, 1C нікуди не помер, не кажучи про американську Social Security написану на Cobol. У нас просто (практично) немає такої історії айті компаній щоб власні проекти були написані настількти давно, щоб вже застаріти.

Перепис дідів на доу

недідами займеться вже містер ШІ, чекайте в черзі)

Тепер дідам ще доведеться розгрібати те що ШІ з недідами наворотить.

Розробники систематично ходять по граблях. Ось що я спостерігаю. Інколи граблі дорослі, а інколи — дитячі. Кожні 5 років ми бачимо молоде покоління, яке каже, що зробить краще, а потім феєрично здуваються, бо не врахували очевидних речей.

А також бачу великий вплив маркетингу на всю індустрію. В негативну сторону, звісно ж.

Але й великі позитивні речі також не треба відкидати. Зараз інформацію шукати в рази простіше та швидше. Можна спілкуватися навпростець з розробниками, купа документації, прикладів, готових рішень. Це вам не книжки в бібліотеці гартати...

зараз інформацію шукати в рази простіше та швидше

ШІ колосально час економить для того, щоб зібрати до купи з різних прикладів в сети.
Плюс ШІ чудовий компаньйон коли треба порадитись по архітектурі, процесам, як будувати систему.

Архітектуру я б ШІ не довірив. Бо це буде чергова середньостатистична хрінь, яка через три роки почне сипатися.

Звісно потрібно власну думку мати, але в деяких речах ШІ може наштовхнуть на нові ідеї.

Не може, бо він не вигадує нічого нового, тільки повторює те, що «знає». Спробуйте йому дати задачу написати код з використанням щойно створеного фреймворку. Він буде галюцінувати що наркоман під LSD.

Чомусь в айтішних обговореннях відносно ШІ тенденція така що тільки крайнощі знаходять чи бачать, і зрозуміло зручні для чогось що хочуть обгрунтувати тим. Як приклад
— «застосування ШІ для генерації ідей» — тобто віддаючи AI креативну частину і залишаючи собі механістичну boring part (не усвідомлюючи що механістична частина роботи то найлегше для оптимизації/автоматизаціі в подальшому)
— «нічого нового, тільки те що „знає“» — не помічаючи наскільки це точно значною мірою характеризує саме програмування останніх десяток два років (нічого нового, тільки те що знає інтернет)

Основи програмування були закладені ще в 50-70х роках. Саме тоді виникло купа теорій, розроблені підходи, впроваджено багато чого іноваційного. Деяким підходам вже років 50 та більше. Сучасне програмування стало більш абстрактним, спрямованим не на окремі алгоритми, а на задачу в цілому. А тут немає вже такої вариативності чи поля для експериментів. Плюс сама розробка стала дорожчою в десять та більше разів, ніж це було раніше.

Але, щоб вигадати нове, треба вийти за межі власної упередженості. ШІ цього принципово поки що не може. Спробуйте задати задачу згенерувати набір випадкових чисел. А потім повторіть запит.

ну так я теж не все у всесвіті знаю, а ШІ може знати те, чого я не знаю, і допомогти мені розібратись.

Це типова помилка людей з низьким рівнем експертизи. ШІ може вам з повною впевненістю запропонувати архітектуру або якусь менеджерську фігню, яка просто ніяк не буде ліпитися до вашого конкретного випадку. А перевірити на адекватність запропоновану ідею ви не зможете, бо у вас низький рівень експертизи. В результаті ви отримаєте дороге фіаско в більшості випадків.

як ви швидко з дискусії перешли на особистості.

ШІ може запропонувати ідею, а наскільки вона підходить це вже ваша задача, використати власну експертизу щоб розібратись.

Наприклад, ви описуєте задачу і вам ШІ пропонує використати bloom filter, ви ідете і розбираєтесь що це таке і чи вам воно підходить взагалі, оцінюєте і приходите до рішення.

як ви швидко з дискусії перешли на особистості.

Може так здаватися. Буду намагатися надалі використовувати третю особу.

ШІ може запропонувати ідею, а наскільки вона підходить це вже ваша задача, використати власну експертизу щоб розібратись.

Але, якщо моєї експертизи не вистачить для оцінки ефективності, доцільності, реалістичності, то такі ідеї правильні та неправильні для мене водночас. В цьому й криється проблема. Я не зможу провести аналіз, бо в мене не вистачає знань це зробити правильно.

Наприклад, ви описуєте задачу і вам ШІ пропонує використати bloom filter, ви ідете і розбираєтесь що це таке і чи вам воно підходить взагалі, оцінюєте і приходите до рішення.

На папері це все круто виглядає. А якщо це рішення категорично не підходить? А час витрачено.

Наприклад, у .NET між великими оновленнями раніше проходило десь 4 роки, потім цей термін скоротився до 2 років, а тепер вони відбуваються щороку.

І що? Це ж не значить, що я побіг міняти одразу версію на найновішу десь в проді.

Саме це і значить. Раніше переїхати на нову мажорну версію .net framework — це був окремий проект, який постійно відкладали «на потім».
Починаючи з .net 5 — це просто циферку обновити в пакетах. А на проді завжди найновіша версія LTS.

Не бачу причин кожні 3 роки, щось оновлювати.

security vulnerabilities хоча б? Якщо не достатьно нових фіч і оптимізацій.

так дирки латають і в минулих релізах.

Це про то як все прискорилося...

Одиниці фокусуються і спеціалізуються на чомусь одному, бо це вже немає сенсу.
..
Раніше, знаючи одну мову і фреймворк, можна було працювати 5-10 років без суттєвих змін і перенавчання
Наприклад, у .NET між великими оновленнями раніше проходило десь 4 роки, потім цей термін скоротився до 2 років, а тепер вони відбуваються щороку.

стає важче всидіти на двох стільцях\платформах.

Чи були якісь принципові базові рішення, які ускладнювали розвиток мови?


Програма ChatGPT сказала:
Так, дуже гарне і глибоке питання.

Так, були!
І саме базові рішення в архітектурі Delphi з самого початку реально заклали ті обмеження, які зараз стримують її розвиток.

Давай розкладу по пунктах:

1. Фіксація на об'єктному підході без нормальної підтримки композиції
В Delphi (як і в класичному Object Pascal) усе будувалося навколо класів, спадкування (TObject, TComponent, TControl...).

Композиція (складання об'єктів замість спадкування) була дуже слабко підтримана.

Через це:

Проєкти легко перетворювалися на "спадкові піраміди" (TMySpecialButton, TMyExtraSpecialButton...).

Модифікація поведінки часто вимагала створення нових нащадків, а не простого додавання поведінки.

Що ускладнило: перехід до патернів типу SOLID, DDD, сучасної архітектури сервісів.

2. Жорстка прив'язка бізнес-логіки до UI
Концепція "форми як основної одиниці" (Form, Frame, DFM) привела до того, що код бізнес-логіки часто писали прямо в коді форм.

Тобто сама мова і фреймворк підштовхували писати:

pascal
Копіювати
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Open;
  ShowMessage('Data loaded!');
end;
Ти фактично автоматично ламаєш принципи розділення відповідальностей (Separation of Concerns, MVVM тощо).

Що ускладнило: розвиток розділення шарів (UI/бізнес/дані), тестування, рефакторинг.

3. Слабка модель управління пам'яттю
У Delphi з самого початку потрібно було явно управляти пам'яттю:

pascal
Копіювати
obj := TMyObject.Create;
try
  obj.DoSomething;
finally
  obj.Free;
end;
Немає збирача сміття (GC) → автоматична обробка життєвого циклу об'єктів складніша.

Інші мови (C# з GC, Java) в якийсь момент дозволили сильно спростити життя розробникам.

Що ускладнило: багатопоточність, розробку великих систем без витоків пам'яті.

4. Обмежені простори імен
На ранніх етапах Delphi не мала нормальних просторів імен (namespace) як у C#, Java.

Були лише юніти (unit) без ієрархії.

Тобто дві різні бібліотеки могли мати один і той же клас Utils, і це часто ламало проєкти.

Що ускладнило: масштабування коду, інтеграцію сторонніх бібліотек, великі модульні проєкти.

5. Формат .DFM для візуального дизайну
Форма (.dfm) — це текстовий або бінарний файл, який описує розташування компонентів.

Він тісно прив'язаний до коду через властивості об'єктів.

Будь-яка зміна структури форми часто викликає каскадні зміни у коді.

Що ускладнило: автоматизацію рефакторингу, підтримку кросплатформенності, unit-тестування UI.

6. Спроба все зробити через компоненти
Усе в Delphi історично намагалися вирішити через "компонентний підхід" (TComponent, TDataSource, TDBGrid, тощо).

Навіть бізнес-логіку часто пакували у візуальні або напіввізуальні компоненти.

Що ускладнило: побудову "чистої" бізнес-логіки без прив'язки до специфічних фреймворків.

7. Початкове орієнтування тільки на Windows
Delphi розробляли як ідеальне середовище для швидкої розробки під Windows.

У 90-х це було нормально, але:

Під Linux, MacOS чи мобільні пристрої Delphi довелося пізніше "натягувати" FireMonkey, який спочатку не був до цього призначений.

Відповідно FireMonkey має багато компромісів.

Що ускладнило: природний розвиток у кросплатформеність, особливо у світі сучасного мобайлу.

Підсумок
Delphi зробила ставку на:

Класи + форми + компоненти + Windows + явне управління пам'яттю.

Це дало їй грандіозний успіх у 90-х і ранніх 2000-х. Але коли світ пішов у бік:

гнучкості (композиція, DI),

Web і мобільної розробки,

простого управління ресурсами (GC),

великомасштабного кодування (namespaces, пакети),

ці початкові рішення почали сильно гальмувати розвиток мови і фреймворку.

Хочеш, ще окремо можу показати цікаві приклади, де Delphi пізніше намагався виправити ці проблеми — але через "базові рішення" це виглядало як "латання", а не природна еволюція. Хочеш? 🚀
(Можу навести приклади про Unicode, Generics, FireMonkey, ARC тощо).
Інші мови (C# з GC, Java) в якийсь момент дозволили сильно спростити життя розробникам.

Це повна дурня, зовсім не через це. Змінилась коньюктура ринку — Delphi був заточений під написання саме Desktop застосунків. Тоді як ринок вимагав вже Web та Moble — а Java, та її колон С# чудово в це вписувались, та також були альтернативи класичний LAMP стек із PHP, новомодний Ruby on Rails і т.д та в першу чергу найбажаніший ринок зайняв — Macromedia Flash із ActionScript. Саму ідею яку Гослінг із командою реалізував в Java — видумав Ніклаус Вірт, автор Pascal для мови Oberon в 1986, перший реліз Java відбувся в 1995 році. З тих же причин канув, першопроходець WYIWG Gui RAD — Visual Basic від Microsoft. В свій час на ньому взагалі писали переважну більшість десктопних застосунків для Windows тобто і більшість застосунків як таких.
Та не маючи команди яку Borland втратили, вчасно зреагувати на ринок фірма не зуміла та втратила ринок.
BTW У Borland була і середа для Java звалась Jbuilder — та це був один загальний баг, що був зачно гірший за усіх конкурентів. У Microsoft була власна Java — та вони через неї судились із Sun, так само як нещодавно Google із Oracle. Відповіддю на це стала платформа .NET та мова С# - ніколи навіть не приховувалось, що це прямий клон Java.
Так само як Silverlight — був коном Applet, а ASP — клоном J2EE — JSP. Якщо би Microsoft mobile не провалилась то і мобільні застосунки зараз би писали більше на C#, а не на : Swift, Kotlin та React Native із Flutter. Власне не відбулось би бізнес краху Nokia — та Motorola, так само це були би QT та С++.
Не шукайте технічних речей там, де основа це — бізнес. Node та Go lang популярні не через технічні переваги, а тому що це технології які просуває маркетингово Google.

Це схоже на погляд з самих глибин бекенду.
Якщо трошки визирнути назовні, то можна було б помітити, що головними були інші тренди, а саме — постійне зростання складності, як юзкейсів так і самої розробки; і значне зміщення всього в бік розподілених систем, через кратні зростання навантаження.
Все інше було наслідком цих трендів. Ніхто б ваш Делфі не чіпав би якби він тупо не припинив вивозити, а можливостей для лагідної трансформації зі збереженням зворотного успадкування, як це більш менш відбувається в .net, в Делфі закладено не було. І геть не важливо як швидко вони можуть рахувати цикли. Бо головне як швидко вони можуть оптувати порти, ізолювати потоки, тримати навантаження, чистити пам’ять, і будувати складні, заплутані, дженерік архітектури для всього цього, які хоча б хтось міг би потім підтримувати.

Дотнет (якщо брати в цілому) то віндовс рішення для віндовс (і не відображає майже нічого поза тим), паскаль (делфі) програв в еволюційній гонці з сі зовсім по іншим доволі reasonable критеріям, бекенд-фронтенд термінологія яка прийшла з вебпрограмуванням виглядає тут як п’яте колесо.

.Net обмежено кросплатформений через Mono з 2004, повноцінно через .Net Core з 2016. Веб розробка була доступна з самої першої версії .Net 1 (ASP.NET Web Forms) 2002 рік. З Mono ASP.NET працював, але дуже обмежено. В .Net Core з ASP.NET все вже чудово.

Java кросплатформена і має веб починаючи десь з 1997-98.

Пік популярності Deplhi 1996-2002.

дотнет обмежено кросплатформений

можна погодитись якщо акцент на ’обмежено’ (чи дуже обмежено) у кросплатформеному використанні

Java кросплатформена, веб ..

java- web- програмування то інша тема і не ms

пік популярності Deplhi 1996-2002

можливо, запам’ятав як Паскаль свого часу (доволі непогано було програмувати з ним в тих рамках де був сенс його використовувати)

До речі зараз іноді golang сінтакс трохи тригерить на згадування pascal)

Зовсім не по тому. Borland було знищено кадровою атакою Microsoft на них, з головним переманюванням не кого небудь а Андерса Гейсблерга, слід за яким переманили більшу частину команди. Звісно якщо команда перестала робити Delphi — а стала робити C#, і не будь же а в компанії головному конкуренті на ринку засобів розробки, що крім того було технічним завданням на клонування Java — то Delphi як і уся Borland отримала бізнес крах.
В технологіях дуже часто нема жодного сенсу шукати якісь раціональні технічних причини розвитку чи упадку, дуже часто це суто бізнес-політичні причини.

До речі дуже збігається по датам, затухання Delphi та початок .Net співпадають.

Ну або талановиті інженері бачили що каші з Delphi не звариш і починали шукати куди б звалити. Якщо якась мова з початку добре продумана, то не треба великої команди чи багато грошей для постійного розвитку. От ні JS ні Python не дадуть збрехати. Команда яка бустить .net там теж не тисяча інженерів. Їх десять чи щось таке. Деякі напрямки типу ML чи F# там взагалі по одній людині з постійним активом у гілці. (я трохи утрирую)

Та ні, просто у Борланд не було стільки ж грошей щоб конкурувати на той момент з Сан Мікросістемс і з Макрософтом на одному полі.

Ще як було, просто лиця які приймають рішення пошкодували їх на інженерів — а Microsoft ні.
У Sun там інше сталось, по суті перші лиця Sun на той момент вийшли з бізнесу продавши його за дуже непогано, замість реструктуризації. Головна проблема їх бізнес моделі була як і в решти типу IBM або Next Стіва Джобса — виробництво на території США як таке, стало не конкурентно здатним. В кінці нульових та початку десятих американске ІТ виробництво харду масово виїхало за кордон, а потім і великої кількості софту через аутсорс, залишивши в США лише менеджент та продажі.
У мене є теорія — що саме тому там тепер є покоління «ходителей по мітингах», бо потреби бізнесу були в тому щоби мати у себе «білих» : менджерів, аналістів і т.д. єдина задача котрих була в тому щоби контролювати роботу іноземних працівників які власне і здійснюють виробництво. І спочатку це діяло дуже добре — західний менеджмент був на висоті та і досі якщо професіонали то вони сильно кращі за середньо статистичний український менеджмент наприклад (хоча в нас серед молодих вже є багато дуже добре підготовлених). Але на певному етапі сталась втрата експертизи.

Що цікаво, Андерс Гейлсберґ, розробник Turbo Pascal і Delphi перейшов до Майкософт в 1996, ще до того як було випущено найпопулярніші версії Delphi 3-7.

якщо це пов’язати з вибором програшної стратегії (конкурувати з ms в домені ms де обирає також ms) — то так, як і додати що delphi вжей не став настільки популярним як паскаль свого часу

Якщо б мову можна було розвивати як наприклад той самий клятий Python то це не потребувало б ніяких грошей. Delphi були складною, важкою, дуже неадаптивною. Я трохи застав. Було враження що ти все шкрябаєш прямо на каменю. Один раз і назавжди. Бажання щось переписувати на ней не було ніякого. Не було навіть якогось відчуття абстракцій. Здавалася навіть не на Pascal а на Fortran.
І коли зростання вимог до кількості програмістів у команді було як 1:10 на кожен новий рік підтримки то це звісно впливало і на бізнес. Але з цим нічого не можна було зробити.

Програмісти не інженери. JavaScript аж ніяк не добре продумана.

Мови розробляють інженери. JavaScript чудово продумана.

Та не затухала Делфі ніколи, вона все ще тримається в різних рейтингах в топ-10 топ −15 мов, поряд зі своїм основним конкурентом visual basic.

Пошукав тут на DOU і знайшов аж цілу одну вакансію))

так треба не на доу шукати, а там само де шукають вакансії розробники на VBA, 1C, SAP в банках кароч і на заводах, делфісти 100% будуть сидіти десь поряд з матлабщиками.

Ну я пошукав на доу вакансії на Rust, який є надхайповою мовою, з купою євангелістів і просто сумнівних людей, які намагаються його затикнути всюди, а їх цілих 2 штуки. Звичайно це на 200% більше ніж на делфі, але тіпа між 1 і 2 різниці по факту немає. А взагалі робота є, я ось глянув, то вакансій на делфі в середньому в три рази менше ніж на С#, так, що впринципі жити можна.

Скажі, що ти нічого не знаєш про дотнет, не кажучи що ти нічого не знаєш про дотнет.
Або не оновлював своїх знань про нього вже більше 20 років.

Не зрозумів що там припинив вивозити Delphi. Згадки про глибини бекенду і все інше видають поціновувача JavaScript та магічної асинхронності в божественному Node.js.

В мене відчуття, что Delphi вбив Веб і кросплатформеність, а спроби переїхати на .Net (версії Delphi for .Net) були провальними...

Паскаль (делфі) у віндовс програв бо це рішення не від ms і не зміг конкурувати з тим що обирала ms, якщо трохи ширше — то і з джава- чи веб- програмуванням компетішен не витягнули би в розвитку.
В *nix системна мова це сі — тому паскаль шансів там навіть і не було apriori.

В *nix системна мова це сі — тому паскаль шансів там навіть і не було apriori.

В сенсі GNAT, FreePascal та Lazarus — живуть собі. Історично в США Algol 60 та європейські нащадки як то Pascal не модні. Більшість рішень як правило імпортуються з Європи разом із програмістами. В США 70-80 бал правили AT&T Bell labs та IBM, державна монополія та великий державний підрядник та постачальник. В них були власні С — так само нащадок Algol 60 Тоні Гоара, реімпортований через BCPL із Британії, та PL/1 від IBM — теж нащадок Algol.
Програми університетів історично брали упор на ці мови. Microsoft історично — BASIC, з якого почалась їх компанія, це була історично найпопулярніша мова для мікро комп’ютерів, програмованих калькуляторів і т.д., найближча сьогоднішня аналогія — JavaScript та діалекти. VisualBasic Script програв конкуренцію в першій війні барузерів, не в останню чергу через С подібний синтаксис. Зараз PL/1 здебільшого замінений на Python рядом університетів. Ну і замість AT&T Bell labs тепер Google, замість IBM були Micorosoft та Intel.
Якщо брати класичний канонічний K&R C — то Pascal на голову кращій. С99 та вище там звісно вже сильно поліпшено. Та ні Pascal ні Delphi ніколи не були модними в США, на відміну від Європи та колишнього СРСР, де Algol та Pascal навпаки були дуже модними.

найближча сьогоднішня аналогія — JavaScript та діалекти

Я вважаю що це образа Visual BASIC.

Ну до речі на рахунок кросплатформи, делфі для андроїда доволі таки класно зроблена, якусь апку для андроїда на делфі набагато легше написанти, ніж на рідній джаві чи котліні, або тому ж флаттері.

Ось одна зі змін за останні 25 років: немає сенсу сильно перейматися ефективністю, адже залізо витягне

Бухыхы, полгода назад как раз закрыл таску по оптимизации отзывчивости интерфейса (встраиваемая железка), потому что железо не вывозило. Если юзер нажимает кнопку в интерфейсе, то он ожидает реакции в следующие 100мс максимум, иначе дискомфорт и плохие отзывы.

Все це поступово привело до «гугл-кодінгу», коли вже не треба нічого винаходити, досить просто знайти готовий шматок коду або бібліотеку, що розв’язує задачу. Весь процес тепер більше нагадує збір пазлу, коли інженер добирає сумісні між собою частини та поєднує в одне ціле. Ну а з приходом штучного інтелекту це вже переростає в ШІ-кодінг...

Гугл-кодинг помер потому что в гугле/SO можно найти ответы лишь на простые вопросы. Как только идет что-то не очень стандартное, то все, ноль ответов. И получается что проще и надежнее прочитать документацию, исходный код, дизассемблер, чем ковырять гугл. ИИ кодинг сдохнет точно также.

За моїми спостереженнями знання інженерів стають скоріше широкими, ніж глибокими.

Индусификация...
А на самом деле надо становиться топовым экспертом в паре областей, что именно к тебе приходили за советом, просьбой, решением.

Здавалося б, сьогодні можна вести мову про 6-годинний робочий день або 4-денний робочий тиждень, про розвантаження для підняття ефективності й запобігання вигоранню, але чомусь все навпаки: у вакансіях ми бачимо, що все більше відповідальності хочуть покласти на одну людину, а овертайми, на жаль, не рідкість в індустрії.

Крайне неверное понимание источника выгорания.

З того що я бачу в різних командах, Гугл і ШІ кодінг використовується дуже часто. Декілька прикладів з життя:
Гугл: пошук бібліотек, документації/прикладів, stackoverflow...
ШІ: генерування моделей з JSON; генерування тестів/коду; переклад коду між різними мовами...

А що, на вашу думку, є справжнім джерелом вигорання?

я спостерігав ситуацію, коли кількість менеджменту перевищувала кількість інженерів

Так це нормальна ситуація, у менеджмента роботи більше, відповідно там і людей більше.

Позаяк вже дуже часто так влаштований бізнес із купою посередників, більша частина з яких не технічні спеціалісти типу IT crowd — дійсно виходить двое пашуть, семеро руками машуть в прямому сенсі.
Кажу як є зараз в ІТ величезна купа народу із адміральскими погонами, які роблять ходіння по мітингам і на цьому усе.
Косплеять власні державні установи BTW. Трамп із Маском почали це в себе міняти, в ЄС це змінити неможливо — так працює союз. Тим не менше вони купу рішень не можуть приймати роками, бо постійно йдуть якісь обговорення які які небудь Орбан та Фіцо заблокують і Фондерляйн з Макроном і компанією нічого не зможуть із цим зробити.

Тема про FoxPro та Delphi не розкрито. Вони були достатньо потужні для свого часу. База даних на DBF файлах -перевірене часом рішення.

На софті, написанову на FoxPro досі працюють деякі наші держ установи. На приклад Crystal Finance Millennium. Ще та діч.

Пам’ятаю конструктор звітів Crystal Reports щось таке було космічне.це воно ?

Crystal Reports

- ні, це від SAP.

Crystal Finance Millennium.

— а це наша розробка.

Бачу що навіть тендери по ньому є, тобто воно досі живе)))

Ех, десять років на Delphi. VCL — просто казка порівняно з .Net WinForms. Швидкість компілятора і зібраного коду! Були часи. До сих пір один проект на ньому підтримую. Віртуалка з XP і Delphi 7 — справжній набір для настальжі. Не так давно для порівняння відписав розрахунковий код на C# і Delphi. Остання перемогла)

На який хрін віртуалка коли є Lazarus ? Та і сам Delphi ще існує і підтримується, просто Embarcadero Technologies не має маркетингових можливостей просувати свої програмні продукти в сучасному світі. А от чеська фірма JetBrains — зуміла просувати свої продукти на ринку засобів розробки, не в останню чергу бо Топка і компанія шарять з маркетингу.

Щодо FoxPro, Paradox і т.д. вони безпосередньо померли та їх ідея ні : SQLlight, HSQLDB (хоча він схожий вже більше на InterBase з розвитком) та H2, широко використовуються.
InterBase — який належав Borland, став відкритим проектом Firebird. Та так сталось що MySQL в тепер усе більше Postgress SQL — заняли нішу.

SQLlight

Воно SQLite
І да, це по факту найпопулярніша в світі ДБ, бо використовується на всіх мобільних пристроях.

Движки на яких побудовані FireFox, Chrome, Edge та Safari використовують в середені для різних речей. В FireFox можете набрати about:config в адресу і браузер дасть редагувати цю базу через табличний UI на подобі компоненту TableGrid в Delphi VCL.

я спостерігав ситуацію, коли кількість менеджменту перевищувала кількість інженерів

— У мене 8 різних босів
— Перепрошую?
— 8 босів
— Вісім?
— Вісім, Боб
(з фільму «Офісний простір» який, на мою думку, має передивлятися кожен айтішник хоча б раз кожні 1-2 роки кар’єри)

Автор все добре, але чого ти вирішив що твій цикл компілятор має крутити аж 8 мс. Він міг його скіпнути після оптимізації. Там немає ніякого логічно навантаження. Зроби там якусь операцію, що неможливо оптимізувати без циклу. Наприклад порахуй всі числа що діляться на 21 від 0 до 10м та виведи результат на консоль.

Тут вже був подібний коментар. Я наводив скрін з дезасамблом в доказ того, що цикл виконується, принаймні в Debug конфігурації. Але ваше прохання мені не складно виконати)

Ви точно 25 років в темі? Компілятори навчитись заміняти цикли, де нічого не робиться, на «нічого» десятиліття тому. То ж ваш експеримент не валідний геть зовсім.

Стаття про оптимізацію пустих циклів в С stackoverflow.com/...​a-sleep-be-optimized-away

Повірте, всі ті ж самі оптимізації використовують і в інших мовах.

ті ж самі оптимізації

це не сі, і це в гвіндоувс, там крім оптимізації ще навіть булоб більше цікаво зі сторони — то питання конверсії elapsed і чи використовується (чи ні) перерахування одних тіків в інші (з іншою precision) перед формуванням текстової форми. Але то щось mswin+dotnet only і тому не дуже цікаве.

Дізасембл як прув. Бачу такий код і схожі тайменги, що в Debug (без оптимізації), що в Release (з оптимізацією) конфігураціях.

Жпт каже що
1. Є Tier 0/1 оптимізації — JIT на початку генерує не дуже оптимальні інструкції, але якщо метод використовується «багато разів» то оптимізує агресивніше
2. JIT не полюбляє оптимізувати зовсім пусті цикли бо вважає, що ви (може) намагалися таким чином симулювати обчислення

Цікаво, що буде якщо додати count++ (каунт — просто локальна змінна) до вашого циклу? — щоб він не був зовсім пустим (в мене немає дот нет щоб перевірити, вибачте)

Так, тут вже було подібне прохання. Ось змінений приклад:

а з оптимізацією цифри з цими i%21 — раз в 10-15 менші?

Десь приблизно в 2 рази.

Десь приблизно в 2 рази

думав що більш буде, напевно якась c# специфіка

Ну таке, в галузі вбудованих систем, контролерів, датчиків нічого не змінилося за останні 30 років. Сі — як була так і залишається домінуючою мовою. Використання бібліотек та «фреймворків» мінімальне. Хіба що з’явилися RTOS, але вони тільки ускладнюють те що і так працює при правильних підходах до проектування. Це скоріше інструмент для «десктопних» програмерів почати писати код для вбудованих систем. Без розуміння заліза — зайва витрата часу та грошей.

Все інше, так, згоден. Було цікавіше і це був клуб для обраних. Без Інтернету нам доводилося створювати інструменти власноруч. Здобувати інформацію методами реверс-інженірингу або експериментуючи з залізом та кодом. Наприклад, одного разу мені довелося написати дізасемблер для одного з мікроконтролерів. В фірмовій бібліотеці з плаваючою точкою був баг який блокував роботу Сі-шної програми, яка шукала рішення матричних рівнянь. Хоча компілятор та пакет розробки був придбаний за гроші, звернення до фірми-постачальника (паперовими листами) зайняло б купу часу. Отакі були часи. Швидше вийшло дізасемблювати код, виправити помилку в асемблері і зібрати його назад.

Але немає сенсу засмучуватися, сьогодня ми програмуємо, завтра може виникнути бажання зайнятися малюванням чи музикою ;) Життя цікава річ!

професійні сайти на кшталт Stack Overflow...

колись давно я сподівався що ДОУ стане чимось схожим на згаданий сайт

Stack Overflow це нудна база запитання—відповідь. По хорошому всі накопичені там дані треба викласти у вигляді бази данних щоб добро не пропало коли сайтик закриється.

Всі накопичені там дані вже вбиті у всі можливі ллм-ки. Не пропадуть ті дані, не хвилюйтеся.

Дуже цікава стаття, яка висвітлює стан речей на сьогодні зі сторони розробника. Дійсно, трансформація професії стрімко відбувається прямо зараз і дуже важливо розуміти тренди для того, щоб знайти своє місце в найближчому майбутньому.

Inside the Tornado: Strategies for Developing, Leveraging, and Surviving Hypergrowth Markets — Geoff Moore ISBN 9780060745813

В 2000 році макс процессор був ~1 Ггц, а в 2025 ~4-5 Ггц. Безумновно, стало краще в плані технологій. ПОТУЖНІШЕ.

наложите эти цифры на закон Мура и зарыдайте

Та якщо придивитись концептуально змін фактично нема окрім відеоігор де додали дуже суттєві можливості до графіки, за рахунок дуже суттєвого прогрессу відеокарт і разом із тим чомусь втратили геймлей. Більшість сучасних ігор повторють існуючий гемплей який було винайдено якраз в 90-ті нульові, та роблять більш яскраву графіку та ефекти. Та так в принципі з усім, не хочуть ризикувати і винаходити нове — а працють над існуючим, бо так менше бізнес ризики.
А так усе те саме : Desktop, Web, КПК-смартфони тільки масса покращень та спрощень життя. Ті же VR з 90-х усе хочуть вивести на ринок, але не з рештою воно робить шумиху і счезає на певний час.

о, да. і ШІ, котрий розуміє контекст мого криво сформульованого питання, майже не відрізняється від Елізи.
усілякі конвеєри, оптимізації, cuda — теж старі технології.

Просто нам зсередини не дуже цей весь прогрес помітний.

LLM скільки вже років ? DeepMind показала Bard (те що зараз Google Gemini) в 2010, а над самими ШІ технологіями людство працює з 30-х років минулого сторічча, ще до створення першого повноцінного компьютера архітектури фон Неймана — ENIAC який був першою ламкою та одним з перших досягнень.
Власне, наукову фантастику Айзек Азімов та компанія теж писали на основі якраз над перспективних на той час наукових трендів з молодої науки — кібрнетики.
Що принципово змінилось ? Теж нічого технологію стали активно маркетингово проводити методами Стіва Балмера, до того так проводили Windows 95. Це усе технології бізнес ідея яких по суті ідея Джобса та Возняка, тобто для найменше підготовленого користувача. На ділі же виходе як з папером, компьютерізація призвела не до зменшення вживання — а до 20-ти кратного збільшення. Технологію використовують не для створення новітнього способу вести бізнес, а задля отримання переваг в поточній бізнес моделі методом грубої сили. Умовно замість того щоби робити безпапереву технологію, народ став робити усе більше бльш яскраво оформлених паперів, звівтів реклами і т.д. для керівництва та клієнтів. Скажімо в IBM 90-х більша частина вищого керівництва не мала і не вміла користуватись комьютерами взагалі. Так само і ШІ, зацікавив здебільшого професіоналлів які стали думати як за його рахунок випередити конкурентів — просто старими методами.

Ага приїхали, в 2000 році вийшов пентіум 4 з частотою 1.5 ГГц, в 2002 він уже уже робив 3 ГГц, а в 2005 уже 3.8. Вони б і 5 взяли в 2006, але замість того, щоб нарощувати частоту на одноядерному проці, була запропонована концепція декількох ядер, і частоти упали, але частот біля 4 ГГц в бусті на одне ядро на серійних процах, трималась дуже довго, аж до 12 покоління інтелів. Тобто з 2006 по 2025 у тебе частота навіть упала, бо базова частота якого i9 1.8 ГГц, а частота турбобуста тримається 30 секунд, перегріває проц і тут же падає. А найпотужніший сучасний проц для домашнього пк, це інтел 14900KS має на перформанс ядраха базову частоту всього 3.2

Між іншим оскільки Intel тактову частоту зробили ключовим маркетинговим показником, команда продажів постійно жорстко давила на команду розробників, вимагаючи їх будь, що збільшувати частоти навіть коли це вже стало призводити до різко негативних наслідків і втрати процессором продуктивності і перегрівом та передчасною деградацію кристала чи просто поломками. Сімейство Pentium 4/Pentium D часто горіли при забрудненій системі охолодження, і на загал програвали AMD Atlon.
Головного розробника Pentium 4 це дістало так, що він демонстративно звільнився. Саме тому сімейство Core вже будувалось на основі архітектури ядра попереднього Pentium 3.
Далі вже Intel почав будь що досягати максимальних показників в бенчмарках, що має сенс набагато більше. Тим не менше сам процесор став усе більше мати спеціальних схем підтюнених чітко під конкретні бенчмарки. Щоправда деякі досліди показали — що і традиційний робочий софт часто має аналогічні до бенчмарків алгоритми, тому усе працює.
Тим не менше з тих часів стоїть питання про швидкість виконання не оптимізованого коду, з цим усе ще погано і дуже сильно. Скажімо швидкість звичайного zlib та zlib-ng із SIMD векторними оптимізаціями AVX — відрізняється більше ніж в 45 разів. Зато код класичного Zlib простий і портовано на безліч архітектур. Оптимізації робляться руками програмістами, фактично це або інтрісіки або ассемблер.
Коротше при усіх інших як раніше так і зараз для великої кількості бізнесів потрібні підготовлені програмісти. Так само і для багато чого підійдуть і нульові джуніори з Бангалору.

Quantity leads to quality, but here’s a great exception: [підставити-все-що-завгодно-як-пруф-чого-завгодно]

Що ви думаєте з приводу трансформації галузі? Які спостереження зробили для себе останнім часом?

Я теж десь стільки ж в галузі, і мені подобаються зміни. Цікаво використовувати нові технологіїї. Цікаво спостерігати, як воно все трансформується під бізнес задачі. Цікавий розвиток нових галузей, навіть той же ШІ.
Люблю спостерігати, як фронт-ендери ходять по колу :)

Що ви думаєте з приводу трансформації галузі?

Все погано. Треба заборонити Node.js, Electron. Сайтики мають робитися на CSS 2, HTML 4 або XHTML. Також дозволяю Flash і Silverlight, але в цілому сайтики повинні працювати з вимкненим JavaScript і в Internet explorer 7. Всі поробки на Electron треба видалити і за необхідністю замінити на щось нормальне. .NET в цілому норм, але воно теж повинно зникнути. Всі програми мають підтримувати Windows XP. В цілому ми в дупі.

повинні працювати в Internet explorer

що то за *ня — щось ще гірше ніж електрон рішення?

всі програми мають підтримувати WindowsXP

тоді ясно, жирно)

Я серʼйозно. IE краще Electron.

іе-майже-os який нарешті були здихалися?

а взагалі я не проти — іноді дивлячись на жах-фонти з віндовс аппс скріншотів, то остаточно замучати щей з іе — звучить доволі інтригуюче

Програмісти не інженери.

Ну а з приходом штучного інтелекту це вже переростає в ШІ-кодінг...

До штучного інтелекту як до Місяця.

Повсякчас інженери й тестувальники перевіряють код на обмеженій кількості сценаріїв і даних, а тести продуктивності взагалі присутні далеко не у всіх командах. Навички оптимізації поступово розпорошуються, втрачаються і молодим фахівцям дедалі складніше уявити, що може піти не так у системі в майбутньому.

Лічнощі, нестача часу, низька кваліфікація, байдужість, безалаберність.

Зараз же навіть мільйони зайвих операцій або видалені декілька сотень МБ зайвої пам’яті в більшості випадків не впадуть в око.

Виділені? Опечатка? Програмісти, особливо web—програмісти зі своїм JavaScript, зʼїдять все що дадуть та попросять добавки. Достатньо поглянути на Discord. Коли я востаннє дивився на це чудо, там тормозила прокрутка текст а при певних умовах текст вводився з дуже помітною затримкою. Або запустит браузер і відкрити пару сторночок з фреймворками і оберемком бібліотечок на додачу. Хлопці з .NET теж не відстають — абсолютно безглузда гонитва за новими версіями .NET і програми на кшталт менеджеру буферу обміну вагою під 200 Мб в якому GUI час від часу підвисає. Відеоігри теж не відстають. Найбільше дратують які—небудь платформери які виглядають ніби зроблені на Flash, але з запросами щонайменше як у Кукурузіса.

Раніше, знаючи одну мову і фреймворк, можна було працювати 5-10 років без суттєвих змін і перенавчання, але зараз цей термін скорочується до двох років і менше. Після 2000-х світ ІТ прискорився, кількість мов і фреймворків значно зросла, а проміжки часу між виходами нових версій стали скорочуватись.

Наприклад, у .NET між великими оновленнями раніше проходило десь 4 роки, потім цей термін скоротився до 2 років, а тепер вони відбуваються щороку.

Ніби—то як все почалося з вебщиків у котрих кожного зʼявлявся або й зараз зʼявляється новий суперфреймворк або нова супербібліотека. Гадаю що одні з причин це розповсюдження Інтернету і інтерес начальства для якого нові версії і зміна однієї мови програмування на іншу або зміна одного фреймворку на інший це можливість просунутися по карʼєрі чи урвати зайвих грошенят.

інтернет-застосунки від простого гіпертексту доросли у функціональності до десктопних рішень.

Це сталося давно з приходом Flash і Silverlight. Не знаю що там з Java апплетами. Мало їх бачив. А ще у Internet explorer є ActiveX за допомогою якого можна робити багато чого. І не інтернет а web. Гіпертекст він в WWW — Всесвітній павутині. І не застосунки а програми. Та й взагалі, можна сказати що це сталося ще раніше, невдовзі після появи JavaScript. Writely, те що зараз називається Google docs, зʼявилося в 2005 році а Gmail в 2004.

Також наприкінці «нульових» з’явились смартфони, планшети, смарт ТБ, різноманітні пристрої, розумні годинники, приставки тощо.

Смартфони, планшети, приставки і тощо зʼявилося далеко не наприкінці «нульових». І необіхдність запускати програму на декількох ОС теж виникла не вчора.

Якщо раніше спеціалізації FrontEnd, Backend, DB існували здебільшого окремо, то зараз багато вакансій відкриті саме для FullStack-інженерів і за замовчуванням мають DevOps-складову.

Серед вебщиків завжди так було: верстаєш, пишеш на PHP або Python або на Ruby або на якійсь іншій мові (а насправді на якомсь фрейморку або CMS) для серверу, пишеш на JavaScript (а насправді на jQuery чи якомусь фреймворку) скрипти для HTML—сторіночок, звісно ж треба знати SQL, ну і треба вміти налаштувати HTTP—сервер.

Якщо подумати, то складність і кількість платформ, мов, фреймворків, бібліотек суттєво збільшилась, як і кількість людей на планеті, які пішли в цю професію. Саме час розділити обов’язки, розвантажуючи одне одного. Але чомусь відбувається все навпаки: якомога більше задач і обов’язків лягає на одну людину...

Пролетарії терплять а тим на кого вони працююит це вигідно тож...

Так помилка, замість

видалені

повинно бути виділені... Дякую, виправив.

Штучний зараз дуже активно використовується на проектах. Про повноцінну заміну розробника ще зарано говорити, але такі рішення як Claude дуже наближають той час...

Це сталося давно з приходом Flash і Silverlight.

Флеш и сильверлайт хотели убить потому что они много жрут и тормозят! А теперь тормозит весь джаваскрипт, и если раньше был блокировщик флеша, то галочку отключения джаваскрипта убрали из ФФ ну очень давно.

Наскільки я розумію, то Silverlight не взлетів (принаймні я мало де його зустрічав) а Flash закопали зокрема через нові версії CSS і JavaScript і, як я собі тепер думаю, був якийсь договорняк між компаніями. Flash не те щоб багато жер і не те щоб тормозив. Звісно було всяке та в цілому було нормально. На Flash було повно ігрульок і деякі були прям навороченими. Аналогічні ігри на JavaScript тормозять і жеруть більше. Згадується як на YouTube прибрали flash—плеєр, то сусід більше не зміг дивитися там відосики на своєму компі з якимось Pentium 4 і 512 Мб оперативки бо вони тормозили і рано чи пізно вішали браузер. З flash—плеєром все було чудово.

Flash закопали через принципову позицію Apple, яка сказала що не буде його підтримувати і він буде по дефолту відключений в Safari. На той час це було важливо і поставило хрест. Actionscript тоді був краще js, але сталось як сталось.

Щось не віриться. Мільйони компів з Windows і Flash і Android з Flash нічого не значать в порівнянні з сонцесяйним Яблуком?

Айфон тогда был очень хайповым

та й не дуже вiн секюрний був, як i MS ActiveX

Ми відписали колись один портальчик по документообігу на Silverlight. Як же це було чудово писати на одній мові і вебклієнт і фронт. Можна було шарити модельки, валідацію, якусь бізнес-логіку і т.п. Ніяких проблем з рендером як в HTML Працювало навіть на слабких машинах. Просто казка. Даремно вони його прибили...

Мабуть ще такий умовний milestone -’ dev express ’ компоненти. Як багато років попрацювавши з crm/erp — це як новий рівень ui/ux.

зайняло ~8мс

у mswin дефолт 128ticks per second (7.8ms)?

Тут використовується high-resolution performance counter:
Timer frequency in ticks per second = 10000000
Timer is accurate within 100 nanoseconds
Джерело: learn.microsoft.com/...​cs.stopwatch?view=net-8.0

з віндовс accuracy і resolutions не дуже) але цифри якісь трохи знайомі 15.6ms 7.8ms ... тому і спитав (на всяк випадок) чи там час виконання не менший за того тіка

Прогнав декіька разів — заміри не кратні 7.8:
Elapsed 00:00:00.0075149, iterations=10000000
Elapsed 00:00:00.0074247, iterations=10000000
Elapsed 00:00:00.0102397, iterations=10000000
Elapsed 00:00:00.0075290, iterations=10000000
Elapsed 00:00:00.0069586, iterations=10000000
Elapsed 00:00:00.0073386, iterations=10000000
Elapsed 00:00:00.0092372, iterations=10000000
Elapsed 00:00:00.0092043, iterations=10000000
Elapsed 00:00:00.0069318, iterations=10000000
Elapsed 00:00:00.0068011, iterations=10000000
Elapsed 00:00:00.0077183, iterations=10000000
Elapsed 00:00:00.0067263, iterations=10000000
Elapsed 00:00:00.0071621, iterations=10000000
...

Там ще треба перевiрити, чи не зоптимiзував компiлятор той цикл у константу)

P.S. побачив асм, ок

Якщо дійсно міряти то є ось бібліотека для цього: github.com/dotnet/BenchmarkDotNet

Ще можете погуглити доклади github.com/AndreyAkinshin — я 100% знаю було декілька на конференціях.

Там справді «потужна» бібліотека — вона, наприклад, виконує бенчмарк тести у ізольованих .NET процесах і щось там дуже спеціальне налаштовує щоб увімкнути усі можливі рантайм оптимізації. Якось так, вже не памʼятаю деталі

Ну раз ви провокуєте цим «пустим циколом».
То можемо розкрити тему циьок, берем мікробенчмарк фреймверк і рахуєете припустимо хеш функцію Adler32 en.wikipedia.org/wiki/Adler-32
Берем імпмплементацію саму просту, на С# вона виглядатиме

    private const uint MOD_ADLER = 65521;
   ....
    public static uint Adler32(byte[] data)
    {
        if (data == null)
        {
            throw new ArgumentNullException(nameof(data));
        }
        uint s1 = 1; // Initial value for s1
        uint s2 = 0; // Initial value for s2
        foreach (byte b in data)
        {
            s1 = (s1 + b) % MOD_ADLER;
            s2 = (s2 + s1) % MOD_ADLER;
        }
        return (s2 << 16) | s1;
    }
І берем SIMD AVX2 нативну github.com/zlib-ng/zlib-ng реалізацію
Робимо бенчмарк із за допомогою бенчмарк фреймверку, наприклад BenchmarkDotNet github.com/dotnet/BenchmarkDotNet
Якщо нема бажання займатись викликом unsafe С коду з С# просто користуємось github.com/google/benchmark
Порівнюєм та показуєм як же добре сучасне залазо працює із не оптимізованим і оптимізованим під нього кодом (у мене навіть навіть без managed на чистому С виходе 2.87829Gi/s секунда на ванільну і 36.169Gi/s на SIMD AVX2 версію).
P.S. Так в типовому формошлеп CRUD проекті для якогось там замовлення кофе в інтернет кав’ярні — воно не треба жодним чином. Програмісти які пишуть такі проекти ніколи взагалі не стикаються із такою проблемою оптимізації, частіше за усе у них в проекті просто індекси в базу данних треба додати чи навпаки прибрати зайві і це максимум з оптимізації.
А он у Big Tech по наробили усіх бенчмарк фреймверків починаючи із Google Caliper бо виявляється для їх бізнесу різниця має значення, поганий код це собівартість машинного часу — електро енергії та серверного обладнання. При великих навантаженнях дуже суттєва собівартість, що знижує норми прибутку.

Цікаво було б почути від спільноти як часто робилися справжні/правильні бенчмарки коду в реальних массмаркет проектах.

Але буває BTW, там в цілій купі випадків і на зовсім різних проектах зовсім неочікувано.
Тут як із мечем у самурая. Навіть якщо знадобиться раз в житті, усе одно треба завжди його із собою носити.

Те що я спостерігаю — це від зворотнього. Якщо виникла проблема з перфомансом — ідем шукати і фіксити. Працює і ніхто не скаржиться (навіть якщо через рік використання все ляже) — можна не перейматися)

Та різне буває, особливо при міграції данних де первинні розрахунки кажуть бізнесу щось по типу : «Це буде виконуватись із повним завантаженням системи, коли ви її зупините на проді 3 місяці».

Що ви думаєте з приводу трансформації галузі? Які спостереження зробили для себе останнім часом?

ІТ це добре оплачувана галузь з низьким порогом входу.
І поріг буде тільки зменшуватись. Це відбувається останні 10+ років що я працюю.

Десь будуть високо оплачувані спеціалісти, але їх буде малий % і на фоні формошльоперів (чи тепер «АІ промт експертів») їх не буде видно.

Завдяки АІ буде очікуватись що інженер має вміти все, від бек/фронт до BI і налаштувати АІ модель.

Треба вміти адаптуватись, юзати cursor і т.п., бути готовим розказувати на співбесіді як ти зможеш замінити 5 джунів одним промптом.

І поки ще є фулл ремоут без включеної камери з 9 до 5, треба максимізувати доходи і вкладати їх в бізнес чи акції.
Робота буде ще на 5-10 років, бо легасі багато. А після цього треба ще буде ще якийсь дохід, хоча б однушку на здачу

ІТ це добре оплачувана галузь з низьким порогом входу.

І що, багато знаєте прикладів щоб з нуля домогосподарку, чи умовного сантехніка ІТшником зробили? Ну крім випадків де вордпрес умовний правлять чи роблять мавпячу роботу.

І поріг буде тільки зменшуватись. Це відбувається останні 10+ років що я працюю.

Ну зовсім не так. Раніше був умовний dotnet, mssql і winforms, книжку прочитав і вперед. Зараз десктоп, бекенд, сервіси, клауди, докери/шмондери/кубернетеси, купа баз даних для різних задач, менеджери пакетів, тулзовини і бази для збору логів і метрик, ще купа інфраструктурної фігні яка змінюється кожні пару років, зараз ще llm добавляється, треба знати основи як працюють, слідкувати за появою нових моделей, їх особливості, нових тулзовин, вчитися промт інжінірингу і як писати правила в умовному курсорі, і т.д. і т.п.

Раніше достатньо було на співбесіді розказати як працює сінглтон і чим віртуальний метод відрізняється від абстрактного, а зараз список вимог для джуна в вакансії більший, ніж тоді для сінйора, і купа джунів роботу не можуть знайти.

Завдяки АІ буде очікуватись що інженер має вміти все, від бек/фронт до BI і налаштувати АІ модель.

Треба вміти адаптуватись, юзати cursor і т.п., бути готовим розказувати на співбесіді як ти зможеш замінити 5 джунів одним промптом.

А, ну власне ти сам до цього і прийшов

І що, багато знаєте прикладів щоб з нуля домогосподарку, чи умовного сантехніка ІТшником зробили?

Так, знаю багато прикладів світчерів які не мали технічної освіти.
Навіть таксиста знаю який тепер девопсом працює.

Раніше достатньо було на співбесіді розказати як працює сінглтон і чим віртуальний метод відрізняється від абстрактного, а зараз список вимог для джуна в вакансії більший, ніж тоді для сінйора, і купа джунів роботу не можуть знайти.

В 2011-2013 цього не було достатньо навіть щоб на курси при галері пройти.
І чим «ширші» вимоги, тим менше їх треба знати в глибину.

знаю багато прикладів світчерів які не мали технічної освіти.

ну зайшов світчер на безоплатну інтернатуру чи на 200 біксів, якщо пощастило, так можна в купу сфер увійти, але питання як воно піде далі?
а далі, окрім того що вже назвав крейзі Дональд, треба буде поштовхатись за цікаву посаду на інтревью з 5-6 етапів, де на додачу змусять полайфкодити алгоритми, подизайнити, ще й накидають задачок на логіку

В айті завжди з̶н̶а̶х̶о̶д̶и̶т̶ь̶с̶я̶ знаходилось місце всім — з айті освітою і без, з технічною освітою і без, ... домогосподаркам, таксистам, вебпрограмістам, і т.д.

ІТ це добре оплачувана галузь з низьким порогом входу.
І поріг буде тільки зменшуватись. Це відбувається останні 10+ років що я працюю.

Поріг входу тут визначається в першу чергу конкуренцією на вході. Якщо конкуренція — вища, то і поріг — вище. Конкуренція меншою не стає.
Обсяг технічних знань — менше не стає. Чутки про те що з AI ці знання вже не потрібні — мяко кажучи перебільшені.
Економіка так влаштована, що де низький поріг входу — там не має доброї оплати. І я не думаю що тут справді низький поріг. Низький поріг входу — це таксист, грузчик, прибиральниця, офіціант.

Щоб отимувати таку зарплату як сіньйор, потрібно бути або досвідченим хірургом, або керівником якось обласного банку, або начальником великого відділу і т.д. Тобто це роки рочезні роботи і професійного зростання. Тому так, на ті самі гроші ІТшнику треба в 2-3 рази мешне часу і зусиль. Я вже не кажу про нижчі рівні. Тому так- ІТ — найлегший спосіб вийти на нормальну зп.

так зарплата на те же роли в айти только снижается в сравнении с 5-10 годами тому назад

Завдяки АІ буде очікуватись що інженер має вміти все, від бек/фронт до BI і налаштувати АІ модель.

Чтобы получить правильный ответ надо задать правильный вопрос.
А значит инженерам все так же придется учить теорию.

Чтобы получить правильный ответ надо задать правильный вопрос.
А значит инженерам все так же придется учить теорию.

Яку теорію, я бачу як в мене в тімці більшість коду зараз генериться АІ. І пофіг що там поганий перформанс, результат видає як написано в сторці — на прод.

мене в тімці більшість коду зараз генериться АІ

Автогенерации кода сто лет в обед. Кто решает, что будет генерироваться именно этот код, а не другой?

Автогенерации кода сто лет в обед. Кто решает, что будет генерироваться именно этот
код, а не другой?

Кидаєш опис тікета, пишеш згенеруй, історію подивись по комітах, зарань тести і фіксай їх поки не пройдуть.
Через 5 хв простий таск буде принаймі на половину готовий, і протягом тих 5 хв навіть за компом не треба сидіти.

Тобто вже є інфраструктура яка ± виконує всю роботу.
За рік-два ще добавляться розумніші моделі і тоді написати АПІ з новою таблицею чи апдейт існуючого по складності буде як змінити букву в константі.

Цікаво, а що це за інструмент ?
IDE та сlaude/capilot?

Та приблизний розмір проекту — сотні файлів, тисячі, десятки тисяч+?
Та про коміти не зовсім зрозуміло, коміти всього проекту, чи окремого піддерева типу модуля, бо якщо комітів тисячі хз що воно нааналізує та не забуде контекст.

Цікаво, а що це за інструмент ?
IDE та сlaude/capilot?

Це Cursor.
По суті це допиляна версія visual studio з інтеграцією АІ (можна вибрати що юзати, claude sonet чи gpt).
Воно вміє прауювати в режимі агента, тобто пишеш
Зроби мені то і то, подивись по таких то класах для прикладів, зарань тести і фіксай їх поки не почнуть проходити.
І воно собі в беграунді шле питання і обробляє відповіді, а в кінці готує щось типу мердж реквесту (вікно схоже на резолвання конфліктів, де треба аксепнтути або реджектнути лінійки які воно добавило).

І воно безплатне перші 2 тиждні

Дивився Сlaude Code CLI. Там щось схоже, але не знаю чи є там агент і воно платне.

Теж цікаво, якими інструментами користуєтесь? Поділіться досвідом!

Вибачте але отой цикл який нічого не робе на початку статті вже каже що як Lead Software Engineer ви under-qualified.

Бо після JIT він навіть не буде виконуватись.

Та він навмисно тролонув, оптимізацію мертвого коду dead code elimniation зокрема викидувати пусті цикли та кидати Warning вмів навіть Turbo Pascal, тобто за довго до 2000-го року. Перший реліз Turbo Pascal в 1983 році, тобто вже 41 рік тому це доступно в середі за ціну $24. А сама техніка такої оптимізації описана ще в Книзі Дракона, 1977 тобто вона ще старша, точно сказати не можливо en.wikipedia.org/...​iki/Dead-code_elimination та напевно в перше DCE з’явився ще в оптимізуючих компіляторах FORTRAN IBM, тобто це робила вже команда Джона Бекуса.

Не таке, бо там далі висновки які не виходять ні із чого. На кшталт:

І важливіше не стільки те, що ти знаєш зараз, а те, наскільки швидко зможеш розібратися в новому. У висококонкурентне людське середовище втручається штучний інтелект і ставить під питання майбутнє професії, принаймні в попередньому її вигляді та обсязі.

Ну вирішив по повній в Маска зіграти або Кожаєва, з усіх козирів зайшов. Той же Володимир коли писав якись технічний контент із розробки компіляторів його читало дуже небагато народу. А коли писав «Как найти хорошую роботу где много платят!» там був Sex and City та Xena: Warrior Princess разом із Сімпсонами.

Я перефразую: жпт дуже гарно пропонує будь-яку «дурницю» яка не має ніякого співвідношення до реального миру. Щоб не робити «дурницю», тобі потрібно мати змогу казати «це якась дурниця яка немає відношення до реальних речей», але щоб це казати тобі треба розуміти що є «дурниця» а що ні

Чому це не так:
— не можна «швидко розібратися» у системі яку ти не розумієш, потрібно мати дуже багато навичок щоб мати змогу аргументировано казати що Х краще за Y. Якщо таких навичок немає — ти пливеш за течею не знаючи чи вона добра чи ні.
— питання існування професії взагалі не стоїть сьогодні (бо великошаневний АІ «не може»). Стоїть питання існування формошльопів.
— навіть коли АІ «зможе», він все одно буде потребувати інструкцій, а ми (люди) майже сто відсотково будемо ці інструкції генерувати (тут треба трошки перевчитися, авжеж).

навіть коли АІ «зможе», він все одно буде потребувати інструкцій

Напевно тоді й рівень тих інструкцій підніметься значно вище деталей програмування чи систем — тобто нп будуть запити не на генерацію коду, а запит кінцевого продукту щей запакованого вже під дистрибуцію з гарним лейбиком (щоб прибрати ненадійний human factor як з кодування так і з пакаджінгу): щось типу — а зроби мені готовий апп що робить А і Б для системи X. Але до того ще певно не дуже скоро дійде.

Навряд чи, поспілкуйтеся із ним на дуже досвідчену тему — квантову теорію і ви зрозумієте про що я

поспілкуйтеся на дуже досвідчену тему — квантову теорію

То кастомеру не дуже й то треба (якщо там самі науковці ще досі с̶п̶о̶р̶я̶т̶ь̶ дискутують про incompleteness), а от щось типу згенери мені електрон вебапп з двома кнопками — по одній spotify співає щось, а по другій — youtube відео показує. То може й справиться з часом не гірше ніж вебгалера, чомуб ні.

Пробував його для маленького проекту, маєте рацію. Поки сам не розібрався, він мені всяке писав, 90% не робочого коду взагалі. А вже коли я в темі став. То і код АІ став давати більш меньш робочий. Все залежить від Usera.

Замір відбувався на Debug конфігурації без оптимізації. В підтвердження знімок дізасембла.

Ціль цього прикладу наочно і просто показати потужність сучасного заліза, яка може приховати неоптималльний код.

В 90-ті та нульові знати «одну мову» хоча швидше один технічний стек, було би не можливо. C/С++ досі живі і розвивається та це далеко не один технічний стек, а від Embedded до GameDev чи AI BigData між чим прірва в професійних знаннях, це різні професії хоч і суміжні. А С++26 вже сильно розширив С++ 98, до рівня невпізнавності.
Та 100% не можна було 5-10 років працювати на одному тех стеку типу Java ME, його просто не ставало за 5 років. Тоді усе мінялось значно-значно швидше ніж зараз. Hardware прогресував із шаленою швидкістю. Не так багато тех стеків тих часів вижило, типу : Java, Python, .NET, JavaScript або LAMP PHP. Ті що вижили по сьогодні використовуються.
Відносно не так багато змін та певна стабілізація відбулась в 10-ті, разом із сильним розділенням праці. Воно пішло від виделиних QA, а зараз вже на якісь прості задачі типу додати логи на сервер, засайнять по два сініори, троє QA, і клієнт ще додасть четверо бізнес аналістів які будуть задавати питання, в що ж це було зроблено вже на демо.

В мене інший досвід. З кінця 90х до 2007 писав на Delphi і тільки на ньому нічого сильно не змінюючи. Потім тільки пальці загинай...

Ось одна зі змін за останні 25 років: немає сенсу сильно перейматися ефективністю, адже залізо витягне.

Для десктопа да. Для сервера, где не десять клиентов, а десять миллионов и не килобайт, а несколько гигабайт по прежнему актуально. Может быть даже острее.

ще плюс покищо сенс трохи десь є (iot чи embedded) і можливо буде, але якщо взагалому — то про актуальність гігабайт там де вже пішло вебпрограмування — сенсу на поговорити про ресурси не дуже залишається

Я думаю для большей части эмбеддед это тоже неактуально. Разве что для случаев, где речь идёт о миллионных тиражах, где заиграет 20 центов экономии.

+ Если оно разбито на поды в каждом из которых 2 GB RAM максимум, что очень мало по нынешним меркам и ни на что не хватает (оно конечно 64 разрядная архитектура, но потребление памяти возросло не в два а в сотни раз). При этом на моем первом компьютере было на все про все 128 MB RAM, мне казалось не реальный супер, после тех с которыми я имел дело. Докупил видуху ATI Radeon 9000 : тянуло Qake 3 Arena, GTA 3 і т.д. Из средств программирования — Pascal/Delphi, C++ Builder или Visual С++ 6, MASM, TASM. Базы данных — Paradox, FoxPro потом MS SQL Server или MySQL.
С не оптимизированным кодом, повсеместным GC и скриптовым подходом куда то не туда зашло дело. Скорость разработки при этом нисколько не ускорилась, а даже замедлилась, все равно главное понять что надо делать и тестировать.

Можно було заробляти нормально на ’один-ес’ .

ШІ-кодінг

не враховуючи архаїчні спроби з бейсіками — напевно вже починаючи з java-кодінг включно по сьогоднішній web-кодінг — все йшло по здешевленню і зменшенню часу на програмування, можливо з часом і ще більш дешевим та швидким ШІ-кодінгом всі інші варіанти швидкодешево-кодінгу будуть витіснені та залишаться в легасі

Поки помічаю, що чим більша продуктивність — тим більші вимоги. Зменшення часу на програмування помічав тільки на саппорт проектах)

більша продуктивність — тим більші вимоги

приблизно щось так і є, і зазвичай не враховують подальші витрати на супровод того швидко-софту

зменшення часу на програмування

я б сказав що останнім часом це почало проявлятися з розповсюдженням гігантоманії браузер-аппс замість звичайних.

а взагалі — то зараз очікування від ШІ кодінгу чимось нагадують містер місікс box з вже трохи зарано почавшимися you guys all are doin it wrong, it’s said — simple

Зменшення часу на програмування помічав тільки на саппорт проектах)

Бо він пішов на дебагінг ? Ну це ж щось супер нове чи не так ...

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it?

Brian W. Kernighan

Зараз тоже можна знати одну мову і працювати 25 років, і таких мов багато. Java, C#, C, C++ при чому цю парочку можна навіть не останню версію ти спокійно можеш жити на ANSI C, JavaScript теж вже годує років 15. Просто є самостійні мови по типу жави чи жабаскріпта, а є мови які додаткові той же пітхон.

Взагалі нових мов не так багато за останні роки з’явилося, по факту всього дві які вижили серед всього зоопарку це голанг і руст.

Можу тільки за C# сказати. Сама мова так, не часто змінюється, але по-троху довозять, що теж треба брати до уваги (хоча іноді, як у випадку async/await, сильно треба брати до уваги) А от фреймворки змінюються дуже часто (якщо брати великий проміжок часу).
Наприклад:
— перехід від Full .Net на Core
— той хто спеціалізувався на WebForms або Silverlight може вже не знайти собі роботи.
— ASP .NET MVC, ще є проекти, але в еру домінування SPA, це вже не так актуально...
— WinForms, WPF теж сильно звузилась потреба через розвиток веб технологій...
і т.д.

Це якраз зараз так можна. У нас повно народу, зокрема хто в мене стажувався — хто прийшов в IT в 2015 і за весь цей час, доки не став потрапляти в менеджмент, працювали припустимо виключно на : Java, Python, PHP, або C#.NET стеку.
Про це було годі мріяти в 2005-му (оркім можливо PHP). Взяти лише ринок КПК та смартфонів на ринку : Palm (цаца була), Symbian потім MeeGo від Nokia, Black Berry. Потім з’являється iPhone який міняє усе, за ним Google купляє та Aadroid а HTC робить платформу популярною.
Засвоїти і головне по швидше засвоїти тех стек, фреймверк чи технологію типу SPA було абсолютно необхідністю. Зараз тотально «soft skill» розвивай ... тобто не дамо тобі грошей та підвищення, бо ситуація на ринку така що виконавця доволі швидко замінити, пропозиція вища за попит. А полізеш в чужий стек, на тебе почнуть шипіти — бо ти конкурент який забирає роботу, відповідно і зарплату та перспективи її підвищення.
І не в останню чергу це сталось, що черговий iPhone це покращена версія минулого.

І що, тим хто довго працював на одній мові, не треба було десь фулстечити, розбиратися з новими фреймворакми/пакетами/протоколами/сервісами, девопсити в клауді і т.п.?

Зараз повно народу які 10+ років провели на одному сапортному проекті. І здебільшого вони вивчали не нові тіхнології чи взагалі технології — а бізнес проецесси клієнта, що можє бути в рази складніше за будь яку технологію (погодьтесь прочитати документацію набагато легше ніж дізнатись щось без документації і ще і те, що від тебе старанно намагаються приховати). То вже в офтопік, і не в пабліці обговрювати, а десь на внутрішніх ...

Звідси порада: уникайте великих проектів, де використовуються переважно пропрієтарні рішення, протоколи, фреймворки. Їх знання вам більше ніколи пригодиться.

Так можна звільнити 80% народу з : Google, Netflix, Apple, Amazon, Microsoft та інших BigTech. Вони же там не просто так проводять співбесіди на алгортими та струтктури данних, задають здачі на базовий рівень інтелекту, вимірють комунікабельність і т.д. — а не роблять умовний екзамен із React.JS
Там повно повнісенько власних технлогій та фреймверків у різних команд які чкимось чином сформувались, наприклад компанія була поглинута технологічним гігантом, і зробила у себе фреймверк фкий став відомим як Angular.JS інші же команди живуть на своїх фреймверках і технологіях.

нащо уникати, якщо можна там пустити коріння і він тебе буде годувати до кінця життя.

Був на таких проектах. Ризик в тому, що якщо такий проект закривається, то ти виходиш на ринок, м’яко кажучі, в дуже неконкурентному стані...

Було прикольно, поки не прийшли маркетологи замість інженерів.

так то вони вже набігли тоді
«справжнє айтi» це початок 40 років — перші ЄВМ для оборонки, шифрувальних машин, ядерних досліджень, космічних кораблів, частково telecom/internet, opensource...
єпоха IBM PC/Windows то вже 100% про маркетинг і гроші а не про it :)

«справжнє айтi»

Ох уж ці світки трушності. :)

Так було було «набігли бейсік-айтішники», так було «набігли джава-кодери», так є «набігли веб-програмери», так буде «набігли аі-промптери», ....

Тобто нічого принципово не змінюється, крім розміру айті середовища (роздування/спускання з загальним трендом в роздування).

«Якщо корови почнуть літати, то мені в космосі робити нічого»

Ну, набігли веб-програмери це вже явна деградація.

Не краща і не гірша ніж джава-програмери, звичайна наступна ітерація

Гірша. Якщо не враховувати IDE, то на відміну від вебні програми на Java в повсякденному житті пересічного юзера це рідкість. Наприклад, я не знаю якогось широкорозповсюдженого IM на Java. Якось воно не прижилося. Програми на Java якими я користувався (за винтяком IDE): Vuze, Chatty, DocFetcher, YaCy, FreeMind. Власне я ні в кого не зустрічав жодної програми на Java.

HTML—сторіночки запаковані в Electron які з усіх сил прикидаються нормальними програмами мають недолугий вигляд гібриду GUI з сенсорних мобілок і сайтів, не слідують системному оформленні.

Кожній такій HTML—сторіночці потрібна власна копія Electron і вони тормозять (Java не тормозить) та жеруть ресурси. Запустиш три таких поробки і оперативка вже вся забита.

Виходить що Java краща тому що не тормозить, програми на Java не тягають за собою JVM по своєму власному екзепляру на кожну, Swing, SWT і що там ще це не HTML—документи тому є нормальний GUI.

То для «вебпрограмування-vs-джавапрограмування плюси і мінуси» (± там достатньо) — створіть такий топік — і поміряєтеся як товщиною так і розповсюдженністю веб і джава софта. Серед bloatware виграє зазвичай (якщо в цілому брати) — там де дешевша і швидша розробка (плюс доступність відповідних кодерів), фактор ресурсоємкості в цьому випадку зовсім не визначальний.

І в цій справі Стів Балемер він був над крутий навіть — геніальний, але Білла Гейца — типового технаря, на посаді CEO замінити не зумів.
Так само Джон Скалли наприклад, був геніальним маркетологом в Pepsi Co, та на посту CEO Apple просрав усе що можна було. Це маючи такі продукти як : Macintosh, Lisa та Newton — який вони мали в 1993 за три роки до появи Palm Pilot в 1996, та тим більше до iPhone та iPad коли вже Стів із командою зуміли відповісти покупцю — навіщо їм цей пристрій. Скаллі давав інтевью і казав — що пристрої були погані, повільні гірші ніж у конкурентів по технічним характеристикам (воно і зараз так у більше половини продуктів Apple а де не так, так там і ціна в 3+ разів вища).
Це головна проблема продавця в якості ген деректора технологічної компанії. Вони не розміють технології як і для чого її використовувати і мають хибну візію. Зате чудово розуміються на продажах і психології, як прокрутитись, домовтитсь обійняти посаду, підсидіти конкурентів і т.д.

Ну так в чому проблема випускати достатню кількість інженерів щоб вони не давали маркетологам шансів? А, їх просто немає стільки. Дякую що підказали. Наступного разу спробую глибше розібратись в питанні, щоб не понаписувати знову дурниць.

А потім набіг натовп гівнокурсів — «Вайті-В-Айті з з\п зі старту 3К» і багато мерчендайзерів та інших поважних людей побігли у то айті

Ну так в чому проблема випускати достатню кількість інженерів щоб вони не давали маркетологам шансів? А, їх просто немає стільки. Дякую що підказали. Наступного разу спробую глибше розібратись в питанні, щоб не понаписувати знову дурниць.

Так були гарні часи поки не набігли «заробітчани»

Ну так в чому проблема випускати достатню кількість інженерів щоб вони не давали маркетологам шансів? А, їх просто немає стільки. Дякую що підказали. Наступного разу спробую глибше розібратись в питанні, щоб не понаписувати знову дурниць.

Ще років 15 тому Зустрічав розробників (бородаті такі дядьки) які самотужки писали CRM/ERP та успішно впроваджували в деяких установах та потім сапортили це

Досі знаю тих хто сапортить CRM, самотужки написану 20 років тому.

Це ж ідеально. Самі собі створили вічну роботу.

Що ви думаєте з приводу трансформації галузі?

Все буде добре.
Адаптуйся або помри.

Підписатись на коментарі