Hacker News new | ask | show | jobs
by thowfaraway 2329 days ago
Solid tooling can really boost a language. Clojure advocates should internalize that.
5 comments

What boosts a language is having a tool vendor alongside an OS vendor shipping it.

It would be a bit hard for Clojure to achieve that level of support.

Of course you are right, but it all started with the tight integration with Jetbrains editing package.
Kotlin and InteliJ are from JetBrains, no wonder.

They are trying to be the next Borland with Kotlin as their Turbo Pascal (#KotlinEverywhere), and got Google Android's team as the language godfather.

Scala isn’t owned by a company making tools, but in the recent years it has experienced a big transformation on the tooling space with projects such as mill, Ammonite, Metals, Scalafix or Bloop. I’m obviously biased because I’ve worked on some of these tools but having worked with other programming languages lately I’d dare to say Scala tooling is solid and good. In some regards, we have better developer workflows than Kotlin and Java developers have and there’s a huge stream of innovation in this space.
It has one of the best Swiss universities, and Twitter, sponsoring its development thought.

Most of GraalVM improvements regarding Scala have been thanks to Twitter.

Rails and Textmate had a similar synergy without the direct connection Kotlin and IntelliJ have. There is something to the language/editor relationship that can kickstart the ecosystem.
Google tried to acquire JetBrains multiple times in the past but owners didn't want to sell their cash cow; this is their way to have a large influence over them by paying them a lot for Android Studio, making JB CEO happy and supportive. AFAIK JB teams often work at Google offices and vice versa and it looks like a slow mental assimilation process in progress. That doesn't mean they won't change their minds in the future.
Where did you hear that?

Because what I heard is that Google pay JetBrains nothing. They forked IntelliJ Community Edition to make Android Studio and have their own development team, which honestly sounds much more like Google to me.

I talked to some higher ups.
I wonder how they feel now about no taking that Google money. VScode is crippling Jetbrains at a fast pace.
Net profit >$100M and in the process of lowering taxes via restructuring to "tax friendly" countries like Netherlands (new HQ after Prague), while staying private. Also, look at how many IntelliJ/WebStorm etc. templates have links to Google Analytics and similar ("runs best in Chrome") in their default starting projects. Do you think that comes for free? Their main problem is uncontrolled growth they have no clue how to manage; I was told their culture used to be great but now is chaotic as their employee intake accelerated and nobody internally knows how to solve it.

OTOH Google at least doesn't try to kill them outright, just to assimilate them and headhunt their employees, but Microsoft would be happy if they disappeared instantly as many of their clients have an unwanted dependency on Resharper.

VSCode is winning Javascript developer mindshare, but for most other languages Intellij is still dominant. For example, PyCharm is free and far better than VSCode for Python development. Additionally, Jetbrains products are free to use for people in education, which has pulled a lot of users.
And that’s a good thing, right? I mean, I always hear Turbo Pascal was terrific.
Yes it was, then Borland decided it wanted to play in the big league and rest is history.
emacs and cider are rock-solid tools for Clojure, as are equivalent plugins for other lisps. It's not a very beginner-friendly tool, but I'm pretty convinced it really is the best environment for lisp development there is.

I'm not saying that having more mainstream tooling wouldn't be good, but people should not be discouraged from Clojure or Lisp development because of an apparent lack of tooling.

Telling someone new to a language to start with emacs & cider is a disaster. They are rock solid amazing tools for 2% of programmers. I like emacs, but it is harder to learn than Clojure, and trying to teach someone both at the same time is tough. Plus there is no real community unity in editor choice, so you have the community split over emacs, Cursive, VS Code/Calva, Atom. Plus a bunch of dead ends like Light Table or Nightcode.
You say that like having 4 or 5 solid editors for Clojure is bad because no unity. To me, it seems great because there are a wealth of choices for people that like different things and many of them are excellent, well above the bar for being a productive developer.
It is probably net positive for advanced users who have niche needs that the different editors address, but I'm saying it is bad for beginners/learners. More specifically, I'm saying emacs/cider is bad for beginners/learners, and the more traditional IDE options aren't so solid.
I use Cider every day professionally. It is so far from being a rock in any way. Embarassingly inconsistent release to release. Every major release has a new major bug. The REPL lag in Cider 23/Emacs 26 is stupefying. The more text in the buffer, and it doesn't take much, the lag increases exponentially. Google the issue and you will see the angry defendents blame you and your packages. Profile! Profile! Profile! I didn't change anything, Emacs 26 and Cider changed for the worse.
Clojure is simpler, defaulting to immutable data structures literals and a good REPL is superior to most of that tooling IMO.
Those are great features of a great language to program with, but when you are talking about adoption, you want good, easy tooling to expose the good stuff. When the first two chapter of the oft recommended Clojure for the Brave and True are just about setup and and long Emacs tutorial, you are putting up a barrier to using the language.
"Clojure for the Brave and True" is just one of the many (matter of fact I just checked on Amazon - there are over 50 books on Clojure, I stopped counting at 50, I don't know how many more out there)

And that's probably the only book that recommends setting up Emacs. It was published in 2015. Back then maybe the argument about tooling made sense, but honestly, have you looked around lately?

Every major editor today can be set up for Clojure programming.

Agree, wouldn't recommend Clojure to beginners. As it stands today, it is a tool for experienced programmers mostly.
That is so untrue. I personally have seen people learning Clojure. Absolute beginners with no programming experience and mature, seasoned pros. It is much simpler even than Python and Javascript and a lot more simpler than Java or C++.
I am a professional Clojurist. I have used Emacs for decades but honestly and succinctly -- it sucks. Especially Emacs 26. Cider breaks in new random ways every major release. Clojure tooling is its (only) weakness.
Clojure today has pretty good support in ALL major editors (not just Emacs) - Cursive for IntelliJ - is amazing, Chlorine for Atom - is cool, Calva for VSCode is improving every day, Vim-fireplace is a battle-tested tool used by many, there's even a way to set Sublime to work with Clojure.

Even most popular (and oldest) languages can't brag about being equally supported in all major editors, and Clojure can.