Live data from Hacker News

Why Racket? Why Lisp? (2014)

practicaltypography.com

141–150 of 168 posts

Re: Why Racket? Why Lisp? (2014)

#141
post #130

Earlier quoted context omitted.

That's really overstating it, especially seeing as Lisp has barely existed for half a century, and people like ESR call it "LISP" to this day.

AFAIK the allcaps "LISP" fell out of favour in 1984 when Common Lisp was introduced, and only the original Lisp implementation and Mac Lisp used the allcaps name. Much like Fortran (no longer FORTRAN), the acronyms became proper names in their own right.

Someone pointed out that Common Lisp is case-insensitive by default, so really they have no grounds to object to the name LISP. ;-)

Re: Why Racket? Why Lisp? (2014)

#142
post #134
post #47

Earlier quoted context omitted.

It's not so sudden. HN itself is written in a LISP [1], and Paul Graham's pre-YC claim to fame was Viaweb, a store platform written in LISP that became Yahoo Stores. This community has been above-average LISP friendly for a long time. LISP's also has a long history of popping up all over the place because they are extremely implementation-friendly (if you want to write a simple language; if you want to make things fa…

> LISP's also has a long history of popping up all over the place because they are extremely implementation-friendly This is a LIE . I get tired of hearing this over and over. Broken Lisps are easy to implement. Try implementing a real s-expression parser in C. I'll wait. For example, this library: http://sexpr.sourceforge.net/ takes 5000+ lines of code. And it doesn't even handle dotted pairs! (For good reason, hand…

There is nothing difficult about writing an s-expression parser. None of the plethora of Scheme interpreters out there get parsing wrong. Handling dotted pairs is rather trivial compared to, say, getting hygienic macros right. Or implementing call/cc. Quasiquote handling is not even that difficult.

Re: Why Racket? Why Lisp? (2014)

#143
post #117
post #47

Earlier quoted context omitted.

It's not so sudden. HN itself is written in a LISP [1], and Paul Graham's pre-YC claim to fame was Viaweb, a store platform written in LISP that became Yahoo Stores. This community has been above-average LISP friendly for a long time. LISP's also has a long history of popping up all over the place because they are extremely implementation-friendly (if you want to write a simple language; if you want to make things fa…

It's spelled 'Lisp'. There has been zero overlap between people writing "LISP" and people writing lisp code for about half a century.

You're wrong, and you need to get off your high horse. People use "LISP" when referring to the general family of LISP-like languages. And people that do this tend to know about Common Lisp. That's why they do this.

Re: Why Racket? Why Lisp? (2014)

#144
post #126

Earlier quoted context omitted.

This is Matthew Butterick. I wrote “Why Racket? Why Lisp?” As I allude there, Paul Graham’s writings about Lisp (mostly in Hackers & Painters) helped persuade me to explore Lisp languages. (Those writings have also persuaded many others.) In particular, Arc's reliance on Racket persuaded me to take a serious look at Racket. So leaving aside quibbles about what “on top of” means — is Clojure not built “on top of” the…

I'm curious what data supports the idea that Lisps have gotten more popular. The total number of developers who know a Lisp may have grown, but the total population of developers is also rapidly growing. Measured as a % of language popularity, I'd expect it is largely flat, despite awesome mass-media efforts like Seibel's Practical Common Lisp http://www.gigamonkeys.com/book/

How many conferences would you have seen ten years ago with a prominent lisp showing? IIRC even the primary (at the time) ILC conference was only held every other year.

These days with more regional conferences starting it's nearly in the twenties, and attendance at Strange Loop (which has had lots of keynotes by lispers) is several thousand and growing.

Re: Why Racket? Why Lisp? (2014)

#145
post #7
post #4

Earlier quoted context omitted.

We seem to be on a Racket buzz lately, and I like it. I feel more inspired to dig further into Racket. I'm already pretty good with Clojure, so can anyone who knows both languages well comment on the ups and downs of learning Racket after learning Clojure?

This is a blog post by technomancy, the original author of Leiningen, exploring Racket as a new language: http://technomancy.us/175 EDIT: Wrong link. This one might be interesting as well so I've left it here: http://technomancy.us/169

The TL;DR I would give is this: Clojure is preferable when doing server-side performance-intensive software or in situations where its JVM library reach provides a significant advantage. Racket is a lot nicer for client-side stuff where you need a fast launch, lower memory profile, a GUI, or distributable executables.

If you already have a solid development environment set up and have spent a lot of time learning project management tools, you might have an easy enough time getting started with Clojure, but getting started with Racket tooling is easy even for children.

Clojure is a lot better out-of-the-box for FP, but Racket has third-party tools (like Rackjure and fector) that do a lot to close the gap. On the other hand, Racket has pattern matching out of the box which is really nice, but you can get that in Clojure as well using external libraries. One problem that you can't fix in a library is Clojure's omnipresent nil; Racket does a much better job of ensuring sensible semantics in error conditions, partly due to the fact that pattern-matching is built-in.

Re: Why Racket? Why Lisp? (2014)

#146
post #18

I have so far stuck with Clojure instead of a Scheme primarily because of the nice literal syntax for maps, sets, vectors, and regexes that Clojure supports. I don't want to give that up and just use cons/car/cdr. And also, last time I looked at Racket, it seemed very focused on academics. I just wanted to write some simple Scheme in a .scm file and try it out (a script), but I think I had to choose a language first…

> I don't want to give that up and just use cons/car/cdr. Any somewhat modern Lisp has hash tables, vectors, etc.

Yes, but they don't always have convenient literal notation or a consistent sequence abstraction that encompasses all collection types. For instance, I love Racket, but the hash literals are very noisy and apply implicit quoting, so they almost never get used. (Though Racket does a good job in most places of having a unified collection interface.) Emacs Lisp has the same problem but nothing coming anywhere close to a collection interface.

Re: Why Racket? Why Lisp? (2014)

#147
post #37

Earlier quoted context omitted.

Have not yet learned to use or appreciate macros. The idea of everyone having to come up with their own syntax for such commonly-needed things as, say, hashes, seems counter-productive to me. That would lead to everyone's code looking like a different language.

>commonly-needed things as, say, hashes Hash tables are commonly used in imperative programming, but they aren't needed so often in Scheme where we prefer to use a purely functional style. We usually use alists because they are persistent. When I reach for a mutable hash table, it's usually part of some imperative process where I start from an empty table. Depending on the Scheme you use, there could also be a persis…

Hash tables have nothing to do with imperative programming. It's just a coincidence that some MLs or Schemes don't include purely functional hash tables; Clojure and Racket both include have them.

Re: Why Racket? Why Lisp? (2014)

#148

I find all his digs at javascript funny since, at least the way I use it, javascript is basically an ugly-looking scheme. Javascript is responsible for my 'lisp enlightenment' with the language using first-class functions and closures, and the wide variety of precompilers. It strikes me as fashionable to hate on javascript. Java on the other hand, now that's a horrible language ;) ;)

> It strikes me as fashionable to hate on javascript.

Please name another programming language whose inventor has described it as having “a lot of stu­pid in it.”

It’s no longer a matter of fashion. It’s a matter of authoritative opinion.

Re: Why Racket? Why Lisp? (2014)

#149
post #131

Earlier quoted context omitted.

Every once in a while, I like to sit with a cup of hot tea or coffee, in my bathrobe, in read about Clojure. Algorithms, ideas, data structures - it's so .... just...clean and well thought out. There's something really nice about LISPs, and it's drawing me into it as well. I still do C#/Javascript/Java/whatever in my day job, but LISP is just...sexy. And for those that hate parens - Emacs paredit. Nuff said.

>parens If you include the curly braces, I'm not sure C/C++ has fewer parens than Lisp does, to be honest. Not much fewer, anyways.

It's the pre-fix parenthesis for scope that is the problem, I think.

function {} is more familiar mentally than (function).

Re: Why Racket? Why Lisp? (2014)

#150
post #130

Earlier quoted context omitted.

AFAIK the allcaps "LISP" fell out of favour in 1984 when Common Lisp was introduced, and only the original Lisp implementation and Mac Lisp used the allcaps name. Much like Fortran (no longer FORTRAN), the acronyms became proper names in their own right.

Someone pointed out that Common Lisp is case-insensitive by default, so really they have no grounds to object to the name LISP. ;-)

English is the relevant rule set here, not Lisp :)
Post reply on HN