About the whole thing niche language debate... 5 years ago when I wanted a career change, I registered to Treehouse, tried a few languages and stuck to Python because the instructor, Kenneth Love, was the one I felt more connected to than the rest of the other language instructors. Now I'm learning Clojure because people I respect from other circles swear by it (Gene Kim, Michael Nygard...), because of Rich Hickey's presentations, because I hope taking the time and effort in learning it might make me a better programmer. I don't mind that it might be a niche language.
@idanmel I agree. I think that this is the main goal when we study a new language. Personally If I have the opportunity to use it at work or if I know that It grows constantly in terms of usage, community, popularity, I would be happier obviously.
Ah! Not for me. I study clojure so I have more fun at work. Becoming a better programmer is a side-effect
So do you use it in your company?
yup
I'll precise that I started learning clojure before I found a clojure job. The starting reason was that I had fun with it, and because I love emacs which is kinda related
But if I couldn't find a job in clojure, then I'm not sure I would have keep using it. Let's say I get a job in python, then even for personal projects I'd start using python more and more
So it's possible today to find a Clojure job
I might be in the minority with this. I just have more motivation to improve in a language if it's also useful for my work
Yeah of course, I don't know how easy though 😅
I was ready to move anywhere in the world for a job though
and I actually did (france to singapore)
Ok, this is a positive news. I'm like you. If I study a language and I know that in the future it will be possible to use it in some company I will be more motivated
@mircoporetti, for me in Israel, there's Appsflyer which has a couple hundred Clojure developers.
Great!
I don't work there, but who knows 🙂
Probably it's not the only one but there are other companies
Anyway.. we have a new clojurian 😑
Makes total sense to me. Cats have free minds!
I wish I wasn't allergic to cats 😞 I'd love a cat.
That might be one of my favorite off topic comments 🐈
The Clojure adoption and utility discussion is interesting to me. Clojure has superior qualities over many other languages and an impressive community. I often have the luxury of being able to decide on tech choices and I’m using more and more Clojure (slowly but steadily). I don’t need to enumerate the reasons here, except maybe this: It’s a language that respects me as a programmer more than any other I know. Both my time and my capability (to learn). And the community is stable but small in comparison to main-stream languages, but at the same time I’m continuously impressed by it. Clojure is a “better” language, not simply in terms of its technical qualities. It is “better than X” where X is something you already know well and have mastered. It seems to me that this is the reason for why the Clojure community is what it is: small, stable and impressive. One big downside from my perspective is this: I teach programming part-time and I’m mentoring a designer (friend and collaborator) who is learning to code. For them, learning Clojure as a first or even second language is simply not feasible and it would be irresponsible of me to teach them Clojure before they know a main-stream language. This is a serious hindrance for wider adoption. I would love to try to solve this or help to solve this in the mid/long term but I don’t see a clear way of doing that.
@denis.baudinot I think Clojure as a language can be taught relatively well. I've done so as a lecturer a few years in a row. My course material is still online (albeit in Dutch). I didn't teach it as a first programming language though.
SICP was taught at MIT, but I'm not sure if it was done as a first language. Python might be a popular "first language" nowadays.
@borkdude I don’t question that. It is even very suitable to teach some practical CS concepts. But I teach programming to UI and UX designers. In that area it is both “too much” and not enough “resume-helpful”.
Just teach 'em JS or TypeScript I'd say then, yeah.
SICP is going to be ported to JS as well btw
by the authors
It's not by the original authors it looks like: "The JavaScript adaptation of SICP is an open-source community effort." https://source-academy.github.io/sicp/chapters/making-of.html
> “resume-helpful” Yeah, this is a problem if I try to introduce Clojure at work, no one is interested as they dont see the point in learning something that doesnt have a lot of jobs for them
Clojure is resume-helpful if you are prioritising Clojure work on your resume ;)
Aside: I’m a fan of SICP but don’t see a point in translating it from Scheme. Scheme is kind of the right tool for what it is used there. But I will check this out, thanks.
Yeah, SICP in JS seems pointless to me. There are better books to learn JS if you want to learn JS
Well SICP is not a book for learning lisp.
Or put differently, there are better books to learn scheme if you want to learn scheme.
It uses the simplest language needed to get its lessons across, and the lessons are about programming itself.
I guess they are trying to fix the exact same problem you are trying to solve: how do I sell "lisp" to people who don't know anything yet
It seems to be online here: https://source-academy.github.io/sicp/
The important thing for me when choosing a first language to learn is to have as few concepts to learn as possible. I learned to program in the late 80s and learned BASIC. You could literally start with 10 print "Hello world"
and then work your way up to 10 print "Hello world": 20 goto 10
and so on. For me, the modern language that is closest to that is Python. I love Clojure but I feel like if I was learning Clojure then it would force me to learn too many concepts at once, esp JVM concepts. (I think Java is not a great first language for similar reasons.) Though of course, Clojure is different from what it was like when I first learned it so maybe there’s an easier way in these days.
> We sincerely hope that readers for whom this book is their first encounter with programming will use their newly gained understanding of the structure and interpretation of computer programs to study more programming languages, including Scheme and the full JavaScript language.
They use only a small subset of JS / Scheme, and you learn as you go
There is also a book "Grokking Simplicity" which explains FP concepts (the Clojure way) using JS
Clojure is the easiest language to learn: https://clojure.org/guides/learn/syntax. Should work well for beginners, better than C, JS, or Scheme. It breaks down a bit when moving to algorithms and data structures, because there you want plain mutable vectors and records to start. Clojure gives those to you with a bit of extra ceremony; but with a bit of diligence and function picking it can work (limit to some fns like: int-array, aget, aset; dont show full blown interop immediately).
(imho ^)
Hello clojurians
I tried to make Clojure my first real language but struggled. Bounced around other languages, kept trying to come back to Clojure, still struggled. I finally completed Harvard's CS50 course and I feel my foundation is so much stronger. And yes, I came right back to Clojure. hahaha
There aren't beginner books with Clojure, but there could be.