Live data from Hacker News

Racket v7.2

blog.racket-lang.org

31–40 of 77 posts

Re: Racket v7.2

#31
post #24
post #21

Earlier quoted context omitted.

Currently working with DrRacket 7.2 on Mac OS X. What bugs me is that everything becomes unresponsive while executing heavy stuff or code that does not terminate. The stop/kill button usually does nothing and force-quitting the app is the only option. I tried the latest Racket-on-Chez build which seems much better in this regard, but is over-all rather sluggish. Hope this will improve.

I test drove Racket-on-Chez the other day by attempting to use the pict3d module (since 3d is an application that needs speed). My experience was as follows: 1) Install pict3d through DrRacket's built-in package manager - sudden, silent crash. Luckily I ran it from a terminal, which indicates an out of memory error. 2) Raise DrRacket's memory limit to "unlimited" and retry. Same result. 3) Google how to install packa…

> It's probably pict3d's fault, but there's no indication of this module being of "pre-alpha" stability. Or maybe it's an interaction with Racket-on-chez and C library interfacing.

Racket-on-Chez is what's pre-alpha. I don't think there's been requests for anyone to test it unless they were going to dig into the guts and try to fix things.

> since 3d is an application that needs speed

if the slowest part of your 3D is how quickly you can make calls into OpenGL, you're in a pretty good place.

Re: Racket v7.2

#32
post #15

Earlier quoted context omitted.

Using Firefox on Android with uBlock Origin enabled, I was redirected to some "onlinexperiences.com" site that displayed "System Check" and then a constantly growing number of lines containing only "Browser". Then I tried the stock Android Browser and it passed the browser check, but redirected to a login page. Going back to Firefox and disabling uBlock Origin, I was able to access a description of the talk and the v…

Very bizarrely for something on mozilla.org, it incorrectly believes my firefox is out of date: https://i.imgur.com/BRNBDPj.png I think there must be a cultural disconnect between how people at Mozilla use firefox, and how users like us use Firefox.

AFAIK air.mozilla.org is some ready-made product by a different company (maybe even run by them), not developed by Mozilla

Re: Racket v7.2

#33
post #8
post #4

Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?

Doesn't HN use Racket? Edit: according to wikipedia Arc, which HN is written in, is developed in Racket

Is 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.

Re: Racket v7.2

#34

Earlier quoted context omitted.

> there are still bugs being worked out in basic features like “set”. You are misreading the release notes. What was fixed is a Redex model (a tool used in semantics to model computer languages). A change to the modeling of `set!` (assignment) was made. It has no impact on Racket itself.

Really? Then as written it's very misleading "led to some bug fixes in Racket’s implementation of letrec and set!."

[Edit -- misread comment.]

Re: Racket v7.2

#35
post #5
post #4

Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?

I do not think so as this has bern mainly created for teaching but recently I had the same question

Well 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.)

Re: Racket v7.2

#36
post #10
post #4

Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?

Here'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-...

Maybe it's been up here before, but I feel that article is worth thread of it's own.

Re: Racket v7.2

#37

Earlier quoted context omitted.

Really? Then as written it's very misleading "led to some bug fixes in Racket’s implementation of letrec and set!."

[Edit -- misread comment.]

If it is in fact the case that only some redex models of `letrec` and `set!` were fixed, then it is indeed misleading that the release notes say "Racket's implementation" of them was fixed.

Unless you're the one who did the work, I'd rather trust the release notes than your unsourced assertion.

That said, just because a bug was fixed in an important function shouldn't be an indictment against the language. Racket is stable and productive, and formal modeling can reveal all kinds of corner cases which may not have been exposed in typical use, and may not have security implications. Maybe it was edge-case performance, maybe garbage collection, the release notes simply don't say.

I'd rather use a language whose authors improve their tools to discover and fix issues than one where this doesn't happen.

Re: Racket v7.2

#38
post #25
post #4

Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?

We ( https://linki.tools ) use it for our main development tools product - 100% Racket in production. Check 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 con…

So, 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

Re: Racket v7.2

#39
post #37

Earlier quoted context omitted.

[Edit -- misread comment.]

If it is in fact the case that only some redex models of `letrec` and `set!` were fixed, then it is indeed misleading that the release notes say "Racket's implementation" of them was fixed. Unless you're the one who did the work, I'd rather trust the release notes than your unsourced assertion. That said, just because a bug was fixed in an important function shouldn't be an indictment against the language. Racket is…

Ahhh, my bad. I thought you were the same commenter as the first guy, and I doubly goofed by misreading the comment in the first place. The dangers of commenting before coffee. You're right, the difference between redex models and racket's implementation of them would be confusing, and I don't have enough direct knowledge to provide any insight there.

Re: Racket v7.2

#40
post #4

Does anyone use this in production? Will this be a good platform to develop a DSL for a web app?

I 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…

> 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.

Post reply on HN