Hacker News new | past | comments | ask | show | jobs | submit login

This is amazing. More people should get to know clojure as it's a wonderful language that has almost all concurrency models on this planet. Also now with core.typed it retains most of the benefits of the statically typed ones while being as productive as other dynamic ones or more.



> More people should get to know clojure as it's a wonderful language that has almost all concurrency models on this planet.

Clojure is great. But Rust is a Must, so I hear, and you will need some Python for ML. And then of course JavaScript if your stuff touches the web, and it all does. And there is Go and Erlang or is that Elixir for systems and transactions. Ruby or PHP for RAD and Java for the large stuff can not be ignored.

And before you know it you'll be bad at 25 languages, instead of good in one or two that allow you to do what needs to be done.

All these languages are great in the sense that they exist and show what is possible but they make it super hard for a professional programmer with ~8 hours in a productive day to choose which eco system (which is far larger than just the language by itself) they want to invest their time in leading to some variation on the paralysis of choice theme.

I'm super happy I don't have to earn my bread by coding today, I sincerely would not know what to choose to maximize longer term value of my investment in time. It's like building a house on quicksand.


I use Clojure (or Clojurescript) for all of the things you listed. When I need something other than Clojure, that thing is typically C which is either a device driver or something I'm going to call into from Clojure. In the past I used mostly Python/Javascript/C instead of Clojure/C to get where I wanted to be.

Just to be clear, I use clj/cljs (day to day) for:

* Mobile Applications on Android/iOS

* Analytics and Data Wrangling off queues

* Data Analysis

* Admin Dashboard stuff (CRUD, Charts/Graphs, misc)

* Business Rules

* User Messaging (Push / Email / Webhooks)

* Database ETL

* Web Services

* Background jobs

* Build System and Deployments

The only thing I don't use that is Clojure-based, on a regular basis for my job, is SaltStack for configuration management (and this is largely because we have a working SaltStack system that I don't have a need to mess with).

I'm super happy when I can spend most of my day with a monitor dedicated to Spacemacs while jacked into a clojure repl.


But does Clojure/C really makes you more productive than Python/Javascript/C? which I guess is the point the GP was referring to, although, you mentioned it makes you happy (which is a good of enough reason as any).

Don't get me wrong, I think learning Clojure is helpful for lots of developers, even if they won't use it for work/side projects, and I think that's exactly what happens in the Clojure ecosystem and the reason for so many libs being half finished and abandoned, devs learn Clojure, grab all the ideas and concepts, scratch an itch but ultimate terminate going back to their mainstream langs.


It sounds like you're suggesting that Python/Node have better libraries, which couldn't be further from the truth. Most "abandoned" Clojure libraries either (a). aren't abandoned and "just work" due to their limited scope or (b). are wrappers to Java libraries that are trivial or unnecessary. Most people would rather to interop directly.


To offer one small piece of anecdote to the contrary: We use Clojure for most of our server-side code and picked Lacinia from Walmart Labs [0] to implement our new GraphQL API. It does most of the basics just fine, but its pace of development lags extremely, painfully far behind GraphQL server implementations in more popular languages such as the ones in Node and Python. To this day it still doesn't have support for custom directives [1], not to mention any of the other more bleeding edge developments in the GraphQL community such as schema stitching and live queries, all of which we would really have liked to experiment with along with the rest of the GraphQL community. We ran into similar issues initially when trying to use gRPC with Clojure.

We love writing Clojure and still use it everywhere where appropriate, but the size of its community and ecosystem is definitely holding back its ability to compete for adoption with other languages on the bleeding edge of new technological trends.

[0] http://lacinia.readthedocs.io/en/latest/

[1] http://lacinia.readthedocs.io/en/latest/directives.html


Fair -- GraphQL seems like something that is particularly well suited to having a Clojure API so that's disappointing to hear it lags behind other implementations.


To what extent does the Python GIL hold it back from performing multithreaded tasks as compared to Clojure? I'm mostly a Python programmer but I've experimented with Clojure a few times for some small projects, and I've noticed the multithreading options with Clojure to be more plentiful and capable.


The best value a language can provide is the community around it. That is, the amount of high quality libraries out there. And the choices, when coming from this stance, are a handful: .Net and JVM ecosystems, Python, C/C++, then Perl and Ruby to some extent. With these, you know most of the generic things you'll need to have in order to do the specific thing you want to do are available to you. Equally important the amount of documentation and literature out there. The actual language features, syntax, etc., all come after this. First of all, a language has to have some giants with nice stable shoulders.


"And before you know it you'll be bad at 25 languages, instead of good in one or two that allow you to do what needs to be done."

I'm not sure that follows. Even if you choose to specialise in one stack, it is healthy to see a diversity of solutions and opinions/trade-offs in solving similar problems across different stacks. Even if you don't end up mastering any of those, exposure to those can help inform how you approach problems in other languages.

A lot of great ideas in modern ecosystems were stolen/inspired from lateral solutions (e.g. using immutable datastructures with React from the ClojureScript world, Netflix's Falcor influencing om.next in the other direction).


Would you share info about how you transitioned out of coding? I'm looking to do the same.


It was mostly co-incidence and some luck.

After a few thousand sweaters the next one is probably similar to one that you already made so I got bored and ended up burning out. That left me without desire to work on anything computer related, I bought a farm in Canada, moved there and ended up working on a windmill.

The websites I was running still contributed some income so I wasn't particularly worried about running dry.

Making the windmill required some tools, one of which was a computer controlled plasma cutter that I could not afford ready made and so I ended up cobbling it together. There was a little bit of software involved in that but nothing that occupied me for more than a few days.

The windmill design process involved rather more software but still it was peripheral to the rest of the work.

Then, in 2007 after returning back to NL I invested in a bunch of start-ups and at one of those a co-investor asked me if I wanted to do technical due diligence for a colleague, which turned out to be Endeit Capital, a well respected Dutch VC. One thing leading to another we are now working together for a decade+ and they've sent me lots of other customers as well so I'm nearly full time busy with this.

In the intermediate I also ran ww.com/camarades.com until enough money came in through the DD's that I no longer needed that income, I sold of all the assets in 2015.


> so I got bored and ended up burning out. That left me without desire to work on anything computer related,

I've been finding myself like this lately :( Sadly, I can't afford to buy a farm but working on a windmill sounds awesome! I've lately spent a lot of my time learning sleight of hand and magic illusions, but I don't expect I'll ever make any real money out of it, I'm just not a natural showman. I'll stick to software since its the only real marketable skill I have, but it is rather frustrating. I do love Clojure, though, but there's not much Clojure work where I am.

Thanks for sharing your story, its inspiring.


Some things that might help you:

I've noticed that the real money is usually to be made on the intersection of disciplines rather than by going deep into a single discipline.

So maybe it would be an option for you to branch out into a different field that intersects regularly with software, possibilities such as hardware or legal are most obvious.

That will give you something new to sink your teeth in while at the same time allowing you to re-use your old skills and knowledge to good effect.


Thanks for that, I really appreciate it!


You're welcome, I really hope it works out for you. If I can help with introductions or in any other way feel free to mail me.


Any suggestions for someone who's a competent developer, and an excellent communicator with a knack for explaining things to a non-technical audience?


Technical writers worth their salt are few and far between.

Another option your comment suggests would be something in popular science or media.


Technical writers worth their salt are few and far between.

Could you please expand on this one? Do you mean people who write help guides for OS/APIs, or do people who write industry reports or is it something different? Also, do you have any examples of such people/jobs?

This is something that is very interesting to me but I have no idea where to start.


Just to give a few examples:

We produce about one report per week, < 20 pages for venture capital groups about to invest into some company. That's a pretty tricky combination of elements, you are writing for a non-technical audience about technical findings.

The companies we work for tend to have people on the business side that have certain ideas about requirements which then need to be translated into technical specifications, typically so that some outsourcing company can make soup of it.

In both cases mistakes can be quite costly. There is this thread right now about 'what HN has given you', and if there is one thing HN has given me it is that it has made me a better writer (that, and blogging), which turned out to be a super useful skill.


Thank You.

How does one get into these kind of writing jobs, for someone with a programming background?


Go talk to places that produce reports: M&A outfits, VCs, research companies and so on.


Damn, this is so close to my state of mind right now. Either a farm or a cafeteria morning service and the rest of the day leaning in grass or painting.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: