Live data from Hacker News

Why Racket? Why Lisp?

practicaltypography.com

111–120 of 295 posts

Re: Why Racket? Why Lisp?

#111
post #35

From what I've seen out of the Clojure community over the past few years, it seems like they're far more likely (and able) to offer up concrete examples of how Clojure makes their businesses and products successful in a way that an imperative language could not. So, yay Clojure community, and boo on hand-wavy Lisp people. e.g.: http://www.kreuzwerker.de/en/blog/posts/why-clojure-rocks-2/ https://news.ycombinator.com/…

That is also a sore point from the Lisp community in regard to Clojure. Clojure devs are willing to compromise a bit to allow a good integration within the JVM and other implementations, thus allowing some shops to buy into Clojure. Whereas many in the Common Lisp community will not, no matter what.

I don't see CLers as having a problem with JVM interop per se. ABCL is often recommended as a perfectly respectable implementation for people who need Lisp on the JVM. But it's true that Clojure and ABCL take different approaches to it.

Re: Why Racket? Why Lisp?

#113
post #108
post #104

Earlier quoted context omitted.

>a lisp programmer might eventually put together a collection of idiosyncratic macros with much of the functionality of Rails, but that wouldn't be a project you could hire someone else to maintain There is, in fact, such a thing as Common Lisp libraries . See https://github.com/quicklisp/quicklisp-projects 1034 projects with ~48 waiting to be added.

Sure, but is there a one-stop framework that lets you write a CRUD web application as fast as you can with Rails? Was there such a thing in the '90s?

No, CL has like 10 different web frameworks or so. I never used any of them, not a big fan of Rails either though.

Talking about the 90s, there was no Ruby. But I guess we could have had Lisp on Lanes in the 90s, if there had been demand.

Re: Why Racket? Why Lisp?

#114
post #35

From what I've seen out of the Clojure community over the past few years, it seems like they're far more likely (and able) to offer up concrete examples of how Clojure makes their businesses and products successful in a way that an imperative language could not. So, yay Clojure community, and boo on hand-wavy Lisp people. e.g.: http://www.kreuzwerker.de/en/blog/posts/why-clojure-rocks-2/ https://news.ycombinator.com/…

That is also a sore point from the Lisp community in regard to Clojure. Clojure devs are willing to compromise a bit to allow a good integration within the JVM and other implementations, thus allowing some shops to buy into Clojure. Whereas many in the Common Lisp community will not, no matter what.

>Whereas many in the Common Lisp community will not, no matter what.

Common Lisp on the JVM: http://abcl.org/

Common Lisp/Java bridge: http://foil.sourceforge.net/

Re: Why Racket? Why Lisp?

#115
post #58

From what I've seen out of the Clojure community over the past few years, it seems like they're far more likely (and able) to offer up concrete examples of how Clojure makes their businesses and products successful in a way that an imperative language could not. So, yay Clojure community, and boo on hand-wavy Lisp people. e.g.: http://www.kreuzwerker.de/en/blog/posts/why-clojure-rocks-2/ https://news.ycombinator.com/…

> ... in a way that an imperative language could not Perhaps a nitpick, but sometimes nomenclature is important. Clojure (like all Lisps) is an imperative programming language. "Imperative" languages are contrasted with "declarative" languages[1]. Where does functional fit in and what is the name for "non-functional"? Well, that's not clear, as "functional" (in the PL sense) doesn't even have an agreed upon definitio…

It is meaningless to nitpick about whether a language is declarative or not since the term "declarative" lacks a good definition. Robert Harper, a programming languages researcher, lists 6 separate definitions and concludes, "It seems to me that none of them have a clear meaning or distinguish a well-defined class of languages. " [1]

[1] http://existentialtype.wordpress.com/2013/07/18/what-if-anyt...

Re: Why Racket? Why Lisp?

#116
post #106

Can not resist... This article is fairly misguided. I find it painful that everybody who writes about a Lisp offshoot (Scheme, Clojure, ...) ends up misrepresenting Common Lisp. To sum up "Why Lisp?" from a CL perspective: CL has pretty much every feature of every programming language around, only that its better designed, implemented and generally more powerful. It's just a poweruser language. Its not just macros, s…

I would take issue with the OOP in CL being better implemented than other languages. Don't get me wrong, the Metaobject Protocol is a feat of modern engineering, but the actual result is an OOP that feels tacked on after the fact. CLOS is very powerful, but when it comes to OOP, other languages are syntactically cleaner in their implementations. Also, it's a bigger debate, but the lack of hygenic macros in CL is ofte…

> syntactically cleaner in their implementations.

Listen to yourself please.

> lack of hygenic macros in CL

Which lack? CL macros are usually very hygienic, being a Lisp-2 and all, having GENSYM.

> I love CL, but it's helpful to remember its limitations.

What limitations? Not having syntactical things you seem to like and supporting non-hygienic macros are not limitations. Quite on the opposite, I believe these are features.

Re: Why Racket? Why Lisp?

#117
post #108

Earlier quoted context omitted.

Sure, but is there a one-stop framework that lets you write a CRUD web application as fast as you can with Rails? Was there such a thing in the '90s?

No, CL has like 10 different web frameworks or so. I never used any of them, not a big fan of Rails either though. Talking about the 90s, there was no Ruby. But I guess we could have had Lisp on Lanes in the 90s, if there had been demand.

> Talking about the 90s, there was no Ruby.

There was Ruby publicly released for a little under half of the 1990s (from late 1995.) There wasn't Rails until a decade later, though.

Re: Why Racket? Why Lisp?

#118

Earlier quoted context omitted.

Can you please explain to me what's important about these functions being anonymous? Why, specifically, they shouldn't be given a name? How do you define working "efficiently with higher-order functions"? Given that Python fully supports higher-order functions, I am really curious what you could mean. I didn't downvote you, but it may have to do with your pointed assertion here, without anything in the way of an argu…

some_collection.where(x -> x.name == 'foo').sort_by(x -> x.age) These functions are tiny and trivial. They don't need names, and if you were to give them names, the extra weight becomes burdensome. Not just in syntax duplication, but the redundancy of the name as a comment on the trivial function body. nameIsFoo = x -> x.name == 'foo' getAge = x -> x.age some_collection.where(nameIsFoo).sort_by(getAge) Note that givi…

Sure, but those are one-line functions, which Python supports through lambdas. (Incidentally, some of them could be done with the operator module, without defining a new function). I would argue that once you write a multi-line function, it makes sense to give it a name and define it separately, which makes the "no multi-line anonymous functions" complaint less pressing.

Re: Why Racket? Why Lisp?

#119
post #90

Earlier quoted context omitted.

> all Lisps seem to be more or less interchangeable when it comes to the language Definitely not true. It may be true to an extent for implementations of one particular lisp, like Common Lisp or Scheme, but even then there are very real, and significant differences. Simple and regular syntax makes it actually much easier to build many different semantics, and that's what lisps are about. Racket has less libraries tha…

Thanks for the clarification. Is it worth considering others besides Racket and Clojure as a first Lisp? Are there Lisp equivalents of Vim and Atom as well?

Yes, Common Lisp. Gradually-typed, fast, compiled, standarized, stable, and with multiple mature implementations.

Re: Why Racket? Why Lisp?

#120
post #44
post #37

Earlier quoted context omitted.

I was under the impression that Python emits an error about inconsistent indentation at compile time (the initial parsing and interpretation of a script file), not runtime (+x time units later, after the program has started). Is that incorrect?

I'm talking about something like this.. def foo(): do_this() and_this() later I change it.. def foo(): if something(): do_this() and_this() oops... and_this() should have been in the if block and I won't find out till I run it. (imagine a much bigger more complex example of the above function) In large pieces of code this can be easy do. If you are forced to use parenthesis it's much more difficult to make this error…

After you write a fair amount of Python code (<5000 lines I guess), that idiom will strike you immediately.
Post reply on HN