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

Скажем, пишет команда какой-нибудь фреймворк, или продумывает архитектуру проекта, или просто берет библиотеку. Имеем набор каких-то инструментов/функций/классов (почему-то проще думать именно в ООП-стиле), имеем задачу, которую надо решить, используя имеющиеся инструменты. Не написать с нуля, а именно используя основу, создать что-то. Например, добавить модуль в CMS - думаю, каждый* если не сталкивался с большими или меньшими трудностями при решении такой задачи, то хотя бы слышал, читал или представляет себе такое. А все почему, потому что есть CMS, которая предоставляет какой-то инструментарий, основу.

* каждый - в данном случае, каждый программист, читающий это, или человек, понимающий, о чем идет речь

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

А интересно и то, и другое.