What's the best programming language for rapidly getting out a prototype?
Some languages like Clojure seem really interesting, but for the purposes of rapidly coming up with an idea and shipping something hacky really fast, as an outsider, it seems like it has a lot of setup/config compared to js.
With webdev, you can write an html file, some css and slap a js file and you're ready to start iterating within seconds. However, you lose the expressivity of a lisp like CLJS.
So considering tradeoffs between expressivity, developer productivity, "time to first char on screen" etc, what's the best language for rapidly prototyping something hacky that people can use?
9 comments
[ 4.4 ms ] story [ 33.2 ms ] threadIf you're most comfortable with a spoon, the fastest way to dig a trench is still an excavator, even taking into account the time needed to become comfortable with operating one.
If your a pro with C and you really want to build a rest API, then yes using C is a bad choice.
But if you know Ruby, Python or NodeJS you'll be fine with any of the 3.
Then again, newer programing languages tend to cater to what we already know. Flutter/Dart is a dream to anyone who knows Java or Javascript.
Actually, when I think about it I learned Python since I really wanted to get into machine learning a few years ago. I was able to increase my income by around 80k, so it was very much worth learning.
Python's "batteries included" approach and numerous libraries make it easy to build prototypes quickly.
Ruby (and Rails) have been used to create the first generation MVPs for many startups in the past. If you have Ruby experience, it's a good choice for prototyping.
Perl is good for prototyping command-line and system tools. The early versions of Git were partially-implemented in Perl.
In that regard, for a single developer or a small team your best options are Rails,Laravel or Django.
I prefer Rails because of its strong opinions, specially on frontend.
Once your idea makes you millionaire, you can start thinking about the purity and the universal beauty of Go, Clojure, Typescript, React, RxJS, lambdas, etc.
That said, I had to spend a couple of weeks agonising over my setup until I came across the newer and frankly, much simpler CLI tooling [1]. Today, I just manually create `deps.edn` and extend it as needed: pastebin.com/c8Ut928B
Setting up ClojureScript is a bit more complicated though, but not by much: pastebin.com/WdVyrd9T
Then I just run `npm install shadow-cljs react react-dom create-react-class` before doing `clj -M:shadow-cljs watch :client`, based on [2].
----
[1]: clojure.org/guides/deps_and_cli
[2]: shadow-cljs.github.io/docs/UsersGuide.html