Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore

  Рет қаралды 14,888

Leandro Facchinetti

Leandro Facchinetti

Күн бұрын

Пікірлер: 82
@GeoffreyKnauth
@GeoffreyKnauth 3 жыл бұрын
Regarding people who are opinionated... I am now 60, I have seen some really opinionated people in the world. I have managed to work with most of them. Some people I've known for 40 years give me headaches and heartburn, but I still love them for other reasons. I can think of a few people in the world who have done great things who have *not* said something I thought was "off," and the number is small, but the people in the Racket community are way down on the scale of obnoxiousness or toxicity compared with other things I've seen or heard in my life. I think my gold standard for nice person in computer science who is also brilliant and who has changed the world might be Donald Knuth. Every interaction I've had with him has been nothing less than charming and illuminating. But even there, I learned that he doesn't really like Dostoyevsky that much (I love Dostoyevsky), and he prefers Tolstoy (I never dove into Tolstoy). So even with an ideal hero, there is imperfection in the interface. But who am I? Maybe Knuth is right about Tolstoy. I know I always have a lot to learn. John McCarthy was a real gem, I thought he was great, but I had fewer interactions with him. I know some other well-known people, people who are revered for their pioneering work and wisdom, who nonetheless have said things I thought were stupid, but again, who am I, do I never say stupid things? (No, I've said lots of stupid things.) The point is, I don't expect perfection, I look for the good, I try not to focus too much on the bad, unless it really is, in fact, something very bad. And even then, on the rare occasion when I do find someone monstrous, I think back to the point of Christianity, the acknowledgment of our own imperfections and the quest for redemption, and I ask myself if redemption is possible in others, in myself.
@SKCodesForFun
@SKCodesForFun Жыл бұрын
I took your OOSE and Programming Languages classes at Hopkins, they were some of my fav classes ever! I especially loved your seminar on Racket. I feel the PL classes in particular helped me become a better programer. Thanks!!
@leafac
@leafac Жыл бұрын
Thanks for reaching out. That’s great to hear. How do you use the things you learned back then?
@SouravDatta
@SouravDatta 3 жыл бұрын
I agree with your point on language oriented programming and Racket's obsessive emphasis for it. Building a new language for a new domain seems much more difficult to communicate than building an api in an existing language - it adds a whole new level of hidden complexity that comes with the abstraction.
@trejkaz
@trejkaz Жыл бұрын
That's what's good about Racket, it makes it much easier to make those abstractions.
@aoeu256
@aoeu256 6 ай бұрын
You could have the IDE (Emacs?) expand the macros of the language allowing you to see what the API looks like without the "magic" of the macros.
@kevinszabo7035
@kevinszabo7035 3 жыл бұрын
I really enjoyed your talk Leandro, thank you for recording it. I found the clarity of your arguments quite persuasive. I have written a number of DSLs for various technologies. Some for micro circuit design, some for device driver generation, others for testing. My view has been that people are not interested in the language I have created, they are just interested in what it can do for them. They want to spend the least amount of time learning this language (and ecosystem). So I design the language to speak in their terms and generate copious self-explanatory error messages. DSLs are used intermittently, so there is rarely an expert user base. With respect to abrasive personalities in the coding culture, that in my mind is a lack of maturity of the abrasive person. If they were ever to grow up they would find that their expertise does not excuse poor behaviour. I don't believe bad behaviour is prerequisite to academia. The professors I interacted with (University of Waterloo) were generally encouraging and pleasant.
@leafac
@leafac 3 жыл бұрын
Thanks for the kind words. > I don't believe bad behaviour is prerequisite to academia. Absolutely! The example of academia that was closest to me (my former advisor) was nothing short of awesome: Great researcher; great person.
@MarieAmeliaFreyaAster
@MarieAmeliaFreyaAster 3 жыл бұрын
That was one of the most unique videos I've ever seen on programming
@GeoffreyKnauth
@GeoffreyKnauth 3 жыл бұрын
I hope you will resume your Ph.D. studies at some point. Maybe somewhere else, maybe with someone else. But I don't think all of academia is as you describe. And if you get your Ph.D., it doesn't mean you have to become a academic of the type you don't want to be. You can be an academic that you wish others would emulate. Or you can teach in a variety of situations, some of which might want a person to have a Ph.D. Anyway, don't give up on a Ph.D., I think you have a lot of talent. I have known other people who had troubles with their Ph.D., they made it eventually, and I hope you will too. Mostly because I want to see you properly recognized for your talent.
@VivekHaldar
@VivekHaldar 3 жыл бұрын
Thanks for posting this. Agree that a new language often serves the author's need for elegance rather than utility for a wider audience. I feel like designing a clean library API for a domain is tantamount to the same thing, and has wider utility, and can even transcend a particular language ecosystem (what you refer to as an embedded DSL in your video). E.g. OpenGL is used everywhere and in multiple languages. Sorry about your negative experiences with the community. Senior folks particularly have a responsibility to communicate with care.
@leafac
@leafac 3 жыл бұрын
Thanks for watching my video. I really like what you’re doing over at your channel 👍
@MorganEarlJones
@MorganEarlJones 2 жыл бұрын
I used to do hobby programming in Haskell and Elm, and it sounds like, by your estimation anyways, that Racket has the hiring problem that people falsely assume Haskell/Elm/PureScript/Clojure have. Having even a small pool of enthusiastic(cultist) programmers who want to use **insert cool esoteric PL here** at work over **insert boring industry standard PL** seems to keep things afloat so long as the PL can keep up enough hype. It's kinda surprising to me that Racket doesn't have that going for it
@johngibson4874
@johngibson4874 3 жыл бұрын
I think your point about the importance of communication through code is spot on. If you are creating niche languages it is harder to communicate with other collaborators. It almost feels like in creating a DSL so that you can express your solution in a language suitable for domain experts you paradoxically make it harder for other programmers to work with you. Do you think documenting your mini language thoroughly would help? What do you think would have to change to make using Racket viable for you again?
@leafac
@leafac 3 жыл бұрын
> Do you think documenting your mini language thoroughly would help? Not really, because you’re still asking your users to work through that documentation. It’s extra work for you and for them. Most languages in the Racket ecosystem are thoroughly documented, and I think my arguments against them still stand. > What do you think would have to change to make using Racket viable for you again? From a technical perspective I don’t know how to answer your question, because I no longer buy into the core idea of the language (Language-Oriented Programming). Any change I could propose would turn the language into something else entirely; something it isn’t supposed to be and doesn’t want to be. It’s not the language that should change; it was me who changed. Racket still is the perfect language for many people, and I say more power to them. From a community perspective I have something I wish would change: I think people have to not only encourage the good behavior, but also act to correct bad behavior. I think this is something that is happening in other communities in software, so it’s possible, but I think it’s much more difficult than technical changes.
@kazkylheku1221
@kazkylheku1221 3 жыл бұрын
This is complete nonsense. Any project in software has a ton of its own identifiers such as classes, methods, functions, (database schemas, UI widgets, web templates, ...). If you don't know what a function or method does, and it's badly named and undocumented, you will struggle. Macros are no different. This video author just had some sort of nervious breakdown and is projecting it onto this or that. He didn't just quit Racket; he dropped out of a Ph. D. program at the same time, and just wants to dissociate from everything in that episode in his life or something. (Maybe there is a woman at the center of all this?)
@0netom
@0netom 3 жыл бұрын
@@kazkylheku1221 a woman, or man ;) kzbin.info/www/bejne/epjTaoCGgap0p6M
@vitalyl1327
@vitalyl1327 Жыл бұрын
The properly designed DSLs do not make it harder to communicate, as they're self-documenting and obvious. Racket community, sadly, lacks this skill.
@aoeu256
@aoeu256 6 ай бұрын
Maybe when doing DSLs maybe instead of showing the source code or other reference document, you need to show video(s) of you deriving your DSL in the parent language. The video should be easily indexible. Another idea is to expand your macros, and/or use a transpiler system to show you how code in your DSL looks like compared to code in Haskell or another reference language to compare/contrast. The ide (i.e: EMACS) could also use small ruby-letters on top of the source code now that we have 4k monitors to show what a function or macro expands to, or maybe arrows and a box to an empty part of your screen showing the expanded code compared to the new code that expands as you hover it.
@pricesmith3417
@pricesmith3417 Жыл бұрын
Would love for you to go into what was almost your dissertation in programming language theory. I find I'm getting more and more interested in the intersection of all the interesting stuff you can find out there.
@JacobMoen
@JacobMoen 2 жыл бұрын
Domain Specific Language creation is bread and butter of Lisp programming. You tailor the language to the task, not the other way around. And it's quite powerful. So I really don't expect the Racket community/leadership to be any different. It's okay to not like it, but it's not a fault of Racket. It's a "fault" with Lisp. When I learned (or tried to learn) Common Lisp, I was disappointed to learn that there's not really an eco-system of well maintained libraries or a community around projects. Simply because of the way that most Lispers use the language. I guess you can say that Lisp is too powerful for it's own good. If by "good" you mean community. Personally, I really don't care that "other programmers" have a harder time reading my code. I am not writing code to be popular, or be part of a community. But I don't look down on people who want that. Trying to make Racket something else than what it is - a Lisp - would be dishonest, in my opinion. It is, at it's core, a Lisp that people use to create DSLs tailored to specific projects. That's quite powerful. If you don't want that, then there's Python, Javascript, C++, Java, ... What you are doing is saying that a cat is a lousy dog. But if it's a dog you want, I understand why you are not using a cat anymore :)
@Lantertronics
@Lantertronics 3 жыл бұрын
Ah, I see you've met Matthias Felleisen.
@leafac
@leafac 3 жыл бұрын
I believe that the issues go deeper than any one person. It’s also a problem of others who are in positions of power and don’t act to stop bad behavior.
@GeoffreyKnauth
@GeoffreyKnauth 3 жыл бұрын
By the way, I think it is quite normal and good for people to do a lot of significant work in Racket, as you have done, and then move on to make contributions in other areas. That may be the pattern I have seen the most. In a way, Racket become the parent the young person eventually tries to get away from, then later in life the older person realizes that Racket was part of a good upbringing.
@leafac
@leafac 3 жыл бұрын
Thanks for listening to what I had to say in the video and for the comments. I always value your observations.
@GeoffreyKnauth
@GeoffreyKnauth 3 жыл бұрын
@@leafac Of course. I wouldn't have commented if I didn't think there was a lot of value in what you had to say. Your contributions to the community have been great!
@zwanzikahatzel9296
@zwanzikahatzel9296 11 ай бұрын
Next vid idea for you: show us how to embed DSLs into Lua/JS/Ruby, that would be very interesting. If not, are there any sources you can recommend?
@mrdkyzmrdany8742
@mrdkyzmrdany8742 3 жыл бұрын
If you believe in making the language "as general/specific" (low/high level) as appropriate (if you believe in DSLs), you validate the Racket (Lisp, lol) approach. Learning new syntax form is about as difficult as learning new function. - solutions in languages that can't introduce new syntax abuse functions, data structures or external config files to give you a clunky, runtime-error-prone bastardization of it. It ain't fault of Racket (Lisp) that general public is too dumb to use it as a vehicle for communicating ideas. Same applies to math (& it's notation; or Haskell, Prolog etc.). Quality is way more than quantity - especially when it comes to team-members - one able person will be done before 100 imbeciles agree on what it is they are trying to do. PS: Racket is not the only Lisp -- Common Lisp may have quirks, but I still don't see Racket on Android, having "true threads / shared mutable memory", being able to reload arbitrary code while running or in debugger, allowing controlling stack allocation, having an OS written in it, ..., and CLOS (with Closer-MOP et. al.) BTFOs Racket OO options fiercely. Racket is great, as is Common Lisp.
@leafac
@leafac 3 жыл бұрын
Hi Mrdky Zmrdany, Thanks for reaching out and for sharing your thoughts, but moving forward please don’t use language such as “general public is too dumb,” and “100 imbeciles” when commenting in my channel.
@l2ubio
@l2ubio 3 жыл бұрын
6:55 ????? There is an argument that could be made about how small communities experience can feel more extreme since there are so few people on them. And how bigger communities you can pick and choose the people you want around.
@jamesann8070
@jamesann8070 3 жыл бұрын
I was starting racket to learn fp. Is there any other language you recommend?
@leafac
@leafac 3 жыл бұрын
Despite the issues I mentioned in the video, I still think that Racket may be a great learning experience, so if you’re already getting into it and you’re liking what you’re seeing, then go ahead and have fun 😀 That said, I recommend that your prioritize learning the functional aspects of mainstream programming languages: Higher-order functions, immutability, thinking about data structures and functions that act upon then as opposed to objects that couple data and behavior, and so forth. You can learn about these things in TypeScript/JavaScript, Java, Ruby, Python, and so forth. I prefer this route because your knowledge will be more readily useful, because the projects you may end up creating will gather more interest, and because you won’t constrain yourself with more obscure aspects of some functional programming languages that often get in the way. This last point isn’t much of an issue in Racket, which is pretty flexible, but would be an issue in languages like Haskell & OCaml, which feature a more rigid type system, or force you into things like lazy evaluation & monads (Haskell).
@jamesann8070
@jamesann8070 3 жыл бұрын
@@leafac Thank you very much. I really love your channel. Please upload some more videos about programming.
@encapsulatio
@encapsulatio 2 жыл бұрын
@@leafac So what language are you mainly using these days?
@leafac
@leafac 2 жыл бұрын
​ @se se TypeScript & JavaScript (+ HTML & CSS, naturally) for my day job and some side projects related to web development and cross-platform desktop applications (via Electron). JSFX for real-time audio processing in REAPER. Lua for writing REAPER scripts, configuring Hammerspoon to do some time-saving tasks, and so forth. Python for a course on digital signal processing that I’m taking. Go in a side-project called caxa where I need a native binary that’s slim and easy to build. And I’m starting a C++ study group focused on digital signal processing. It launches in February and if you’re interested in participating you may go to discord.gg/6eJ7VHdR (#leandro-facchinetti channel).
@jacekjacenty
@jacekjacenty 2 жыл бұрын
You are absolutely right that there are programmers of different abilities. And what is a disadvantage to some, may be an advantage to others. Racket is not an average language for an average programmer. Why you should use a van if a wheelbarrow is good enough? An average programmer will only need a wheelbarrow language.
@mariobroselli3642
@mariobroselli3642 7 ай бұрын
Why not go for Scala if it is an hiring Problem, i see lot of jobs in Scala Racket and scheme do not have good Advertisement. I guess there are more common lisp people. Would you make a video on comparison between OCaml and Racket?
@xybersurfer
@xybersurfer 2 жыл бұрын
how productive a language is and whether it looks like others seem mostly like separate goals to me. it's sad that you had such a bad experience with people, but i wouldn't give up (i know it's easy for me to say)
@GeoffreyKnauth
@GeoffreyKnauth 3 жыл бұрын
I take the long view on Language-oriented Programming. I think LOP is just the latest attempt to capture and communicate the incredible flexibility you get with a system and language like Racket. I have not seen that much flexibility--along with discipline--to the same extent elsewhere. Wait 5-10 years and I don't think LOP will be what you hear most about Racket, it may be something else. Personally, I'm Ok with LOP, but it isn't the sum total of Racket for me, it's just a part of it.
@batlin
@batlin 3 жыл бұрын
The other parts of it are also what interested me, rather than LOP. Back in Christmas 2020, I did the Advent of Code programming puzzles in Haskell and had a great time. After finishing each puzzle, I'd take a look at how other people solved in other programming languages. One of them was Racket, and the solutions were so easy to read (without knowing Racket, although I'd learn some Scheme from SICP years ago), yet extremely concise -- often much shorter and more readable than what I'd written in Haskell, or almost anyone else's solutions in any other language. So I figured that 1) that programmer was _really_ good, striking an excellent balance between readability, simplicity and brevity, and 2) Racket is probably pretty good too.
@LiweiChou
@LiweiChou 3 жыл бұрын
Maybe you should try REBOL, Red or FORTH, I find that they are extremely emphasizing on embedded DSL.
@batlin
@batlin 3 жыл бұрын
Red and Rebol are very interesting but the ecosystem seems extremely immature and stale, although I do see activity on the Red Github repo. Red also seems to be 32-bit only, so installing it on Linux involves adding lots of i386 dependencies. Some cool concepts though. The syntax reminds me a little of TCL, but it's more like a Lisp, and quite compact and readable.
@pdgonzalez872
@pdgonzalez872 Жыл бұрын
Thanks for the video! Are you familiar with Elixir? If not, you should definitely check it out! Awesome language and community!
@theunbearables
@theunbearables 3 жыл бұрын
I agree with a good amount of your points but here are some I don't agree with: As to why not the other embedded languages you listed: - Lua has a much smaller standard library, more complicated syntax rules, I hate tables. NOTE: I have only used this language for like 4 hours so maybe I'll change my opinion on it later. I also hate the documentation on Lua - Javascript the creator of javascript himself said that lisps/schemes are the good parts of javascript. I really do hate the web, I would much rather html, css, and javascript would be unified into 1 language, rather than the situation we have now where javascript has to manipulate html & css creating a bunch of crappy bloated DSLs and templating engines kzbin.info/www/bejne/ZpPUgYx_qqupptE - Ruby(I never used ruby so I don't know) I think racket/lisps hit a very nice spot for embedded languages because and forcing users to buy into it will be better in the long run because: - it's a language who's syntax you can describe in less than a page - it's a language that encourages to do things without mutation, which often leads to less buggy code because "Most bugs are a result of the execution state not being exactly what you think it is" - Nearly every config/markup/etc language that just wants to encode data, e.g html, css, json,yaml, eventually has a point where I find myself wanting a concept of a variable or loop, so why not use s-expressions from the get go so I can more easily expand into a small well defined language Yes, Racket being a small community having lack of libraries and good IDE experience is probably my hugest complaints and the one you're spot on about. Another I agree with is that I probably wouldn't want to think in someones poorly designed DSL because chances are, they might not have covered my use case
@leafac
@leafac 3 жыл бұрын
Thanks for watching my video. To each their own 😃
@kazkylheku1221
@kazkylheku1221 3 жыл бұрын
Embedding Lua in a C or C++ program is not not the same as having a DSL. This doesn't even begin to make sense.
@theunbearables
@theunbearables 3 жыл бұрын
@@kazkylheku1221 Perhaps you misread? If you could point out the part where you think I said that, I'd be more willing to elaborate but I'm fairly certain my point was not "Embedding Lua into C is the same as having DSL". Looking back I agree with Leandro on leveraging and integrating with already embedded langs like Lua, it's a very rational decision. It's just my personal preference/projects and experience that I think racket/lisps are just "better" for scripting because its just simpler and more intuitive but that's just my opinion.
@lakshyarajsinghrathore1902
@lakshyarajsinghrathore1902 3 жыл бұрын
if i want to learn lisp should i learn racket or should i learn common lisp. I was thinking to go with racket will i miss something of lisp if i do so.
@leafac
@leafac 3 жыл бұрын
I’m afraid I don’t have much experience with Common Lisp, so I can’t really speak to that.
@MarkUnderwood-knowlengr
@MarkUnderwood-knowlengr 2 жыл бұрын
For historical reasons in AI at the least, some knowledge of Lisp is very useful. You are likely to learn something from the experience.
@trejkaz
@trejkaz Жыл бұрын
I personally prefer to use internal DSLs because they're easier to make, but I do agree with the philosophy of Racket that external DSLs are better because they will be more familiar to the end user. "Who are you communicating with?" The end user. The philosophy is that as well as handing the user an application with some knobs and dials, you are handing them a toolkit for automation.
@leafac
@leafac Жыл бұрын
Yeah, that’s perhaps the most compelling argument in favor of domain-specific languages. In my experience it doesn’t work all that well unless end users are programmer types, and then it becomes a moot point. Perhaps in the future I’ll work in a project in which this makes more sense…
@trejkaz
@trejkaz Жыл бұрын
@@leafac Well, I dunno. I think if my goal were say, editing a video, I'd prefer a simplified DSL (say, the ffmpeg command-line) to having to code it. But the argument Racket types put forth is that any user can be a developer type if you give them the power in a form they can understand. Which I think is sort of true - look at how many people can do functional programming, as long as it looks like Excel.
@BryanChance
@BryanChance 3 жыл бұрын
I couldn't agree with you more. As a casual user and hobbyist, I looked at Racket and other functional languages. The syntax is insane. LOL
@oventree
@oventree Жыл бұрын
insane? how exactly? i've been relearning hobbyist programming with racket after not writing much code for years and it's the most consistent programming experience i've ever had. it makes things fun again because i don't feel like i'm fighting the language when i'm trying to learn how to do something
@muesique
@muesique 2 жыл бұрын
It's the same in all science communities - when you realize, it's all about the money and fame and you should invest a crucial part of your life, then you start wondering is it all worthwhile? Especially when people above you in the hierarchy to reap the laurals! In your case it's even worse! The smart developer of this language turn out to be ass holes... Well done!
@antoniomartinez1799
@antoniomartinez1799 4 ай бұрын
Thanks then I'm going for common lisp
@juanfelipelelionleon1668
@juanfelipelelionleon1668 2 жыл бұрын
I need to make a radio box code in racket, I already made the radio box code but I need a window with a different response to appear for each option on the list, to identify which option was chosen
@leafac
@leafac 2 жыл бұрын
Hi @​Juan Felipe Lelion leon, I’m sorry but I’m afraid I can’t help you. Not only do I no longer work with Racket, as I mentioned in the video, but even back when I was using it, I never worked with graphical user interfaces. Good luck in your project.
@juanfelipelelionleon1668
@juanfelipelelionleon1668 2 жыл бұрын
hi, i need your help pls
@lojicdotcom
@lojicdotcom 3 жыл бұрын
I chose Racket as my primary programming language after about a decade of researching and experimenting with various programming languages. One of the main factors in my decision was the Racket community which has been excellent. I'm sorry you had a bad experience, but I haven't seen any of what you've described over the last few years. I also hope you are not the person who keeps creating new hacker news accounts and pointing to this video over and over again.
@leafac
@leafac 3 жыл бұрын
I’m glad your experience has been better than mine. I interpret the tone of your comment as trying to invalidate my experience, and is exactly the kind of microagression that I think the community could do without. My only Hacker News handle is leafac. I posted about this video once, here: news.ycombinator.com/item?id=25620711 Please let me know how I can help fight spam.
@lojicdotcom
@lojicdotcom 3 жыл бұрын
@@leafac I felt it was important to provide my perspective since you and I have had dramatically different experiences with the Racket community. I find it ironic that you interpret the communication of my experience as a "microaggression", but I do feel you've helped me gain some insight into the issue.
@joevijay
@joevijay 3 жыл бұрын
I have played with Racket long time back due to curiosity. However I was not aware. the community itself is toxic enough to deter someone like you.
@JanusTroelsen
@JanusTroelsen 3 жыл бұрын
Is it really the whole community? The video contains a single anecdote. You'd be able to find stories like this for any sizable community. Yes, some have more toxicity, but I don't think you can tell from a single anecdote.
@turbostar101
@turbostar101 2 жыл бұрын
Complete your PhD. You know better than to let toxic people stand in your way. Communicate your ideas in the way you most feel comfortable. Make a positive contribution. Finish what you start.
@leafac
@leafac 2 жыл бұрын
Thanks for the encouragement. I’m happy in my new projects and don’t consider returning to the PhD in the near future.
@mxjxn-art
@mxjxn-art 2 жыл бұрын
I have the same reasons to dislike Urbit, which is a decentralized computing system and internet from scratch. Its way too cryptic, and the original creator has some disturbing inhumane beliefs about race. It seems like gatekept internet with artificial scarcity through nfts. Neat example of cool code and a fun project, but in essence a bad idea.
@leafac
@leafac Жыл бұрын
Oooof, I’m sorry to hear that 🫤
@vitalyl1327
@vitalyl1327 Жыл бұрын
DSLs are the best way to communicate ideas. Only the poorly designed DSLs fail to communicate better than "cannot-see-forest-behind-trees" low-level code.
Why LISP Is The Language of Legends
9:05
Sammy Engineering
Рет қаралды 35 М.
Lets LISP like it's 1959
48:01
linux.conf.au
Рет қаралды 81 М.
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 125 МЛН
哈哈大家为了进去也是想尽办法!#火影忍者 #佐助 #家庭
00:33
火影忍者一家
Рет қаралды 130 МЛН
Когда отец одевает ребёнка @JaySharon
00:16
История одного вокалиста
Рет қаралды 15 МЛН
黑的奸计得逞 #古风
00:24
Black and white double fury
Рет қаралды 26 МЛН
Scheme, Guile, and Racket: an Introduction by Craig Maloney
40:10
Michigan!/Usr/Group
Рет қаралды 19 М.
Lisp, The Quantum Programmer's Choice - Computerphile
6:36
Computerphile
Рет қаралды 208 М.
Why Lisp Is One Of The Most Productive Programming Languages
12:14
Gavin Freeborn
Рет қаралды 43 М.
Functional vs Array Programming
30:40
code_report
Рет қаралды 132 М.
A Guiler's Year of Racket
26:56
FOSDEM
Рет қаралды 12 М.
Clojure in a nutshell by James Trunk
32:44
Func Prog Sweden
Рет қаралды 93 М.
Why Are Lisp Macros So Great!?
16:28
Gavin Freeborn
Рет қаралды 16 М.
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 125 МЛН