[HN Gopher] New Racket Language Website
       ___________________________________________________________________
        
       New Racket Language Website
        
       Author : kamaal
       Score  : 240 points
       Date   : 2020-08-26 15:43 UTC (7 hours ago)
        
 (HTM) web link (racket-lang.org)
 (TXT) w3m dump (racket-lang.org)
        
       | benatkin wrote:
       | If it has a photo where people aren't wearing masks and/or social
       | distancing, it doesn't feel new to me.
        
         | superdisk wrote:
         | I went to look at the picture and noticed I'm actually in it!
         | Cool. The pic was taken at RacketCon 2018.
        
       | Buttons840 wrote:
       | Is there still a blog / news section? I don't see a link to
       | those?
        
         | azhenley wrote:
         | If you click the "Community" tab it is listed. More hidden than
         | it used to be.
        
         | pryelluw wrote:
         | Its in the footer: https://blog.racket-lang.org/
        
       | discardable_dan wrote:
       | Compare it to other big language websites, like Kotlin [1] or Go
       | [2], this page really seems to have a poor signal to noise ratio.
       | There is a _lot_ of information on this landing page, and a lot
       | of it is getting in the way. For a language, I want to know (a)
       | features, (b) documentation  / how to learn, (c) community. This
       | website leads with this, but does so under playful headings
       | ("jet-fueled") that just lead to more click-through links, and
       | then immediately, on the _landing page_ , jumps into advanced
       | features (easy DSLs, IDE support, etc.). 2/3 of this landing page
       | could be removed, and I suspect it would be a better landing page
       | for it.
       | 
       | In addition, it suffers from a poor use of vertical space (you
       | will see the word "Racket" in a large font with plenty of padding
       | 4 times on the main page), poor usage and indication of
       | navigation (it has 4 navbars, which are not apparently navigation
       | but appear to be "selling points" until your mouse moves over
       | them, due to their being attached to headings), and poor use of
       | navigation (reflowing the main page nave when you click on nav
       | items). Compare this to Kotlin and Go's sites, which state the
       | name, gives a snappy summary of the language, and then links off
       | to more information. In the case of Kotlin, which is closer to
       | Racket's site, it presents immediate links to extensive, example-
       | driven write-ups about the most-important features on subpages,
       | uses the remaining of the "first page" space on a "try it now"
       | box, and then proceeds along vertical space (free in a browser)
       | to demonstrate the most-important features.
       | 
       | Finally, a smaller complaint: this website feels like it was made
       | in Photoshop in the mid-00s, complete with text-image navigation
       | bars sliced out of tables and drop shadows. I know someone put a
       | lot of work into making divs look like that, but there are very
       | good reasons why the industry has moved away from that design.
       | 
       | 1. https://kotlinlang.org/
       | 
       | 2. https://golang.org/
        
         | yomly wrote:
         | I'm biased, but I clicked through to Kotlin and it didn't have
         | any mobile friendly media queries - whereas I like the look and
         | feel of the racket page on my tiny android screen.
        
           | didibus wrote:
           | Same, Kotlin is a huge fail, if you can't get mobile friendly
           | pages in 2020 it's a complete fail in my book.
        
           | kaycebasques wrote:
           | At first I was going to say "I agree... in 2020 there's no
           | reason not to have a mobile-friendly docs site... but in my
           | experience with documentation sites, not many people visit
           | from mobile devices". However, I just checked web.dev and
           | developers.google.com/web and our mobile traffic is non-
           | trivial.
        
             | nkrisc wrote:
             | As a hobbyist and self-taught programmer I (pre-COVID)
             | spent a lot of time reading documentation on my phone while
             | commuting home from work.
             | 
             | I'm very pleased when documentation works well on a mobile
             | device.
        
         | neilv wrote:
         | In earlier discussion of a draft, a year ago, I looked at a
         | bunch of examples, and zeroed in on Nim's home page (at the
         | time) as a possible good example/inspiration for Racket
         | (especially since I was pushing on a "3 ideas" focus, which,
         | IIRC, Nim was also doing):
         | 
         | https://groups.google.com/forum/#!topic/racket-dev/kJciZheDM...
         | 
         | I think a few pretty ordinary challenges are:
         | 
         | * Collectively, people think a lot of stuff is important, and
         | don't want to drop it from the home page. A vicious designer
         | would step in and cull and massage heavily, ignoring the
         | screams of pain from most people. (Only in the end, might
         | people generally agree it was worth the suffering, and then
         | they'd help beat down anyone who tried to sneak bloat back in,
         | after the carnage that everyone went through to get there.)
         | 
         | * The people in charge and doing the work on the site, as a
         | group, don't have the same ideas of what's important that
         | professional practitioners do, nor the state of competition.
         | So, priorities, phrasings, assertions, etc. will sometimes seem
         | odd. This has come up at least a few times, in various ways,
         | and might be part of why Racket didn't go mainstream when it
         | had a better chance. (Though the leadership is not just pure
         | academics. Just to pick the most prominent example, Prof.
         | Matthew Flatt, besides the research and domain background, is a
         | very solid programmer, with some good sense of software
         | engineering.)
         | 
         | * As a subset of general visual design, good graphic designers
         | seem to do many subtle things that us techies don't fully
         | appreciate. Familiar analogy: a novice software developer not
         | only isn't yet able to do great work on tricky problems, but
         | they don't even yet know what great work is, nor are they able
         | to say what's great and not about some example they see. (The
         | creators of the new site are mainly programming language and CS
         | education people, not visual design, not HCI, etc., except
         | sometimes people like [1].)
         | 
         | On the upside, if a site for some techie thing looks a bit
         | homely or awkward in some ways, you know it's at least not a
         | tech offering driven by marketing, fashion, and funding. :)
         | 
         | [1] One notable exception in Racket, though I don't know
         | whether involved with the new site, is Matthew Butterick, as a
         | diversely multi-skilled person. He did a lot of visual/graphic
         | design work on other Racket stuff, which you can see by
         | contrasting the old look of the documentation, with the current
         | one. Old: http://planet.racket-lang.org/package-
         | source/neil/roomba.plt... Current: https://docs.racket-
         | lang.org/roomba/index.html
        
         | somezero wrote:
         | 1/3 of Go's website on my iOS screen, is "Recent news" plus a
         | random "featured video". For a landing page of a programming
         | language, This is cartoonishly bad.
        
         | overthetop2 wrote:
         | > made in Photoshop in the mid-00s
         | 
         | Haha, so true. TBH I didn't care for the previous Racket home
         | page ... too arty farty. But at least it felt clean and
         | current. This one, by contrast, feels totally retrograde. I
         | wonder who made it? Hard for me to imagine a front-end designer
         | today who would turn in work like this.
         | 
         | Oh god I just noticed the drop shadows on the menus ...
         | :facepalm:
        
           | rscho wrote:
           | Maybe you could offer your services to make it better? Since
           | they're a small open source community, my guess is that they
           | don't have front-end designers of your calibre.
        
       | valbaca wrote:
       | Looking good!
       | 
       | potential off-topic but this make me think of this:
       | 
       | Can one work through SICP using Racket?
        
         | vvillena wrote:
         | There's a #lang sicp in Racket that emulates the Scheme of the
         | SICP book, with all the functions you need.
        
         | kaeland wrote:
         | I found this SICP guide helpful in terms of choosing which lisp
         | to work through the book: https://github.com/zv/SICP-guile
        
         | Scarbutt wrote:
         | Yep, will even say is the best enviroment for SICP.
        
       | Naac wrote:
       | I believe this is the source code for the Racket lang website:
       | https://github.com/racket/racket-lang-org
        
       | sillysaurusx wrote:
       | I'm relieved they didn't change the documentation. Hard to
       | improve on perfection. https://docs.racket-
       | lang.org/pkg/index.html
       | 
       | Also, I chuckled a bit at the "Jet Fueled" tagline. Racket's
       | green threads operate with a "fuel" which gets consumed over
       | time, at which point it yields to another thread. I think the
       | metaphor was a happy accident rather than an intentional nerdy
       | reference, but still.
        
         | nahuel0x wrote:
         | The engine/fuel terminology is not new, it comes from the 1986
         | paper "Abstracting Timed Preemption with Engines" / Christopher
         | T. Haynes, Daniel P. Friedman:
         | 
         | ftp://ftp.extreme.indiana.edu/pub/techreports/TR178.pdf
        
           | 1f60c wrote:
           | Did this link just get hugged to death? It's not working for
           | me...
        
             | sillysaurusx wrote:
             | It works for me, but I've mirrored it here:
             | https://www.shawwn.com/docs/1986-11-abstracting-timed-
             | preemp...
        
           | sillysaurusx wrote:
           | I absolutely adore that this link isn't clickable, yet it
           | works when you copy-paste it into Chrome.
           | 
           | @dang, here's an updated version of valid-url which will make
           | the link clickable:                 (defmemo valid-url (url)
           | (and (len> url 10)              (or (begins url "http://")
           | (begins url "https://")                  (begins url
           | "ftp://"))              (~find [in _ #\< #\> #\" #\'] url)))
           | 
           | I doubt it'll get merged, but you never know.
           | 
           | It looks like the other change necessary is in the `markdown`
           | function. It checks:                 (and (or (litmatch
           | "http://" s i)                 (litmatch "https://" s i)
           | 
           | You'd need to add:                          (litmatch
           | "ftp://" s i)
           | 
           | If you grep the codebase for "https" then it'll reveal any
           | other functions that need updates, but these are the only two
           | in arc3.1.
           | 
           | Of course, the cost-benefit doesn't quite add up here - it's
           | not like ftp links are too common. But think of the poor
           | university FTP servers! They'll be forever doomed to copy-
           | paste-hell unless this is fixed. :-(
        
             | the_pwner224 wrote:
             | Firefox removed FTP support some months ago. Ironically
             | when I copy paste that link it now prompts me to open it in
             | Chromium.
        
               | jhoechtl wrote:
               | Works for FF 79, Manjaro Linux
               | 
               | Maybe it was removed for the Windows build? If so, what a
               | bad decision, maybe for security reasons?
        
               | the_pwner224 wrote:
               | https://blog.mozilla.org/addons/2020/04/13/what-to-
               | expect-fo...
               | 
               | I normally use FF Nightly which explains the difference.
        
           | steveklabnik wrote:
           | We also have "optimization fuel" in Rust,
           | https://camlorn.net/posts/April%202017/rust-struct-field-
           | reo...
           | 
           | Which comes from http://blog.ezyang.com/2011/06/debugging-
           | compilers-with-opti..., which cites a paper from 93.
        
         | look_lookatme wrote:
         | And don't forget this beautiful book on Racket,
         | https://beautifulracket.com/
        
       | didip wrote:
       | It looks great! If I may offer a suggestion, it could use a
       | "play" section where people can start getting to know the
       | language right away without installing anything.
        
         | gus_massa wrote:
         | There are a few unofficial sites, for example PasteRack
         | http://pasterack.org/. (A example of Fibonacci:
         | http://pasterack.org/pastes/89478 )
        
           | grugagag wrote:
           | There is also wescheme: https://www.wescheme.org/openEditor
        
         | miloandmilk wrote:
         | Yep it looks great, really crisp - +1 for the play section!
        
       | agumonkey wrote:
       | nice spin on the proglang homepage, 'KISS
        
       | hitekker wrote:
       | A compressed header that looks good on mobile? Wow.
       | 
       | The rest of the design looks well crafted too.
        
       | dependenttypes wrote:
       | I think that it is quite nice, much better than most most modern
       | sites (it does not seem to require js for example and it loads
       | quickly) and I prefer it to the older one. My only is that it
       | makes poor use of horizontal space - my screen is bigger
       | horizontally than vertically, so much space goes wasted. In
       | addition I would suggest offering more examples of sublanguages,
       | such as of #lang racket/gui which the last site included.
       | 
       | Anyway, good work!
        
       | codazoda wrote:
       | I didn't sign in too far, but isn't the first line of code on
       | their landing page a typo?
       | 
       | (define my-language 'English)
       | 
       | Looks like it's missing a closing single quote. I suppose it
       | could be optional.
        
         | thomas11 wrote:
         | The code is correct. That's a Lisp thing called `quote`.
         | https://docs.racket-lang.org/guide/Pairs__Lists__and_Racket_...
        
       | cpill wrote:
       | Oh boy, what the world needs now: another Clojure. How is it
       | going to compete with the raging success of that :D
        
         | rscho wrote:
         | ...and if you had a single clue about all that you'd know that
         | Racket and Clojure are very different and that Racket is a
         | strong player in the academic world.
        
         | vga805 wrote:
         | If you have nothing productive to say, don't comment. It really
         | is that simple.
         | 
         | And Racket is almost a decade older than Clojure.
        
       | cek wrote:
       | My son was required to use Racket in his course work for Computer
       | Engineering at CalPoly. I had never heard of it before. I recall
       | one of the profs was involved. We joked that it all sounded like
       | a racket.
       | 
       | He's now a rising-star (proud/biased papa here) as an SDE at
       | Amazon. So maybe it's a good teaching language after all.
        
         | rscho wrote:
         | The community has strong emphasis on teaching. I'm just a
         | hobbyist, but transitioning from python allowed me to improve
         | much faster and discover new horizons.
        
         | linguae wrote:
         | I'm also a Cal Poly graduate (computer science) who learned
         | Racket (called PLT Scheme back when I was a Cal Poly student)
         | from Professor John Clements (https://www.brinckerhoff.org),
         | who was involved with PLT Scheme. We used the textbook
         | Programming Languages: Application and Interpretation, which
         | can be found at http://cs.brown.edu/courses/cs173/2012/book/.
         | I'm sorry to say that at the time I took the course, I didn't
         | appreciate it. I loved coding in C and I thought Scheme was
         | weird. But after taking programming languages from Professor
         | Clements, I then took his compilers course. Our first
         | assignment was to implement a Scheme interpreter in a week. We
         | were allowed to use any programming language we wanted. Since I
         | was tired of Scheme, my lab partner and I decided to implement
         | the interpreter in C++. Big mistake....we spent 40 hours on
         | that project, building complex class inheritance hierarchies
         | and not being able to take advantage of many of the features
         | that made writing an interpreter in Scheme a relative breeze. I
         | never complained about writing code in Scheme again.
         | 
         | When I moved on to UC Santa Cruz for grad school, my experience
         | with Professor Clements' programming languages and compilers
         | courses made my required graduate programming language course
         | with type theory expert Cormac Flanagan a relatively smooth
         | experience; going from Scheme to Haskell wasn't too difficult.
         | Sometime afterwards I got bit very hard by the programming
         | languages bug. I'm now working on a side project in Common
         | Lisp, and interestingly enough, I'm actually teaching a
         | programming language paradigms course at San Jose State
         | University this semester where I'll be teaching my students
         | Scheme, Prolog, and Smalltalk, as well as other goodies such as
         | the lambda calculus.
         | 
         | All of this would have not been possible had I not been taught
         | Scheme and functional programming by Professor John Clements.
         | If he is reading this, I thank him immensely for the impact his
         | courses have had on my career. I just wish I had appreciated
         | the courses back when I took them, but over a decade later, I
         | strongly appreciate them, and they're among the most valuable
         | courses I had at Cal Poly.
        
         | ska wrote:
         | Racket is an evolution/rebranding of a scheme variant (Dr
         | Scheme) - or rather family of them - specifically designed for
         | pedagogy. It's got a pretty good multiple decade history in
         | that space, fwiw.
        
       | miloandmilk wrote:
       | I don't use Racket every day - but I use many of the things I
       | learnt from HTDP every single day. Great language guided by some
       | very generous people.
        
       | chromatin wrote:
       | Would Racket be an appropriate first language for a thoughtful 11
       | year old who has the gift of abstract thought (relatively; we are
       | not talking Haskell here) ?
        
         | codr7 wrote:
         | I would say Lisp is a fine beginners language, but it all
         | depends on the teacher.
         | 
         | One reason why SICP works so well is that the authors are very
         | passionate about Lisp. K&R accomplishes sort of the same thing
         | for C. Many languages have these kinds of books.
         | 
         | I got into Lisp from reading Paul Grahams essays and books.
         | 
         | One of my younger brothers eventually found his way into
         | programming heaven via Bash scripts.
         | 
         | My point is the medium matters less.
        
         | rscho wrote:
         | I'm just a passionate hobbyist, but I'd say yes. The integrated
         | environment makes it very easy to get started, the package
         | manager makes using libs trivial and there are DSLs for
         | basically all programming paradigms under the sun.
         | 
         | In my opinion, nothing beats it. You even have pictures in the
         | REPL.
        
       | saagarjha wrote:
       | Perhaps they could come up with something different for the first
       | header? Because saying "Racket, the Language-Oriented Programming
       | Language" right after "Racket, the Programming Language" seems a
       | little too similar.
        
         | grok22 wrote:
         | That seems intentional -- the 2nd header is to highlight that
         | it has features that help in creating your own language variant
         | (and is a big-part of it's many strengths).
        
           | saagarjha wrote:
           | Yeah, I think it is-however, it's still strange to have those
           | two and then the third "Racket, the Ecosystem" that doesn't
           | seem to fit the pattern.
        
       | jakearmitage wrote:
       | The #lang thing is super interesting. What happens with
       | conflicts, though? Can I use multiple #lang? What if they have
       | functions with the same names?
        
         | PuercoPop wrote:
         | You can use multiple #langs, in separate files. The name
         | collision is unrelated to the #lang of the file. It is handled
         | by the module system.
        
       | submeta wrote:
       | Beautifully made. Like the font. And how legible it is on mobile
       | devices. - Learned Scheme and worked through SICP with its
       | predecessor DrScheme twenty years ago. - Keep up the good work.
        
         | MarkyC4 wrote:
         | portrait tablet/landscape mobile could use some work (it's a
         | bit squished)
         | 
         | https://i.imgur.com/KLSZ33H.png https://i.imgur.com/b9HXnfj.png
        
       ___________________________________________________________________
       (page generated 2020-08-26 23:00 UTC)