4 years ago, I was responsible for maintaining a giant project from 1978, written in Lisp. There was a widely used syntax in that project and I didn't know what it did or how it worked. I searched the internet but nobody knew what it did. I just stopped meddling with it and ignored it for a while. Only later I discovered that syntax was possible thanks to a custom macro written in the project itself. The boomers created a domain specific language and didn't document it.
@madsteeez Жыл бұрын
I've had a similar experience
@supremeleader5516 Жыл бұрын
What was the project
@proosee Жыл бұрын
well... Lisp is directly for this purpose: to create domain specific languages, so there should be no surprise there. Documentation is different matter, but sometimes code is your best documentation because it is by definition always up to date, of course it is only useful if it's written expressively enough.
@gagagero Жыл бұрын
@@prooseeThe "purpose" of Lisp isn't to create DSLs lol. Macros should only be used where absolutely necessary. Wherever you can, you should use functions.
@John-zq8nf Жыл бұрын
So you entered new project and didn't even begin with learning language it uses? Well.
@zaynelumpkin2 жыл бұрын
Learning to program a little Lisp (specifically, Racket) was one of the most rewarding things I ever did as a programmer. The syntax and the approach was so different from anything else I'd ever used, but Lisp was so internally consistent, and everything worked together perfectly once you figured it out; Everything is a list, every element of a list can be a list, and everything can be done recursively. It feels like a language from another planet, and getting familiar with it really expanded my mind and my approach to problems in programming. Learning some Lisp is an incredible way to challenge your assumptions and expand your ability to think about problems.
@neilbedwell77632 жыл бұрын
I'm with you. Personally, since LISP is so translatable, I posit that it really should be considered the definitive way to arrange computation, and that humanity has made a massive mistake making the lineage of LISP the exception. (it truly is in the direction of us having a language that can express any other language-implememtation solution and become a mid-point between comparing any other two languages, which essentially become DSL's with bizarrely chaotic implementations)
@cristianocolangelo99202 жыл бұрын
My university teaches Racket as first programming language (bachelor in computer science). Pretty hardcore
@PRonYouTube2 жыл бұрын
@@cristianocolangelo9920 pretty cool! Which uni?
@hashtags_YT2 жыл бұрын
I personally feel Haskell would scratch that itch better, but to each their own. That said, definitely give it a try if you haven't already, it's a whole lot of fun to use whilst completely flipping all your programming knowledge on it's head.
@santhosh33742 жыл бұрын
Its pretty similar to prolog.
@taylankammer2 жыл бұрын
Some corrections and clarifications: 1. Scheme (1975) is older than Common Lisp (1984). Both are derived from but significantly different from John McCarthy's original LISP (1958) which is not used anymore. 2. The various "Lisp" languages are actually as different as C, C++ and C# so I would discourage from speaking as if "Lisp" is one programming language, unless you mean the original LISP. 3. Usually people say "LISP 1.5" when they mean the original one from McCarthy, because that's the last version of the original language that he published. 4. Some of the important innovations were first invented in Scheme, not LISP. That includes lexical scoping, true first-class functions/closures, and "hygienic" macros. 5. Scheme and Common Lisp are standardized, like C, and there are many implementations of them. CLisp is just one Common Lisp implementation, like GCC for C. 6. Scheme was originally a research project, and while newer and more feature-rich standards were published over the years, the standards continue to be very minimal. So you'll usually commit to a specific implementation, like Racket or Guile, if you want to do something serious with it. 7. Both Common Lisp, and serious/modern implementations of Scheme, can be and are used for "real" serious software projects. For example GNU Guix is a complete GNU/Linux distribution with many core components implemented with the Guile implementation of Scheme. 8. Both Common Lisp and Scheme can be compiled rather than interpreted, it's up to the implementation. The Chicken Scheme compiler actually converts Scheme to C before compiling it with a C compiler for instance. 9. Any talk about the Lisp family of languages is incomplete without mentioning Emacs Lisp. ;-) Emacs is essentially an implementation of a custom LISP-derived programming language called Emacs Lisp (most similar to Common Lisp from the bunch) that is special-tailored to the task of implementing a text editor in it.
@juuuuuuules2 жыл бұрын
this guy lisps!
@TheMR-7772 жыл бұрын
I want to eat Chips now
@neilbedwell77632 жыл бұрын
Good lord I find these things so important for someone just discovering the computational problems that the lineage of LISP uniquely answers, and benefits from learning sooner rather than later. this kind of accessible collation is barely anywhere. For the sake of every hackers journey thank you.
@qandak2 жыл бұрын
AutoCAD first released in 1982 still uses its own scripting language for automation - AutoLISP.
@Imaltont2 жыл бұрын
For #1, both were also (co-)created by Guy Steele, which is also one of the minds behind the original Emacs, and it is pretty much impossible to have never touched some of his work if you have used a modern computer.
@irian3x32 жыл бұрын
"circum-size" lmfao
@IntentStore2 жыл бұрын
*giggles intensify*
@dugtrioramen2 жыл бұрын
Man has too much fun on these educational videos
@seannewell3972 жыл бұрын
Got got
@shane-porter2 жыл бұрын
Did you know that doing for(-skin) loop inside such a function results in a syntax error?
@CharlesChacon2 жыл бұрын
@@shane-porter 👏
@LongDayAlone2 жыл бұрын
As a Clojure Dev, it warms my heart seeing u cover lisp! Well played sir!
@TheDarkOne6292 жыл бұрын
Hello there. Nice to meet a fellow crazy clojurian. Although half the internet would be raising pitchforks again if anyone here called Clojure a lisp. Stay safe, friend.
@icephonex2 жыл бұрын
Do you use clojure at work or as a hobby language? if you use it at work, do you know if it's niche or if it's high in demand? sorry for all of the questions, have a great day c:
@TheDarkOne6292 жыл бұрын
@@icephonex In Berlin, there are some well-paying jobs with Clojure. However, even my employer is looking for other languages to use. It might be worth checking a local meeting for Clojure programmers and asking there.
@zeffster22 жыл бұрын
then I guess you also cringed a little at all the mutable stuff in this video
@sina7306 Жыл бұрын
Its not high demand like other languages but many companies use it (walmart, netflix, boeing)
@0xahmad5422 жыл бұрын
This is honestly the first 100 seconds video where I had to pause a video to understand the content ( so I can put it on my resume ofc )
@electrolyteorb11 ай бұрын
@user-he4fd7ly3nwhat? Suicide help line or something?
@afmikasenpai2 жыл бұрын
1:49 The function name caught me off guard. Great content as always !
@JamieMcI2 жыл бұрын
Great tip!
@zameerfouzan2 жыл бұрын
@@JamieMcI that's hard/
@theseangle2 жыл бұрын
@@JamieMcI what tip? 😏
@anon_y_mousse2 жыл бұрын
Don't worry, unless your name is Rad, then tuck and roll. ;)
@Arkemix302 жыл бұрын
@@theseangle xD
@oneandonly_h42 жыл бұрын
So happy to see you reviewing one of my favorite programming languages of all time!!
@gareth20212 жыл бұрын
Care to elaborate why it’s one of your favorite PL? xd My first impression of these languages was that they are „weirdly complicated“. Just curious
@oneandonly_h42 жыл бұрын
@@gareth2021 because it's an art form :)
@Me-da-Ghost2 жыл бұрын
I remember trying to make my own "dream programming language" and I ended up with something which now I realise is exactly like Lisp, brackets and all.
@oneandonly_h42 жыл бұрын
@@Me-da-Ghost See! Lisp is so awesome it's an inspiration to us all :D
@maccsguitar2 жыл бұрын
@@gareth2021 My first impression was "weirdly simple", just put every command in parentheses and the operator/command/function in front, and evaluate from left to right inside parentheses. Otherwise its all the same stuff as other languages, but some of the names might be old. Translating a simple python program into a lisp-dialect, and then with a parser i use myself: def do_something (a, b): c = [a, b] for item in c: print(a, b, item) == (defun do_something (a b) (setq c (list a b)) (foreach item c (print a b item) ) ) == defun do_something (a b): setq c [a b] foreach item c: print a b item The real kicker though is that when it is tedious to write something that really shouldn't be a function or you need to write multiple necessary things for some simple input, you can make another command (a macro) out of that, and the compiler will add all the necessary things for you. Most beginners don't need to use this feature though, its a complete language as it is.
@expertdev2 жыл бұрын
It's wonderful to know that amazing languages were created on the middle of fifties and sixties and they keeps running modern computers and also they are used like mockups for new languagues. I love those short videos, please keep us up-to-date about the things that the universities and institutes don't share with its students. Thanks Fireship!
@tobiascornille2 жыл бұрын
If there's one things unis are good at, it's at teaching stuff from the fifties and sixties 😛
@Sakuraigi11 ай бұрын
@@tobiascornilletrue
@usopenplayer2 жыл бұрын
Been craving a LISP video from you. Great and simple breakdown.
@nissanGold2 жыл бұрын
Learning Racket (a LISP type language) in Uni helped me solve harder recursive problems.
@larrytron19922 жыл бұрын
LISP was the programming language used for Naughty Dog’s Crash Bandicoot series on PS1 and Jak & Daxter series on PS2
@juanignacioaschura94372 жыл бұрын
Tetralogy*
@jamesalexander55592 жыл бұрын
Naughty Dog made their own internal programming language that used LISP's syntax called GOAL which means "Game Orientated Assembly LISP". They stopped using it for the first 3 Uncharted games but recreated it for the PS3 when making The Last of Us and I believe they still use it to this day.
@EngineerNick2 жыл бұрын
There is a variant of lisp in autocad and I made it draw a vectorized mandlebrot using a marching squares algorithm. Probably the most productive thing I ever did in both Lisp and Autocad XD
@evilotis01 Жыл бұрын
that's fkn awesome
@treangle2 ай бұрын
Super cool!
@emmanuelconstantinidis21512 жыл бұрын
Now that Fireship has made a video, my coworker will finally believe me that Lisp is a serious language!🙏
@magne60492 жыл бұрын
0:55 Racket is the Lisp successor that takes programmable programming language (or in their words: language oriented programming) to its full extent. It’s the best language for writing your own Domain Specific Language (DSL).
@TheDarkOne6292 жыл бұрын
Maybe I misunderstood, but isn't that what any "real" lisp does (i.e. programs can read and execute themselves)? Please tell me if I'm wrong. I still don't understand Scheme, only Clojure and some Toy-Lisps.
@magne60492 жыл бұрын
@@TheDarkOne629 I did post a reply with links and everything, but it seems gone :( But anyway, in short: Racket has unprecedented support for macros (even containing the lexical environment in a syntax object), to aid you in writing your own DSL. Clojure doesn’t support reader macros for instance.
@fictitiousforce9048 Жыл бұрын
@@magne6049KZbin often thinks links == spam for comments
@nbme-answers2 жыл бұрын
1:01 The Lisp alien mascot is named “Svigo” (‘parenthesis’ in Icelandic) and was created and designed by Conrad Barski, author of Land of Lisp and Bitcoin for the Befuddled
@hungrygator47162 жыл бұрын
Its finally here, I've been waiting for months. Thank you Fireship!
@lighter74052 жыл бұрын
Man, thanks a lot, finally I can start doing my lisp hw after delaying it and waiting for your 100seconds lesson.
@valentin68242 жыл бұрын
Love it :) A language from 1955 but it has so many things in it we are using still today.
@oneandonly_h42 жыл бұрын
Lisp truly is a timeless language 🔥
@valentin68242 жыл бұрын
@@oneandonly_h4 but its hard to learn.
@machinima14022 жыл бұрын
The circum-size function got me scared for a whole second
@TheDarkOne6292 жыл бұрын
I like the first definition of s-expressions that I ever read: - An atom is a s-expression. - A function is a s-expression. - The empty list is a s-expression. - A cons is a s-expression if both its car and cdr are s-expressions.
@taylorallred62082 жыл бұрын
Thank you for really doing lisp justice in the video! You clearly understood the core design principles and goals of the language.
@DollyOmegaX2 жыл бұрын
Thanks!
@ardavanansari2 жыл бұрын
Love the beautiful logo animations at the beginning of every video!
@Shoulder2Chin2 жыл бұрын
I wish I could give you more thumbs up. I'm going through the "Land of Lisp" right now.
@thanatosor2 жыл бұрын
The concept and ideas are always fascinating in Lisp, except in real world usage. The hardest codebase to maintain. Edit 1 : Look, I’m not a professor neither a Lisp expert, just a typical dev working around various languages so I share my experience with you guys. Feel free to prove me wrong, it’s just my experience. Even improving a C++ codebase is still way better than dig into lisp family source of someone else.
@Chalisque2 жыл бұрын
It's more a language you want to know about, and have a basic grasp of, rather than use for real world projects. Time and again, you'll find yourself re-inventing bits of Lisp.
@thanatosor2 жыл бұрын
@@Chalisque 12 years ago, I actually fell into that compiler/interpreter making loop of Lisp and can’t get out until dozen of trash implementations. If anyone want to, at least use ML language ( like FSharp or Ocaml ) to define your own lisp in no time. Beside, I found out that making Forth compiler is easier and more fun. In fact, Lisp compiler is based on forth-like virtual machine to have GC and byte code.
@skyhappy2 жыл бұрын
how you know
@thanatosor2 жыл бұрын
@@skyhappy dude, try to modify defold editor, which was written in Clojure. And you will see what I mean :)
@davisuga2 жыл бұрын
This screams "I don't know what I am doing" so hard
@Antiorganizer Жыл бұрын
This is useful as a quick first glance so that you can get the gist without having to waste a whole lot of time. One can make mental notes what to learn more about in detail, and one can go in knowing what should be covered. It's like a fast forward to a synopsis of what it offers. Definitely need this for literally every language that has at least some popularity. Another one, and this one isn't popular anymore, but still offers insight what today's systems *ought* to offer, is: Smalltalk ! Not that I'm a fan of the language itself, but there is something inherently special about the notion of truly live coding, instead all the mickey mousing that everyone does now.
@curls67782 жыл бұрын
I feel like the interactive development process did not get the attention it would have deserved, being one of lisps most important and distinctive features…
@μολώνλαβέ-κ2τ2 жыл бұрын
Yeah, not even a mention to the REPL.
@crackwitz2 жыл бұрын
To JavaScript peeps, that is a given. To "explicitly compiled" knuckle draggers, that is witchcraft.
@curls67782 жыл бұрын
@@crackwitz the interactive development in lisp is quite different from the javascript repl though
@crackwitz2 жыл бұрын
@@curls6778 I'd like to hear more about what you say I'm missing. I'm very familiar with Python and JS, somewhat with Scheme. Got any links or keywords to see what makes it different or "more"?
@GavinFreeborn2 жыл бұрын
@@crackwitz With lisp you can modify the program as it runs. There is no GIL stopping this or the single threaded nature of javascript. This may sound like a small distinction but it really does change how you program. For some of my work I will startup a web server written in lisp and write the majority of what I want to do without ever needing to shut down the server. In addition common lisp also has the common lisp condition system which allows you to do some really powerful stuff with exceptions allowing you to recover from errors in the repl. There is a ton to this so it's really hard to summarize but I actually have a KZbin called "Why Lisp Is One Of The Most Productive Programming Languages" focused on some of this
@damin19162 жыл бұрын
you finally made a lisp in 100 seconds video!!!!! Nice Job!!!!!
@GaryMFOak692 жыл бұрын
1:54 “circum-size” nice function name!
@EvanEdwards2 жыл бұрын
I was a little wary when I hit this video, but it is a solid introduction to a language with an extremely complex history and lauded for elegance that isn't always obvious, plus the weight of being such an early language the syntax is quirky by today's standards. Lisp is one of those "you should know these concepts down to the core if you want to make a career out of coding" languages. It's like learning to cook eggs perfectly when you want to be a chef: you learn a fundamental ingredient (protein) inside and out, plus you learn the rigor and mindset of _how_ to learn something inside and out. You'll see that ingredient used a thousand ways in a dozen forms, as a major and minor part, but you also can approach anything new with a wider approach of thought and learning. Seldom will you use Lisp directly, but you'll use variants and languages with features pulled from it over and over.
@maccsguitar2 жыл бұрын
imo lisp makes the basics really easy: when you do maths, the thing you want to calculate first is out in parentheses. in lisp, every command is inside parentheses and everything in parentheses is evaluated from left to right before the command is run. when a command (a function) is run, it means that that command's parentheses and their contents can be replaced by the return value which is the value you get by evaluating the command's definition with the values after the command's name. that is done by evaluating those parentheses in order the same way as before. No language gets cleaner than that teaching the basics. I tried to start from c, quit, was forced to start with lisp, and after that everything in c-style language-syntax was so much easier to understand
@kickthesky2 жыл бұрын
I took a class in college in Lisp way back in 1988. I was lucky the professor let us take our tests open notes. I still barely passed that class! This video gave me bad flashbacks of that class, LOL.
@andrisoone2 жыл бұрын
Dude that Lisp logo is so cool, never seen that one before.
@Yas-gs8cm2 жыл бұрын
One great man once said: "Lisp is the crack of software languages... Once you try it, nothing hits as hard".
@zednotdead2 жыл бұрын
Now that you did Lisp, you should do a tutorial on setting up Emacs as an IDE! Because why not!
@mirmarq4292 жыл бұрын
That would take years
@lawrencedoliveiro91042 жыл бұрын
Emacs is one of those things you can start working with very quickly. Then as you get more familiar with it, you feel the need to add a little customization here and a little bit there. Looking at the Git repo containing my custom Emacs prefs, the first commit was made in 2007. Currently the main file is about 900 lines. I wouldn’t consider myself an Emacs expert, by any means.
@Hyperboid2 жыл бұрын
yeah, even with opinionated frameworks like Doom, it takes quite a while to get it to look how you want it to.
@egorm89522 ай бұрын
Yes please!
@strange_man2 жыл бұрын
I wish your videos will be exactly 100 seconds one day.
@SimGunther2 жыл бұрын
Best part of its parsing is that the FE of the LISP compiler can be written in an afternoon. The rest becomes.....interesting 😏
@mattreichmann81182 жыл бұрын
THANK YOU I'VE BEEN WAITING FOR THISSS
@yusufmalikul Жыл бұрын
Thanks for the quick tutorial. I saw Lisp on every old essay online. I need to learn it now.
@iuc72542 жыл бұрын
Paul graham would be proud you covered this!
@RoyRope2 жыл бұрын
Came to Lisp trough SICP, it takes some time getting used to all parentheses but it is a very powerful language even now.
@engelshernandez58982 жыл бұрын
I came to your channel yesterday looking for this video. Thanks!
@jessstuart7495 Жыл бұрын
One of the coolest things about lisp (IMHO) is the ease of integrating a custom command language into a project. No need to write your own command interpreter!
@NoOne-ev3jn2 жыл бұрын
Today, I started reading a book called “structure and interpretation of computer programs” that uses Lisp as the chosen programming language and this video came out the same freaking day is this a coincidence? Think not
@evilotis01 Жыл бұрын
my father used to use this to script AutoCAD. he was very fond of telling me that the acronym should have stood for "logic in superfluous parentheses"
@HowardLeeR2 жыл бұрын
What a terrific channel.
@marna_li2 жыл бұрын
Thank you, for exposing us to the wonderful world of programming languages, frameworks, and other computer-related topics. 🙂
@maxbd26182 жыл бұрын
That poem was hella hard bars and nobody's talking about it
@protosevn2 жыл бұрын
You should make one on clojure as well since it´s a modern Lisp and it deviates a little bit from the rest of the family!
@lighter74052 жыл бұрын
Make a long version Lisp tutorial, that would be awesome (for me as a student).
@roteschwert2 жыл бұрын
The syntax was daunting at first, but after learning to code Fennel (a Lisp that compiles to Lua) to write my Neovim configuration, I can confidently say I won't be choosing anything else
@thaenalpha2 жыл бұрын
Interesting! Can it use on anywhere else?
@roteschwert2 жыл бұрын
@@thaenalpha anywhere you can run Lua
@gagagero Жыл бұрын
Isn't Fennel just Lua with s-expressions?
@TheMR-7772 жыл бұрын
Watching Lisp 100s, while eating Chips for 100Rs. (What a time to be alive!)
@hishamseddik47612 жыл бұрын
@1:49 "use the def-fun keyword - which is definitely the way you pronounce it" That killed me.
@christopheroliver1482 жыл бұрын
I heard def un, which is never the way I pronounced it. I've always said de-fun with a stress on the second syllable.
@siljrath11 ай бұрын
i came looking for your org-mode in 100 seconds. . . . youtube searches dont show it. did i imagine it already exists? org-mode in 100 seconds would be awesome. love your in 100 seconds vids. good stuff.
@sgkonfetti Жыл бұрын
Topic suggestion: Forth and Ada
@lullabyX862 жыл бұрын
Fireship managed to make a language from six decades ago look aesthetic
@yan24102 жыл бұрын
Thank's man, you finally did it
@LeFede2 жыл бұрын
loved the "Hola Mamá" string
@qEagleStrikerp2 жыл бұрын
How about a Teal (for Lua) video next? Love it and it sure deserves to get some more attention. It's similar to Typescript, in that it is a typed version of Lua that can compile to Lua. An underrated extension for an underrated language ...
@thewitheredstriker2 жыл бұрын
Interesting
@RT-.2 жыл бұрын
I don't know - the most popular and maintained typed Lua is currently Luau, and I think it will stay like that for a really long time
@9lQF2r6m2 жыл бұрын
Wow I just encountered lisp for the first time while trying to customize an emacs module that runs gnu-apl today. Cool!
@Ralph_Schumacher2 жыл бұрын
You made a good job, THANKS!
@not_herobrine37522 жыл бұрын
the joke where the last couple of gigabytes of a lisp program being used by some corporation getting wiped out not doing any damage because the deleted parts were simply right brackets is funny
@eliteh4xx0r2 жыл бұрын
That's exactly what I would name a function that returns the radius of a circle.
@laughingvampire7555 Жыл бұрын
there is a project called roswell, is a tool to set up your common lisp environment, is like rvm/rbenv/nvm/asdf/ruby-install so you can install and manage the different common lisp implementations like sbcl, clisp, clozure, and use it to have scripts in common lisp. CL code is not traditionally stored in text files, is stored in a memory image of the lisp vm, but with roswell you can make scripts stored as text files and run them in bash, with a code editor and the cl plugins you can code in text files and load the code in the lisp vm. the most usage for common lisp is as object oriented programming language, more so than functional, SBCL optimizes a lot based on the classes of CLOS common lisp object system, is how you get the most performance out of it. And the community is heavily focused on the use of CLOS
@coder.d.4682 жыл бұрын
Amazing content as always. Can you make a video about Abap(SAP) language too? I started learning it 'cause the company I'm working as intern uses it. It would be nice to hearing it from you :)
@TischBacchus0212 жыл бұрын
This would be really interesting!
@peterpan60102 жыл бұрын
Lol that’s a funny coincidence. My company requested the same and I hate it! Are you also using RAP ?
@kurtmueller20892 жыл бұрын
As someone who has used SAP a lot, such a video would be demonetized instantly for depicting crimes against humanity
@coder.d.4682 жыл бұрын
@@peterpan6010 I also hate it. I mainly use c# and Javascript languages for coding. A new language sure hits hard. I have no idea about RAP I hope they are not using it.
@HeyyDixit2 жыл бұрын
You are the best who explains in 100s, please keep making 100s explain videos
@maxkratt2 жыл бұрын
Nice! Hopefully you'll be able to get around to Haxe sometime :D
@davidbarnhouse46422 жыл бұрын
Not me searching "lisp fireship" a few days ago.
@RandomNameName7 ай бұрын
I wanted to watch a video about "how to fix a LISP" but i ended here, so 10/10, dont know how to speak correctly but now i know a little about LISP
@adityaadit2004 Жыл бұрын
Thank you AutoCAD for introducing me into this particular programming language
@The_Codemaster144k2 жыл бұрын
Thank you!! Been waiting for this for a long time
@a.j.javier81192 жыл бұрын
Thanks! One more programming language to my resume!
@illegalsmirf2 жыл бұрын
Lol!
@shegsdev2 жыл бұрын
Concise and clean
@thomas65022 жыл бұрын
In the daily grind its easy to forget that we stand on the shoulders of giants.
@0Smile02 жыл бұрын
you explained python, java, c++ in 100 seconds now THIS is going to be a real challenge
@cmoxiv Жыл бұрын
AWESOM. Waiting for your take on Prolog.
@standinonstilts2 жыл бұрын
Bro made a circumsize function and thought we wouldn't notice
@Trozdol2 жыл бұрын
A quote about Lisp that stuck with me was "Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.“ - Larry Wall
@crackwitz2 жыл бұрын
Toe nail clippings From the Gnu RMS himself
@StephenGillie2 жыл бұрын
Any love for Powershell? It's a JIT scripting language that runs on top of the .NET CLR. It uses a unique Verb-Noun naming scheme for functions, and if you make a function with an unapproved verb, it might throw a warning. Variables begin with dollar signs, like in PHP, and being a scripting language you don't need to declare them. Nor do you need to import modules, unless you're digging very deep into .NET. Speaking of which, all of .NET's libraries are available for use. And then there's the optional type system, used by prepending a variable with the [type] in brackets. As a bonus, all objects are .NET Objects, and most code also works as C# code, so if you really like your script it should be pretty easy to compile.
@raunakmitra78682 жыл бұрын
The mapchar at 2:12 has apparently inspired map() in Python🔥
@leopavlov71659 ай бұрын
This actually looks really good. I won't learn it, but still, I had a thought. If a Lisp dev sees this post, how is/was your expirience with the language?
@fe40002 жыл бұрын
I was waiting for this one. Thanks.
@NuclearFury82 жыл бұрын
>Installs SBCL >Runs clisp
@khaledsanny48172 жыл бұрын
At this point, I like the video before even watching 😂 C'est exceptionnel, vraiment une chaine de qualité... Thanks for the continuous education Fireship ✨.
@dotanuki337110 ай бұрын
no, to get started, you install scheme, and get the book "the little schemer". best programming book I've ever read
@brunocselistre2 жыл бұрын
I still have nightmares from learning lisp on my CS degree
@emik3652 жыл бұрын
Lisp - Alpha preview version, 1958 Common Lisp - Release Candidate version, 1984 Lisp - version 1.0, code-name CLOJURE, 2007-till today. Programming jobs: highest paying language - Clojure
@vindarel2 жыл бұрын
Nitpicks: "a dynamic language": true, but keep in mind that Common Lisp is compiled! *We can create standalone binaries* Moreover, the write-compile-test cycle is extremely short, because we can compile our code function by function and have compilation warnings and errors nearly instantly. We also have an interactive debugger which allows us to resume the computation from anywhere in the stack O_o "dynamic typing": true, but as always with CL it's more complicated. By default, good compilers like SBCL inform us of type mismatches. Unlike barebones Python. We can add type annotations, and we can use the new Coalton library to have Haskell-like types on top of CL O_o To get started, you can use good to very good plugins for VSCode, Atom, Sublime, Jupyter notebooks, and more! In addition of Emacs and Vim, of course. I recommend to look at the CL Cookbook. "format t …" here t means standard output. Using nil would create a string. At the end, you say to run the code with "clisp app.lsp" but we installed the SBCL implementation :) So, just use SBCL. CLISP didn't see updates in a long time, it's good only for getting started. (also, file names are .lisp today) --- Something worth mentioning IMO is that CL is still used by many companies, huge or small, for some it's their secret weapon: Quantum Computing companies, Google (for ITA Software)… see awesome-lisp-companies. And it was sent in space for the NASA in the 80s!! (Remote Agent Experiment)
@freesoftwareextremist8119 Жыл бұрын
clisp is still useful because it supports quite a variety of obscure platforms. But yeah, most people should be using SBCL.
@a.sorokin2 жыл бұрын
Please make a "Scala in 100 Seconds"
@thewitheredstriker2 жыл бұрын
YES please! Scala ftw!
@florianandre68912 жыл бұрын
I always askek myself, if CommonLisp (SBCL) and Scheme (Bigloo) can be compiled to machine code (and are since the end of the 80's), and Clojure is compiled to JVM bytecode, then why other high level dynamically typed languages (python, js, ...) are just AOT or JUT compiled ?
@Zwiebelgian2 жыл бұрын
don’t quote me on this but I think their typesystem is too weak.
@ConcerninglyWiseAlligator2 жыл бұрын
I mean, Python kinda does. At least that's what the __pycache__ folders are in a nutshell, bytecode. There's also numba, which straight up turns python into a compiled language.
@Gruak72 жыл бұрын
I think js is a scripting language by design so it can be embedded in browsers easily.
@NathanHedglin2 жыл бұрын
Python has no reason to be JIT or compiled. There is Cython if you really need it to be. JavaScript is very dynamic. All that must be done at runtime. Compiling only to change it later doesn't make sense. Compiled languages make certain guarantees like a type won't change. JavaScript JIT engines can optimize the code as it runs.
@purposepowerlove Жыл бұрын
This made me once again mourn the fact that I can't use Clojure in my day job.
@otakusong662 жыл бұрын
it worked. Thankss sooooo much.
@benyseus63252 жыл бұрын
“defun circum-size rad” 💀
@MJ-xl5jz2 жыл бұрын
Lisp can either refer to a speech defect or to an outdated programming language nobody uses anymore in the job market.
@GeinponemYT2 жыл бұрын
I can imagine being "circum-size" not being fun, or being "defun" 🤣
@StEvUgnIn2 жыл бұрын
Joma started programming with Racket which is a lisp dialect to interplay with modern operating systems.
@jeankhoury2 жыл бұрын
Why I have a homework this week about lisp and I never understood where lisp name came from... This unblocked me... now it make sense
@PWRR2 жыл бұрын
(Lost In Stupid Parenthesis (List Processing))
@datadrivendev2 жыл бұрын
I was waiting for this one
@yusufmalikul Жыл бұрын
What is missing is REPL driven development. This really boost productivity. Imagine you can edit live running program without restarting the program. I can't find the tutorial on youtube for Lisp + vscode + REPL driven development.
@bhavyakukkar8 ай бұрын
just install emacs
@yusufmalikul8 ай бұрын
@@bhavyakukkar with vscode should reduce entry barrier. No need to learn another editor.
@bhavyakukkar8 ай бұрын
@@yusufmalikul one half of learning that new editor will be learning lisp
@AvenDonn2 жыл бұрын
Makes me feel like I know nothing about functional programming when I pass a method to a LINQ Select method