Live data from Hacker News

Ask HN: Building a large webapp today - what language for the backend, and why?

news.ycombinator.com

21–30 of 64 posts

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#21
I'd choose Ruby in a service oriented architecture. Use HTTP/JSON for internal APIs between distinct systems. If performance becomes a business-limiting factor, you can investigate replacing a single part of the system with a lower-level language (Java, Haskell, Go, Erlang, etc).

Rails (and in particular the RailsApi gem) makes prototyping and putting together a SOA like this easy and fast. Except for the API client, which I don't yet have a good solution (ie, what ActiveResource was supposed to solve).

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#22
post #9

For a 'large' webapp I would honestly go with Java. A good stack is Jetty for the http server, and Jersey/JAX-RS for the web framework. The JVM is unbeatable, and you will have an easy time onboarding people since everyone knows Java. It's not as 'hip' as Rails/Django but you will be very productive and you will have the benefit of the plethora of Java libraries out there that are performant and reliable. Not to ment…

I would prefer ASP.NET MVC (thus C#) over the Java platform. The .NET stack is extremely powerful (much better than Java imho) and the ASP.NET MVC framework has a lot of the features that make RoR great (it's just must faster than Ruby).

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#23

Just to put this out there -- since nobody has really mentioned it -- ruby (as a language) doesn't have the greatest performance. You can do some tricks with GC to speed it up (Ruby EE might be a faster option), but you're still looking at 50x slower than C (python is 40x, Java 7 is around 2x, Javascript on V8 -- Node-- is 4x). So if you're planning on doing a lot on the backend, you might want to consider breaking o…

Do you have any sources for these performance comparisons? It would be great to see actual speed benchmarks for these different languages.

See http://shootout.alioth.debian.org/ as a starting point for language speed comparisons.

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#24
post #22
post #9

For a 'large' webapp I would honestly go with Java. A good stack is Jetty for the http server, and Jersey/JAX-RS for the web framework. The JVM is unbeatable, and you will have an easy time onboarding people since everyone knows Java. It's not as 'hip' as Rails/Django but you will be very productive and you will have the benefit of the plethora of Java libraries out there that are performant and reliable. Not to ment…

I would prefer ASP.NET MVC (thus C#) over the Java platform. The .NET stack is extremely powerful (much better than Java imho) and the ASP.NET MVC framework has a lot of the features that make RoR great (it's just must faster than Ruby).

This is the first time in my life I've seen someone defend C# and .NET. I don't know that I've been looking very hard though.

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#25
post #22

Earlier quoted context omitted.

I would prefer ASP.NET MVC (thus C#) over the Java platform. The .NET stack is extremely powerful (much better than Java imho) and the ASP.NET MVC framework has a lot of the features that make RoR great (it's just must faster than Ruby).

This is the first time in my life I've seen someone defend C# and .NET. I don't know that I've been looking very hard though.

I take it that it's not popular around here because this site is full of Apple lovers, but there is not denying that C# is 'Java done right/better', so I really see no reason to use Java over C#.

Furthermore C# has the best IDE in the world (Visual Studio), it has a lot better performance than Ruby for instance, it has a sublime integration with web services/databases/etc., it has great documentation (MSDN)...

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#28
Use a higher level programming language and use a standard interface to communicate with the frontend. If you build a REST API for the backend it doesn't even matter what language it is written in. You can always swap parts out for faster performing versions later on. You can even split up parts in different programming languages.

If you want to decrease development cost go with an ecosystem that most of your developers have mastered. Python, PHP, Ruby, Java, .NET, whatever. Pretty much all these languages have great frameworks these days to allow for faster development.

I personally go with Ruby because they were pretty much first on the scene with their gem ecosystem (which is massive), they have a lot of cool and smart developers in the community and it's overal a great experience. Easy to pick up too with all the resources that are out there.

But whatever you do don't force a language along with it's ecosystem that your developers don't like. Listen to the dev team and know that every language has great potential. I'd come back and ask what frameworks should I use to build a high performance site as quickly & efficiently as possible given I work with language X. Maybe the dev team is unaware of recent awesome frameworks in the language they know & love.

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#29
I like Ruby and Sinatra, but PHP with a decent Sinatra equivalent framework like Slim would be just as nice, or Python+flask/bottle, or Java/Scala and the Play framework. Honestly, it doesn't matter.

Use what you know and like and just build the app. Scaling is a nice problem to have, but don't solve it until you have it.

Re: Ask HN: Building a large webapp today - what language for the backend, and why?

#30
post #9

For a 'large' webapp I would honestly go with Java. A good stack is Jetty for the http server, and Jersey/JAX-RS for the web framework. The JVM is unbeatable, and you will have an easy time onboarding people since everyone knows Java. It's not as 'hip' as Rails/Django but you will be very productive and you will have the benefit of the plethora of Java libraries out there that are performant and reliable. Not to ment…

I agree - I would choose Java (or I guess Scala if I had a really good team around me) for the core stuff. I might bridge out beyond the core though and start using Groovy or JRuby for non-core functionality.

Jersey/JAX-RS are good, alternatively if I felt like taking a bit of risk I might give Play2 a try.

The Java/JVM ecosystem just has too many positives going for it (awesome VM, libraries, great community, huge developer pool) to really consider another stack for a 'large' web app.

Post reply on HN