5 ms·
Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?
by kumarvvr 8y ago
Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?
- jboynyc 8y agoHere's a little write-up from somebody who uses Racket in production in a commercial web product: https://www.greghendershott.com/2018/05/extramaze-llc-using-racket-postgresql-aws-but-no-ads-or-js.html https://www.greghendershott.com/2018/05/extramaze-llc-using-...
- mac01021 8y agoMaybe it's been up here before, but I feel that article is worth thread of it's own.
- mac_was 8y agoI do not think so as this has bern mainly created for teaching but recently I had the same question
- Gene_Parmesan 8y agoWell don't let Hacker News overhear you. The specialized lang they used to make and run the site, Arc, is written in Racket. Moreso than being mainly created for teaching, Racket was created mainly as an environment for creating languages. Its forte is language development and implementation. This is useful in education, because it allowed them to easily create a number of 'teaching languages,' which are all essentially Racket with training wheels. But that doesn't mean the base language + environment is only useful in education. I might even call it the most usable and productive LISP currently in wide use. (I greatly prefer it over Clojure, for instance.)
- magpi3 8y agoDoesn't HN use Racket? Edit: according to wikipedia Arc, which HN is written in, is developed in Racket
- darkpuma 8y agoIs it in fact implemented in Racket? It used to be limited to PLT Scheme, which is the old name for Racket. But one of the changes that lead to the name change was making cons cells immutable. Arc was, at least at the time, mutating cons cells so Arc continued to use old versions of PLT Scheme instead of newer Racket. I don't know if that situation with Arc has since changed though.
- _emacsomancer_ 8y agoThe community version of Arc does at any rate: https://github.com/arclanguage/anarki https://github.com/arclanguage/anarki
- li4ick 8y agoNaughty Dog uses it: slides: https://con.racket-lang.org/2013/danl-slides.pdf https://con.racket-lang.org/2013/danl-slides.pdf video: https://www.youtube.com/watch?v=oSmqbnhHp1c https://www.youtube.com/watch?v=oSmqbnhHp1c
- justbaker 8y agoI wonder how much they reused GOAL or this Racket impl. on the Crash Trilogy remake. It has always been my favorite "Lisp" game..
- ethelward 8y agoI am not sure one would count it as “production”. But I am pretty fond of Racket whenever I want to develop a quick-and-dirty tool for one of the persons in my lab. The performances are meh (correct for a script language, but not much), the standard library is very large, it is portable, the integrated GUI and plotting facilities are absolutely priceless, and the ability to generate a fat ELF/.exe/.app for all of the three platforms is priceless. Sure, distributing a 100MB executable is not something I would envision for a largely distributed software, but when hacking up (on Linux) a quick GUI tool for my lab colleague (on Windows), the advantages more than compensate for the drawbacks. And I like LISP/Scheme languages, but that's subjective.
- klibertp 8y ago> the standard library is very large Yes, but the APIs design is very far from what you'd expect from a typical dynamic language. When you tell a typical Python/Ruby/Perl/PHP/Lua programmer that you can't just call `length` on anything collection-like, but need instead to call `string-length`, `vector-length`, `hash-size`, etc. - they remain unconconvinced, to say the least. The higher-order abstractions, like collections, sequences, streams are there, but rarely used (if at all) in the stdlib itself and you won't encounter them in tutorials. Then, some APIs are incomplete, like the date and time support, even with relevant SRFI. The language is expressive enough, fortunately, for people to build their own stdlib replacements, like Alexis King's collections-lib (and related), gregor library for dates, or rackjure lib for thread-first/-last macros. But you need to know about them, otherwise you're going to invent lots and lots (because it's so easy) of your own conveniences and will do it poorly for the most part, while also losing time. Well, it's still orders of magnitude better situation than with Pharo, which was also released in 7.0 version recently. In Racket, all of the stdlib is covered with extensive documentation comparable (sometimes favorably) with Python docs. Most additional packages are also documented the same way, it's great. As long as you can get past the base distribution lack of conveniences (or sometimes features), though, Racket is one of the most beautiful languages and language ecosystems I've encountered. I did two little projects in Racket, recently: one was using Slideshow for making slides for a presentation, the other was using plot for making some graphs. In Slideshow, I ended up writing some 200 loc for it to display syntax-highlighted, colored code of non-Racket languages, which would be free in any JS-based presentation framework. After that it was a relatively smooth sailing, although the outline-generating API is definitely overcomplicated. In the other case, I had to parse a bit of text and then do a lot of computation on dates and times. Very frustrating experience initially, until I found gregor lib and megaparsack. The 5+ other solutions (for parsing) were too heavy-weight and inconvenient to use and I was just going to fall back on regexes (which are also not very convenient to use), but fortunately I found Alexi's megaparsack lib, which is almost as good as PyParsing. Anyway - lots of rough edges in the stdlib, a lot of cruft - but at least well-documented - and some interesting libs you can use to bring it up to modern standards. And the module system makes using these packages painless - even if they rewire lots of stdlib - which is something Smalltalk/Pharo guys are yet to achieve.
- pmatos 8y agoWe (https://linki.tools https://linki.tools) use it for our main development tools product - 100% Racket in production. Check S10 (https://linki.tools/s10 https://linki.tools/s10). Racket is an absolutely gorgeous language. It's the kind of language that might look complicated but the important thing is to start with the basics. Yes, there are complex features in the language and big words that might be scary : continuations, impersonators, collapsible contracts, macros. However most of the time you don't really need these features. Even the basic features of the language are enough to make your software shine. After you have a basic grasp, start to tackle other features of the language refactoring your code as you go. Another great feature is the community. racket-users mailing list (hosted in googlegroups) is a great place to start asking questions. You'll have a lot of fun. Enjoy your time in Racket lang. #not-a-typo
- kumarvvr 8y agoSo, I am an experienced developer but new to Lisp based stuff, which seems to be what racket is based on. Can you suggest any books to learn racket. edit: Spelling
- BMarkmann 8y agoSeems like the most common answer to this might be SICP (Structure and Interpretation of Computer Programs -- you'll find course videos pretty easily from Google; the ones from the authors are really great). Note that it's based on Scheme, which is a ancestor of Racket, but Racket has a language pack that papers over the differences and works with the code from the book. Official course website: https://mitpress.mit.edu/sites/default/files/sicp/index.html https://mitpress.mit.edu/sites/default/files/sicp/index.html You might, as a novice coming to Racket, find "Realm of Racket" to be more approachable as an intro: http://www.realmofracket.com/ http://www.realmofracket.com/
- klibertp 8y ago> Seems like the most common answer to this might be SICP Please don't. SICP is beautiful and all, but it's neither an intro nor practical/immediately useful. There's a lot of enlightenments to be had by reading it, but they have very little to do with Racket specifically. IMO, it's a bad book if your purpose is learning Racket. > You might, as a novice coming to Racket, find "Realm of Racket" to be more approachable Or, as an experienced programmer, be bored to tears by the slow pacing and didactical style. It's a great intro to programming and to Racket, but more focused on the former, which makes it ill suited for experienced devs who want to learn Racket.
- criddell 8y agoMatthew Butterick used it to write a publishing system called Pollen then used that to write some very good books. https://beautifulracket.com/about-the-author.html https://beautifulracket.com/about-the-author.html