[HN Gopher] Racket Compiler and Runtime Status
       ___________________________________________________________________
        
       Racket Compiler and Runtime Status
        
       Author : gleb_the_human
       Score  : 100 points
       Date   : 2021-01-24 18:16 UTC (4 hours ago)
        
 (HTM) web link (blog.racket-lang.org)
 (TXT) w3m dump (blog.racket-lang.org)
        
       | rcarmo wrote:
       | This is nice to see. I've played around with Chez and Racket
       | separately, and even though I'm now focusing on bare metal/JIT
       | again, I look forward to using the new Racket.
        
       | sitkack wrote:
       | Interesting I was just looking at the Chez Scheme backends and
       | didn't remember seeing aarch64, just 32 bit arm. And then I found
       | this
       | 
       | https://github.com/cisco/ChezScheme/issues/545
       | 
       | Racket-Chez is different from Cisco-Chez by > 600 commits. I
       | wonder what the plan is to normalize them or will be Racket-Chez
       | be our new house.
       | 
       | https://github.com/racket/ChezScheme
        
         | samth wrote:
         | We (mostly Matthew) have opened plenty of pull requests,
         | although not for the most recent changes since they rely on
         | earlier ones that are not merged. The Chez maintainers move at
         | a deliberate pace, and don't necessarily share all the same
         | priorities as Racket. But we're very much in touch with them,
         | and they've helped develop even some of the changes that aren't
         | upstream.
         | 
         | I don't think it's likely that we'll move back to pure upstream
         | Chez in the near future, but it's not quite a fork either.
         | 
         | You can read more about some of these issues in our ICFP 2019
         | paper: https://www.cs.utah.edu/plt/rkt-on-chez/ which is co-
         | authored with the Chez maintainers.
        
       | [deleted]
        
       | sachanganesh wrote:
       | What is Racket primarily used for? I'm not sure where it fits in
       | the language landscape in terms of strengths/weaknesses.
        
         | stretchcat wrote:
         | To me, it's the language I use when I want to have fun.
        
         | desine wrote:
         | It's a Lisp, in the Scheme subset. It's original design was
         | primarily around Programming Language Theory education -
         | formerly it was PLT Scheme. Much of it was designed for
         | educational uses, but it's a really well-rounded system with
         | plenty of packages, a decent package management system, better
         | performance than most interpreted languages. It comes with an
         | IDE easier to pick up for newbies than Emacs (the usual
         | Lisp/Scheme environment), but also runs fine as a command line
         | REPL and compiler.
         | 
         | It's kind of an oddball. While the development focus is mostly
         | educational, specifically Programming Language theory, it's
         | also very usable in the real world. There's a few tutorials on
         | writing your own domain specific language in it. You can
         | specify a language other than the default Racket, so one
         | compiler/interpreter environment actually supports many Lisps
         | and DSLs.
         | 
         | I'm a long time dev who recently picked up SICP to learn why
         | everyone says learning Lisp/Scheme will make you a better
         | programmer, and Racket is by far the most interesting
         | environment I've worked in. I haven't even touched Python,
         | which was my money-maker, in months.
        
         | dTal wrote:
         | I think of it as the Python of Scheme (yes yes I know).
         | Batteries included, well documented, big focus on ease-of-use.
         | 
         | It also has a Big Idea; it aims to be the practical realization
         | of the grand idea that Lisps are the perfect platform to build
         | programming languages on, and to take this so radically far
         | that you can have entirely different programming languages that
         | nevertheless share, not just a runtime, but _all their
         | libraries_. Unfortunately, so far, nobody except Racket
         | enthusiasts appear to have much interest in building languages
         | on top of Racket - but it 's absolutely possible and practical,
         | and someone really did accomplish the astonishing feat of
         | implementing Python (Python 2, alas) in Racket, in such a way
         | that you could combine libraries from both languages.
        
       | arc-in-space wrote:
       | I'm glad Racket CS happened(even though I don't use Racket),
       | because I was worried about the future of chezscheme's
       | maintenance. It's a runtime with good portability(Guile Scheme,
       | for instance, seems to pretend Windows doesn't exist), and I
       | think it'd be a shame to see it fade away in the future.
        
       | DC1350 wrote:
       | I used Racket in an intro to CS course a few years ago and was
       | told it's designed to be a teaching language. Is there any reason
       | to use racket over a more popular functional language? Does
       | anyone use it in production?
        
         | patrec wrote:
         | Carmack would have used it for Oculus, had management not said
         | no. https://twitter.com/id_aa_carmack/status/807797812700348416
        
         | soegaard wrote:
         | The Racket distribution comes with several languages. You were
         | probably using the socalled teaching languages, which are small
         | subsets of real Racket. Using a subset of the real language
         | allows better and more beginner friendly error messages.
         | 
         | The real Racket language is a general purpose language with all
         | the bells and whistles you could ever imagine.
        
         | fantispug wrote:
         | The killer feature of racket is it is very easy to make Domain
         | Specific Languages (including the teaching language) and
         | related tooling. However last time I looked the library
         | ecosystem didn't seem great; there were many libraries but few
         | that were actively maintained.
        
           | behnamoh wrote:
           | One could also argue that DSLs are not always good esp. in
           | large projects maintained by many devs.
        
       | gypsyharlot wrote:
       | I am interested in LISP-type languages, but I have a serious case
       | of decision paralysis.
       | 
       | GNU Guile? Common Lisp? Clojure (JVM)? Racket? Judging by my
       | understanding of the difference between Common Lisp and Scheme, I
       | think I am more of a Scheme type (I prefer C over C++, I like Go
       | more than Java, etc).
        
         | yw3410 wrote:
         | If you want live image reloading stick to a Lisp like SBCL
         | rather than Scheme.
         | 
         | If you care about startup times or FFI then don't pick Clojure.
         | 
         | YMMV between Racket and Guile; I would say Racket is better
         | insofar as the culture of documentation is really very good.
         | 
         | In practice, once you learn a Lisp, you can jump between them
         | without too much trouble.
        
           | mepian wrote:
           | SBCL is an implementation of Common Lisp, to be precise.
           | There is also CCL, or Clozure Common Lisp, which has the best
           | support for macOS.
        
         | potta_coffee wrote:
         | I tend to enjoy Scheme more than Common Lisp for just hacking
         | around, but I'm by no means an expert Lisp hacker. If you
         | decide to check out Scheme though, Chicken Scheme has been
         | awesome for me. It's very fast, compiles to C, had a ton of
         | great "eggs" (modules / packages), and seems to have a somewhat
         | friendly community with decent documentation.
        
         | bjoli wrote:
         | If you want batteries included and probably the nicest runtime
         | of all the lisps I would suggest racket.
         | 
         | I use guile since I think it more fun, but racket is a lot
         | easier if you want libraries around.
        
           | potta_coffee wrote:
           | Racket really is nice if you don't know what you want to do
           | and you want to be hacking on some code in less than five
           | minutes. I think I have Racket installed on every computer I
           | own.
        
         | Decabytes wrote:
         | I think the first question is scheme, or Common Lisp? The
         | answer depends on what your style is. After trying both I like
         | scheme better but I agonized over this decision for awhile,
         | though I enjoy sbcl and CLISP is dear to my heart.
         | 
         | In terms of schemes you have a wide variety to pick from.
         | Gerbil, Racket, Gambit, Chez, Chicken and many more. Racket is
         | a great all around choice. There are schemes that do various
         | things better than it, but it can do most things well. It has
         | two great edX courses to learn from (How to design simple data,
         | and how to design complex data) and is how I initially learned.
         | 
         | Chicken is one of my favorite schemes and is probably the one I
         | would use if I wasn't using Racket. It's so portable since it
         | compiles to C. I love the egg system, and I like the logo.
         | Gerbil is a performant systems level scheme. I remember there
         | being an article about someone in the Common Lisp community
         | considering jumping to Racket, but ending up on Gerbil Scheme
         | for what it's worth. I haven't used it
         | 
         | Chez is another super performant scheme, and is actually the
         | backend for the Racket programming language as seen in the
         | article above. It was only open sourced a few years ago so it
         | might be difficult to find solutions or get answers. I've used
         | Guile, I appreciate the mission, but I found it wanting. I've
         | heard people ship Gambit scheme apps onto IOS so if you are
         | looking at mobile apps that might be the way to go, I'm sure
         | Chicken could do that to. I have also heard that Gambits Cffi
         | is one of the best in the business, so if you need to interface
         | with a lot of C code that might be the way to go.
        
         | desine wrote:
         | I'm in a similar boat, and I am loving both Racket and Chicken
         | Scheme
        
         | fredrikholm wrote:
         | Racket if you're interested in a more "pure" lisp and/or
         | metaprogramming/DSLs.
         | 
         | Clojure if you're looking to use the language directly to solve
         | your problems (and my preferred Lisp).
        
       | kogir wrote:
       | If HN ends up moving to the CS runtime I'd love to hear a high
       | level summary of what work it required and how the new runtime
       | performs.
        
         | the-smug-one wrote:
         | You can run (what I suspect is an old version of) HN yourself:
         | http://arclanguage.org/install
        
       | ampdepolymerase wrote:
       | Congrats on the release. What Racket really needs right now is a
       | proper dependency manager with support for constraint solving and
       | allowing multiple conflicting transitive dependencies. Cargo and
       | yarn are the gold standard for this. A lot of Lisps tend to
       | overly focus on language and compiler features and neglect the
       | more boring tooling and infrastructure that makes a programming
       | language successful.
        
       ___________________________________________________________________
       (page generated 2021-01-24 23:00 UTC)