
Of Lisp Macros and Washing Machines (2011) - brudgers
http://www.loper-os.org/?p=401
======
GhotiFish

       "But no thank you Microsoft.  No thank you spreadshi^Heets.  No thank you 
        Unix.  No thank you C++.  No thank you unmodifiable syntax.  No thank you 
        von Neumann architectures.  No thank you unrepentant snake oil industry 
        that has lured us into performing the same old menial tasks by mouse instead 
        of by lever and duped almost everyone involved into thinking of this as some 
        kind of progress."
    

Wow, did he ever go off the rails on that paragraph.

spreadsheets? Unix? C++? Unmodifiable syntax? The theory behind every single
one of these concepts was to save time.

Faster calculations, an OS with a simple concept applied everywhere, a
language implementing an interesting design pattern, a style designed to
reduce bugs.

I don't think I follow this story.

~~~
brudgers
_"I don't think I follow this story."_

The author's ultimate reference point is the Lisp Machine. Being Lisp "all the
way down," the user could modify running code even at the OS level upon
encountering an error or other undesirable result.

~~~
Guvante
The idea of someone updating the kernel due to an undesirable result makes me
fear for my life. "That's odd, why is it failing when I deref 0, that is an
odd check, I will just remove it"

~~~
ScottBurson
That's why Lisp Machines were single-user workstations :-)

~~~
lispm
With minor exceptions.

The LMI Lambda 3x3 was kind of a three user machine.

------
holri
Washing Machines did not save time!

This is because with the advent of these machines also our hygiene habits
changed. We wash a lot more than before, and therefore there is no time saving
but cleaner clothes.

The same is true for computers. They did not save time, they changed the way
we treat information. We have a lot more than before to process.

~~~
arh68
Surely you don't mean to refute Hans Rosling's testimony that his mother had
more time to read to him? I think you have an interesting viewpoint. If these
technologies don't actually save any time, it follows that we spend as much
doing X before the technology than after. So 4 hrs/wk washing 1 loads/wk +
washing machine => 4 hrs/wk washing 4 loads/wk.

What if you reverse this and apply it to computers? I spend maybe 2-3 hours in
Excel every week. If I were born 100 years earlier, would it follow that I'd
also spend 2-3 hrs/wk making spreadsheets, albeit at a much slower work pace?
It seems doubtful. I've got only a few dozen sheets, tops. Lots of time spent
in Excel is tweaking, making things line up / look right, updating kludges,
etc. Busywork, basically. Maybe this is my fault; the 'math' tells me I should
have lots of sheets, but I get caught up doing busywork on this machine that's
supposed to automate the whole ordeal. What a scam!

~~~
holri
Another example: The advent of the car or plane did not reduce the live time
spent on traveling but expanded the ways. People and their priorities and
motivations for giving a slice of their live time to a particular kind of
activity do not change greatly because of technology.

~~~
PhineasRex
Have you ever flown across the country?

~~~
holri
Since some inhabitants of one country think their country is the world I can
imagine which one of the 194 countries you think of.

The answer therefore is yes.

------
codewright
To be a Lisper is to know sorrow and pain.

Our best hope is a slave to an alien runtime.

~~~
fractallyte
"Everybody complains about the weather, but nobody _does_ anything about it."
-- Charles Dudley Warner

~~~
a_p
That's a nice quote, but it's not really true. Check out cloud seeding [1].

[1] <https://en.wikipedia.org/wiki/Cloud_seeding>

------
pjmlp
I would at least blame the security issues we have nowadays on UNIX by getting
C widespread for systems programming, instead of more suitable languages.

~~~
hp50g
I'd actually blame it on idiots writing C myself.

You can't really have a totally safe systems programming language (correct me
if I'm wrong here).

~~~
coldtea
> _I'd actually blame it on idiots writing C myself._

Couldn't be more wrong though.

The people that wrote UNIX and its whole C userland were far from idiots --
more like geniuses. People like K&R, Bill Joy, etc (and until the 90s they
weren't even that many, mainly people from elite computing schools and
research centers).

It's not like some moron high school dropout, "Learn C in 24 hours"-reading
people wrote UNIX and the common server stuff we use (Bind, Sendmail, etc).

~~~
miloshadzic
I like that Unix, Smalltalk and Lisp have a similar idea of smaller things
getting composed. They are all different but I wouldn't judge the ideas based
on what we have today.

------
MichaelMoser70
I think the problem with macros is that they do not always compile and do not
always work fine. Debugging macros is hard by any definition, because you have
to reason about both what is written and what goes on behind the scenes. A
macro is great if the same genius is both writing the macro and using it,
otherwise it sucks, in practical terms. With a function things are much easier
– one know what gets in, and you can tell the author of the function what has
gone wrong; much easier then trying to understand how the macro did unwind;
with macros the additional complexity is that one has to understand what the
user of the macro was trying to do.

------
DanWaterworth
_But as soon as you need to express new domain concepts in a language that
does not natively support them, macros become essential to maintaining good,
concise code._

There are good arguments for macros, but this is not one of them. Macros are
certainly not essential for this purpose.

~~~
projectileboy
No, but helpful. In addition to data abstraction and functional abstraction,
it's nice to have syntactic abstraction as yet another tool for reducing code
duplication.

------
aartur
No, functions do the washing. Macros where used in the factory by a designer
only.

~~~
cmpitg
Not really. Macro makes your washing machine a "generic" one, where you could
wash your clothes _and_ your cups (even at the same time) :-).

