13 ms·
Thoughts On Lisp And Racket (2019)
- caslon 5y ago(2019)
- codesections 5y agoThis 2019 article is a bit out of date; what it calls racket2 is now Rhombus, and (as predicted in the article) does not seem to have really taken off. See https://beautifulracket.com/appendix/thoughts-on-rhombus.html https://beautifulracket.com/appendix/thoughts-on-rhombus.htm... https://github.com/racket/rhombus-brainstorming https://github.com/racket/rhombus-brainstorming
- bhrgunatha 5y agoI have a feeling it's on hiatus due to the switch to Chez Scheme, which probably took more time and effort than anticipated. The major reason given for that was easier maintenance in the future so now that's completed, I wonder whether the effort will now will be re-directed back to Rhombus.
- Decabytes 5y agoI believe you are right. I think Matthew Flatt mentioned it in one of his more recent talks. Chez scheme didn’t become the default implementation until Racket 8.0 which released Feb 2021 so it took awhile to iron out all the bugs. They are still in the brainstorming phase and you can look at the issues in this GitHub link https://github.com/racket/rhombus-brainstorming https://github.com/racket/rhombus-brainstorming to see what is being discussed 1. https://blog.racket-lang.org/2021/02/racket-v8-0.html https://blog.racket-lang.org/2021/02/racket-v8-0.html
- Syzygies 5y agoRacket's fork of Chez Scheme now runs native on Apple M1 silicon. That's a remarkable feat; GHC Haskell for instance doesn't yet, and their blogs explain the difficulties. I keep a zoo of exotic languages, many of which must be build from source. I took a plunge buying an M1 Mac mini, imagining that emulation would hide the transition. Not so for the zoo. At least I have other machines. For actually using a language, one wants there to be a critical mass of sophisticated support. Racket has long had best-of-class documentation, but this technical feat of native M1 support is a serious feather in their cap.
- jose_zap 5y agoBoth GHC 8.10.5 and 8.10.6 run natively on M1
- samdphillips 5y agoMatthew has been working on a prototype (https://github.com/racket/rhombus-brainstorming/pull/163 https://github.com/racket/rhombus-brainstorming/pull/163) that works on the current snapshot version of Racket. It is possible to use to write some basic things and most existing Racket libraries are usable with the prototype.
- Zababa 5y agoI'm always a bit skeptic when I see relatively obscure programming languages trying to bring in new users. Are there any examples of something like this working in the last 10/20 years?
- xeeeeeeeeeeenu 5y agoPython (created in 1991), Ruby (1995). Both were relatively obscure until ~mid-2000s.
- wsc981 5y agoPerhaps Lua counts as well, v1 released in 1994.
- Zababa 5y agoAs I've said to a sibling comment, I probably wasn't clear enough. What I meant is something like a language that's not well known, that does some work to appeal to more people, and then become more used. Both Ruby and Python seem to be made to appeal to people originally.
- yissp 5y agoThis makes me wonder what did cause Python's / Ruby's rise in popularity if there weren't any huge changes to the languages themselves in that time. I guess maybe the emergence of Rails in Ruby's case? And for Python, I don't know, Django? Numpy?
- giancarlostoro 5y agoI think major libraries like Django or Rails are what push a language forward. Look at Go as a big example of this, it had a web server that was production ready built-in. People went with it and are still going with it. It's one of the things that attracts me to Racket above all other Lisp (or lisp like languages) because I can: make a server, make a gui, do front-end web styling all in Racket all out of the box. I also kind of like Clojure cause of Lein (a package manager that will install Clojure for you as long as you have the JVM setup, making your life stupidly easier). I think the stronger the standard library, the more likely your language will be adopted. If anyone out there is building a language and has strong funding, invest in database drivers and a strong web framework that compliments your language and showcases its capabilities. I would love for D's Vibe.d to be more polished, seems they got as far as they wanted to and stopped, I havent seen much new in half a decade compared to other web frameworks.
- cabalamat 5y ago> Focus more on libraries, frameworks, and applications I think this is the most important thing. Say I'm writing a web app -- I want a language that can run on both the server and browser and that has a web framework. Or say I have a database -- I want a language that can talk to it. Or say I have to interface with some data format, such as .png -- I want a language that has libraries that can read and write it.
- lycopodiopsida 5y agoIt is maybe unfair to Racket, since it seems to have a lot of batteries included: it can produce stand-alone executables out of the box, has a working cross-platform UI toolkit, a packet manager, good documentation and an IDE... All this while being, strictly speaking, an academic research language.
- rscho 5y agoAnd constantly improving despite the small size of the Racket community!
- mumblemumble 5y agoIt's maybe also speaking past what Racket really is? It's first and foremost an academic project. It's not really the job of the core team - mostly academics - to implement a all those utilitarian bits on top of the language. Their job is to work on ideas in the design of the language itself. Ideally, then, that work enables whatever wider community of non-academics it can attract to build web frameworks and database bindings and whatnot. That said, I do get the impression that Racket hasn't done anywhere near as good a job of carrying things through to that second step as comparable communities such as Haskell and Pharo have. The rumor mill would seem to suggest that the project's leadership engenders an ivory tower culture; and perhaps there's something to that? By contrast, even as someone who still hasn't finished learning Pharo and isn't really active in its community, I've still managed to have some direct (if small) interactions with Stéphane Ducasse, and that does, in some subtle way, leave me feeling more personally motivated to contribute to the project.
- teh_g 5y agoI'd be a loyal user of Racket, if it was reasonably easy to use with an IDE similar to VS Code. Emacs is too involved for a casual hobbyist like me, while Dr Racket feels a bit toyish.
- swiley 5y agoHave you tried vanilla Emacs? It doesn't require any configuration to just start using it.
- toolslive 5y agoor something preconfigured like spacemacs or prelude. I think the biggest problem of emacs is that it's an entire universe by itself: everything is there in a zillion flavours (which always ALMOST work out of the box) and I don't know which one to pick.
- swiley 5y agoI was explicitly thinking about spacemacs when I wrote that. I guess it might be attractive to a VS code user but it's a lot to manage.
- Zababa 5y agoAs a VSCode user, no spacemacs isn't really attractive. What's good about VSCode is that it works really well for all skill level and require almost no learning to start with. Spacemacs (and vanilla emacs) don't really fit that description. To be fair, most IDEs also don't fit that description.
- neonnoodle 5y agoThe only thing you have to configure is your entire brain. Seriously, for anyone under 40, pressing Ctrl-Z should undo, not hide the window. I say this as a fanatical emacs user. There is nothing straightforward about vanilla emacs for someone whose software expectations have been shaped by the conventions of the last three decades!
- Zababa 5y ago> No other language has people claiming what the Lisp people claim. Many langs claim to be influenced by Lisp, or try to do things that Lisp can do, or do things that started in Lisp (which is just about everything but OOP). But the Lisp crowd doesn’t see a need to be like other languages. It’s like fat people want to date fit people, but fit people do not want to date fat people. Considering the whole article is about how to get more users for Racket, maybe they're not doing so well in the dating pool? The author also seems to have forgotten static typing. Isn't Typed Racket precisely the Lisp crowd seeing a need to be like other languages?
- chromatin 5y agoI see you are moderately downvoted, which means I’ll be at risk too, but I also came to say it seems incredibly condescending of the author to analogize lisp/racket to “fit people” and literally every other language as “fat people”.
- Zababa 5y agoI'm probably downvoted because I was a bit snarky, in response to the author condescendence. I agree with you, when you think you're better than everyone and then wonder why no one will date you, often that's a sign that you're not as good as you think you are.
- rscho 5y agoI'd say that typed Racket is a perfect showcase of what is interesting about lisp. Miss something? Extend the language and you'll have your cake and eat it too! Typed Racket stems from a research interest and a bunch of great minds, not a need for ML and certainly not the need to be "mainstream".
- Zababa 5y ago> Typed Racket stems from a research interest and a bunch of great minds, not a need for ML and certainly not the need to be "mainstream". You could argue the same point about language "becoming more than Lisp" though, they add features because they are good features, not to be "mainstream". That doesn't change the fact that Lisp is far from a pioneer in static typing compared to other languages.
- Decabytes 5y agoRacket was the first Lisp I got. And because of that I will always be a schemer/lisp 1 person at heart. The only reason I moved away from it was because I was working in a more memory constrained environment and I needed something that was a little lighter on resources
- solmag 5y agoDoes anyone here know how to get a good dev env. setup for Racket/Scheme in Windows 10 and VSC? I've tried the Magic-Racket LSP but it doesn't work with WSL2 because of some GTK dependency.
- spdegabrielle 5y agoIDK but a good question to ask on the Racket mailing list, slack or discord. They are friendly and helpful there.
- samdphillips 5y agoYou may be able to run it with Xvfb. https://github.com/jeapostrophe/racket-langserver/issues/45 https://github.com/jeapostrophe/racket-langserver/issues/45 https://github.com/Eugleo/magic-racket/issues/29 https://github.com/Eugleo/magic-racket/issues/29
- jdmichal 5y ago> I have met a lot of people who said that they could do things with Lisp 20, 30 years ago that languages either cannot do today, or could only do recently. > It looks to me like the Lisp community knows something the rest of the world does not. They are not searching for the next hot thing. They seem to understand things on a deeper level than other communities. Perhaps “enlightenment” is not an overwrought term to use. For those that haven't read this before. For me, any article making claims like this simply brings to mind the Lisp Curse: http://web.archive.org/web/20210617140457/http://www.winestockwebdesign.com/Essays/Lisp_Curse.html http://web.archive.org/web/20210617140457/http://www.winesto... (Not currently available... Last snapshot is from June, so unsure whether this is permanent or just temporary.) Lisp is extremely flexible as a language. The core is very small, especially if you look at something like Scheme. But it lets you easily create and extend the language into what practically becomes a domain-specific language (DSL) for whatever problem you're working on. Except what this really does is push things from being technical issues to being social issues. Sure, maybe I know Lisp. But how long is it going to take me to learn what your ultra-customized, macro-laden particular flavor of Lisp? And one has to do that for every single new project requiring coordination... Lisp is not one language, but a wide variety of personal languages that happen to share a common core and syntax.
- codetrotter 5y agoFrom the page you linked: > Check out the note for the first entry: Come on, everyone! Let's beat the dead horse one more time! And indeed, it does say that at https://hn.algolia.com/?q=the+lisp+curse https://hn.algolia.com/?q=the+lisp+curse below the entry for https://news.ycombinator.com/item?id=2450973 https://news.ycombinator.com/item?id=2450973 But what's weird is it doesn't appear on the page https://news.ycombinator.com/item?id=2450973 https://news.ycombinator.com/item?id=2450973 itself nor anywhere in the page source that I can find. But going back to https://hn.algolia.com/?q=the+lisp+curse https://hn.algolia.com/?q=the+lisp+curse, and looking at the source it says that it's the story comment. So if I understand correctly, even though when you submit a story with a link it does not include the text if you write one, it seems that it's still stored on the HN server and returned from the HN API that Algolia gets its data from. Just found this interesting. And I wonder how many other stories have a "hidden text" like this. If the Google BigQuery or what it's called dataset includes this same data it should be a simple thing to find all such stories.
- mark_l_watson 5y agoA nice write up (written two years ago). I don’t think that the DrRacket UI deserves the criticism in this article. I usually use Emacs for lisp languages (Common Lisp, various Schemes, and Haskell) but DrRacket is good enough. The beautiful thing is that we all get to decide what programming languages we want to use. It is true that sometimes our jobs force a language on us, but we have freedom to peruse jobs using tools that we prefer. For a personal project, I recently used Swift and SwiftUI. Swift is a great modern language as is Rust. Racket is amazing, great community around it. I started writing a Racket AI book a year ago, but shelved the project because of other commitments. I hope to get back to that someday. Anyway, try to use the language(s) you prefer.
- sirmike_ 5y ago"but nobody ever said that JavaScript made them smarter, or that they learned a lot using anything by Microsoft." Simply not true. Scores and scores of IT people came up on Microsoft. For many it was the door to a technology career. As one's career evolves it becomes easier to pick what you want to work on.
- deleted 5y ago[deleted]
- onethirtyseven 5y agoIt’s like fat people want to date fit people, but fit people do not want to date fat people. -- some asshole
- deleted 5y ago[deleted]