Need advice about which tool to choose?Ask the StackShare community!
Dropwizard vs PHP-MVC: What are the differences?
Introduction: In the world of web development, Dropwizard and PHP-MVC are two popular frameworks used to build web applications efficiently. Each framework has its unique strengths and weaknesses that cater to different requirements.
Language Support: Dropwizard is primarily based on Java, while PHP-MVC, as the name suggests, is built on PHP. Therefore, if you prefer Java programming, Dropwizard would be the better choice, whereas PHP enthusiasts might lean towards PHP-MVC for their projects.
Configuration and Setup: Dropwizard comes with a pre-configured setup, which makes it easy to start a new project without much hassle. On the other hand, PHP-MVC often requires manual configuration, leading to a more time-consuming setup process.
Community Support: PHP-MVC has a vast and active community due to the widespread use of PHP in web development. This means that developers can find ample resources, plugins, and forums dedicated to PHP-MVC, making it easier to troubleshoot issues and enhance their projects. Dropwizard, while popular, may not have the same level of community support as PHP-MVC.
Performance: Dropwizard is known for its high performance and scalability, making it an excellent choice for large-scale applications that require efficient handling of resources. PHP-MVC, while capable of handling various tasks, may not offer the same level of performance optimization as Dropwizard.
Built-in Features: Dropwizard comes with several built-in features, such as metrics, health checks, and logging, that streamline the development process and help monitor system performance. In contrast, PHP-MVC may require additional libraries or plugins to achieve similar functionalities, adding to the development time and complexity.
Learning Curve: Dropwizard, being based on Java, may have a steeper learning curve for beginners who are not familiar with Java programming. On the other hand, PHP-MVC, with its PHP foundation, might be easier for newcomers to grasp and start building web applications quickly.
In Summary, while Dropwizard excels in performance and built-in features, PHP-MVC offers easier configuration and a robust community for support, catering to different developer preferences and project requirements.
Starting a new company in 2020, with a whole new stack, is a really interesting opportunity for me to look back over the last 20 years of my career with web software and make the right decision for my company.
And, I went with the most radical decision– which is to ignore "sexy" / "hype" technologies almost entirely, and go back to a stack that I first used over 15 years ago.
For my purposes, we are building a video streaming platform, where I wanted rapid customer-facing feature development, high testability, simple scaling, and ease of hiring great, experienced talent. To be clear, our web platform is NOT responsible for handling the actual bits and bytes of the video itself, that's an entirely different stack. It simply needs to manage the business rules and the customers experience of the video content.
I reviewed a lot of different technologies, but none of them seemed to fit the bill as well as Rails did! The hype train had long left the station with Rails, and the community is a little more sparse than it was previously. And, to be honest, Ruby was the language that was easiest for developers, but I find that most languages out there have adopted many of it's innovations for ease of use – or at least corrected their own.
Even with all of that, Rails still seems like the best framework for developing web applications that are no more complex than they need to be. And that's key to me, because it's very easy to go use React and Redux and GraphQL and a whole host of AWS Lamba's to power my blog... but you simply don't actually NEED that.
There are two choices I made in our stack that were new for me personally, and very different than what I would have chosen even 5 years ago.
1) Postgres - I decided to switch from MySql to Postgres for this project. I wanted to use UUID's instead of numeric primary keys, and knew I'd have a couple places where better JSON/object support would be key. Mysql remains far more popular, but almost every developer I respect has switched and preferred Postgres with a strong passion. It's not "sexy" but it's considered "better".
2) Stimulus.js - This was definitely the biggest and wildest choice to make. Stimulus is a Javascript framework by my old friend Sam Stephenson (Prototype.js, rbenv, turbolinks) and DHH, and it is a sort of radical declaration that your Javascript in the browser can be both powerful and modern AND simple. It leans heavily on the belief that HTML-is-good and that data-* attributes are good. It focuses on the actions and interactions and not on the rendering aspects. It took me a while to wrap my head around, and I still have to remind myself, that server-side-HTML is how you solve many problems with this stack, and avoid trying to re-render things just in the browser. So far, I'm happy with this choice, but it is definitely a radical departure from the current trends.
Pros of Dropwizard
- Quick and easy to get a new http service going27
- Health monitoring23
- Metrics integration20
- Easy setup20
- Good conventions18
- Good documentation14
- Lightweight14
- Java Powered13
- Good Testing frameworks10
- Java powered, lightweight7
- Simple5
- Scalable4
- Great performance, Good in prod3
- Open source2
- All in one-productive-production ready-makes life easy2
Pros of PHP-MVC
- Easy to Learn3
Sign up to add or upvote prosMake informed product decisions
Cons of Dropwizard
- Slightly more confusing dependencies2
- Not on ThoughtWorks radar since 20141