ДописиСофт Дописи 26.12.2024 о 10:40 comment views icon

Чому програмісти перетворилися у недолугих кодерів, або як в додатку на iPhone знайшли сміття

author avatar

lootboxМідл

Репутація Ультра | Успішність статті 3738

Чому програмісти перетворилися у недолугих кодерів, або як в додатку на iPhone знайшли сміття

Цей матеріал – не редакційнийЦе – особиста думка його автора. Редакція може не розділяти цю думку.

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

Вступ

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

У кінці 90-х років в часи моєї старшої школи та початку навчання у ВУЗі спеціальність програміста несла в собі якийсь загадковий шарм. Ніхто тоді як треба не розбирався в особливостях професії. Якщо ти сидів за товстим монітором на електронно-променевій трубці, то автоматично вважався комп’ютерщиком (подробиці нікого не цікавили). Якщо ти ще й носив окуляри та кофту, то це було не меншим атрибутом, ніж мантія та посох у мага.

Стів Возняк займається улюбленою справою в гаражі

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

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

На якомусь етапі люди, яки лише закінчили інженерну спеціальність та володіли непоганою технічною «базою» почали перетинатися з «гаражними» ентузіастами, що писали код для своїх умовних Спектрумів. До речі, деякі з відомих ігрових студій почали свій шлях та розвиток саме в такому «первинному бульйоні», який дав життя майбутнім хітам світового геймдеву. Навіть засновники CD Project Red у ті часи займались тим, що «кустарно» створювали локалізації, а перед тим приторговували на місцевому ринку завезеними іграми. 

А ти програміст чи інженер?

На 90-і роки припав той самий час слави комп’ютерної техніки, коли з появою процесорів з інструкціями MMX потихеньку почали відкриватися двері у мультимедійний світ. Саме тоді за комп’ютером закріпилась назва “Домашній”.

Музика в MP3 та фільми у цифровому форматі з роздільною здатністю 320х240 стали привілеєм не тільки власників так званих «відеодвійок». Мало того, найпросунутіші обзавелися першим доступом в інтернет.

Тепер щоб подивитися на фото «одягненої» Памели Андерсон не потрібно було купляти в кіоску глянцевий журнал.

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

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

Застарілі та корупційні ВУЗи або прокляття «проффесора»

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

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

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

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

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

Романтика програмування

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

Я пам’ятаю, що вже у 2000-х замість того, щоб бігати у Counetr-Srike 1.5, ми командою з 10 хлопців в гуртожитку проводили «мозговий штурм», вдосконалюючи сніфер, щоб перехоплювати в локальній мережі ICQ переписку  дівчат з сусідніх кімнат. 

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

Уявіть собі, щоб увімкнути ліхтарик у вашому смартфоні достатньо всього декілька строків коду, якщо ви знаєте свою роботу. Натомість кодер все зробить ледве умістившись в 10 Мегабайтів.

Ще програмісти, чи вже кодери?

Зараз після чергових платних «кулеметних» курсів молоді розробники з радістю використовують стороні бібліотеки та фреймворки, щоб пришвидшити швидкість розробки. Чого хвилюватись, якщо у вас 12 гігабайтів оперативної пам’яті на смартфоні? Ці бібліотеки не завжди оптимальні та містять в собі функції, які є надлишковими для конкретного додатка.

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

Показовий випадок або сміття у додатку iPhone

В Італійській IT індустрії виник цілий скандал. Додаток банку Intesa для iPhone займав цілих 700 мегабайтів 

Дивно що функціонал додатка не виходить за рамки стандартних можливостей на його веб-сайті, а для інвестицій банк навіть пропонує окреме рішення. Компанія EmergeTools вияснила, що 64% (448 Мегабайтів) обсягу додатка приходиться на фреймворки, 72 мегабайти займає код, а 74 мегабайти — зображення.

Але самим цікавим стало виявлення файла rutto.mp3. У перекладі з італійського це слово означає буквально «відрижка». Так, ви все правильно прочитали. Також в коді знайшовся файл, що займав 300 Кб з закодованою фотографією моделі. Така оптимізація явно зіграла злий жарт. За думкою експертів з EmergeTools розмір додатка можна зменшити до 350 Мегабайтів.

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

Висновок, або 640 «Гігабайт» вистачить усім

Я думаю у вас не лишилось сумнівів в тому, що ніякої кількості ресурсів у вашому смартфоні ніколи не вистачить, якщо недолугі розробники продовжать кодити у такому стилі. Приклад S.T.A.L.K.E.R. 2 також хрестоматійно продемонстрував, як маючи готове середовище розробки можна випустити неоптимізований шматок коду, який потім фіксити патчами понад 100 гігабайтів.

Якщо ви думаєте, що купивши iPhone у вас буде краща ситуація з якістю коду, то вищенаведений мною випадок з додатком Intesa доводить зовсім іншу теорію. А тепер згадаємо, що раніше цілу операційну систему можна було помістити в декілька сотень кілобайт. Тому ні 640 Кб, ні 640 Гігабайтів з таким підходом не вистачить.

Тож лише ви можете для себе відповісти на це питання. До чого ми прийшли: до прогресу чи деградації?

Що ви думаєте на рахунок прогресу в технологіях?

Показати результати

Loading ... Loading ...

Цей матеріал – не редакційнийЦе – особиста думка його автора. Редакція може не розділяти цю думку.


Що думаєте про цю статтю?
Голосів:
Файно є
Файно є
Йой, най буде!
Йой, най буде!
Трясця!
Трясця!
Ну такої...
Ну такої...
Бісить, аж тіпає!
Бісить, аж тіпає!
Loading comments...

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: