5 ms·
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.t
by jxub 9y ago
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.
- jacquesm 9y ago> 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.
- gkya 9y agoThe 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.
- 20171026 9y agoWould you share info about how you transitioned out of coding? I'm looking to do the same.
- jacquesm 9y agoIt 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.
- dkersten 9y ago> 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.
- 9y ago
- emidln 9y agoI 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.
- Scarbutt 9y agoBut 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.
- james-mcelwain 9y agoIt 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.
- fro0116 9y agoTo 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/ http://lacinia.readthedocs.io/en/latest/ [1] http://lacinia.readthedocs.io/en/latest/directives.html http://lacinia.readthedocs.io/en/latest/directives.html
- socksy 9y ago"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).