takikawa | 12 years ago | on: Pyret: A new programming language from the creators of Racket
takikawa's comments
takikawa | 12 years ago | on: Why Go? Use Racket
It's unclear what you mean by "Java-style static typing" then, because the Java type system and Typed Racket's type system are completely different.
One actually has local type inference (which is not "crappy" type inference necessarily; HM-style type inference is notoriously brittle), the other doesn't. One has nominal class types, the other has no class types (yet). One has intersection types, occurrence typing, "true" union types, and so on, while the other has none of those. One has bounded polymorphism, the other has System F-like polymorphism. One of them has variable-arity polymorphism, while the other doesn't. The list goes on.
In fact, aside from being explicitly typed, there are few similarities.
takikawa | 12 years ago | on: Why Go? Use Racket
takikawa | 12 years ago | on: First look at Clojure.core.typed
As a fellow Racketeer, I'm curious: what do you think can be done to shake this "academic" image?
takikawa | 12 years ago | on: First look at Clojure.core.typed
That said, some libraries start out typed too (e.g., the Racket math library[2]) and do benefit from type-driven optimizations and type-checking.
[1]: http://docs.racket-lang.org/ts-guide/ [2]: http://docs.racket-lang.org/math/
takikawa | 12 years ago | on: The problem with vim
takikawa | 12 years ago | on: Metaprogramming – Julia Language
This is also the case in Racket.
http://docs.racket-lang.org/reference/flonums.html#%28part._...
takikawa | 12 years ago | on: JavaScript right on the hardware
That's changed since then: http://docs.racket-lang.org/json/index.html
takikawa | 12 years ago | on: Programming languages to watch: LiveScript, Julia, Elixir
To clarify a little bit, `syntax-parse` is actually not its own model for macros but is a sophisticated front-end for Racket's underlying macro system (described in this paper: http://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf). Also see Jay McCarthy's blog article that tries to clarify this: http://jeapostrophe.github.io/2013-07-22-123list-post.html
Racket's macro system and Kernel's fexprs are pretty fundamentally different, so I don't think the comparison is very apt. In particular, Racket's macros can be entirely compiled away.
takikawa | 12 years ago | on: Create Your Own Programming Language
It's an excellent free undergraduate-level PL textbook that covers a lot of ground and is informed by both research and practice. There's a 2nd edition linked from there as well.
takikawa | 12 years ago | on: Best Way to Really Understand the Racket Compilation and Execution Model?
takikawa | 12 years ago | on: The Popularity of Four Lisp Dialects on Github
What do you mean by syntactic support for maps and vectors?
takikawa | 12 years ago | on: The Future of Programming
To the contrary, Typed Racket is under active development and new Racket libraries are written using it. I don't know where you got the impression that it's going nowhere, but it's incorrect.
takikawa | 12 years ago | on: Realm of Racket
Actually, it does do e-mail. :) https://github.com/mflatt/sirmail
Or if you want SMTP/IMAP libraries, you can look here: http://docs.racket-lang.org/net/
takikawa | 13 years ago | on: Is Lisp still useful in today's world? (2011)
Any examples? Just curious.
takikawa | 13 years ago | on: Racket v5.3.2
Here are two examples that have been presented at CUFP. The Starfire Optical Range[1, 2] uses it in production, I think as part of the control software for their telescopes. Naughty Dog, a major video game developer, uses it for scripting their games[3, 4].
[1]: http://en.wikipedia.org/wiki/Starfire_Optical_Range [2]: http://cufp.org/archive/2006/abstracts.html#RichardCleis [3]: http://cufp.org/videos/functional-mzscheme-dsls-game-develop... [4]: http://www.slideshare.net/naughty_dog/statebased-scripting-i...
takikawa | 13 years ago | on: Static types are great, but I don't use them in practice
You said you started out in Racket. Did you try Typed Racket? You don't necessarily need to move to Haskell to get a type system (though you won't get typeclasses).
takikawa | 13 years ago | on: μLithp - a Lisp in 27 lines of Ruby
Why not just the same notion of "first-class" as functions? In other words, that the feature is actually represented by a run-time value that can be passed around freely and stored. This is the usual definition of "first-class" that I hear most people use in the programming languages world. Examples include first class control (continuations), first class references (boxes, mutable cons cells, etc.), first class environments, first class modules (see OCaml, units, etc.), first class labels, and so on.
takikawa | 13 years ago | on: μLithp - a Lisp in 27 lines of Ruby
takikawa | 13 years ago | on: The Nature of Lisp
That said, the title of this post is a bit misleading so I wanted to correct it. The group of people who develop Racket and Pyret are mostly disjoint. I'm not trying to diminish Pyret at all, but wanted to make sure the right people get the credit. You can find out who develops Pyret here: http://www.pyret.org/crew/