Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
SAVE-LISP-AND-DIE
Nov 4, 2010

Pollyanna posted:

I'm doing some Elixir practice projects and the concept of OTP and functions as processes is definitely interesting, but I'm having a hard time understanding the real world application of it and why you would want to structure a system that way, and what kind of common problems/notable systems and products call for OTP. What is it usually used for? Phoenix always talks about chat apps 'n stuff, but that seems like a different thing to me.

I enjoyed Elixir In Action. Some sections in the print version regarding data structures are a little outdated, but the author keeps the sample code up to date on a GitHub.

Adbot
ADBOT LOVES YOU

SAVE-LISP-AND-DIE
Nov 4, 2010
I asked this in the general questions thread and was recommended to ask here:

In the year 2017, what are the compelling arguments to choose between Common Lisp, Scheme and Clojure for side project webdev?

Context:
I get the impression that CL spec is a touch outdated.

I like functional programming, pattern matching and algebraic data types are fantastic.

I write c#/js by day.

Oh great Lisp greybeards, lend me your knowledge!

SAVE-LISP-AND-DIE
Nov 4, 2010

Pollyanna posted:

Side project web dev, specifically? Clojure by far. Clojure has a pretty robust selection of web development libraries ranging from basic HTTP handling, to SQL abstraction, to API management, and there's at least one legit web dev book to learn from.

Disclaimer: I am basically the opposite of a greybeard, so take my advice with a grain of salt. But, I have had good experiences doing web dev in Clojure!


rt4 posted:

Clojure is the most convenient for web development because of its robust ecosystem, specifically the Luminus framework. It's more of a set of libraries with some basic scaffolding than anything Rails-like, which is why it's good. Programming in Clojure makes using Clojurescript more convenient, which is also a substantial benefit. The main downside of Clojure is that the error messages suck.

Common Lisp is good, too. SBCL can produce really fast binaries, there's a good webserver (woo), and plenty of other good tooling, including frameworks. The only downside I can think of is that reading the spec kinda sucks and that trying to figure out where your compiler diverges from the spec also sucks, but usually it's not a big deal in practice.

Every major Scheme implementation has at least a web server available for it, but I'm not aware of any that have a full-featured web stack with sessions, routing, and everything already well-considered the way Clojure has with Luminus. I'm on a personal crusade to make this happen for Racket, although Racket will be hampered by its execution speed for the forseeable future.

All of these languages have superb Emacs support, fwiw


xtal posted:

Clojure is very nice but I'm going to recommend Racket as well. Those are probably your two best bets. SBCL is blazing-fast and battle-tested but shows its age, and Lisp-2 semantics were never not awful.

Thanks for the replies. It sounds like Clojure is the quickest choice to go from zero to something working.

I'm interested in the recommendations for Racket. The official website plays up the DSL writing aspect, how much is that used in day-to-day coding?

  • Locked thread