"Sometimes it might be abandoned and now you have to maintain it yourself when OS versions change or other needs appear."<p>As opposed to rolling your own everything, where you have to... maintain it yourself when OS versions change or other needs appear.
Most professionals in this field act as developers and not necessarily engineers. Meaning, their expertise lies in assembling a system out of app servers, frameworks, etc and are not accustomed to building any individual piece from scratch. And in nearly all cases this is what they are hired to do, use well known technologies to solve a problem.<p>It is up to the architect of any system to choose these technologies wisely. I tend to favor extensibility and degree of coupling in my design decision which can lead to an over engineered complex solution. However, I rarely regret doing so. The time upfront pays off when changes are requested.