Programming Algorithms: A Crash Course in Lisp
lisp-univ-etc.blogspot.com
lisp-univ-etc.blogspot.com
More so than any other language I know of, Lisp's reputation precedes it. Everyone seems to know all about Lisp. It's remarkably rare to find people who genuinely want to explore Lisp the way they do other (newer) languages, with no preconceptions and biases.
It also seems people do things less and less out of sheer (scholarly) curiosity these days.
[1] https://www.rt.com/op-ed/465466-europe-tourism-greed-profit/
I do Haskell in my spare time too. Once you’re used to FP, going back to imperative languages feel like a terrible regression.
Of course, Common Lisp spoiled me beyond words. I've tried OCaml the other day. It might be a good language, but I can't seem to make it integrate nicely with the Emacs workflow that I was used to from Common Lisp. You need ;; at the end of your expression when in the REPL, but not when building a standalone app in OCaml. When compiling it's considered bad practice to put ;; But without it, the REPL doesn't know where the expression ends. Or something like that, anyway.
Same story with Prolog. It might be a good language, but there are all sorts of special cases and exceptions when working with it interactively. I've gotten so much used to working interactively, to have a live, one-on-one honest conversation with my language and environment that languages without it seem brain-dead somehow.
I agree with your "terrible regression" comment.
I think Tuareg-mode also makes the OCaml part a lot less painful. It's a bit unfair to compare Lisp used with tight Emacs integration to OCaml used seemingly without the corresponding integration.
You still can't compare to the SLIME experience for CL of course, though tools like Utop are nice. That and a few other add-ons try to fill some gaps.
I don't know if I could ever going back to an imperative language full-time, I think I'd feel very hampered.
My response was if you really think about life that way, you wouldn't fit our team, and if those are the kind of employers you'd consider working for, you really wouldn't fit our team.
Anyway, in a resume, you can write about what was accomplished: "designed, implemented, maintained and documented such and such a system, of such and such size and scope, deployed in such a such are role in such and such customer sites."
Would I look for a developer though, who should solve difficult problems elegantly, a Lisp background would be a huge bonus. Even if the actual work is done in a different language, Lisp gives an ideal introduction into many fundamental concepts. For being a complete developer, one should have learned a variety of programming languages which are based on different concepts, as there isn't one one and only language. Lisp certainly belongs onto the list of languages to learn at least a bit.
I'm not a professional developer and I occasionally look at it as a potential career (I have a plausible history with programming and have been called to interviews), but the idea that most programming is "repetitive" boggles me. I mean, if you literally have to type things over and over, can't you program it somehow?
(This isn't a skeptic take, I've been really pondering whether coding is for me, since taking the next step in my current career path requires an upgrade in "soft skills" that... )
Therefore for some developers in a bank, a lot of work tends to focus on shovelling data around the bank in a myriad of formats to interact with these systems, or get data in and out of databases.
I point to the popularity of Youtubers like Joshua Fluke[0] as a good example of the mindset and how it's articulated. It isn't a "wrong" way to do things - this mindset is mercenary, geared to go up against every exploitative owner and manager and skillfully negotiate them into a fairer valuation of your labor - and it can result in decent software and happy clients - but it's also cynical and assumes low trust, and as I get a bit older I do see it as being a bit like choosing an alignment in a Dungeons & Dragons character: The "lawful goods" and "chaotic evils" tend to cluster and support each other in their own ways, it's just that at the start of your career you can't tell them apart yet, and you don't know which way you'll ultimately go, but the work you end up doing over the long run is determined as much by your approach and mindset as any specific skill.
> Lisp is easy to learn... just as you can teach someone all the rules of chess in a few minutes. But of course, it takes much longer to master those rule... how do you exploit those rule to become a master player.