raganwald
(This is a snapshot of my old weblog. New posts and selected republished essays can be found at raganwald.com.)

Wednesday, January 18, 2006
  (eq? 'lisp 0)


I just read (via Jim Loy's math pages) that it took Europe approximately five centuries to adopt zero and the Hindu-Arabic numbering system. ("from about twelve hundred when Fibonacci introduced Hindu-Arabic numbers to Europe, to about seventeen hundred when they became popular").

So... Lisp has only been around since nineteen fifty-nine or so, not even five decades. We may have to wait another four hundred and fifty-four years before every programming language embraces program/data equivalence, bottom-up programming, functional programming, macros, and even parentheses.

As Jim points out, many people exposed to the new system may not have seen the advantages. Their existing zero-less numbering systems suited their existing needs just fine. This argument struck me as familiar.

Plus ça change... (plus c'est la même chose).

Labels:

 

Comments on “(eq? 'lisp 0):
There's hope yet. Dynamic languages are increasing in popularity. A comment on one of my O'Reilly blog entries suggested that Ruby may be the gateway drug to CLOS.

People are unlikely to adopt, um, "weirdo" language idioms for a vague promise of increased power, but if they rub shoulders with enough new ideas (meta-programming, for example) then some of the weirdness may go away.

Maybe there needs to be a super-useful DSL-based development library, written perhaps in Ruby, that "just happens" to use parantheses. Not *too* many, just enough so that they no longer look so alien.

James
 




<< Home
Reg Braithwaite


Recent Writing
Homoiconic Technical Writing / raganwald.posterous.com

Books
What I‘ve Learned From Failure / Kestrels, Quirky Birds, and Hopeless Egocentricity

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /