11 ms·
Racket 6.0: New package system, new doc CSS, JIT support for ARM
- Oculus 13y agoRacket is my first functional language and its been fun, but is it more of an educational language or is it used in production?
- samth 13y agoIt's used in production in a variety of places: Naughty Dog studios, NBCUniversal, Air Force research labs, defense contractors, web developers.
- dobbsbob 13y agoYandex's PaaS "cocaine" also supports Racket
- rits 13y agoInteresting. But looks like a software[1] and not a service[2]. Do Yandex plans to launch a public service on Cocaine? [1] - https://github.com/cocaine/ https://github.com/cocaine/ [2] - http://api.yandex.ru/cocaine/ http://api.yandex.ru/cocaine/
- m0nastic 13y agoWe're using it in production at my job. (In a decent-sized polyglot system also made up of Haskell and Clojure). There aren't as many libraries available compared to more popular languages, but I haven't yet had too much trouble getting things accomplished. For the above-mentioned languages we're using, I'd put the useful library situation at: Racket-> Haskell-> Clojure in order of least to greatest. Depending on what you need it to interoperate with, it's totally usable in production environments as it stands.
- iso8859-1 13y agoare you counting Java libs? then that ordering comes as no surprise.
- m0nastic 13y agoI wasn't (although that admittedly is one of the best benefits of Clojure). Also, that's not a listing of the total number of libraries; it's ranked based on the number of useful ones (where "useful" is a completely subjective term that relates to how often I've looked to see if a library exists that does what I want). Racket actually has more overall libraries than you'd expect considering its popularity, but I've found that many of them are old, no longer updated, scheme libraries (from the days before Racket rebranded from Dr. Scheme). That certainly doesn't make them useless, but I'm reticent to mix scheme-style code into my project. I'm least familiar with Clojure (I've only been deploying it for the past two weeks or so), so I'm sure my opinion will change, but right now it feels like a slightly less good Racket with a philosophy I find agreeable and more practical libraries (plus Java interop).
- samth 13y ago> Racket actually has more overall libraries than you'd expect considering its popularity, but I've found that many of them are old, no longer updated, scheme libraries (from the days before Racket rebranded from Dr. Scheme). That certainly doesn't make them useless, but I'm reticent to mix scheme-style code into my project. Which libraries are you referring to? Libraries distributed with Racket, or libraries on Planet (or somewhere else on the internet)? And any sense of which libraries in particular you notice being missing?
- technomancy 13y agoPersonally I don't use it for anything server-side, but that doesn't mean it's just for education. I suppose it's an unavoidable misconception given that its most obvious strength is the quality documentation and IDE. Its built-in image support is much better than anything I've seen in any other language, so I've used it a couple times for writing simulations that need a histogram. It's also much better than Clojure for things that require low memory usage or fast startup time.
- 616c 13y agoTheir continuation-based web server is neat, if you can handle not complaining about the same thing in the Arc/HN combination everyone does when it is brought up. http://docs.racket-lang.org/web-server/ http://docs.racket-lang.org/web-server/ I also recently discovered a web sockets library, but am not good enough at coding Racket to use either yet. I am definitely planning on it. (And seeing you're handle, just want to thank you for your contributions to Clojure; I can only image what would happen if you got more involved in the Racket community).
- gus_massa 13y agoI use Racket in a small (few hundred users) internal site in the university.
- whyme 13y agoHN is built using arc which is really just an abstraction layer built with racket (previously mzscheme).
- 616c 13y agoYes, and I am not sure if this was addressing my comment. I believe the Arc implementation here (despite being a language built with Racket) is run with its own implementation of continuations. I mentioned people complaining because, well, people complain when you get timeouts with your continuation. That is why when you click More at the bottom of the page, you see a URL that looks like this: https://news.ycombinator.com/x?fnid=N5yDJXCzVXXV8kqTp57A7D https://news.ycombinator.com/x?fnid=N5yDJXCzVXXV8kqTp57A7D I believe this is calling into the continuation space. I could be wrong, however. I am just starting my Scheme journey. Nonetheless, sometimes continuations do not work well on HN and I see people mention that. It is different way to handle state (Racket calls their Racket server stateless for this reason). I just wanted to point that, even if people will pass judgement from their experience here, it is a cool concept nonetheless. Also, more experienced people should correct my analysis of HN if I am wrong.
- 616c 13y agoThis language just keeps getting better and better. I am so glad I bought the Realm of Racket book. Cannot wait to get my Scheme on! And with ARM this will soon become the only language I need!
- minikomi 13y agoYes, I really love racket. Congratulations to the team!
- derengel 13y agoJust want to make note that DrRacket has the best integrated REPL of all the lisps around, its highly underestimated.
- bhrgunatha 13y agoHave you tried SLIME? I'm wondering why you put DrRacket above SLIME.
- laichzeit0 13y agoIs SLIME any better than Geiser? I've been using it with Racket and it's pretty good. http://www.nongnu.org/geiser/ http://www.nongnu.org/geiser/
- pavelludiq 13y agoGeiser is great, but SLIME is much better mostly because Common Lisp was designed with interactive programming in mind(the condition system, the object system, dynamic variables ect. are all features that help with interactive programming). You get an almost smalltaskesque feeling with slime.
- bhrgunatha 13y agoAs the linked doc says, geiser draws inspiration from Slime, but of course it's for Scheme rather than Lisp (or Common Lisp.) From what I've read in the past I think most attempts to use Slime with Scheme haven't been wholly successful, hence geiser.
- yfefyf 13y agoCongrarulations, the Racket team! It's really a joy to use Racket. Racket is elegant, powerful and fast. Everybody should try it. It's extremely easy to install and setup. And whenever you have any question, a fantastic community is there waiting for you.
- EastCoastLA 13y agoHow is whalesong coming along? Anyone using it for production apps.
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- gexla 13y agoIs Racket good for learning Lisp/Scheme or is it better to start with something else?
- groovy2shoes 13y agoI learned with Racket, and I found it to be a great experience. It comes with an IDE, DrRacket, that makes it very comfortable to start experimenting. It's also "batteries-included", with libraries for GUI, graphics, networking, etc. It also comes with really good documentation (at least as good as Python's, I'd say, and better than either Perl's or Ruby's). Racket has a good foothold in educational environments, so it's no coincidence that it's conducive to learning. However, Racket also sees a lot of usage in the PL research space, so it's also conducive to just experimenting. Those two combined can make it a very fun environment. There's also #racket on freenode, which I've found rather welcoming.
- jonnybgood 13y agoAbsolutely. However, if you want to learn modern concepts and/or their implementation in a lisp, I would say Clojure is a better bet.
- 6cxs2hd6 13y agoI don't really agree with that. Although Clojure has many great things, for example its out-of-box immutable data structures, I wouldn't say that it's "more modern" than Racket. If anything, lately Clojure has been drawing on Racket for inspiration in many areas (for example Typed Racket). In fact, if you wanted to find a criticism of Racket, it might be that occasionally it is "too" modern -- in the sense that some parts are implementations of research papers. You might encounter the occasional module whose documentation isn't much more than "Implements foobars in the sense of Researcher [Year] <link to paywall paper>". To be clear, that is not 98% of Racket. I mention it just to counter the idea that Racket is "less modern". It's constantly evolving with new things. Finally, for someone getting started with a lisp, Racket is (a) download, (b) install, (c) start coding and running -- within literally 5 minutes. (Of course experienced people aren't limited to DrRacket if they prefer Emacs or Vim or whatever.)
- saurabhnanda 13y agoAnyone used Racket AND clojure in production? Any first hand experiences? We're looking to add another language/environment to our, currently RoR+Postgres stack, and have a soft corner for lisps.
- pavpanchekha 13y agoI'm using Racket for a major project right now. It's been hit and miss. On the one hand, Racket is by far the best alternative/non-mainstream language—the docs are good, there are surprisingly broad libraries, and of course it's great to support the good people at Northeastern. On the other hand, there is evidence here and there that this language isn't commonly used in production. For example, the pattern-matcher is very well-implemented and feature-full, but there's no way to use it programmatically nor is there a way to get the set of bindings. There is also the sad fact that Racket is a Scheme in the traditional Scheme fashion, and so is still trapped in an 80s design aesthetic. Generics are poor, ADTs aren't easily implemented, static types exist but are not so widely used and have strangenesses.
- noelwelsh 13y ago"no way to use it programmatically nor is there a way to get the set of bindings" These don't really make sense in the context of Racket. Pattern matching is a macro and thus doesn't exist at run time, though of course with eval the distinction between run time and expansion time is not so well defined. Accessing the lexical environment is not something you do in Racket -- it breaks optimisations and is generally considered a bad idea.
- samth 13y agoWhat do you mean by "use it programmatically" for pattern matching? Can you give an example of a language that has this feature?
- makmanalp 13y agoI like that the docs look less like they jumped out of the geocities era. Still could go a long way though. Signalling is important, and if you signal "old and unupdated" to your users, that's not a great start. (e.g.: http://docs.racket-lang.org/pkg/Package_Concepts.html http://docs.racket-lang.org/pkg/Package_Concepts.html) "prev", "next" (when the table of content is right there next to it) and "top" (usually the header / logo link these days) and collapsible TOC trees screams "we copied this out of MSDN '97 and windows .chm files". The "...search files..." looks like it was written by a programmer. The white on gray line with the black on white line next to it looks odd. Natural spacing sometimes is a great substitute for lines. The main docs page (http://docs.racket-lang.org/ http://docs.racket-lang.org/) contains way too many fonts and way too many colors. Pick a scheme and go with it. My favourite examples of docs that look like people cared: http://flask.pocoo.org/docs/quickstart/ http://flask.pocoo.org/docs/quickstart/ (well designed, tasteful font, color and spacing selection) http://docs.vagrantup.com/v2/getting-started/index.html http://docs.vagrantup.com/v2/getting-started/index.html (lack of search bugs me) https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child ("hide sidebar" here serves a real purpose: hides the whole thing so the doc display is wider, kinda nice that TOC follows you) Conclusion: Glad it's improving, but please keep at it! Great docs make your product a joy to use! ------------------------- edit: let me add some WORSE examples to put things into perspective: https://www.tcl.tk/man/tcl8.6/TdbcCmd/tdbc.htm https://www.tcl.tk/man/tcl8.6/TdbcCmd/tdbc.htm http://junit.sourceforge.net/javadoc/ http://junit.sourceforge.net/javadoc/ (ughhhh) http://www.gnu.org/software/smalltalk/manual/ http://www.gnu.org/software/smalltalk/manual/ (whenever I see the gendocs selection page I get nostalgic. Really? 120 vs 420kb? I didn't care even when I was using dialup. Also the "one webpage per node" version almost always sucks because you can't search for anything. And the "all in one page" version sucks because it's too huge sometimes. Who uses the ascii text version or the info docs version?)
- tekacs 13y agoI think you have a valid point (other than in the case of the Vagrant docs, which I absolutely detest [0]). The simplest way to make good-looking docs might just be to 'just use Sphinx' (as does Flask, mentioned and http://docs.python.org/ http://docs.python.org/ and [many others][1]. Another example of amazing docs (they've always been pretty decent, but amazing in their most recent style) are the PHP docs: http://www.php.net/manual/en/function.pg-affected-rows.php http://www.php.net/manual/en/function.pg-affected-rows.php The docs are a necessity to make up for the shoddy, inconsistent patchwork that is their language design, but they are damned well designed and easy-to-use for the wading through flat scope that is required by those who use the language. Similarly, styles based on YARD/codo (http://coffeedoc.info/github/coffeedoc/codo/master/ http://coffeedoc.info/github/coffeedoc/codo/master/) are pretty nice for API references. [0]: Disappearing sidebar when you resize to narrow, huge amounts of spacing everywhere and sidebar names that can't be expanded without navigating to their root. :/ [1]: http://sphinx-doc.org/examples.html http://sphinx-doc.org/examples.html
- sigzero 13y agoThe package ecosystem has expanded. I like that. http://docs.racket-lang.org/pkg/getting-started.html#%28part._github-deploy%29 http://docs.racket-lang.org/pkg/getting-started.html#%28part...
- turtle4 13y agoHaving used clojure for a few things recently, I am interested in picking up a non-jvm lisp. It seems like Racket and Chicken Scheme are both well recommended. Anyone reading this have experience with both / insights as to why I might want to select one vs the other?