
Ask HN: Is Java a good choice as a language for developing a startup mvp? - akritrime
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?
======
rubyfan
Technology choices at startups should center around ability to rapid
prototype. People screw around with new technology too much at startups. Your
job number one is to prove your business concept, don’t let the latest tech
fad get in the way of that.

If your dev team knows java and can move fast then use it.

~~~
paulroest
I wholeheartedly agree!

------
paulroest
Yes, as long as your developers know the correct libraries for your situation.
For example they should be using Lombok, Guava, and Hibernate Validator. These
are staple libraries that make developing in Java an order of magnitude faster
providing that they know the libraries well.

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.

------
neverminder
Go for a stack like Java/Play Framework/JOOQ - that way you'll be using java,
but also with a modern framework that was inspired by RoR and a considerably
better alternative to JPA/Hibernate ugliness.

------
xstartup
Yes, if that's the only language you know. No, if you've equal language in any
other hot (high synergy) dynamic languages like Ruby or JS.

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.

------
bradleyjg
I’d be concerned if they were talking about using ada, idris, or apl, but any
mainstream programming language is fine. Java is nothing if not mainstream.

------
attaboyjon
What technology do the team members know best? What have they built something
with in the past? That's the technology you should use.

------
Raed667
The Java enterprise edition dev cycle is slow. If you don't have "expert"
developers you will suffer in terms of time-to-market.

