Rails is probably one of the most complete, turnkey frameworks I’ve ever used for web development. When I first encountered it, within a day or two, I was building full stack crud apps.<p>However, what shocked me, having come from a C/C++ background were the thousands of dependencies for the most simple of apps. This scared me as how could I possibly understand the security holes and inner workings of all these dependencies.<p>Another problem I ran into was the tendency of rails developers to create monolithic applications with little separation between the UI, middle tier layer, and the data model layer. When I would be writing client side apps and interfacing with rails back ends, The rails teams would always implement new functionality into the website and then separately add functionality to an API. I think this comes down to the way people learn to develop in rails as rails teaches a monolithic method. I would always try to point out that creating an API where all of the logic was held, would make life so much easier for them, and they would agree, but continue to build The monolithic website with a separate API.