Hacker News new | ask | show | jobs
by jarule 650 days ago
No, lisp is not the Linux of languages. Steve Yegge sums it up "Every single non-standard extension, everything not in the spec, is 'wrong' with Common Lisp. This includes any support for threads, filesystem access, processes and IPC, operating system interoperability, a GUI, Unicode, ..."

And to answer your last question, no, lisp cannot read like English since predicate precedes subject a la Yodaspeak.

2 comments

Nope; Yoda puts the predicates (verbs) last (or, not quite, see below). This is very similar to Japanese. Yoda is obviously Japanese-inspired, both in name and mannerism.

Forth and PostScript are programming language yodaspeak, but actually even more like Japanese than yodaspeak, due to doggedly putting verbs last, even in their embedded clauses.

Lisps actually follow the English S-V-O order.

For instance "Go home!" is plain English, and it looks like (go home) if transliterated to Lisp syntax.

Because it is imperative, there is an implicit subject, "you" (you go home); we don't see it and so we are left with V-O.

Lisps are not special; they are similar to command languages in which the name of a utility serves as the verb, followed by the arguments, which are like modifying phrases, objects and whatnot. Not to mention, Lisp expressions are similar to the function calls in mainstream languages, historic and current. What you usually don't see is subj.verb(obj, ...). In the Common Lisp object system, the leftmost object in a generic function invocation is not special; it is not assumed to be the thing doing the action. So (draw obj canvas) is still "(You, computer) draw the object on the canvas (using the method best suited for those two objects based on the combination of their type)", and not "Object, draw yourself on the canvas (based on a method selected using your type only, which then uses the abstract services of the canvas)".

Yoda is from an advanced ESL class of pseudo-Japanese immigrants, by the way, and so doesn't reverse everything. For instance, "you must go home" comes out in yodaspeak as "go home, you must". This is grammatical English, which "you, home go, must" (closer to true Japanese order) would not be.¹

Yoda has a fine command of English grammar; he correctly uses the processes of topicalization and extraposition to imitate some features of his Japanese-like native language.

--

1. E.g. あなた、家に帰らなやだめだ。 (Anata, ie-ni kaera-nakyadame-da). Anata is you, ie-ni is home-to, "karea" is a combining for of the verb "kaeru" which means return home, and nakyadame + da is a suffix that adds "must" to the verb, and is itself a verb due to the copula "da". The verbs are doggedly last.

My last question is more specific: can a language be designed with a syntax that is not yodaspeak yet still maintain the power of lisp?
Obviously yes, since a given Lisp isn't yodaspeak and has the power of that Lisp.
No, as a functional language, the predicate unambiguously comes first.