Live data from Hacker News

Racket v5.3.2

blog.racket-lang.org

21–30 of 44 posts

Re: Racket v5.3.2

#21
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

I used to use Racket in production and prototyping (few years ago), as a "glue language" and "business-logic" for a web-app, for the parts that are not IO, memory, compute intensive, etc. My metrics for language choice are:

1. Simple to learn and remember (they tend to correspond)

2. Module System; Support for modularization of complexity

3. Simplicity of coding and maintaining simple modules

4. Simplicity of coding and maintaining complex modules

5. Available libraries and their quality

In comparison to (I can only code efficiently in) Java, Python, Javascript/CoffeeScript/Node, Common Lisp, Scheme, and Haskell

- Racket is best for 2. (especially if you add a bit of meta-data to a module) and 4.

- Racket is much better than Haskell, Java, and Common Lisp for all 5 metrics Except for Haskell, which happens to be very nice for certain things that benefit from its type and class system

- For 3., Racket is overly complex, especially with the macro facility and huge number of types and structures. Node/Javascript/Coffee is better by far; Python is a little better than Racket because of less language features

- Racket is weak in 5. - Racket has many libraries of dubious quality, and I've hit undocumented issues a few times; Only Java was worse; However glue/business-logic doesn't require many libraries I now use NodeJS because I've been dealing with simpler stuff.

Re: Racket v5.3.2

#22
post #4
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

Well, I haven't used it in production , but I used it for a research project last semester. It was actually pretty good, and there are definitely some very nice features. The standard library was pretty good except it missed some functional features I wanted like immutable vectors (or even just functional operations on mutable vectors). The language is extremely flexible, and you can take advantage of this to write s…

Infix operators can be emulated thanks to a built-in reader macro. Example:

(i . Which moves the stuff between . to the head of the sexpr.

Re: Racket v5.3.2

#23
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

"I Write Like"[1] runs on Racket on a VM with 256 MB RAM.

[1] http://iwl.me, source code: http://www.codingrobots.org/p/iwl/

Re: Racket v5.3.2

#24
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

I don't know if this counts as in production, but we use racket extensively on my team (we do predictive market simulations). I wish I could give you a deep technical reason why racket works where nothing else would do - but the truth is that I'm the one who picks the technology, and I like writing code in racket.

biggest problems thus far are 1) the lack of external libraries (exempli gratia, nothing like python's boto for talking to ec2), but you probably saw that one coming. and 2) the language is almost too big, with too many datatypes: without even mentioning macros (which racket does quite well), the class/object system, the functional and mutable datatypes, contracts, pattern matching, typed racket, et cetera, can keep you pretty busy. Myself and the others might not just know racket well enough yet, but it's easy for one person to write unreadable code without ever leaving standard language constructs.

But this is also the best thing about racket - the language is flexible enough that you can find a natural way to express whatever you need to. We've also been playing with distributed places (racket processes on remote machines) with some success, too.

Re: Racket v5.3.2

#25
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

I'm using Racket right now to develop a machine learning algorithm. The new math and plot libraries are absolutely fantastic. For the brave or foolhardy it makes a viable alternative to R, NumPy, or Julia. (I haven't used Julia. I have found NumPy impossible to install. I want to punch something every time I use the steaming mess that is R.) Racket is far more a real language than the alternatives in this space but i…

"I have found NumPy impossible to install."

Try using one of "mega" bundles from Enthought or Continuum. Anaconda CE installs easily on Windows and Linux.

Re: Racket v5.3.2

#26
post #22
post #4

Earlier quoted context omitted.

Well, I haven't used it in production , but I used it for a research project last semester. It was actually pretty good, and there are definitely some very nice features. The standard library was pretty good except it missed some functional features I wanted like immutable vectors (or even just functional operations on mutable vectors). The language is extremely flexible, and you can take advantage of this to write s…

Infix operators can be emulated thanks to a built-in reader macro. Example: (i . Which moves the stuff between . to the head of the sexpr.

[deleted]

Re: Racket v5.3.2

#27
post #4
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

Well, I haven't used it in production , but I used it for a research project last semester. It was actually pretty good, and there are definitely some very nice features. The standard library was pretty good except it missed some functional features I wanted like immutable vectors (or even just functional operations on mutable vectors). The language is extremely flexible, and you can take advantage of this to write s…

> Also, for a dynamically typed language, I thought it had too many different types. It was too easy to get mixed up between bytestrings and strings, for example. It was also not obvious when you should use or expect nil vs #f. That said, the features for creating your own types (mostly structs) were very good--I found they were very lightweight but still flexible enough to be useful.

You can also used a typed dialect of Racket if that's easier - just write #lang typed/racket at the top of your file: http://docs.racket-lang.org/ts-guide/

Re: Racket v5.3.2

#28
post #11
post #7

Earlier quoted context omitted.

However, I would still choose Haskell or OCaml over it for virtually any project This might be off-topic, but I've been thinking about learning one of these two. Can you give me any advice on which to learn first (or which to use for what)?

Well, I'm a little biased, but I would learn Haskell. It's the one I learned first--in fact, I learned it during my very first college CS course. (The course, coincidentally, was in Scheme.) If I managed it as a freshman, it can't be all that difficult :P. Haskell has a couple of very good freely available books: Learn You a Haskell [1] and Real World Haskell [2]. I also found Write Yourself a Scheme in 48 Hours [3]…

For what it's worth, OCaml will somewhat soon have a "Real World" book by the guys who've been using it for very real world work for quite some time.

http://shop.oreilly.com/product/0636920024743.do

Re: Racket v5.3.2

#29
post #18
post #16

Earlier quoted context omitted.

For OCaml, check out http://ocaml.org for examples and tutorials. There's also http://try.ocamlpro.org where you can actually try some things out without the hassle of installing. OPAM [1] is new package manager for OCaml which, makes dealing with the libraries a lot easier (gotten v popular quite quickly) - it's available via homebrew which made it v convenient for me. Also, it's worth being aware of the differences…

Haskell has HalVM[1], which is sort of like Mirage, I believe. [1]: http://corp.galois.com/halvm As far as pragmatism and practicality in general, I think the two languages are about equal.

I found the idea awesome, though I didn't try it in practice. However, the repo doesn't seem terribly active.

Re: Racket v5.3.2

#30
post #2

Am I the only one who forgets Racket? Everytime I visit the site and browse through the documentation, I find myself wondering why I'm not using the language. Years ago I used Chicken Scheme but this seems more robust and the standard library is adequate. Who's using this in production? What's your experience?

This is exactly how I feel and a similar background, though I used Gambit and Bigloo more than Chicken.

I wonder how many people are in this situation.

Post reply on HN