I had two changes of mind through my career as software developer I was taught in school and university.
Like many things in life these changes come from experience and observation and those two are contradictory (just like life!).
More or less the first one describes why/when to use "big systems" over "small systems" and the second describe why sometimes "proprietory systems" have advantages over "standard systems".
I know it's a little long/philosophic answer, but you can skip to the "in conclusion"!
ONE: "Small/Indie" software is equally good as "Big name/Standard" software.
I always wondered why companies use big name software like Microsoft, SAP, Oracle etc. that cost a lot of money to develop for and licences.
I learned a valuable lesson from someone that rather payed A LOT OF MONEY for using an Oracle DBMS instead of MySQl, which would have been sufficient for the cause because it was a very small amount of data to be stored in the database for the software project.
Basically when you use "Big name/Standard" software like SAP, Oracle or Microsoft you want to buy "security" that is best summarized in "30 years from now I will still find developers for SAP".
Smaller companies can go bankrupt and you have a problem maintaining your software system for a longer period. Maybe the "small/indie" software will do the job but you can't be sure to have it supported the next year.
I've seen it numerous times that a software company (even bigger ones) goes under and you suddenly have problems to get support and/or developers (for a reasonable price) on the market for your software system.
In conclusion: There are good reasons like security or support to use "Big name/Standard" software, even if they are expensive and have their own problems.
TWO: Software language/concept/system X is the only right way to do things.
In my younger days I was a purist. Everything had to be this or that with no grey areas in between. E.g. I did all stuff in C++ (MS Windows, then Java (Windows/Web), then PHP (Linux/Web)etc... even ColdFusion (Windows/Web) or ABAP (SAP).
Now I don't think there is the only "right way" to do things. I'm now more a generalist than a purist. Also I'm very sceptical of large libraries which are provided by Java etc... or systems like software layers for PHP etc.
Also I'm very sceptical of the OO-mantra that has been accepted everywhere it seems. OO is great in its own ways, but it's not THE solution to every problem. I live by the KISS (keep it simple, stupid) principle and I often find it very hard to learn all the classes/functions of a certain language to just do simple things for a small website project. E.g. I'm always wondering why JSP is used for small simple projects that could be done with PHP in a fraction of the time.
So today I'm very sceptical of large/slow/overhead software systems... often it is better to do stuff yourself for small projects than overkill everything with a large functionality that yet again has to be tailored down to suit your needs.
Most of the time I'm faster in developing a website with database connectivity from scratch (e.g. PHP) than implement it with an (expensive?!) and complex and HUGE library (e.g. JSP) because most of the features aren't even useful.
For example: You want to use weblog software X on your website, which is pretty cool because of the built-in functions like RSS export, web services etc.etc.
BUT there is a serious overhead in learning all the library functionality and conventions of the weblog software... yes, when you finally have understood it, you can use all the sweet functions and features... but in about half the time you could build the 10% of the features you really need from scratch.
In conclusion: Keep it simple, stupid works. Many times a simple (even if 'cruder') solution is better than a complex (but 'nicer') solution. Use the tools best suited for the situation not a fixed mantra.