4 ms·
If you need someone online to justify for you learning new things in your field you have probably already lost. This field is unrelenting, it requires constant
by nightski 6y ago
If you need someone online to justify for you learning new things in your field you have probably already lost. This field is unrelenting, it requires constant learning. I'm nearing 40 and it hasn't stopped. The one advantage is the more you learn the more skills transfer from one thing to the next.
So the most compelling reason I have is because learning new things should be something that you find exciting. What makes Lisp unique is that it is a lot different than other languages out there. If you know one imperative language, learning another may expand your horizons but not in the same way something from a different paradigm would.
If you already know a functional language or two, then it might not be worthwhile. That is very much up to you. But even though I have never used Lisp I enjoyed learning it immensely. Although I'd say I enjoyed Haskell more.
I will say back in the day I watched these lectures and found them incredibly satisfying and thought provoking.
- seneca 6y ago> If you need someone online to justify for you learning new things in your field you have probably already lost. This is really unhelpful gate keeping. You're respond to someone who literally just said they spend excessive time studying the field already.
- dunefox 6y ago> This is really unhelpful gate keeping. I don't think it is. If you don't have time to learn interesting stuff because you "have to write blog articles to make yourself more employable" then you will probably lose motivation or interest in CS.
- smcl 6y agoI think the point was that many people talk breathlessly about Lisp but are often quite hand-wavey about specifics. When this concern has come up before I've seen them dismissed with comments along the lines of "if you have to ask you won't get it" or "just read SICP". I've written and read a bunch of lisp and I'm slowly working my way through SICP at a leisurely pace, but I totally understand what these OP means. Some talk about lisp as something magical (it appears on xkcd as a sort of "god's programming language" - https://xkcd.com/224 https://xkcd.com/224) yet often seem cagey about actually sharing exactly why they think so. A great example of what I mean is this pretty famous essay by pg: http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html. In fact he says "Lisp is so great not because of some magic quality visible only to devotees, but because it is simply the most powerful language available" - which seems to dispel the "magic" bit ... but then throws out the tantalising "most powerful language" without (in my opinion) giving a compelling argument. He mentions how lisp macros are more powerful than those in C and does say "Lisp code is made out of Lisp data objects" and a few other bits and pieces about how it was higher-level than other popular languages at the time (the mid-1990s). It certainly made me curious to explore the language, but definitely left me with unanswered questions. My opinion is that this phenomenon is a result of a number of things, including: 1. some people went through a transformative experience through learning lisp, and are deliberately vague to entice others into exploring it without ruining some of the fun of self-discovery 2. some people had the same, but think that it's enough to declare these things and don't care if you believe them or not 3. some people parrot what they have read some smart folks say and simply can't formulate a good explanation even if they wanted to
- sjamaan 6y agoI suppose it's a bit of 1 or 2 or 3. But there's also the issue that emergent properties which fall out of the overall design are quite hard to explain, and even advanced students of the subject don't fully grok yet. For example, "code is data" is true in the most trivial sense for machine code, yet having code as structured data makes it much easier to manipulate. Having easy to manipulate code gives you the power to manipulate code at compile-time. Having code run at compile time inside the compiler, which is also an interpreter running the same language that you are compiling is kind of magical and mind-bending. In fact, more recent research into this has gone down the rabbit hole even deeper, and it turns out you can have an entire tower of meta-levels (see for example http://www.phyast.pitt.edu/~micheles/scheme/scheme22.html http://www.phyast.pitt.edu/~micheles/scheme/scheme22.html). This is all continuing on the same basic ideas which were present in early Lisps, just crystallized and refined further and further. Also, as research into macros has gone on over the years, hygienic macros were discovered, which Rust has adopted as well (and there are other languages which have them as an add-on, like Sweet.js). Deeply understanding how this stuff works gives you a better grip on the issues with macros in older languages (notably C). And that's just macros (and homoiconicity). There's also lexical versus dynamic scoping. This is a lot less "magical" now than it was 10 years ago, when almost no mainstream language even had closures.
- sjamaan 6y agoAnd, oh yeah, grokking continuations makes it a lot clearer how generators, iterators, exceptions and coroutines work. One concept which subsumes all the others. And if you want to get into compiler construction, understanding CPS conversion makes it much easier to do code transformations. There's just tons of research which went into Lisps, because it's such a nice vehicle for language experimentation. There's half a century of research going into Lisps. Other languages haven't been around for that long, so I suppose there's something to find in Lisp history for everyone, but it might not be the same thing for everyone!
- AnimalMuppet 6y agoAre Rust macros at all comparable to Lisp macros? Can you re-write the syntax of Rust with Rust macros? Or are they more like C/C++ macros?
- bigfoot675 6y ago> If you need someone online to justify for you learning new things in your field you have probably already lost. You can't learn everything though. You absolutely should contemplate whether something is worth learning before embarking on that process -- otherwise you fill your head with useless new things. Nobody is saying that I need to learn COBOL to stay relevant in the job market today, even if that would be a new language for me.
- ChiranSoogoor 6y agoI started programming in COBOL since 1988 and I am still. I have seen several other languages come and go in these 3+ decades but COBOL is only growing younger. I am no more excited to learn a new language or tool invented every six months at my current age near retirement, hope COBOL will continue to feed me for few more years if not decades!