Been an AutoCAD operator in Civil Engineering since 1987. My only experience with coding until then was a FORTRAN class in junior college where we had to turn in our assignments on a Hollerith card deck, which would be run overnight on a computer that took up an entire building. I hated those stupid punch card machines. Then, the engineering company I worked for bought 5 AutoCAD seats and shiny new 286s to run them. I got picked to be in the first wave and it was amazing. Being a natural tinkerer, I soon dug deep enough in the docs to discover AUTOLISP. I fell in love. The structure of LISP as a tool to make AutoCAD do whatever I wanted gave such a feeling of power. I spent most of my personal time creating LISP routines to automate the drudgery of drawing plans, and I soon became the office Guru. For anyone who has limited experience coding, LISP is something you should take a look at before any other language.
I've been lucky enough to have the opportunity to build a couple of backend server applications in Clojure. It's always been a joy. The architecture is always just a tree of expression calls, which makes holding the model of the architecture in my head trivially easy, and because Lisps prefer short functions, my programs end up as a DSL composing the prose of my program, with virtually no boilerplate. Lisp takes the "code reuse" OOP fanatics rave about and pushes it to 9000 without even trying, and you don't even need objects to do it.
And if you wanted objects you can grow them yourself out of a closure that accepts get/set messages and responds accordingly. :) That's a fun exercise people can do to really test their knowledge of closures in lisps that support them. You'd then write a general closure making macro that saves you lots of work in defining a new "thing" in your system.
I really like this video, full of great content. I think a priority moving forward for your videos would be to get a new mic, or possibly config how you use it.
The python comment was funny. We also managed to create Rust later that actually does accomplish many features of both successfully and is impossible to write and get to compile. But when/if it does, it's beautiful and the code looks nice on top of running fast. I can see why people used lisp. And I can see why people don't use lisp. Especially I can see why people wouldn't read other lisper's programs (because when you create a new language inside a language, you essentially create a barrier where you're only technically using the language you announce using, the other person can't speak it). I really wish the comparison in 2020's was not java though. I think something else would be more representative and universal of the basic structure differences. Although can't argue that there's been a lot of java in the last 10 years or so.
Have you even seen recently some modern lisp code, like e.g. Clojure? It is much more beautiful and readable than any Rust code. (I don’t even know how a Rust code could be “beautiful”, the language is ugly AF.)
I love this content, summarizes the vibe I get from this linguistic family very well. I am still a newbie to this system but whilst looking at ZealOS and the early history of the LISP family (allowing it to be very dense compact for retro machines), I can only imagine my retro computer system project thing I am still designing rn to operate with some dialect of such with the REPL and all. So ya, I research history down to the 1910s for my quest as to liberate myself and hopefully contribute something of empowering value back to the world. Stay awesome!
great vid! not gonna lie, almost clicked away because of the echo in the beginning, but glad I stayed. I did a project in clojure at my last job. Didn't do a good job breaking up my functions, and that thing became parenthesis soup. Made me love functional programming, though!
Unfortunately the "just use maps bra" approach is sometimes preventing people from extending the language. They get stuck in a false trichotamy of "code" "data" and "language" which is baggage from other languages. In the end, you should end up with a language made of language that describes the problem very clearly using mostly new well documented symbols. Instead we get a fleet of JSON nibblers and a very rigid vector/map parser and the same map literals/arrow macros pasted over and over again with small tweaks.
Nice video, I am writing professionaly elixir for a few years now and we have macros there too. To make things eaiser to understand for others, say that the macro expansion is the first stage of compilation and then the second is the actual compilation that generates IL or whatever the hell lisp compiler does.
BTW: I like the addition "for better or for worse." Writing well in Lisp requires taste. It's way too easy to make a real dog's breakfast of ill-considered macros. N.B. I am by no means considering myself as exemplary here. I'd have to be firing on all cylinders if I were to contemplate writing a macro for anything but my own consumption; I'm generally too stupid to do better.
Julia might fit the place where Python failed. It looks a lot like Python (although with end tags instead of syntactic whitespace, and n-dim arrays are easy to work with), but it has powerful macros, inspired directly by Lisp. Plus it has strong performance.
Lisp will never die. It’s too fundamental. Sure, dialects will change, Maclisp to Scheme to Common Lisp to Clojure, etc., but the core ideas are all still there.
I've converged on the "What They Teach In Harvard Business School/What They Don't Teach In Harvard Business School" approach to programming: Use Forth to talk to a real machine. Use Lisp to avoid talking to a real machine. Use both together and you have all of programming.
You can have a readmacro that you can bind to a key on emacs or whatever editor to be able to change S-expressinos to postfix and back again. Postfix is nice if you see the stack so you can see the intermediate values, but LISP is better for reading. Also you can use Chinese symbols and put the words in a tiny ruby script and maybe change the ruby script to give you sample test values seeing how they move through your code.
The thing that keeps me from learning lisp is just the horrible tooling. There are 20 different tools and tutorials for everything and everyone of them is deprecated or outdated and does not work. Same goes for the libraries. Whatever the problem is, the solution to it existed 15 years ago, but is not available anymore.
I've had this experience a little bit with common lisp, but I've had much better luck with Clojure. It runs on the JVM, so worst-case-scenario, you can use a Java library if a good clojure-based one is mising
@@sammytalks7215 True but I had some issues there as well (especially with using local java libraries) and I just can’t get over the terrible error messages in clojure. Not to mention that the clojure (i. e. the jvm) just stops instead of giving you the option of changing a variable/function definition ect.
The tooling is actually incredibly good. Just not very discoverable. Emacs+sly+sbcl+(maybe something like paredit) is a super productive environment. It's just not very "modern" and accessible. The setup is also quite involved and unless you are "initiated" it's hard to start on your own.
Good video, but you kinda lost me in the beginning. I thought Lambda Calculus was a model for a Turing Machine; I didn't know they were separate back then. Can someone enlighten me further?
They were developed as two different ways to mathematically study what was possible on a machine (though Church was Turing's thesis adviser). After some time, they were shown to be _equivalent_ in the sense that each model could be used to implement the other one. It's sort of like how Python and Java are two different programming languages, but you can implement a python interpreter in Java, and a Java compiler in Python.
Real programmers use Forth and C. Forth is a lot like LISP though. Instead of ( + 3 4 ) you write 3 4 + (no parenthesis!). Like LISP, it is reflective, so you can redefine the entire language as well. You can even make loops or conditionals WITHOUT using macros.
If videos were websites this one would be Geocities... Also good content but I spent more time playing with the volume to compensate for the different devices and settings the creator must've used for the different segments that I would've certainly absorbed way more of the knowledge treasure otherwise.
LISP macros are a double edged sword. They make LISP so plastic that you can't really make any assumptions about a LISP program you didn't write yourself and can expect to be learning yet another special sub-flavour of LISP every time you start reading code from a new project. Imperative and non-LISP functional languages have come a long way since the days of PASCAL and FORTRAN and features like polymorphism, multiple dispatch, generics and algebraic datatypes have greatly increased the flexibility of infix languages without burdening the programmer with boilerplate headaches.
@@johndoe-v9c I think it comes down to the question of whether DSLs typically actually need novel syntax, or just need terms which reflect the problem domain (in the OOP realm these are usually provided by structs, classes). By analogy, when we invent some novel sub-field of science or engineering we don't feel the need to introduce new rules of grammar to the English language in order to write textbooks about those fields, it almost always suffices simply to introduce new terms of art where necessary.
I liken this problem of Lisp to the halting problem. You can't reliably reason about what a chunk of Lisp code will do, just as you can't reliably tell if an arbitrary program will halt. When it comes to writing robust software, the more you can reason about what code will do the better. But that ability-to-reason comes from making the language do less, not more. (Just like if you want a programming language with which you can solve its halting problem, you have to abandon Turing completeness, and so you get a much weaker language.)
Yeah, it's why I cringe whenever I see a Rust macro. You have to stop what your doing and dive into how this macro is transforming the code. Then you get macros that are calling nested macros and all you want to do is chuck your system out the window. I'm sure if it's the modus operandi for a language, you will be viewing things differently, but I'd rather have an expressive language and only need to dive into modifying the ast/token-stream/source in absolute edge-cases, than have that be the default.
@@johndoe-v9c Hmm there may be ways to QUERY or EXPAND macro code if its overwhelming. Maybe, an optional type system or code discovery system would be good.
As much as I wanted to like lisp (specifically elisp), I found the error messages to be not great and that deterred me from spending a ton of time on it.
I want to give it a try! From Wikipedia: "Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket, and Clojure." Which one should I pick?
I personally use clojure. It runs on the JVM, so you get access to all of the standard java libraries. I learn best by doing, and having this library support makes it easier for me to build pragmatic projects. They all have their merits, and it depends a little on your interests/learning style, but that's what worked best for me :D
I really like Common Lisp, appreciate the hell out of Scheme and Racket, but never got into Clojure. (My Lisp days were around 2004-9.) These days Clojure probably has the best overall support, but Common Lisp and Scheme (and Racket) can teach you things you probably still can't find anywhere else. In fact, you may realize that in various ways most of the languages we use today are still missing features that Lisps had 30+ years ago.
Good to know. I need to learn to make a C compiler next semester and I need a starting point for the subject. Working on a Forth but that's kinda too simple. Maybe I should learn a Lisp like Scheme and try to make one?
sorry about the audio quality! I have a yeti mic, but I recorded parts of this one away from my office, so I wasn't using it for the whole video :'( . The second half of the video should have better audio quality. Will try to make sure I use it more in future videos
any variants of lisp used in production in say,cutting edge technology development? in fields such as FinTech?.Could you point me to those flavors of lisp.Also,could you a video how to effectively and in short time learn lisp to solve Lisp-specific production load based problems in real world.I dont seem have bandwidth for lot of languages to learn and create fixes for their idiosyncratic "Gotchas" to get things flowing well in production!!.your comments or later indepth technical Vlog or blog would be helpful.You love lisp and you are advocate of it.One more thing to create a big project how many man-hours needed with lisp vs others and maintainability,hirability
There are people using lisp in production, but way fewer than, say, javascript or python. If you are using it, I personally prefer Clojure because it runs on the JVM, and gives you access to existing java libraries. Different people have their own preferences. I made a short video on this (ruclips.net/video/YzIdUsZ1p7s/видео.html), but I'll try to make more content on it.
One year late, but the videogame company Naughty Dog also uses Lisp. Jak and Daxter 2 is "99% Lisp" (quoting them directly), and even The Last of Us uses it for scripting.
why do programmers call languages that have english syntax "easy for humans to understand"? lisp could just be easier for people used to head initial syntax
Because once they speak programming, they're no longer like humans and don't think like humans. That's why python is so popular - humans can start programming.
I like this, but there's a whole 'nother level of LISP magic. When you learn it, you absorb the design and what for want of a better term I'll call the _philosophy_ of LISP, which makes you a better programmer in other languages. It's also practically impossible *not* to write a LISP interpreter just for the yuks.
Do you understand the opposite of code is data is data is code. Whenever you run a function and feed data to it, your data is like a minilanguage and your function is like a mini-interpreter. Just like at LISP eval and randomly delete lines from it, and you'll see that it will have the same structure of your restricited functions and data sometimes.
@@aoeu256 I understand, but one of the things I understand is that brains don't work in an objectivist fashion. _Dogs are mammals_ has a different meaning from _mammals are dogs._ This is why I speak of _,philosophy,_ what coding in a language does to a brain which is not reducible to the mathematics of the language.
haven't used it as heavily as lisp, but my understanding is it's popular as a performance-oriented language with fewer sharp edges. so if you truly require the speed of C/C++, but don't want to spend as much time fighting memory leaks and seg-faults, it's oriented to make it harder to shoot yourself in the foot.
Programmer on day 1 : Lisp is so powerful, let write macros and shit Programmer on day 20 : Why is this shitty for loop doesn't work as a for loop, let use git blame to find out. Why git blame doesn't work ? I need to speak to the manager to see who change git behavior with shitty Lisp macros Manager : You are the only programmer on this shitty Lisp project, you beg me for 1 year to write in Lisp
Having my languge work the same every single time has alot of advantages. It mainly forces people to not do dumb esotric stuff i wouldnt be able to read. One of my big issues with cpython is that rarely the c code does weird shit that is simply impossible to debug because it fucked with the interpter itself. I had this line in my code once Self.b=value Assert(self.b==value) And it fucking failed... This was with trying to overitw huggingfac3 tokenizer...
What degenerate dialect of Lisp is this? Oh, it's Clojure, the not-Lisp that only has a small fraction of Lisp's power. The JVM is a ball and chain around Clojure's leg. At least it has macros. That means it's possible to implement async and await, which Java itself does not have.
Wouldn't be a LISP video without a microphone that sounds straight out of 2004
*1995
😂😂😂😂😂
It’s not a lack of quality- it’s additional value
Been an AutoCAD operator in Civil Engineering since 1987. My only experience with coding until then was a FORTRAN class in junior college where we had to turn in our assignments on a Hollerith card deck, which would be run overnight on a computer that took up an entire building. I hated those stupid punch card machines. Then, the engineering company I worked for bought 5 AutoCAD seats and shiny new 286s to run them. I got picked to be in the first wave and it was amazing. Being a natural tinkerer, I soon dug deep enough in the docs to discover AUTOLISP. I fell in love. The structure of LISP as a tool to make AutoCAD do whatever I wanted gave such a feeling of power. I spent most of my personal time creating LISP routines to automate the drudgery of drawing plans, and I soon became the office Guru. For anyone who has limited experience coding, LISP is something you should take a look at before any other language.
I've been lucky enough to have the opportunity to build a couple of backend server applications in Clojure. It's always been a joy. The architecture is always just a tree of expression calls, which makes holding the model of the architecture in my head trivially easy, and because Lisps prefer short functions, my programs end up as a DSL composing the prose of my program, with virtually no boilerplate. Lisp takes the "code reuse" OOP fanatics rave about and pushes it to 9000 without even trying, and you don't even need objects to do it.
And if you wanted objects you can grow them yourself out of a closure that accepts get/set messages and responds accordingly. :)
That's a fun exercise people can do to really test their knowledge of closures in lisps that support them. You'd then write a general closure making macro that saves you lots of work in defining a new "thing" in your system.
I haven't heard anyone break it down so succinctly! Thank you.
I remember learning lisp around 2005 after reading some Paul Graham essays and it bent my mind it all the best ways.
This video was great.
Do you remember which one? The one when he explained the webserver he and his mate made in CL?
I really like this video, full of great content. I think a priority moving forward for your videos would be to get a new mic, or possibly config how you use it.
The python comment was funny. We also managed to create Rust later that actually does accomplish many features of both successfully and is impossible to write and get to compile. But when/if it does, it's beautiful and the code looks nice on top of running fast.
I can see why people used lisp. And I can see why people don't use lisp. Especially I can see why people wouldn't read other lisper's programs (because when you create a new language inside a language, you essentially create a barrier where you're only technically using the language you announce using, the other person can't speak it). I really wish the comparison in 2020's was not java though. I think something else would be more representative and universal of the basic structure differences. Although can't argue that there's been a lot of java in the last 10 years or so.
Have you even seen recently some modern lisp code, like e.g. Clojure? It is much more beautiful and readable than any Rust code. (I don’t even know how a Rust code could be “beautiful”, the language is ugly AF.)
I love this content, summarizes the vibe I get from this linguistic family very well. I am still a newbie to this system but whilst looking at ZealOS and the early history of the LISP family (allowing it to be very dense compact for retro machines), I can only imagine my retro computer system project thing I am still designing rn to operate with some dialect of such with the REPL and all. So ya, I research history down to the 1910s for my quest as to liberate myself and hopefully contribute something of empowering value back to the world.
Stay awesome!
I can't disagree, Lol
I loved the overview; excited for more :D
this video was pretty eye opening!
Awesome video! Thanks.
LISP. Language of the Gods.
great vid! not gonna lie, almost clicked away because of the echo in the beginning, but glad I stayed. I did a project in clojure at my last job. Didn't do a good job breaking up my functions, and that thing became parenthesis soup. Made me love functional programming, though!
The python shade haha great video.
Nice, that's very smart of lisp developers
Unfortunately the "just use maps bra" approach is sometimes preventing people from extending the language. They get stuck in a false trichotamy of "code" "data" and "language" which is baggage from other languages. In the end, you should end up with a language made of language that describes the problem very clearly using mostly new well documented symbols. Instead we get a fleet of JSON nibblers and a very rigid vector/map parser and the same map literals/arrow macros pasted over and over again with small tweaks.
A very nice explanation, and short.
Nice video, I am writing professionaly elixir for a few years now and we have macros there too. To make things eaiser to understand for others, say that the macro expansion is the first stage of compilation and then the second is the actual compilation that generates IL or whatever the hell lisp compiler does.
BTW: I like the addition "for better or for worse." Writing well in Lisp requires taste. It's way too easy to make a real dog's breakfast of ill-considered macros. N.B. I am by no means considering myself as exemplary here. I'd have to be firing on all cylinders if I were to contemplate writing a macro for anything but my own consumption; I'm generally too stupid to do better.
lol at 2:00!
"... we managed to create a language that accomplishes neither." 😆 🤣
Julia might fit the place where Python failed. It looks a lot like Python (although with end tags instead of syntactic whitespace, and n-dim arrays are easy to work with), but it has powerful macros, inspired directly by Lisp. Plus it has strong performance.
Lisp will never die. It’s too fundamental. Sure, dialects will change, Maclisp to Scheme to Common Lisp to Clojure, etc., but the core ideas are all still there.
Great video! Great explanation!
I love LISP!
awesome! more please!
Great video. The sound is not typical yt but it totally fits with the spirit of the presentation. Thanks
The Python bit was dirty. 😂
I've converged on the "What They Teach In Harvard Business School/What They Don't Teach In Harvard Business School" approach to programming: Use Forth to talk to a real machine. Use Lisp to avoid talking to a real machine. Use both together and you have all of programming.
You can have a readmacro that you can bind to a key on emacs or whatever editor to be able to change S-expressinos to postfix and back again. Postfix is nice if you see the stack so you can see the intermediate values, but LISP is better for reading. Also you can use Chinese symbols and put the words in a tiny ruby script and maybe change the ruby script to give you sample test values seeing how they move through your code.
1:58 i didnt expect that,lol
5:55 you can write compiler plugins in Java tho.
3:00 I use Python 3 these days, but I still find myself slipping back into Python 2 syntax on occasion. Unlearning is hard.
loved it!
6:07 lmao
Wonderful!
3:29 in short: it uses prefix notation, okay, moving on.
(for those wondering: language using postfix notation is "forth")
Thanks man
great video
I like the video, but the mic quality really bad
The thing that keeps me from learning lisp is just the horrible tooling. There are 20 different tools and tutorials for everything and everyone of them is deprecated or outdated and does not work. Same goes for the libraries. Whatever the problem is, the solution to it existed 15 years ago, but is not available anymore.
I've had this experience a little bit with common lisp, but I've had much better luck with Clojure. It runs on the JVM, so worst-case-scenario, you can use a Java library if a good clojure-based one is mising
@@sammytalks7215 True but I had some issues there as well (especially with using local java libraries) and I just can’t get over the terrible error messages in clojure. Not to mention that the clojure (i. e. the jvm) just stops instead of giving you the option of changing a variable/function definition ect.
The tooling is actually incredibly good. Just not very discoverable. Emacs+sly+sbcl+(maybe something like paredit) is a super productive environment. It's just not very "modern" and accessible. The setup is also quite involved and unless you are "initiated" it's hard to start on your own.
So if you happen to possess the sacred words of the secret cult, tooling is good and productive (just hard to find and get working).
Good video, but you kinda lost me in the beginning. I thought Lambda Calculus was a model for a Turing Machine; I didn't know they were separate back then. Can someone enlighten me further?
They were developed as two different ways to mathematically study what was possible on a machine (though Church was Turing's thesis adviser). After some time, they were shown to be _equivalent_ in the sense that each model could be used to implement the other one.
It's sort of like how Python and Java are two different programming languages, but you can implement a python interpreter in Java, and a Java compiler in Python.
Real programmers use Forth and C. Forth is a lot like LISP though. Instead of ( + 3 4 ) you write 3 4 + (no parenthesis!). Like LISP, it is reflective, so you can redefine the entire language as well. You can even make loops or conditionals WITHOUT using macros.
There is no real or fake programmers in this situation.
@@bixie326 Edsger Dijkstra wants to differ.
Glad to see Forth love!
Forths limit you to the RPN, so in this sense Lisps are more expressive.
Garbage collection should collect itself (I'm a C++ enjoyer)
If videos were websites this one would be Geocities... Also good content but I spent more time playing with the volume to compensate for the different devices and settings the creator must've used for the different segments that I would've certainly absorbed way more of the knowledge treasure otherwise.
Great channel, great content. Keep it up man! And get a new fcking mic, google worker has muney fur sure.
LISP macros are a double edged sword. They make LISP so plastic that you can't really make any assumptions about a LISP program you didn't write yourself and can expect to be learning yet another special sub-flavour of LISP every time you start reading code from a new project. Imperative and non-LISP functional languages have come a long way since the days of PASCAL and FORTRAN and features like polymorphism, multiple dispatch, generics and algebraic datatypes have greatly increased the flexibility of infix languages without burdening the programmer with boilerplate headaches.
@@johndoe-v9c I think it comes down to the question of whether DSLs typically actually need novel syntax, or just need terms which reflect the problem domain (in the OOP realm these are usually provided by structs, classes). By analogy, when we invent some novel sub-field of science or engineering we don't feel the need to introduce new rules of grammar to the English language in order to write textbooks about those fields, it almost always suffices simply to introduce new terms of art where necessary.
I liken this problem of Lisp to the halting problem. You can't reliably reason about what a chunk of Lisp code will do, just as you can't reliably tell if an arbitrary program will halt. When it comes to writing robust software, the more you can reason about what code will do the better. But that ability-to-reason comes from making the language do less, not more. (Just like if you want a programming language with which you can solve its halting problem, you have to abandon Turing completeness, and so you get a much weaker language.)
@@Chalisque Very astute analogy!
Yeah, it's why I cringe whenever I see a Rust macro.
You have to stop what your doing and dive into how this macro is transforming the code.
Then you get macros that are calling nested macros and all you want to do is chuck your system out the window.
I'm sure if it's the modus operandi for a language, you will be viewing things differently, but I'd rather have an expressive language and only need to dive into modifying the ast/token-stream/source in absolute edge-cases, than have that be the default.
@@johndoe-v9c Hmm there may be ways to QUERY or EXPAND macro code if its overwhelming. Maybe, an optional type system or code discovery system would be good.
As much as I wanted to like lisp (specifically elisp), I found the error messages to be not great and that deterred me from spending a ton of time on it.
They are not great imvho, but they can be slightly less of a pain by following a tutorial or a book, for what was my (still evolving) experience
hater's gambit
Sound effect: eavesdropping in a public toilets in the 50's 👌🏻
I want to give it a try! From Wikipedia: "Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket, and Clojure." Which one should I pick?
I personally use clojure. It runs on the JVM, so you get access to all of the standard java libraries.
I learn best by doing, and having this library support makes it easier for me to build pragmatic projects.
They all have their merits, and it depends a little on your interests/learning style, but that's what worked best for me :D
Start with one but explore the others. But, don't explore until you have strong roots in one. :)
I really like Common Lisp, appreciate the hell out of Scheme and Racket, but never got into Clojure. (My Lisp days were around 2004-9.) These days Clojure probably has the best overall support, but Common Lisp and Scheme (and Racket) can teach you things you probably still can't find anywhere else. In fact, you may realize that in various ways most of the languages we use today are still missing features that Lisps had 30+ years ago.
Thanks!
it feels like the compiler writer of lisp implemented the AST and then was too lazy to continue, called it a day.
Good to know. I need to learn to make a C compiler next semester and I need a starting point for the subject. Working on a Forth but that's kinda too simple. Maybe I should learn a Lisp like Scheme and try to make one?
Dude, you have to buy a new mic!
sorry about the audio quality! I have a yeti mic, but I recorded parts of this one away from my office, so I wasn't using it for the whole video :'( . The second half of the video should have better audio quality.
Will try to make sure I use it more in future videos
It might be software not hardware.
Meh. I could hear him fine.
Great video. Except that mathematical operators in Lisp are not operators, but functions themselves...
Good Video. 🍷🗿
1:56 lol
any variants of lisp used in production in say,cutting edge technology development? in fields such as FinTech?.Could you point me to those flavors of lisp.Also,could you a video how to effectively and in short time learn lisp to solve Lisp-specific production load based problems in real world.I dont seem have bandwidth for lot of languages to learn and create fixes for their idiosyncratic "Gotchas" to get things flowing well in production!!.your comments or later indepth technical Vlog or blog would be helpful.You love lisp and you are advocate of it.One more thing to create a big project how many man-hours needed with lisp vs others and maintainability,hirability
There are people using lisp in production, but way fewer than, say, javascript or python. If you are using it, I personally prefer Clojure because it runs on the JVM, and gives you access to existing java libraries. Different people have their own preferences.
I made a short video on this (ruclips.net/video/YzIdUsZ1p7s/видео.html), but I'll try to make more content on it.
Clojure is actually surprisingly often used in FinTech. Best example being nubank, which recently acquired the company of the creator of Clojure.
One year late, but the videogame company Naughty Dog also uses Lisp. Jak and Daxter 2 is "99% Lisp" (quoting them directly), and even The Last of Us uses it for scripting.
isn't it clojure logo ?, btw please fix your mic
Oh god the jab at python was lethal
why do programmers call languages that have english syntax "easy for humans to understand"?
lisp could just be easier for people used to head initial syntax
Because once they speak programming, they're no longer like humans and don't think like humans. That's why python is so popular - humans can start programming.
not enough boxing
I like this, but there's a whole 'nother level of LISP magic. When you learn it, you absorb the design and what for want of a better term I'll call the _philosophy_ of LISP, which makes you a better programmer in other languages. It's also practically impossible *not* to write a LISP interpreter just for the yuks.
Do you understand the opposite of code is data is data is code. Whenever you run a function and feed data to it, your data is like a minilanguage and your function is like a mini-interpreter. Just like at LISP eval and randomly delete lines from it, and you'll see that it will have the same structure of your restricited functions and data sometimes.
@@aoeu256 I understand, but one of the things I understand is that brains don't work in an objectivist fashion. _Dogs are mammals_ has a different meaning from _mammals are dogs._ This is why I speak of _,philosophy,_ what coding in a language does to a brain which is not reducible to the mathematics of the language.
the sound hurts
What's your opinion on Rust?
haven't used it as heavily as lisp, but my understanding is it's popular as a performance-oriented language with fewer sharp edges.
so if you truly require the speed of C/C++, but don't want to spend as much time fighting memory leaks and seg-faults, it's oriented to make it harder to shoot yourself in the foot.
Are you programmer or standuper ? ;)
haha I guess a little of both.
I program a lot tho -- I think you need to be in the trenches to make good content :D
for me LISP make more sense than C
Programmer on day 1 : Lisp is so powerful, let write macros and shit
Programmer on day 20 : Why is this shitty for loop doesn't work as a for loop, let use git blame to find out. Why git blame doesn't work ? I need to speak to the manager to see who change git behavior with shitty Lisp macros
Manager : You are the only programmer on this shitty Lisp project, you beg me for 1 year to write in Lisp
Having my languge work the same every single time has alot of advantages.
It mainly forces people to not do dumb esotric stuff i wouldnt be able to read.
One of my big issues with cpython is that rarely the c code does weird shit that is simply impossible to debug because it fucked with the interpter itself.
I had this line in my code once
Self.b=value
Assert(self.b==value)
And it fucking failed...
This was with trying to overitw huggingfac3 tokenizer...
haha "accomplishes neither"
But you can't create AI using lisp. yet.
Java did not derive from FORTRAN
my ears
looks like someone hasn’t been eating his python soy 🐍🍲🙄
the more I listen to this the stronger my fear of Lisp grows. Thank you, but no thank you. I'd rather be happily spending my days with Python and Java
LoL
LISP is a language generator. it is not a language.
What degenerate dialect of Lisp is this? Oh, it's Clojure, the not-Lisp that only has a small fraction of Lisp's power. The JVM is a ball and chain around Clojure's leg. At least it has macros. That means it's possible to implement async and await, which Java itself does not have.
Yes In theory LISP is miles better than any other language. But in the real world it simply cannot PERFORM.
Lisp is crap. (out of experience). Even Forth is better.
(if(=x 10)(println 'hi')).......WTF ..bro, THAT IS JUST SAD......looks to me like the worst syntax in the world.
: run 10 = if ." hi" then ; ok
9 run ok
10 run hi ok
"...we managed to create a language that accomplishes neither." Ouch! My sides! /me ∉ pythonistas