What is the Curse of Lisp?

  Рет қаралды 25,499

Eric Normand

Eric Normand

Күн бұрын

What happens when your language is so powerful that small, independent teams can solve their problems without libraries? Does everyone flock to it? Or do you just get a lack of libraries?
►► Audio, Video, and Transcript available: lispcast.com/what-is-the-curs...
►► Subscribe on iTunes: itunes.apple.com/us/podcast/t...
Transcript
What is the Curse of Lisp? In this episode, we are going to explore this counterintuitive property of powerful languages. My name is Eric Normand, and I help people thrive with functional programming.
The Curse of Lisp is it has a very personal appeal to me because I used to be one of the people that thought about this all the time. The real question is if Lisp is so powerful, if it's such a great language, and it lets you do so much, why isn't it more popular? It's not about the parentheses. People can get over the syntax. It's been a lot of time to get over the syntax and it's not really what it is. We're going to explore that.
You used to hear this more. In recent years, like the last 10 years, there's been a real renaissance of languages. There's so many possible languages to use now. Mostly because of the Web and the rise of startups who can use whatever language they want on the back end, and there's been a blooming, a blossoming of different possible languages to choose from.
But back in the day it was not like that. Big companies standardized on a mainframe and there were certain languages that ran on that, so they would standardize on a language and train their employees in that language and that's what you had.
There were a lot of -- I'm talking about 50 years ago -- there were a lot of Lisp programmers, mostly at universities and graduate departments, who learned Lisp, got into Lisp, felt very productive in Lisp, and looked around and said, "Look, you've got this hundred-person team working in COBOL and they are producing very little software, you know, just as very slow and here I am with Lisp and I'm like inventing, AI." [laughs]
I'm making stuff happen just all by myself. Maybe I have another person working with me, but like two people doing a lot more work than this team of a hundred people and so it seem to them. This is a perception thing.
The question they would always have is why isn't this more popular? If it's such a powerful language, why aren't businesses investing in it? Why aren't we seeing people realize that they can hire fewer people, a lot fewer people not just 1 or 2 percent, but maybe you slash your team by 80 percent? Why don't we see Lisp being more popular?
Over time, you see this language like C or C++, Java starting to get a lot of attention. A lot of jobs around it. Meanwhile, Lisp is this not growing very much. All this stuff that you could do in Lisp in a few lines of code is now you realize taking men years, person years of work. Sorry. I said men years. I didn't mean to use the sexist version. Person years of work to make a library to do the same thing.
For instance, parsing in a Lisp or any kind of functional language are recursive to send parser, it's very easy to write. Now you need some kind of parser generator system like a Lex and a YACC or an ANTLR in Java. You just need these huge systems, this huge piece of software just to do the same thing that a lisper was able to do.
This is my version of the Curse of Lisp. What happens is because it is hard in Java to do a nice parser, people recognize that it's hard. They work together because the challenge is so great, they need a hundred people to come together and work on it and make it very good and powerful.
It creates even like a cottage industry. Now you need books written about it. You have maybe some conference talks about how to use this new parser generator in Java. It becomes a new thing that you can become an expert at because it's not just like you know how to make parsers. No. You have to know that tool. It's even less general knowledge, but still, it's very powerful because all this work has been put into it.
The question is why is it that the industry seems to prefer this giant effort to make a thing because of a less powerful language and so it takes more effort to do. Why does it prefer that over the more powerful general solution?
I should pause here because it's not about Lisp. I said it at the beginning, it's about powerful languages in general. Any sufficiently powerful, expressive language, like you get with a functional language using higher-order functions and stuff. I think this is going to happen too.

Пікірлер: 149
@lpm8284
@lpm8284 3 жыл бұрын
“Alone we go faster, Together we go further”
@shaikikbhalBasha
@shaikikbhalBasha Ай бұрын
like octopus intelligent , dont have social life
@mbattlecoder
@mbattlecoder 3 жыл бұрын
Thumbs up if you're using Common Lisp in 2021.
@neilclay5835
@neilclay5835 2 ай бұрын
2024 ✋
@peilanhsu
@peilanhsu 3 жыл бұрын
I wonder if Lisp would gain in popularity if it targeted non-programmer programmers. e.g. my experience with Python is it pulls in people who might not identify themselves as Computer Science people -- until they use Python so much that one day they realize they actually are programmers.
@syedkumailhussainsherazi3871
@syedkumailhussainsherazi3871 3 жыл бұрын
I don't think that lisp would become popular again, even if targeted for non-programmers, I also believe python wasn't specifically targeted for non-programmers, it just caught on. Everyone started making a video or a tutorial for it and so it became more easy to learn. It has relatively bit easier syntax and it resembles pseudocode a bit, or "english" as the memes say and then it started becoming popular among people as the good first programming language to learn. Most people who use python are the ones that want to do the task be done with it, as compared to lisp they would need get the past the parenthesis for the first 2-3 months and also learn recursive thinking, which is counter intuitive to as we humans think. It also doesn't help that python has more tooling support and bigger community which just makes it easier to get into. Honestly even for lisp beginners they can't understand how powerful it is until they get into the good parts, like code is data and data is code which just makes it easier and fun to create language abstractions in, functions as first-class citizens and macros.
@aoeu256
@aoeu256 3 жыл бұрын
Racket/Scheme & Clojure are easy for non-programmers to learn but they have to get over the parens and they need access to libraries which there are not many... Maybe if Lisp was the prefix "view" version of C, Ruby, Idris, Haskell, Ocaml, Python, and Smalltalk and code can be used in between each other whether or not they used S-expressions or infix expressions then you don't get the competing libraries problem.
@ruffianeo3418
@ruffianeo3418 2 жыл бұрын
@@syedkumailhussainsherazi3871 Lisp is not forcing anyone into "recursive" thinking. It has many powerful ways to do loops and it even has goto, aka (tagbody ...). And once you read the ca. 5 pages of "loops for blackbelts", it becomes easy soon to write (defun total (values) (loop for v in values summing v)) or do loops with control variables (loop for i below 10 do (print i))... Scheme is the Lisp dialect which tries to force people into a specific way of doing things - not Common Lisp.
@syedkumailhussainsherazi3871
@syedkumailhussainsherazi3871 2 жыл бұрын
@@ruffianeo3418 Oh, sorry but I haven't used Lisp and just assumed Scheme and Lisp are very similar. Also do you have the link for the paper you mentioned??
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 жыл бұрын
Lisp will never work for “non-programmer” programmers. Its syntax is weird enough to put off even those who consider themselves “hotshot” programmers (well, “hotshot” in the Java/C♯/C++ league). This syntax is a direct result of the fact that a program can be represented as a data structure built out of objects in the language itself. In other words, it’s a self-referential language in the most fundamental way.
@technicalmachine1671
@technicalmachine1671 4 жыл бұрын
The curse of Lisp is that it's too good.
@user-cq7db9ij1o
@user-cq7db9ij1o 4 жыл бұрын
But Common Lisp run time is made in C/C++ , right ?
@ghhdhshssubhhhsnssn2810
@ghhdhshssubhhhsnssn2810 4 жыл бұрын
Uhuh?
@harryhenrygebel3506
@harryhenrygebel3506 4 жыл бұрын
@@user-cq7db9ij1o Which Common Lisp runtime? It's a language specification, but their are at least 10 implementations use. Most are written in Common Lisp not C or C++, including SBCL which the most commonly used implementation. There are usually little bits of C to talk to the OS (which is usually written in a C language of some kind) or assembler for the compiler. Some of them have early versions that ran on Lisp Machines (a type of computer where everything including the operating system was in Lisp, and even the CPU used an assembly code that was basically Lisp-as-assembly-codes) and only added the little bits of C after Lisp Machines died out and they were forced to talk to operating systems written in C.
@user-cq7db9ij1o
@user-cq7db9ij1o 4 жыл бұрын
@@harryhenrygebel3506 Thanks for clarification.
@obnoxiouslisper1548
@obnoxiouslisper1548 3 жыл бұрын
@@user-cq7db9ij1o wow a conversation that didnt end with someone insulting lisp saying it had too much parentheses
@-leovinci
@-leovinci 4 жыл бұрын
Every good Lisper will have his own Code style with his macros, therefore it’s hard to share their source code to beginners, so it’s not easy to learn it well
@vegai
@vegai 2 жыл бұрын
In other, more successful, language ecosystems, programmers who write code that others cannot understand are considered mediocre.
@godfather7339
@godfather7339 2 жыл бұрын
New to lisp, wouldn't the macros standerdize over time?
@sheeplord4976
@sheeplord4976 Жыл бұрын
The atmosphere of lisp has always been very free spirited, casual, hacky, etc. The language is standardized, but otherwise everybody does what they feel like, and the language makes it easy to do crazy stuff. This may be bad for professional development, but it is perfect for people who want to truly express themselves on their code.
@Brian-ro7st
@Brian-ro7st 11 ай бұрын
@@vegai yeah, you fundamentally misunderstood what was said. Other languages have stronger abstraction, and the macro would be imported as a library.
@laughingvampire7555
@laughingvampire7555 10 ай бұрын
if that is the case, then you are using Lisp wrong, you are falling into this curse of lisp. YOU NEVER WRITE YOUR OWN MACROS. Macros are meant for libraries or frameworks, so they allow reusability and avoid application specific macros.
@JC-ey8gf
@JC-ey8gf 2 жыл бұрын
Lisp not popular because we dont have enough memer of lisp. We need more memes.
@beauteetmusculation8191
@beauteetmusculation8191 2 жыл бұрын
THIS.
@hyretech
@hyretech Жыл бұрын
We don't need that many memes when we have xkcd: imgs.xkcd.com/comics/lisp.jpg
@VanStabHolme
@VanStabHolme 5 ай бұрын
Fennel and Janet are modern Lisps that are pretty nice. I use Fennel for configuring NeoVim and making games in Love2D.
@reo101
@reo101 10 күн бұрын
FENNEL NEOVIM MENTIONED 🎉🎉🎉
@ruffianeo3418
@ruffianeo3418 3 жыл бұрын
In my experience, it is mainly the quick-to-judgement and dismissive attitude of people which prevent (Common) Lisp from gaining more popularity. It goes a bit like this: A: "Why not CL?"" B, C, D giggling in unison. "All those parenthesis!" Topic over. 95% of people hearing about CL will not look any further. Of the remaining 5%, the statement "Slow - it is interpreted!" discourages another chunk. While it is wrong for now about 40 years. LISP is usually a compiled language and typically can reach like 90% of the speed of C. But the damage is done - After only 3 minutes of thinking about it, the majority of people dismiss it without even knowing, what makes LISP powerful. And there is no cure. Python is the living proof. While really slow compared to LISP, while it has really cryptic syntax, while being a mere shadow of LISP in terms of language power, it is now rank 3 or 4 on TIOBE index. In spite of the fact, that there are a lot of languages, which are faster and have better syntax than python, like for example OCAML/F#. People get what they deserve, I guess ;)
@tsiiphsycoii
@tsiiphsycoii 2 жыл бұрын
Pretty much my own experience... most just laugh at the parens it then takes an hour of talking like they are a child to get them to look passed the parens.
@demonicmaleficentviciously140
@demonicmaleficentviciously140 3 жыл бұрын
i learned lisp in 2013 at UC Berkeley....it was a great way for beginners to understand algorithms and data structures. I always show lisp to HS students so they can better understand recursion. Great vid!
@ericnormand4210
@ericnormand4210 3 жыл бұрын
Very cool!
@aoeu256
@aoeu256 3 жыл бұрын
LISP is more than a beginner language... Conditions, higher-order functions, closures, metaobject protocol, multimethods, optional return values, quasiquotes, macros, it has the ULTIMATE set of abstraction powers that many languages still don't even learn about.
@kriterer
@kriterer 2 жыл бұрын
@@aoeu256 But the minimal syntax and _list processing_ capabilities do make it pretty easy to get a hang of the basics using LISP
@neilclay5835
@neilclay5835 2 ай бұрын
As a Java programmer of over twenty years, I think you're on to something here.
@michaellewis7758
@michaellewis7758 2 жыл бұрын
Lisp via Clojure is relatively popular. I think at the ‘enterprise’ level there is a design for n-many people and Java is the lowest common denominator. In addition, Lisp is beautiful if looking at your own code; someone else’s …. A type system helps reason about code you’ve never seen before, written years ago… by possibly less experienced/capable teams.
@larryjeffryes6168
@larryjeffryes6168 2 жыл бұрын
We need a LISP plug-in living resident within an office suite (like the one in a common CAD program). Then LISP will take off from problem solvers everywhere.
@larryjeffryes6168
@larryjeffryes6168 2 жыл бұрын
Does being able to do anything force a programmer to determine, at a fundamental level, what they’re asking if their own work? I’ve only programmed in auto lisp, but I could author and maintain business processes, PLM, file version control and vaulting, with automatic email notifications to those needing stays updates along the way through the BPs. But keep a computer running at all times with a CAD session running to manage inputs/outputs from member users? Surely this can be done better in other languages. If not, then might LISP be used for business, product and process management?
@averageflow23
@averageflow23 Жыл бұрын
Thanks for your video Eric! As an enterprise Java refugee learning Haskell, I never thought about the point you mentioned, of companies preferring replaceable programmers.. Sadly makes all sense. I guess i will have to futurely seek a functional dev company, or start my own :)
@freedom_aint_free
@freedom_aint_free 2 жыл бұрын
I think it is because in Lisp dialects you program using the syntax tree from the get go, and in other languages it is normally the next abstraction from the code syntax and so it does not have a rigid structure and together with macros every Lisp programmer basically program in his own Domain Specific Language (DSL). PS: My two cents about the curse: It's an economical effect, if to hire a time of 100 people is a must and it is really expensive, it will drive away the competition with less capital, its the same effect that government regulation do, the big companies love them because they drive smaller companies away from the market.
@someopinion2846
@someopinion2846 Жыл бұрын
The problem is the homoiconicity, the fact that program and data is the same type structure. When I learned programming on a mainframe I wondered which one of the big boxes was the compiler. That the compiler itself was a piece of data blew my mind, or rather, it didn't blow it at all, it was incomprehensible. A compiler, it seemed to me and seems to many, is a subject, doing something to an object, a thing being at the same time a subject and an object would be a categorial mistake, until you discover homoiconicity.
@diegonayalazo
@diegonayalazo 2 жыл бұрын
Thanks
@larryjeffryes6168
@larryjeffryes6168 2 жыл бұрын
To Common Lisp: Is there any way to build a standardized set of the most commonly needed tasks, to provide a single body of work as a common touchstone?
@aoeu256
@aoeu256 3 жыл бұрын
I think some people really hate s-expression syntax, maybe, if there was a "thin" wrapper above s-expressions like Mathematica it could help a bit and many others aren't very good at using emacs。
@PaulSpades
@PaulSpades 3 жыл бұрын
Lisp is very more popular than you think it is, all modern languages have useful lispy bits in them, and productive programmers use those bits every single day in lots of languages. The curse is: a powerful language requires less investment (time, manpower, financial) and it's that lack of investment in software development that produces unfinished projects.
@cubicinfinity2
@cubicinfinity2 3 ай бұрын
As someone who was only briefly understood and been introduced to Lisp, I was stuck not understanding why it feels so off and why most Lisp projects are dead. This helps a lot and I know if I want to use Lisp, what it is I'm getting myself into.
@vaibhawc
@vaibhawc 7 ай бұрын
What do you say about clojure? Now
@robertboyer5926
@robertboyer5926 3 жыл бұрын
I agree with you that certain languages (MOSTLY LISP's and I'd argue the other one's are actually just LISPS that are not quite as "good" as the original but more re-statements of the same thing) are cursed, I might even agree with a few of your points regarding "individualism" but having worked in far far more diverse computing environments at every level from coder to system programer to giant project executive that you miss the mark in a big way with your conclusions. Contrary to common belief most "programmers/developers/whatever is the current term for people making computers do stuff" I'd say 90% are really not wired to be that good at it. This is a FACT that's not isolated to computer programming in any way, it's mostly that way with just about any profession and the observable difference becomes far more obvious the higher the complexity of the endeavor. I've had to contend with this in a million different ways. There are some problems that is far far far better handled with just a couple of really great programmers that for arguments sake each is literally 1000x more productive starting at zero and getting to the end. Which I'd personally prefer to be working on. Let's just say you can get maybe 5 of those people working on "that thing" so you have a capacity of 5000 units of productivity per unit time. What happens when you have a job that needs to be done that will take 5,000,000 units of effort? This is typically the case in a lot of real world settings. I'll take this full circle and even agree/support that the 1000x more productive small group could potentially redefine the problem and make that 5,000,000 units of effort be more like 500,000 or even 50,000 or possibly even 500... In the real world you don't get to redefine the problem because of risk management and unknown-unknowns because the upside any way you measure it with $$$$ it is in NO WAY going to take away even a slight downside unknown risk of not getting it done or done exactly the way the primary objective is defined from a business perspective. Lets say you have a group of technical employees that cost 1000 units of expense. Lets also say that any subdivision of those into 100 mixed in with 900 other generic parts can generally produce the same results of why they are there from a business perspective. That business perspective produces 1000000000000 of revenue/value. Would you prefer a group of 1 that could produce the same results? Even if that 1 were 10x "faster" in time to market as well? Probably not especially if that 1 was very difficult to replace or virtually impossible to replace because the population of those people are extremely small. In the real world you do you best to leverage each one of those "1"'s in the best possible way to make everything else marginally better/more productive/etc. A very difficult thing to do as most of them "understand" the notion but really don't like the solutions in terms of their hideous inefficiencies and inherent "wrong way" to go about doing whatever the endeavor is. I have managed that sort of thing very effectively after leaning how to do it over decades but only because I found a way to rationalize it myself via compartmentalizations of "my stuff" and "their stuff". At the end of it most "languages" actually all of them are just ways of given "other people" ways of doing things that they can "understand" and most of the people I consider to be in the group of "1";s don't really give a hoot which particular language as it's all the same to them, in fact most people that use LISP's or any other tool is so that they can construct something to solve the problem akin to a DSL for that problem. All languages in terms of computer languages are in essence "DSL's" so that people that have less of a clue as to how it all works can produce any result at all. The reason many of the "1"'s latch on to LISP's or LISP like things is because of it's orthogonality (IE take a look at the original EVAL function in McCarthy's paper vs say the fairly pedantic far more complicated Turing machine in terms of elegance) in other words LISP's were purpose built (even if a happy accident) for manipulating symbols in a very elegant and orthogonal way and tada.... lambda's... which at the end of the day any of those developers/programmers etc that I would consider wired in a certain way the makes them actually good at it have done the same exact thing no matter if it was on the bare metal/c or whatever... function pointers, lamdas, and some sort of way to succinctly state general algorithms across a wide variety of dynamic data and combinations. LISP was/is a fantastic and elegant general purpose statement of what computing formule and recipes actually do and how to think about them We've seen this semi-re-invented 800000000 times with various languages and ta-da we have Haskell/functional languages which is a few of these concepts done exactly wrong due to far far too much influence of "math guys" which have always lagged behind even the comprehension of computing algorithms as a formalized problem because it never fit their out-dated model of representational models (yes just because a lot of great math guy's happened also to be great computing guys doesn't mean the math academic establishment is the same) Ps. I am not crapping on Haskell as opposed to anything else but it's fairly obvious if you're not religious about it that a few stakes in the ground are absolutely WRONG given how inelegant it is to control lazy vs eager evaluation and what sort of bad behavior that causes in real world use. LISP's on the other hand can do either fairly elegantly... power with elegance.
@JohnboyCollins
@JohnboyCollins 4 жыл бұрын
It's interesting that Clojure programs eschew small, local identities in favor of large ones, while the Clojure community consists of small, individual identities and eschews large ones.
@waneagony
@waneagony 3 жыл бұрын
Could you do a video on Scheme? Pros, cons, why more ppl are not learning it, and whatever other insights you'd like to share.
@aoeu256
@aoeu256 3 жыл бұрын
Scheme fractured into lots of different languages that weren't compatible, and Scheme itself fractured the Lisp community? Scheme could have made it in the browser as JavaScript, but C/C++ programmers didn't want to learn any new syntax so they ended up creating the unholy evil language that is JavaScript.
@Brian-ro7st
@Brian-ro7st 11 ай бұрын
@@aoeu256 now we have clojurescript, at least.
@ya64
@ya64 7 ай бұрын
I would like to learn Lisp in the future but I don't really see any practical use for it. There's also N variations to choose from, and each seems to be doing its own thing, so it's hard to pick one. There's also the weirdness of the tooling around Lisp, which feels very alien to someone who's used to just open an editor and start typing some code.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 жыл бұрын
I looked at the Common LISP spec, and it’s full of baggage for maintaining compatibility with non-Unix-like operating systems, like VMS for goshsakes. If you strip out all the legacy junk, you could have a more modern language that could be a really good basis for future development.
@MrFram
@MrFram 3 ай бұрын
Except all of that garbage turned out to be useful for maintaining compatibility with the most popular desktop operating system, which happens to be a VMS-like and not a unix-like. I for one like file paths being cross platform
@ArshadAnsari37
@ArshadAnsari37 3 жыл бұрын
Listening on 2x ...
@shirk3y
@shirk3y 3 жыл бұрын
He has so peaceful voice, I'm relaxing now
@nanthilrodriguez
@nanthilrodriguez 3 жыл бұрын
3.5x
@beforth
@beforth 3 жыл бұрын
The curse of powerful languages in general is that they require powerful brains to be programmed and understood, and that is a scarce/expensive resource. If someone invented a language that monkeys could program in, it would be far more popular than java.
@aoeu256
@aoeu256 3 жыл бұрын
Well Racket/Scheme and Haskell (well at least Elm) is in many ways EASIER than Python, but the marketing and libraries are not there.
@felixthehuman
@felixthehuman 3 жыл бұрын
The curse of lisp is that there are no videos on "CONS Should not CONS its Arguments part II: Cheney on the M.T.A." on KZbin.
@collinsa8909
@collinsa8909 Жыл бұрын
Tried lisp before , not having an editor built for lisp , makes it a pain to code in. Many of the function names and syntax are wierd. Simple printing has this wierd function. Why use car cdr when first and last is more intuitive. The cli is painful to work in. How dyu run a program or get thru a screenful of errors? What about documentation to lookup function names etc there's a reason some languages succeed more than others. Some are simply more usable.
@balisto8374
@balisto8374 5 ай бұрын
20:00 yes i think not that many people are actually using lisp at all, it might boom one day thanks to the network effect tho
@jneiberger
@jneiberger 4 жыл бұрын
Could part of the answer be that functional programming is harder to understand? Perhaps it's just me--and perhaps because I'm not a professional programmer--but I spent a couple of weeks trying to learn clojure and it never made that much sense to me. It never clicked, and the more I learned, the more I hated it and just wanted to go back to Python. Clojure was so much more difficult to read, and even simple stuff took me a while to figure out because of the inside-out way I had to look at functions, i.e. find the inner core inside all the nested parentheses and then work your way out, instead of a straightforward reading that other languages like Python would give me. Maybe I just needed to stick with it a little longer, but it felt like someone learning Python, as an example, could be productive on day one, whereas with clojure I spent days learning and never even got to the point of accepting user input. It was a huge learning curve and I never hit that lightbulb moment where I understand why it was worth the time. i'm sure if I could see it, I'd be more motivated to learn it. I'm also sure this is a personal limitation and not a general problem with LISPs.
@darkengine5931
@darkengine5931 3 жыл бұрын
There's usually quite a steep learning curve for many with functional programming. I've heard many people say it's just a different mindset but I think it's a bit exaggerated. I'm willing to gamble that Python is a lot easier to teach a child than Lisp, e.g. But I think that's true of very powerful stuff in general. For example, consider FL Studio vs. Reason in the digital audio workstation world, or Houdini/Maya vs. Modo in the VFX world, or Solidworks vs. Rhino3D in CAD/CAM, or oil paints vs. watercolor, etc.
@johnneiberger7311
@johnneiberger7311 3 жыл бұрын
@@darkengine5931 I'm sure you're right. For me, the learning curve was too steep. My interest in learning the language was not strong enough to keep me motivated to get over that initial hump. It was sort of a chicken and egg problem. Without knowing the language, it was difficult for me to understand why it would be worth it to learn the language. Even after many days of learning, I still hadn't gotten to basic input/output and simple stuff that you learn day one in just about every other language course. It was very odd. I've written plenty of Python, and in the past dabbled in C, C++, Go, assembly, Fortran, Pascal, and various flavors of BASIC. None of them were remotely as difficult to grasp as clojure for me. I really struggled to wrap my brain around it.
@aoeu256
@aoeu256 3 жыл бұрын
For Lisps you need to dim the parenthesis so your going by indentation, its similar to python in that way. Code is data, and data is code requires a collection of insight to understand it fully, but you can probably there by looking at eval written in Lisp, imagine yourself editing the eval function to change the semantics of Lisp, learning about quasiquotes and macros (which are compilers/transpilers), imagining SQL, HTML, C in s-expressions and what the eval functions FOR THOSE would look like. Next imagine creating your own version of defun, cond, let, set, progn/do but would a slight twist your own version of defun would statically check things at compile time, or add logging. Next thing about functions operating in data. Your data is also in S-expressions, but unlike the turing complete code in Lisp eval, it has your data has a fixed shape. Any functions that operate on your data are really other forms of eval. So there is a graduation between data and code and a function and an eval function depending on how many cases you support.
@diegonayalazo
@diegonayalazo 2 жыл бұрын
@@aoeu256 great explanation. Thanks
@robertwhite3503
@robertwhite3503 Жыл бұрын
Java and Python are popular. They allow us to build websites with server based data validation and controllers (as in MVC design pattern). They allow us to work with MS Excel documents, encryption, DTDs, file zipping, emails, etc. I feel that I would find these things harder in Lisp. Otherwise I would be interested in trying Lisp.
@openroomxyz
@openroomxyz 3 жыл бұрын
How to install lisp on windows, and use it inside visual studio?
@baka_geddy
@baka_geddy 3 жыл бұрын
Install ANSI CLISP from the web and Install it!
@malusmundus-9605
@malusmundus-9605 2 жыл бұрын
Hey why not make a program to "unroll" all the macros in a src file so that you can read someone else's lisp in a more standard way? Here's why not: if you can read someone else's code, then you might have to.
@eliseulucenabarros3920
@eliseulucenabarros3920 Жыл бұрын
"Constraints liberate, liberties constrain" - Runar Bjarnson
@SororiaAltria
@SororiaAltria 10 ай бұрын
That's a great quote, thank you
@AK-vx4dy
@AK-vx4dy Жыл бұрын
Maybe expressiveness causes also that it is harder to read and reason about what code do? In other words it is easy to write own thoguths to lisp, but importing other people thoughts from lisp code is quite hard despite expressivnes?
@numericalcode
@numericalcode 11 ай бұрын
Very much agree on the individualism.
@AB-ms7my
@AB-ms7my 2 жыл бұрын
C++ is bad too is this aspect. I see way too many solutions today... I have really hard time to decide even library for logging in 2022...
@nanthilrodriguez
@nanthilrodriguez 3 жыл бұрын
What is the curse of APL?
@user-cq7db9ij1o
@user-cq7db9ij1o 4 жыл бұрын
Cool talk. How popular is Common Lisp?
@pawandesh
@pawandesh 4 жыл бұрын
I have experienced this curse too. I have coded an e-commerce website myself, and I could do so much more myself than a team of people. Now, the question is, when I want to make a startup out of what I have done, I have to look for people who can take care of the code I have written, add more to it and enhance it, so that, I can look into the business aspects. But, I am not finding anybody who can do it. Software development is a community effort to get successful and even more to maintain it. I totally agree with the 1) commercial aspects of companies looking for people who can be fired, go on maternity leaves, etc. Basically, people who are replaceable. And that, you get with the not so powerful languages. 2) Personal aspect of common lisp giving boost to individualism or the ego. If common lisp can solve these issues, it can still thrive, I believe.
@kippie80
@kippie80 3 жыл бұрын
I've heard that lisp was in the browser before javascript but for Sun's money getting dumped into Java ... community followed the money, to its detriment. Javascript is fine but lisp would have been better. Maybe there is room for a lisp extender to browsers??
@AvindraGoolcharan
@AvindraGoolcharan 3 жыл бұрын
You can use clojurescript and compile to js if you want Lisp on the web
@aoeu256
@aoeu256 3 жыл бұрын
Also the self language was doing very good with its VM and using Smalltalk's elegance, for some reason Ruby and Python just had to be developed... Python is *VERY VERY* elegant, but its just not as elegant as Smalltalk. Ruby is only slightly more elegant than Python, but it didn't have that VM that Self and later JavaScript is known for...
@Mantil82
@Mantil82 3 жыл бұрын
Brendan Eich, the creator of Javascript, was in his own words "lured" to Netscape with the promise of being able to create Scheme (a LISP dialect) in the browser. But than his superiors said the syntax had to be closer to Java, that it should be called Javascript (it was Livescript before) and gave him only 10 days to finish it.
@jeremyfirth
@jeremyfirth 3 жыл бұрын
My submission to the question: I think it's because recursive thinking is not intuitive and it never clicks for most people, which shuts off most of the advantages of Lisp for most people.
@kamilshakirov3215
@kamilshakirov3215 3 жыл бұрын
Those people should not be programming should they? I have delivered a commercial project almost entirely implemented in Common Lisp with C bits to interface with telco hardware. It is still being used in production without any issues.
@alastairbowie
@alastairbowie 4 жыл бұрын
What would the massive amount of work taken for a tool like Antler say be equivalent to with the same 'massive amount' of work undertaken on a LISP project? AI prolly.... Lol jk xP
@computeremotioncom
@computeremotioncom 4 жыл бұрын
very interesting video!... now i do not have much time right now... so i can not elaborate on this in any detail... but i think you may find it worthwhile to ponder the following... 1. how powerful an instrument / tool is a stradivari? 2. how important is the quality of a piano played in a lively wild west type saloon? 3. why did will smith have such a hard time selling those superior bone density scanners in the pursuit of happyness? 4. why are there so very few people out there conversing in latin... when the language has clearly so much to offer!?... ( ... i mean... simply pick at random a text written in english and one in latin... the difference in quality and depth of thought should be obvious... ) 5. ... the list goes on... but i will not.... since i gotta run now :-).... but thx again for taking the time to make the video!
@Bizmonger
@Bizmonger 4 жыл бұрын
Truth seeking developers are forced to either be entrepreneurs or work for startups if they want to work with highly motivated minds and/or maximize productivity.
@computeremotioncom
@computeremotioncom 4 жыл бұрын
@@Bizmonger ...so... couple of things :-).... first of all, not knowing anything about you but the fact that you wrote this reply to my comment, i would be perfectly willing to assume you are either an entrepreneur or working for a startup... or both...:-).... second of all, my intent was really to point out how one could quite easily miss the wood for the trees, especially if there is some sort of vested interest / bias involved... just talk to any classics-scholar and she is sure to explain to you why we should teach more latin / greek etc. in school.... etc. etc..... and there's nothing wrong with that! ... now it has been i while since i watched the video, but if i recall correctly one of the main lines of the argument went something like.... programming in lisp makes you orders of magnitude more productive than programming in a mainstream language like java.... i really can not remember the exact wording / numbers used in this particular clip.... and it doesn't even matter.... for you will find people making ridiculous claims about programming-languages and increased / decreased productivity everywhere and all of the time... and again that's really cool... in the sense that people sell stuff.... so obviously you wanna have promotion.... i guess the reason why i wrote that comment was, because this really did not feel like an attempt to spread the lisp gospel, but rather he seamed to really be puzzled by the fact that people / companies would not immediately want to hop off the java and onto the lisp wagon..... and finish the work that previously took them 150 days to get done in an afternoon... :-).... or whatever.... so basically my intent was to point out that.... well obviously! there is a huge cost involved in making a change like that... ( ... suppose i was to tell you that thinking in japanese instead of english will increase your productivity / mental capabilities :-)... oh lets say... by two orders of magnitude :-).... well.... then... not only are the numbers involved downright outrages...BUT!... that claim also fails completely to take into consideration / account the ENORMOUS investments that will be required in order for you to be able to master the japanese language in the first place!... ) ... bottom line... picking up a new language ( programming or otherwise ) is a serious challenge, and for a run of the mill problem the difference in productivity will be nowhere near large enough to justify it... ...hmmm... note sure if i explained myself well enough.... does this make sense?
@h0stI13
@h0stI13 Жыл бұрын
I haven't written one meaningful app in Lisp yet I'm reading Lisp docs like a maniac trying to understand as many things as possible - now that's a curse. I think the quote form and pattern matching on s-expressions are the most powerful features of any lisp. Not many programming languages give you that power, with the exception of Julia, Nim and maybe Rust? It allows you to invent your own notations for the domain you're working in. But other than that...Lisps are just another family of programming languages.
@adsick_ua
@adsick_ua Жыл бұрын
a guy that is familiar with Julia and writing in Rust 'ere.
@MrJCraft
@MrJCraft 2 жыл бұрын
I believe Lisp will gain in popularity
@lorensims4846
@lorensims4846 3 жыл бұрын
So is this why Python is so popular? Because it is so hard to do anything serious in a language that features structure for the sake of structure like COBOL?
@tsiiphsycoii
@tsiiphsycoii 2 жыл бұрын
Python is popular because its for brainlets its the bigmac of the programming world.
@adsick_ua
@adsick_ua Жыл бұрын
watched on 1.5x. I always have been a guy who wants the most modern languages - Scala, Julia and now Rust. Now interested in what happened to LISP. For mentioned langs there is similar curses - they're all better than their predecesors, but not so many people use them because they're new (self enforcing loop) note: although Rust grows exponentially according to it's github stars history. Another curse is the curse of Esperanto - it is an artificial auxiliary language created in XIX century to be the language that everybody in the world knows (sort of). As you may realize that is not the case which makes me think that humanity is doomed - we build freaking AI systems that allow for translating one language into another (and also may eventually kill us) "faster" than learn a language that is like 1 to 3 month to learn.
@ohdude6643
@ohdude6643 2 ай бұрын
1.25 x please
@daksh6752
@daksh6752 3 жыл бұрын
Lisp is great, but the barrier to entry is much higher than let's say python. You can get used to parenthesis, but how do you give real business value quick enough? How do you ask millenials and gen-z to invest in a language that is 50yrs old. Software engineers won't understand this, computer scientist's will.
@kippie80
@kippie80 3 жыл бұрын
Only people that like Python are those that didn't have to do Fortran. I was so happy that Fortran died, it was awful. Can't stand the format dependancy, this is a blocker for me. I'd rather use Swift than Python.
@nyuzoo
@nyuzoo 2 ай бұрын
speed: 2*
@professornativodeingles
@professornativodeingles 2 жыл бұрын
Right on the money, tragically.
@rayscheelhaase4733
@rayscheelhaase4733 Жыл бұрын
Languages which empower the lone hacker are traditionally undervalued due to corporate influence. But the complexity of today's computing problems are forcing corporations to turn to technologies they once tried to overshadow. EDIT :: {side_note, clarification} :: The biggest competition of corporations is lone hackers. Corporations aren't going to fund the technology which disproportionately help their biggest competitor, UNLESS THEY ABSOLUTELY HAVE TO! That is why it has taken so long for these superior technologies to make a comeback!
@funprog
@funprog 3 жыл бұрын
Lisp and its dialects are not popular because it is not people centric (close to english) rather are compiler-parser friendly, which discourages people to get involved in the first place. Maybe more important was speed back then (1960's) but now not so much (clojure is quite fast). Finally OO models the world "better" than Functional which played a big role in adoption. Modern languages that are now succesfull take a hybrid approach (OO + Functional) and combine the best of the 2 major programming paradigms i.e Python, Java, Javascript, C#, Scala,Rust,Swift even C++20.
@geoffreyvanwyk4588
@geoffreyvanwyk4588 2 жыл бұрын
Man years.
@jsonkody
@jsonkody 6 ай бұрын
The best languages are never in mainstream :/
@BryanChance
@BryanChance Жыл бұрын
I tried using Lisp. I tried. I tried. I nearly walked out of my job because of lisp's crazy syntax, etc. Back to Java. LOL
@telesniper2
@telesniper2 2 ай бұрын
You could always do what RMS did. Have your Lisp code spit out the C source code and pretend to be a C programmer.
@jessstuart7495
@jessstuart7495 10 ай бұрын
Corporations prefer flocks of sheep over a lone wolf.
@dannymaly
@dannymaly 2 жыл бұрын
David Blaine of Coding
@laughingvampire7555
@laughingvampire7555 10 ай бұрын
What is the Curse of Lisp? the history of my life.
@briankamras2913
@briankamras2913 2 жыл бұрын
The worst tool always wins.
@jamesduhachek7546
@jamesduhachek7546 2 ай бұрын
It almost seems like you are speaking of an issue with the culture surrounding it, rather than any problems with the language itself.
@vincentvega7908
@vincentvega7908 Ай бұрын
Yes, I think it sounds like it. Lispers describing the Lisp curse use the power of Lisp as an excuse but other dynamic languages like Perl, Python, or Ruby are similarly powerful. Much like Lisp they make it possible to write a prototype very fast, and solve a lot of problems in small teams. The difference is that they established a culture of sharing code, and from that a culture of thinking the code design through in terms of interface, documenting it, putting it out there, looking for solutions that are already out there. There is however an underappreciated aspect of this 'curse'. Lisp is so old that in its beginning many users were isolated because they had intermittent network connectivity or none at all, sharing code was not as easy as it is today. When you come into an environment where for every problem you get dozens of libraries that each solve a different 60% of it you stop looking after a while, and miss even libraries that really would work. Also when network connectivity became more common Lisp has become fragmented into numerous mutually incompatible dialects which again made sharing code hard. If anything making the syntax computer-centric (easy to parse) rather than human-centric (easy to read) made writing Lisp interpreters really easy enabling the explosion of various dialects.
@branquinho8444
@branquinho8444 3 жыл бұрын
Average human is too dumb. And, on top of it, culturally we watch mikey mouse and catoons when we are kids. The people who could understand it, they do not. Because the rest of the world is using java. Clojure is a workaround that. Let's hope we make the shift
@Mythologos
@Mythologos 2 жыл бұрын
The word "man" is sexist?
@wilbertvanbakel
@wilbertvanbakel Жыл бұрын
You talk a lot without saying much
@etsequentia6765
@etsequentia6765 7 ай бұрын
*CORRECTION:* "Man hours" is not the "sexist" version of anything. "Man hours" is simply the *correct* way of communicating the notion of work hours in the English language. Nothing more, nothing less. There is no need to apologize for using English correctly. It's heartbreaking to have to watch an adult human being actually *apologize* for conveying his thoughts because he was browbeaten, brainwashed and shamed into it. It's Man hours. It's Mankind. It's Salesman. It's Spokesman. It's Chairman. If a cult of misandrists disapproves of that, too bad. The effort to control and subvert language and how people communicate in all areas of life is not carried out by chance. It is tendentiously carried out by said cult to normalize its pathological misandry and slowly instill their false consciousness in all of us: one that denies human males their human status. One that denies human males their basic human rights. One that pathological misandrists hold. Do not ever apologize. Defy authoritarian cults pretending to be righteous, virtuous and noble. They are not. They will control your language and will proceed to control you, because power over other is all they seek.
@RichardBuckerCodes
@RichardBuckerCodes 4 жыл бұрын
Not sure you're old enough to know what back in the day means.
@ironfoe1387
@ironfoe1387 4 жыл бұрын
ok boomer. (sorry had to say it)
@larryjeffryes6168
@larryjeffryes6168 2 жыл бұрын
We need a LISP plug-in living resident within an office suite (like the one in a common CAD program). Then LISP will take off from problem solvers everywhere.
Rewrite Your Scripts In LISP - with Roswell
21:23
Gavin Freeborn
Рет қаралды 19 М.
КАК ГЛОТАЮТ ШПАГУ?😳
00:33
Masomka
Рет қаралды 2,1 МЛН
Which one will take more 😉
00:27
Polar
Рет қаралды 36 МЛН
Why LISP Is The Language of Legends
9:05
Sammy Engineering
Рет қаралды 29 М.
Why Are Lisp Macros So Great!?
16:28
Gavin Freeborn
Рет қаралды 14 М.
The KEY To Thinking Like a Programmer (Fix This Or Keep Struggling)
10:39
The Brutal Truth Behind Tech Layoffs
23:50
Josh Christiane
Рет қаралды 353 М.
Marvin Minsky - The beauty of the Lisp language (44/151)
2:06
Web of Stories - Life Stories of Remarkable People
Рет қаралды 36 М.
the TRUTH about this NEW Language (BETTER Than Rust and C++?)
7:37
Low Level Learning
Рет қаралды 331 М.
How This Pocket Notebook Changed My Life
7:35
Ross Harkness
Рет қаралды 132 М.
Опасная флешка 🤯
0:22
FATA MORGANA
Рет қаралды 509 М.
Самый маленький игровой ПК
0:46
ITMania - Сборка ПК
Рет қаралды 527 М.