Стендап Сьогодні
📢 Канал в Telegram @stendap_sogodni
🦣 @stendap_sogodni@shevtsov.me в Федиверсі

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

23.05.2025

Залежності — це проблема інтернету

Знаєте, всі ці труднощі із величезними наборами залежностей, а також з розвʼязування їхніх версій — це дуже сучасна проблема. Може тут здаватися, що JS чи інші інтерпретовані мови “завдяки дилетантам отримали таку погану систему”, але насправді це останнє слово прогресу.

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

З одного боку, це люто обмежує — нема в тебе заголовків OpenGL, то й сиди без своєї графіки! З іншого, ті бібліотеки, що були, готувалися із найширшою сумісністю. (А головне, їх було мало, то й проблем було ще менше.)

Я памʼятаю як тільки пробував Ruby on Rails десь у 2006. Було потрібно встановити його з усіма залежностями з RubyGems. Проте з моїм діалапом gem install, який ходить в інтернет та сам щось стягує, постійно відвалювався. Довелося знайти, як завантажити файли вручну, а точніше, менеджером завантажувань, здатним відновити роботу після відмови (ще й таке було.)

Але головне, що на той час RubyGems це було надсучасно. З PHP в мене просто в проєкті сиділи копії тих кількох бібліотек, які не входили в системний набір. Яка версія була, така й була. Чи була вона сумісною? Якщо працює — то так. (До речі, як збирати щось на C, досі бачиш checking for foo... yes. ) Іронія в тому, що й зараз версії не гарантують сумісності, а тільки обіцяють її.

Так що яка тут мораль… Що мати багато бібліотек — це надбання прогресу! Та надає безмежний потенціал. Для проблем, але також для творчості. А з версіями ми щось придумаємо.

( )