> There is no other language that places such an emphasis on programming directly with plain and naked data literals.<p>Counterexamples: Erlang and Elixir. Arguably also Prolog. Also Lua. Many Schemes, and Racket. Of course, REBOL and Red. TCL probably, too.<p>I can't help but think that people making claims of "no other language has X" are in most cases wrong, and should study a bit more before making them.<p>There's a lot of hype in the article, I don't want to diminish the value of REPL-based workflows or conciseness[1] of the language, but the overall message that any fresh graduate can become a 10x programmer in under a month... Well, there's at least nothing humble about it, despite the article touting "humility" as a virtue of prospective Clojurists.<p>[1] Why aren't we all writing in APL/K/J if it matters that much?
Great article. Even in a large enterprise, where the prevailing organizational ideology centers around building the largest headcount you can for political sway...<p>I've kept my team small on purpose, and we were able to be very effective by adopting clojure. We have sway because we deliver- and that's a different type of leverage than headcount. We don't get thrown every hot potato, instead we're consistently aligned with the critical portfolios.<p>A small dedicated team with tools such as clojure will outdeliver, and outcompete a larger team who cannot remain agile and require significant overhead to manage.<p>I'm basically rehashing PG's 'Beating the Averages', but it's been my experience as a dev mgr. <a href="http://www.paulgraham.com/avg.html" rel="nofollow">http://www.paulgraham.com/avg.html</a>
Because Clojure is not terribly fashionable, I imagine the developer pool is much smaller but the candidates are higher quality, mostly due to self-selecting. I really like the sentiment of empowering individual developers to the max.<p>It's funny, a lot of organizations want to beat the averages whilst engineering in an identical fashion to their competitors. You're not going to consistently get outstanding results if you do the same thing as everyone else.
> Most people need some trainings to be able to get into something new. If they have not been taught REPL driven programming, I don't think they can discover it by themselves, despite maybe hearing others talking about it constantly.<p>Does Emacs count? I don't know Clojure, but I learned elisp for programming emacs and I discovered myself the power of evaluating any part of the code I write on the fly, experimenting with it. It's really useful in practice.
The description here of using the Clojure REPL for development is one of the best I've seen. I think part of the issue is nomenclature -- Read Eval Print Loop applies to lots of systems in lots of languages that many devs are familiar with that are not really what Clojure devs mean when they say "REPL." The actual experience is closer to something like Smalltalk where you alter a running system and experiment with it incrementally.
I don't use Clojure, but I've applied some of its lessons to my work in Julia.<p>The biggest one is the benefit of using simple, literal datatypes over classes/structs. If a function takes literals, you can just pick it up and run it, and if most of your code uses simple data types, it's more composable by default.<p>The mini-project I'm working on now has just one custom type, if I had written it 2 years ago it would probably have ten. This has made a big difference in the testability and reusability of my functions.
I'm running my own fairly successful self-funded business, largely thanks to Clojure and ClojureScript, which let me reduce incidental complexity and focus on what matters. So yes, a Clojure developer can do quite a bit alone :-)
> I am not using the REPL much, am I doing something wrong?<p>Applies to python, too. I am always surprised if developers and data scientists working with python don't know that ipython, and by extension the python Jupiter kernels, come with a repl that hotloads code changes from local installs:<p>%load_ext autoreload<p>%autoreload 2<p>Is usually my first cell in a notebook.<p>Repls are so powerful. The repl like behavior of flutter is also why our mobile dev likes it so much.
I really enjoy reading anecdotes like the above. Programming languages are how we express intent to systems, and a complex enough domain where quantifying the tradeoffs is sufficiently difficult.<p>Teams can succeed or fail using any language, but there is a tangible factor somewhere between the language, available libraries and practitioners.
> Clojure is also ideal for a startup, where a couple of competent Clojure programmers can write a complex application that would took a huge team of developers in other languages years of work.<p>There is a saying "if something sounds too good to be true, it probably is".<p>I wonder how many other languages did the author try to know that clojure is the reason for his success?<p>That being said, I really enjoy writing clojure and I absolutely love the interactive style of development. I hope more devs would try it so that it would get more traction in mainstream development.