Ask HN: Is Java a good choice as a language for developing a startup mvp?
I wanted to use either NodeJs or Elixir, but my friends are more in favor of Java, mainly because Java has more mature libs and frameworks. I agree with the libs being better than NodeJs, but is there any downside of using Java for building an MVP?
8 comments
[ 3.1 ms ] story [ 25.5 ms ] threadIf your dev team knows java and can move fast then use it.
There are more special case libraries that speed up development like Spark REST server for doing, well obviously, a Rest API. DWR for providing communicate between the web page and the backend. There are the common libraries for database connectivity like Hibernate and MyBatis, but do not discount valuable resources like Firebase or another cloud data store. Use Angular or React with Redux for your web front end if your application requires a complicated front end.
Also ensure your developers are educated on Domain Driven Design which will make it easier for you and them to communicate about expectations (via the ubiquitous language) and the resulting code can be built and tested in JUnit. All without an interface of any kind which helps you refine your MVP faster.
There are a number of other useful techniques and tools available to experience developers. Java developers typically have a do it right mindset which is the worst enemy of rapid MVP construction. Developers should choose the correct technique or tool to get the MVP done rapidly so it can evolve fast.
Using these tips I've spun up applications in days validated them with the customer and then put an interface on them within weeks.
Other languages might seem better for rapid idea implementation and can be just a correct as Java but that doesn't mean Java is not a possible solution. Really the choice comes down to having developers that can get stuff done fast. If they use Java then Java is the correct answer for that situation. There is no right (perfect) language for MVP creation.
As an aside you might want to use a sophisticated mockup builder to validate your idea before investing in a full blown application. Knowing your idea has merit makes the large investment in a full application easier justy.
Take action and don't let your idea go stale. I with you the best of luck.
As an anecdote, the Java app we've in our company is a bit difficult to change and usually, the default configuration does not give you what you need.