
Ask HN: What is the best language/framework for rapid prototyping of web apps - solomatov
What do you think is the best language&#x2F;framework for rapid prototyping? Could you explain why?<p>According to common knowledge, the best frameworks and languages for this area are Python&#x2F;Ruby with RoR&#x2F;Django. However, I find myself quite uncomfortable with these technologies and like Java&#x2F;Scala the most. Could you give any tips what I might be doing wrong?
======
espeed
Clojure would be my first choice, esp since you're fond of the JVM. Python is
also good, esp for non-JVM projects.

Python and JVM languages give you access to the widest range of high-quality
libraries, esp in the data processing space, and having high-quality libraries
that you didn't have to write is key for rapid prototyping.

Clojure REPL-driven development enables you to define and evaluate functions
inline, and the immediate feedback makes development fly. Combine this with
Clojure's lack-of-verbosity, first-class Java interop that gives you access to
all Java's libs, and Clojure's concurrency model, and you have a toolset ideal
for rapid development that doesn't sacrifice performance.

Pedestal ([http://pedestal.io/](http://pedestal.io/)) is the Clojure Web
toolkit I would use -- it's designed/backed by Cognitect
([http://cognitect.com](http://cognitect.com)), Rich Hickey's new company.

~~~
yawboakye
For web applications, I think rapid prototyping requires a framework that
performs a lot of magic, like Rails and Django. I don't think it depends on
the language of the framework since you won't have to think of concurrency or
anything like it. Rapid prototypes of web applications are concerned with
request, response, and database interactions. The easier the framework makes
it the better. It's not about Ruby or Python or Java.

------
facorreia
On the JVM space, for rapid prototyping this study[1] found the most adequate
to be Vaadin, Grails and GWT. Personally, I prefer Play with Scala. I think
it's fast enough for prototyping and can scale up beautifully both in
application complexity and in load.

But, I believe the answer is that the "best" language/framework is the one you
know better and are most proficient in.

[1] [http://zeroturnaround.com/rebellabs/the-2014-decision-
makers...](http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-
to-java-web-frameworks/11/)

------
m0nastic
This sounds anticlimactic, but: "the language you already know", will almost
always be the quickest way to start developing web apps.

Maybe that's not true if you're a C programmer, but pretty much any other
language has a fairly good, "just what's necessary" web framework.

If you're coming from a less popular language, your options might be limited,
but I can't think of any even moderately mainstream language that doesn't have
at least one decent option.

If you like Java/Scala, you might look into something like Spark.

~~~
solomatov
I spend considerable effort learning Python/Ruby/JavaScript (and I use JS from
time to time for my work) but anyway even with the effort Java is better for
me.

------
mindcrime
I don't think it's "common knowledge" at all, that Python/Ruby are "best" for
this. They _might_ arguably be "most popular" but "most popular" does not
necessarily mean "best". It's entirely possible that there isn't even any such
thing as "the best" language platform for this. There are a lot of variables.

Anyway, if you already know Java and have some familiarity with that world, I
can't recommend Groovy and Grails highly enough. Grails has been a
tremendously productive environment for me, FWIW.

------
jameszhang
If you feel uncomfortable with Rails, check out Sinatra[1]. It's my favorite
way for prototyping an app and pushing it on Heroku.

[http://sinatrarb.com](http://sinatrarb.com)

------
ukoki
Check out Meteor ([https://www.meteor.com](https://www.meteor.com)). I'm a
Ruby on Rails developer by trade, but recently tried it and even after just a
few hours of playing around with it, found my 'getting stuff done' speed was
beating the pants off Rails. Now whether it's ready for production or not is
another matter entirely...

------
lauradhamilton
You should checkout the SaaS classes (169) on edX. They provide a great into
to ruby on rails.

In order to be able to prototype quickly with ruby on rails, you need to learn
how it works / what shortcuts there are / what gems can quickly give you
functionality you want.

That said, use whatever works best for you! There is no one right answer.

------
weddpros
Have you looked at Play! Framework?

I'm switching from java/scala to node.js/jade/coffeescript/express: I think it
is really efficient for rapid development.

~~~
solomatov
I've taken look at it. However, Play especially its Scala version is slow as
hell.

~~~
yawboakye
Really? Slow compilation or slow at runtime? Compilation, sure. Scala still
has a slow compilation process but they're working to fix it. For a rapid
prototype I don't think compilation time would be very material assuming rapid
prototyping means 'something that exhibits the concept'

~~~
solomatov
Yes, I mean prototype which exhibit concept. I mean proof of concept
implementations.

------
endeavour
It sounds like you're a fan of statically typed languages. Maybe try
WebSharper (F#), Play/Lift (Scala).

~~~
solomatov
I am not a fan of them but I find myself more productive with them. I've taken
a look at both WebSharper and Play/Lift. WebSharper has very unpleasant
license. Play/Lift have quite a slow feedback cycle, i.e. compilation time is
too slow thanks to Scala.

