Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I like Racket because of these things

1. Package manager

2. Cross platform Gui

3. Easy to install on all platforms

4. Gradually typed language Typed-Racket that checks types at compile time

5.fast (has moved from middle of the pack to top 3 fastest Schemes)

6. Evolution under the hood as opposed to just syntax and features (chez scheme over C)

7. Simple IDE with Emacs built in which makes getting started if you are afraid of Emacs easier.

8. Documentation languages like Pollen and Scribble make writing documentation better than any other language I have used

9. Zuo, a Make replacement which works like a mini Racket

10. Large active community

11. Modern communication channels (Discord, Discourse Forum, subreddit)

12. Documentation geared towards beginners or experienced programmers (Racket Guide vs Racket Reference)

13. You can turn a Racket program into an executable (it’s far but better than Python’s options that’s for sure)

There are Schemes that I like better for specific things (Gambit-C for C integration, Gerbil as a Racket Successor, Chez as the Fastest Scheme, Guile for its large GNU ecosystem)

But no Scheme has come close to offering even half of what you get with Racket out of the box



I also like Racket for a good few of these reasons, but the tooling has a lot of sharp edges and limitations in practice. It would be unfair to expect a full JetBrains/Microsoft IDE experience but it surprised me that a Lisp descendant would come with such an underpowered default REPL. I also find, whatever the technical merits of Scribble compared to docstrings and Markdown, that the documentation for most Racket packages is poorly written compared to that for even minor packages in common languages.


What do you think it is missing for Racket to be more widespread in the industry? Do you think being a lisp is the biggest factor or something else?


In professional settings the right people are usually the hardest to come by, and the most expensive part of the business. Recruiting is very resource intensive, some of your most expensive employees spend a lot of time figuring out ways to lure candidates in, discarding applications, running interviews and so on.

In software development it can take up to a year until someone has turned out to not be a good fit, because the systems are quite large and the first few months will in most cases be spent introducing the basics of them. That's a rather hefty investment for most companies, except the very large ones.

So as a manager, why would you bet on Racket? Unless you understand the peculiarities and power in macros (and eager to teach it over and over again) you won't, because the board will roast you over bringing in the risk that you can't find replacements when core developers inevitably move on.

If there was something unique you could only use if you had Racket developers it would pull in broader industry usage, but as far as I know no such thing exists.

As a single or few developer consulting business/dev boutique things change, you'd only have to convince customers and they like shiny things that solve their problems or make money, and if you and your comrades know Racket well you could very well create such shiny problem-solvers relatively fast. Then you'd only have to resist the attraction of better pay and someone else closing the sales once the business is up and running.


As someone who tried it on a couple of things, no one I know has heard of it. So I suspect it’s marketing and hype that is missing.


In my opinion, the reason it and other languages aren't more popular is that they don't have a "halo" product that forces you to use it.

For example look at Elisp. It might be the most successful lisp in the modern Era because of Emacs. Emacs alone is like over a million lines of Elisp, and the ecosystem of packages is gigantic. A lot of people do not like Elisp, and there have been many attempts to create Emacs + a better language (Guilemacs, First/Second Climacs). But it has all failed because Emacs proper has a lot of momentum, and you can't build Emacs + a better language. You need Emacs + a better language + a better/bigger ecosystem... Because while lots of people use ELisp in Emacs, more people are just calling use-package on what ever package someone else created.

Take another example, JavaScript. You want to write a dynamic web application, you use JavaScript. There is no shortage of tweets of JavaScript trivia where the person shows JavaScript adding two non nonsensical objects together and getting an even more nonsensical answer. If you don't program in JavaScript (or even if you do) you look on in horror and go "Why would anyone use this awful language!". Then you go use your electron based desktop apps, and run millions of lines of JavaScript in the browser. Are there better languages for the web than JavaScript? Sure lots of languages clear that low bar. But is there any language with a comparable ecosystem that also works as seamlessly in the domains that JavaScript works in? I'd argue no. JavaScript has so much momentum that it even spills over into areas where it shouldn't be used (I.E the desktop and the backend) but it can go anywhere at this point (including custom ARM CPU instructions https://developer.arm.com/documentation/dui0801/h/A64-Floati...)

I'd say the same thing about Python as I did about JavaScript (I am a Python dev). If the official OpenAI Api had been written in Racket there would be millions of Racket users right now and a bunch of new and awesome package, but it's written in Python.

Another example is Zig. I actually think that Zig has a chance to compete in the programming language. I started using Zig not because of any particular feature of the syntax, or the libraries it had, but simply because trying to compile cross platform C/C++ applications using a combination of GCC, LLVM, MSVC, and building for Arm, X86_64, etc is so awful, that using Zig instead is a better solution. This will be the gateway for most people to Zig IMO, and then from there the ecosystem will follow.

There is one edge case and that is Swift. I actually think Swift is a good language, and has a lot going for it. It definitely has the chops to be a good low level compiled language with good C/C++ integration. But a lot of its popularity is due to Apple having the power to make it the de facto language on iOS, just like Google can with Kotlin. But that will only help on the platforms they own (which are admittedly a lot more than most languages), but to gain the viral cross platform adoption, it will require an actual effort on Apple's part to make that happen, along with some dedicated fans of the language. Right now, using Swift without Xcode is hard, even with the VsCode plugin. I know Miguel de Icaza is at least one of those hardcore Swift fans, and is trying to get the Swift Godot project up. That could be the gateway to Swift for people outside of the Apple ecosystem but we will see.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: