Немного о фреймворках, библиотеках и т.д.

Этот пост будет иметь айтишный уклон, поэтому, если вы не поняли ни слова из заголовка — просто пролистайте, дальше интереснее для вас не станет 😃

Хочу обсудить фреймворки и библиотеки. Дело в том, что современный айти-мир просто помешался на всевозможных готовых решениях. Куда ни плюнь — везде и на все случаи жизни есть свои фреймворки. PHP, JS, Ruby, Python, CSS — просто бери и делай. Разумеется, все программисты разделились на два лагеря, на тех, кто ненавидит фреймворки и на тех, кто жить без них не может. Ну, правда, есть ещё горстка адекватных, которым вообще побоку, и они просто работают, используя или не используя их.

С одной стороны, ситуация хороша. В приложениях так или иначе встречается набор повторяющихся функций и компонентов, так почему бы не вынести их в отдельную структуру и не подключать к каждому новому проекту — идея лежит на поверхности. А ещё — связать их, чтобы было удобнее пользоваться. А ещё добавить возможность настройки. А ещё добавить пару функций. А ещё добавить возможностей. А ещё… Уловили идею?
Тем не менее, главный плюс фреймворка — он позволяет быстро стартануть. Вам нужно какое-то приложение, нужно быстро проверить, как оно будет работать, и и будет ли вообще? Отлично! Берём, например, PHP-фреймворк, верстаем странички с помощью CSS-фреймворка, делаем какие-нибудь няшные эффекты с JS-фреймворком и готово, у нас на руках есть готовый прототип. В принципе, на базе этого можно делать и основной проект.
С другой стороны, фреймворки — это печаль, потому что во-первых отучают и без того ленивых программистов думать, а во-вторых — заставляют изучать чужую логику. В основе любой системы лежит логика её проектировщика — а логика эта у всех разная. Поэтому, вместо того, чтобы брать и делать, программист вынужден разбираться, а как именно это сделать. Мало того, как именно это сделать так, чтобы это не разрушило логику системы и её философию! А то ведь на хабре засмеют.

Ярые поклонники фреймворков шагу без них ступить не могут и считают, что все проекты в мире должны быть написаны на фреймворках. Кроме того, они яркие противники любого самописа — они считают его злом, а авторов — идиотами, «ведь всё уже написано». Кроме того, фанатики любят приводить совершенно идиотские примеры, типа «вот вы когда хотите испечь пироги, вы же покупаете готовое тесто, а не идёте на поле выращивать пшеницу». Логики в этом сравнении столько же, сколько человек живёт на луне. Материальные и интеллектуальные ценности — вообще разные вещи. В материальном мире нет и не может быть фреймворков.

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

Я лично не сторонник и не противник фреймворков, я считаю, что «каждый дрочит, как он хочет» и использование или не использование готовых сторонних решений — это личное дело каждого. Ну или данность корпоративной политике, у кого как.

А вы как вообще с фреймворками?