История компьютеров и игр
История компьютеров и игр
Іноді я користуюся одним сервісом: мені потрібно вивантажити файли в якесь місце (назва сервісу не має значення, бо, щиро кажучи, всі вони однакові). По суті, я просто вказую папку на своєму жорсткому диску, після чого її вміст копіюється на віддалений сервер, на якому, ймовірно, відбувається щось пов'язане з базами даних — цим файлам надаються імена та виконуються перевірки того, хто їх завантажує.
Це велика компанія, тому у них масштабні процеси, і, ймовірно, їх часто намагаються зламати. Тому потрібен якийсь захист, а також перевірка того, що файли не змінили між їх вивантаженням та отриманням. Я це розумію.
…але по суті, йдеться про те, щоб перерахувати декілька файлів, прочитати їх, вивантажити, й наприкінці закрити з'єднання, записавши у лог, чи все пройшло успішно, а якщо ні — то що саме сталося. У цьому немає нічого складного, і навіть я писав з нуля подібний код за допомогою WinInet API та PHP на сервері, який спілкується з базою даних MySQL. Моя система, ймовірно, була не такою надійною, як системи корпоративного рівня, проте підтримувала сотні тисяч вивантажених файлів, їхню верифікацію, завантаження та логування. Мабуть, це робота для одного кодера на два-три тижні?
Спеціальний інструмент вивантаження на сервер, яким я користуюсь сьогодні, сумарно має 230 МБ клієнтських файлів і задіює 2,7 тисячі файлів для керування цим процесом.
Ви можете подумати, що це дурна друкарська помилка, тому я повторю. ДВІ ТИСЯЧИ СІМСОТ ФАЙЛОВ і 230 МБ виконуваних файлів з допоміжним сміттям, щоб скопіювати деякі файли з клієнта на сервер. Це виходить за межі роздутого програмного забезпечення, це поза надмірною інженерією, це абсолютно і повною мірою, доказово, наочно, вочевидь є безглуздим і божевільним.
Справа в тому… Я підозрюю, що цей завантажувач нічим не відрізняється від будь-якого подібного сучасного ПЗ від будь-якої іншої великої компанії. І, до речі, він видає повідомлення про помилки і зараз не працює. Зітхнув.
Я бачив, як кодери роблять це. Я знаю, чому це відбувається. Це відбувається тому, що не тільки кодери не створюють низькорівневий, ефективний код для досягнення своєї мети, вони навіть ніколи НЕ БАЧИЛИ низькорівневого, ефективного, добре написаного коду. Як ми можемо очікувати, що вони зроблять щось краще, коли вони навіть не розуміють, що це можливо?
Ви можете вмістити програму, яка безпечно, швидко та безпечно вивантажує файли на сервер менш ніж у двадцяту частину коду. Це може бути ОДИН файл, лише один маленький exe. Для цього не потрібні сотні і сотні DLL. Це не тільки можливо, це просто, і надійніше, і ефективніше, і легше відлагоджувати, і… дозвольте мені це підкреслити… воно насправді працюватиме.
Роздуття коду звучить як щось таке, з чого сварливі старі програмісти років п’ятидесяти (як я) роблять велику проблему, тому що ми буркотливі дідугани. Я це розумію. Але бути старими й буркотливими означає скаржитися, коли код виконується на 50% повільніше, ніж слід, або на 50% завеликий. Це дуже, дуже далеко поза межами цього. Ми знаходимося в тому моменті, коли я чесно вірю, що 99,9% коду у файлах на вашому комп’ютері є абсолютно марним і ніколи не виконується. Він просто є там, у наборі з 65 DLL, тому, що якийсь кодер хотів зробити щось тривіальне — наприклад, зберегти растрове зображення, і "не уявляв, наскільки це легко", тому вони просто імпортували ціле відро сміття, щоб досягти цього.
Як я вже сказав, мені справді не варто гніватися за це на молодих програмістів. Саме так їх і вчили. Вони гадки не мають, що таке висока продуктивність або розробка з урахуванням обмежень. Коли ви скажете їм, що в оригінальній грі Elite була величезна галактика, космічні битви в 3D, система кар’єрного зростання, торгівля та тисячі планет для дослідження, і при цьому гра вміщалася в 64 КБ, я думаю, вони вас ПОЧУЮТЬ, але НАСПРАВДІ не зрозуміють розрив між цим і тим, що ми маємо зараз.
Чому мене це хвилює?
Мене хвилює це з безлічі причин, і не в останню чергу тому, що якщо для виконання завдання вам потрібно в дві тисячі разів більше коду, ніж зазвичай, то він хоча б повинен працювати. Але, що найважливіше, я усвідомлюю той факт, що 99,9% процесорного часу мого величезного потужного ПК абсолютно марні. Він виконує мільярди операцій на секунду, просто щоб простоювати. Тому зараз він повинен перебувати в наднизькому режимі енергоспоживання, всі вентилятори повинні зупинитися, бо все, що робиться - це перевірка орфографії під час набору у WordPress.
Ха. WordPress.
Сьогодні комп'ютери настільки швидкі, що ми мали б сприймати їх за абсолютну магію. Все, що ви можете собі уявити, має встигати відбутися за 1/60 секунди частоти оновлення. Тим не менш, коли я натискаю на піктограму гучності (досить сучасного) ноутбука Microsoft Surface, то бачу затримку: машина поступово створює новий елемент інтерфейсу користувача, визначає, які значки малювати, а потім вони з'являються та оживають. Це займає РЕАЛЬНИЙ ЧАС. Я підозрюю, що півсекунди, що в часі процесора, дорівнює мільярду бісових років.
Якщо я правий, і (за консервативними оцінками) ми марнуємо 99% ресурсів наших ПК, ми також марно витрачаємо 99% енергії комп’ютера. Це абсолютно злочинно. І навіщо ці витрати? Я поняття не маю, але швидкий погляд на диспетчер завдань на моєму комп’ютері показує тонну набряклої програмної нісенітниці, яка бог знає чим займається. Все, що я роблю - друкую цей пост для блогу. У Windows запущено 102 фонові процеси. На моїй графічній карті NVIDIA їх наразі 6, і деякі з них мають підзавдання. Навіщо? У мене не запущена гра, я користуюся практично тим же набором функцій драйвера відеокарти, що й ДВАДЦЯТЬ років тому, але потрібно 6 процесів.
Web View Microsoft Edge теж потрібні 6 процесів, як і самому Microsoft Edge. І я навіть не користуюсь Microsoft Edge. Здається, я відкривав учора файл SVG, і ось ми тут, ще 12 марних фрагментів коду, які витрачають пам’ять і, ймовірно, також опитують процесор.
Це повне, повне безумство. Саме через це нічого не працює, все повільне, потрібно купувати новий телефон щороку і новий телевізор для скачування цих роздутих додатків для стрімінгу, які теж містять такий поганий код.
У Twitter дві тисячі розробників. Tweetdeck іноді відмовляється завантажувати стовпець користувачів. Це відбувається вже чотири роки. Впевнений, що ніхто з кодерів не уявляє, чому це відбувається, а код в його основі — це купа роздутого скопіпащеного гною.
Пропонуючи назву теми за текстом посилання, Reddit не може впоратися з амперсандом, крапкою з комою чи символом фунта. Це 2022 рік. Мабуть, у них теж 2000 розробників. Жоден з них не може змусити працювати синтаксичний аналізатор тексту. Чому всі ці люди отримують гроші?
Був золотий вік програмування, коли у вас були фактичні обмеження пам’яті та ЦП. Сьогодні ми живемо в ямі неефективності та марнотрацтва ресурсів. Це дуже сумно.
Облако тегов
Прямой перевод на PayPal аккаунт: paybox@it8bit.club или info@leocraft.com на мое имя Dmitry Cherepanov
Или подпишитесь на Patreon и получите нечто большее.
Этот сайт использует cookies, как собственные, так и от третьих лиц. Используя этот сайт, вы даете согласие на использование cookies
Я согласен (на)