Hacker News new | ask | show | jobs
Ask HN: What Java and UI stack should I use?
4 points by bendermoideen 3453 days ago
I've been recently recruited into a new company - a startup. I am familiar with Java, Scala, Python, C++, C#, Javascript etc. I have coded mostly in Java and C#.

My goto stack is Playframework with Scala for API, and I haven't written Javascript for a while, not after coffeescript and backbone.js dawned. IMO the javascript eco-system that I saw reminded me of early days of Ruby and Rails. Exciting but I don't want to wet my feet in it, and I want a stable UI framework to work with.

Since I am the early engineer, the task has fallen on me to choose the stack.

The dilemma is two-fold,

One - Do I choose a stack with which I can work fast (Playframework and Scala), but can't expect to find a lot of programmers to recruit, or do I stick to a saner, more worldy choice like Spring-Boot with Java (which I also am familiar with) and have the option of finding more people?

I picked Angular 2 for UI, but then the going got so slow that I fell back to Angular 1.x and was able to build up things much faster than Angular 2. Now I have the choice of sticking with Angular 1.x for the UI or moving off to something else. The choice seems to be between

Ember, React, Angular 2, Angular 1.

I am not so bothered with the UI choices though. Angular 2 seems to be shaping up nicely, so I wouldn't mind sticking with Angular 1.x and building up an Angular 2 app on the side.

It is the server side stack choice that bothers me.

1 comments

It is definitely easier to recruit Java/Spring folks. Not only are there way more of them, but there is a lot of competition for Scala folks right now (not just Play, but Spark, etc.), and pretty much any Java EE dev can learn Spring since it's an abstraction. Similarly, I use Groovy/Grails and love it, and can hire Java/Spring people because it's easy for them to learn. With Play, as you know, you throw away all your Java EE knowledge and relearn that stack. You could, of course, hire full stack Java devs and send them to Scala/Play training, assuming you have the time and budget. You might get a lot of folks eager to learn, although they may struggle with functional concepts. Not sure how functional your Scala is.

Is there anything about the app itself that would make either framework more applicable? My hunch is no, but figured I'd ask.

BTW, where are you located? Could affect recruiting.

To me, Angular 2 looks great because of TypeScript, which is so similar to Groovy. Most Java devs seem to prefer it.

> I use Groovy/Grails and love it, and can hire Java/Spring people

Which version of Grails is that? I've heard virtually no-one's upgraded to version 3 since it came out, and not many people are starting new Grails projects, so it's all Grails 2.x. Nowadays, Apache Groovy seems to only be used for glue code, build files, and test scripts.

Sadly tooling support for 3.x isn't as strong as it was/is for the 2.x versions. Trying to get Eclipse or Netbeans to work with Grails 3.x is extremely error prone and buggy.
Thanks !

I have a solution though. The application involves state changes and state management. I am thinking, make the API a simple CRUD layer with Spring Boot, and separate the services that manage the state change. That way I can write them as simple akka actor systems written in Scala, which is where the meat of the application logic lies.