Многие программы популярны из-за того, что они маленькие, быстрые и простые. Но чем старше он становится и чем больше людей его использует, тем больше он становится. Это может вызвать вопрос, если это все еще то, что было в начале.

Когда я писал о Create React App and Vite, я задумался о различных программах, которые постоянно заменяют своих предшественников. Привыкаешь работать с чем-то, но со временем становится все тяжелее из-за множества новых функций, а некоторые из старых становятся менее эффективными. Тогда в городе появился новый игрок, легкий, быстрый и простой в использовании. Сначала вы колеблетесь, но через некоторое время, видя, что все с ним работают, решаете переключиться. Вам это нравится, и все хорошо, но в течение определенного периода времени цикл продолжается. Теперь этот новый игрок не такой уж новый, легкий и быстрый по сравнению с тем другим, что начинает светить на горизонте.

Отказ от ответственности: эти мысли периодически крутятся в моей голове, поэтому я решил излить их на экран. Таким образом, эта история будет меньше связана с кодом/изучением/программированием и больше будет связана с размышлениями.

То же самое происходит с играми и оборудованием. Выходит патч/драйвер/расширение, и вдруг появляется куча новых вещей или поддерживаемых функций. Но что с этими 20 гигабайтами, которые заняли значительную часть вашего дискового пространства? И почему видеокарта громче и горячее при одинаковой нагрузке?

Раньше я задавал себе эти вопросы. Затем я начал изучать программирование и просматривать свой код. Код, который становился больше, длиннее и сложнее. Мне пришла в голову мысль: «О, это может быть одной из причин».

Примером этого может быть базовый одностраничный сайт (портфолио/профиль). Вы решаете сделать его только на HTML, как можно проще. После того, как вы создали эту страницу, вы думаете, что было бы неплохо иметь несколько цветов и стилей, чтобы персонализировать ее. Итак, вы добавляете CSS в свой HTML-код. Следующее, что вы заметите, это то, что на мобильных экранах ваш сайт выглядит не так хорошо, как на десктопных. Вы пишете несколько медиа-запросов, увеличивая размер вашего CSS-файла. Затем возникает потребность в большем количестве контента (дополнительные разделы, изображения и т. д.), и ваш HTML также растет. Вам нужен переключатель цветовой темы и контактная форма с полями и кнопками? Время для JavaScript. К этому моменту ваш сайт уже состоит как минимум из трех файлов, наполненных не менее чем 50–100 строками кода каждый.

Конечно, для одностраничного сайта это не имеет большого значения. Но по темпам роста это уже в три раза больше, чем было в начале. Позже вы можете добавить к нему блог, некоторые функции комментирования или даже форум. Затем вы понимаете, что простая тройка HTML/CSS/JS может быть заменена фреймворком, и делаете еще одно изменение, утяжеляя и усложняя код.

Некоторое время назад я хотел поиграть с React, изучая их новую документацию, и создал что-то вроде сайта-портфолио. В основном я использовал примеры из документации, и в итоге она была заполнена 34 различными компонентами (на данный момент), не считая отдельных кусков кода для хуков, редукторов и страниц. Я возвращаюсь к нему периодически, так как использую его как песочницу для тестирования разных вещей, и каждый раз мне нужно пройтись по всем файлам, чтобы понять, чего я хотел добиться ранее. И когда я добавляю что-то новое, я могу заметить, что одна из предыдущих функций перестала работать должным образом. Так оно и есть.

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

Тогда возникает другой вопрос: не проще ли было бы сделать все это с нуля? Разработать совершенно новую вещь вместо того, чтобы чинить или обновлять старую. Я предполагаю, что да, отсюда и все новые продукты, которые продолжают появляться. Одно дело просмотреть весь уже существующий код, чтобы добавить что-то новое, не нарушая всего остального. Но совсем другое дело создать новый продукт, изначально обращая внимание на все современные технологии. И приходит постоянный поток «этой новой лучшей вещи». Создайте приложение React против Vite, React против Svelte, JavaScript против TypeScript и т. д.

Даже знаменитый «туториальный ад» тоже имеет к этому отдаленное отношение. Легче начать изучать что-то новое, чем углубляться в то, что вы уже изучили (хотя и не говорю, что это правильный путь).

Тем не менее, существует множество продуктов, созданных с использованием старых технологий, которые все еще нуждаются в поддержке и обновлении. Недавно я узнал, что COBOL (язык программирования, появившийся в 1959 году) все еще используется. Теоретически, есть спрос на тех, кто может кодировать с его помощью (конечно, это узкая ниша, но это всего лишь один пример использования очень старой технологии). И, хотя вы можете быть в курсе самых современных фреймворков и новейших библиотек, вы можете в конечном итоге работать с их предыдущими версиями (это означает, что вам также необходимо заново изучить их, по крайней мере, в какой-то момент).

Вы можете хорошо работать с функциональными компонентами React, но HR-приложение вашей компании было создано с помощью class-components. Итак, теперь вам нужно адаптироваться к этому. Вы используете let и const для объявления переменных в вашем JS-коде, но затем вам нужно сделать обновление для сайта, заполненного var-объявлениями (и теперь вы понятия не имеете, какая область видимости является глобальной или локальной).

Кажется, что сам факт нахождения в сфере разработки подталкивает не только к постоянному изучению нового, но и к тому, чтобы хотя бы быть в курсе старого. В один прекрасный день вы можете оказаться в компании, чье основное приложение было сделано, скажем, с помощью jQuery, но все, что вы слышали за последние год или два, это то, что его больше никто не использует. Но, кроме того, что это не совсем так, это еще не означает, что никто не использовал его раньше.

Все постоянно говорят об ИИ и всех современных технологиях, и все же многое из этого (если не все) было построено на старом (иногда даже древнем). Я считаю, что главный вопрос заключается не в том, должны ли мы изучать основы или сразу переходить к новейшему стеку, а в том, насколько быстро мы можем адаптироваться и применять наши навыки и знания в текущей ситуации.

И вот он, небольшой поток мыслей для написания этой пятницы. Если вы дойдете до этого места, я надеюсь, вы хотя бы нашли в нем что-то интересное. Несмотря на это, я благодарю вас за чтение.