9 ms·
Server: Racket – An ebook about web development with the Racket HTTP server
- giancarlostoro 9y agoOf all the Lisps I've toyed with (mostly Clojure and Racket) I think I enjoy Racket the most. I wish more languages (I know some already do: Python, Processing, and others) would at least include a minimal text editor that can build and debug code - coded in the same language. Matter of fact, I've wished this were the case for Rust (and maybe D? - I guess there's a minimalist emacs for D but that's not as approachable as say Dr. Racket for newcomers), it would give them a chance to build a bare bones UI stack for Rust that is officially maintained. On the other hand, my experience with Racket has been fantastic, I have not done too many significant projects, but when I toy around with it, it doesn't get in my way. I just don't have a good project for it as of yet. If I want to do web I'm already accustomed to using other web stacks so I don't see the appeal there, one thing that always surprises me is the GUI stack for Racket though, it just feels straight forward. It feels like we still haven't figured out the whole GUI thing, Electron is so popular because you can get a GUI done fairly quickly since everyone understands the front-end code so well out of the box. I was also fairly impressed by Clojure. You install the package manager (Lein) and you have all you need to do any Clojure work, iirc it will go as far as installing Clojure for you. The repl approach to GUI design with Clojure was also quite interesting for me. I think Clojure and Kotlin are the only two things about the JVM that impress me these days, but that's just my opinion.
- noncoml 9y agoThese days it’s more about the ecosystem rather the language itself. While most language provide the basics, sooner or later you will end up needing something that is only available for the most popular 5-6 languages. E.g. S3 APIs or drivers for Riak, or gRPC or rabbitmq or something else. Something always comes up. Having said that, the packages listed in Racket’s webpage seem quite comprehensive.
- giancarlostoro 9y agoIt's a mixture of: standard library (see how quickly Go was adopted, especially when making a web project was an out of the box experience), documentation, and tooling is definitely crucial. If I can download a language and have all these things out of the box (which Racket provides) then I probably will have less friction than someone programming in C or C++ (with 0 experience in either those or Racket mind you) who have to figure out what compiler to get, what editor / IDE to use, how to configure their IDE / editor, what magic terminal incantations to do all while I'm building websites and GUI's on Racket in a matter of minutes (from examples of course, but now I can play with those). All because Racket has: documentation, tooling and a good out of the box stack.
- irahul 9y agoA language with large standard library and tooling is awesome. But Racket still falls short on api wrappers for tools(message queues, zero mq, templates...) and services(payment gateways, google cloud or azure apis...). It's a chicken and egg problem. Unless a significant number of people start using it in production, Racket isn't going to have extensive libraries and unless it has the libraries to hit the ground running, a significant number of people won't try it.
- baldfat 9y ago> you will end up needing something that is only available for the most popular 5-6 languages The thing that is the Special Sauce for Racket is it's macro system. You can build your own language for specific things easily or you can extend Racket with a library also much easier then the other 5-6 languages. Racket really has a chance of being the Python of functional(ish) languages. The ability of the community to produce a great ecosystem is all right there baked in. http://jeapostrophe.github.io/2013-07-22-123list-post.html http://jeapostrophe.github.io/2013-07-22-123list-post.html I also think the documentation is all in one place. The library Scribble makes it simple for everyone to document your macro/library simply and uniformly. I really have high hopes for Racket over the next 5 years.
- 9y ago
- RandomInteger4 9y agoWhy would you need a text editor to come with the language when you could have Vim and the rest of the command line. The problem newcomers have with programming is that educators think they're too stupid to use the command line and in the process they shield them from important details about the build process by obfuscating them under the veil of an IDE.
- throwaway7645 9y agoIt depends on the language and intent. With Python it has a simple GUI shell that lets you edit, run, and use the REPL (similar to Dr Racket). It's easy to use and doesn't actually shield you because there isn't any complicated build process anyway. If anything it shields you from: python myscript.py Now with C# or Java, I would agree with you.
- mebassett 9y agoReally glad to see this book. I have shipped webapps in racket two or three times (once in typed/racket, because I was feeling especially crazy). It really was the most fun I had programming in a long time. But some of the problems I was tackling I felt like I was treading new ground - it wasn't clear if a ProxyPass to nginx was the best thing or not, it wasn't clear if this was the correct way to implement sessions or not, et cetera. I'm glad to see an authoritative book for the racket community on these topics.
- sriku 9y agoTo take lisp based web development to another level, what if we had a "browser" environment that embedded racket and executed sandboxed code instead of JavaScript/html? (Goes back to dreaming)
- pjmlp 9y agoWe had a taste of them in the past, Xerox PARC created Ethernet and their workstations (Interlisp-D, Smalltalk, Mesa/Cedar) offered some support for interactive objects across network. https://en.wikipedia.org/wiki/NoteCards https://en.wikipedia.org/wiki/NoteCards http://www.ubiq.com/hypertext/weiser/UbiHome.html http://www.ubiq.com/hypertext/weiser/UbiHome.html Which is why Alan Kay is not a big fan of the Web as such, "The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs." -- http://www.drdobbs.com/architecture-and-design/interview-with-alan-kay/240003442# http://www.drdobbs.com/architecture-and-design/interview-wit...
- dualogy 9y ago> The Web, in comparison, is a joke. The Web was done by amateurs. Which (like it or not --- I jump back & forth myself) is probably why it took off as explosively as it did..
- moron4hire 9y agohttps://www.hashcollision.org/whalesong/ https://www.hashcollision.org/whalesong/ it's a little stale, though. This is the latest repo: https://github.com/soegaard/whalesong https://github.com/soegaard/whalesong
- fu86 9y agoAn eBook for $50?
- projektfu 9y agoIt has a niche audience. I'd be surprised if it sold 1,000 copies at any price. But if I were interested in the subject, $50 is not a lot of money if I thought it would get me on the ground running. I paid for Discover Meteor, for example.
- r3bl 9y agoAnd, as always, they sync the prices in EUR and USD, so it's $8 more expensive to buy the book from Europe.
- always_good 9y agoMeh, how about the variance in purchasing power and cost of living among all the places that use just one currency? You'll find differences even greater than $8. Prices are arbitrary. Locking USD = EUR makes you superficially feel like you're getting ripped off but it's still arbitrary. You're also paying the same as someone making $100k/year more or less than you.
- alien_at_work 9y agoRacket is interesting, but what turns me off about the language is that they decided they needed OO for some things and they... implemented a single dispatch based system. Why would you limit yourself this way if you don't need to? Single dispatch systems force you into all kinds of "power deficiency patterns" (e.g. all double-dispatch patterns) that just wouldn't be necassary if you do multiple dispatch a la CLOS. You don't have to re-implement all of CLOS if you don't want but at least use something like generic functions instead of the inferior (and ugly in Racket) single dispatch style.
- moron4hire 9y agoDynamic dispatch is available for functions: https://docs.racket-lang.org/multimethod/index.html https://docs.racket-lang.org/multimethod/index.html Since Racket methods are just functions around a class context, it seems like it should be possible to make these into methods.
- alien_at_work 9y agoIt's good that they have that, but most of the OO API's (including the web server stuff AFAIR) is single dispatch.
- samth 9y agoThe web server doesn't really use the object-oriented features. OO is mostly used in the Racket standard library for the GUI, where it models existing single-inheritance GUI libraries.
- sigstoat 9y ago> Racket is interesting, but what turns me off about the language is that they decided they needed OO for some things and they... implemented a single dispatch based system. yeah, frustratingly they have a great core language and then tack on optional OO, generics or static typing systems that are about 80%-90% baked. then those systems see just enough use they can't be ignored, but not so much that someone steps up to finish the last bit of baking.
- milesstevenson 9y agoWill the book have exercises?
- achikin 9y agoIt's just an upcoming book advertisement. Nothing valuable in this article.
- deleted 9y ago[deleted]