From: Mallor
Subject: perceived efficiency
Date: 
Message-ID: <1156827080.734107.141780@p79g2000cwp.googlegroups.com>
Two years ago, C++ failed me in its basic capability to prototype.  I
started looking for a replacement High Level Language.  One of my goals
was to increase my efficiency as a programmer.  Certainly, I've heard
many people in both the Lisp and Scheme universes claiming, "Oh yeah,
Lisp / Scheme sure does make me more efficient!"  But since the
entireity of my past year has been spent on very basic open source
support burdens, I am inclined to wonder.

Sure, getting Chicken Scheme to work reliably under Windows is not a
fair test of HLL efficiency for various problem domains.  Rather, it is
a fair test of the efficacy of CMake over GNU Autoconf.  Be that as it
may, I do wonder about claims of efficiency for my own problem domains:
3D graphics, AI, and game development on Windows.  There are no HLLs
out there that anyone's done anything with.  Everyone in the game
industry uses C++ for the heavy lifting.  If efficiency isn't a
consideration, but web deployment is, then Java and C# get used.
Python, Ruby, and Lua get used for 3D engine scripting to some degree,
but again the heavy lifting is always done in C++.

My point is, efficiency seems to mean "somebody else already did the
work."  Libraries win.  When I hear people going on about how a
language makes them "more productive," I'm askance as to whether it's
just some library they're using.  Nothing to do with the language
itself.

I also wonder at how many programmers confuse efficiency with
*enjoyment*.  You may *enjoy* the syntax and features of Lisp / Scheme
more.  But does it actually make you any more productive? Do you
actually turn out features any faster?  I have a world view right now
that everything in computerdom is inherently a slog.  Or if not
everything, then certainly, anything that has an external dependency.
My daily drill is looking up yet another wad of arcane crap to get some
very basic small little thing working.  Now, I'm pretty good at
incrementally architecting such small little things, so I do make
overall progress towards bigger goals.  But it sure doesn't feel like
like a blitzkrieg.  Feels like cautiously slogging through a swamp,
making sure of one's footing every step of the way.

Sometimes a HLL has a capability that, in practice, a LLL simply can't
handle.  This is pretty much why I won't go back to C++ unless I'm paid
to, and even then, only as a stepping stone to better things.  But
scenarios of "no, you can't get that done in C++, Java, or C#, it'll be
way too painful," don't come as often as we'd like to believe.


Cheers,
Brandon Van Every

From: Joe Knapka
Subject: Re: perceived efficiency
Date: 
Message-ID: <%GQIg.7245$dl.661@tornado.texas.rr.com>
Mallor wrote:

> My point is, efficiency seems to mean "somebody else already did the
> work."  Libraries win.  When I hear people going on about how a
> language makes them "more productive," I'm askance as to whether it's
> just some library they're using.  Nothing to do with the language
> itself.

I've been thinking about this, too, and one conclusion I've
come to is that yes, libraries are really important.  They're
why my day job writing Java code doesn't completely blow.
But the *really* important thing is having libraries (and
languages) that *don't bite you in the ass*.  And the
nature of a language can make it easier to have that
property (or not).

It's pretty hard to achieve in C++. The standard
C++ library is really groovy, and was a real eye-opener
when I first started using it, but it's practically a
vorpal ass-blade. Few if any implementations actually
get everything right; and even if they do, I have a hard
time keeping all the interactions between language features
straight.  Non-ass-biting is, naturally, a lot easier
to achieve in Java or Scheme or, pretty much, any language
with decent resource management and decent implementations,
and reasonably clean semantics. (Even C wins on this axis
compared to C++, though, IMO.)  And of course, good (preferably
brief) documentation helps.  Simpler semantics in the surrounding
language --> fewer weird corner cases to cover in library
docs --> briefer docs --> greater likelihood those docs will
actually get written and be readable.

I don't mind reading library docs. But I don't want to have
to consult a language spec just to get code working.
Scheme and Python do that for me.  I haven't decided about CL
yet (having written hardly any CL code).

The other big deal (for me) is syntactic efficiency, where
Java loses big.  (Yes, IDEs can help, but why do I want
to run an 80MB Eclipse image when I could run a 20MB Emacs
image and get a better editor to boot?)  I don't have a
strong preference for Lisp or Scheme vs Python yet, on
this axis; I'm just exploring Lisp/Scheme to see what PG
is on about. So far, I like it.

-- JK

PS - It's a weird day when "small memory footprint" becomes
a reason to choose Emacs...
From: Tim Bradshaw
Subject: Re: perceived efficiency
Date: 
Message-ID: <ed0omj$dii$1$8302bc10@news.demon.co.uk>
On 2006-08-29 05:51:20 +0100, "Mallor" <···········@gmail.com> said:

> My point is, efficiency seems to mean "somebody else already did the
> work."  Libraries win.  When I hear people going on about how a
> language makes them "more productive," I'm askance as to whether it's
> just some library they're using.  Nothing to do with the language
> itself.

Yes, and this is half of my argument why Java is a good thing: it has a 
huge standard library, much of which actually is standard, and a good 
proportion of which doesn't suck.  Same for Perl, say.  (The other half 
is GC.)

(And before someone snipes: this doesn't mean Lisp is a bad thing.  
Religious wars are *so* last millenium.)

> 
> I also wonder at how many programmers confuse efficiency with
> *enjoyment*.  You may *enjoy* the syntax and features of Lisp / Scheme
> more.  But does it actually make you any more productive? Do you
> actually turn out features any faster?  I have a world view right now
> that everything in computerdom is inherently a slog.  Or if not
> everything, then certainly, anything that has an external dependency.
> My daily drill is looking up yet another wad of arcane crap to get some
> very basic small little thing working.  Now, I'm pretty good at
> incrementally architecting such small little things, so I do make
> overall progress towards bigger goals.  But it sure doesn't feel like
> like a blitzkrieg.  Feels like cautiously slogging through a swamp,
> making sure of one's footing every step of the way.

That's my theory.  98% of anything to do with computers is just hacking 
your way through the jungle with a blunt machete.  Lisp (or whatever) 
can save you 90% of the remaining 2%, but alas, that's only 1.8% of the 
total.

--tim
From: Ken Tilton
Subject: Re: perceived efficiency
Date: 
Message-ID: <5vXIg.24$p91.10@newsfe08.lga>
Tim Bradshaw wrote:
> On 2006-08-29 05:51:20 +0100, "Mallor" <···········@gmail.com> said:
> ....

>> I also wonder at how many programmers confuse efficiency with
>> *enjoyment*.  You may *enjoy* the syntax and features of Lisp / Scheme
>> more.  But does it actually make you any more productive? Do you
>> actually turn out features any faster?  I have a world view right now
>> that everything in computerdom is inherently a slog.  Or if not
>> everything, then certainly, anything that has an external dependency.
>> My daily drill is looking up yet another wad of arcane crap to get some
>> very basic small little thing working.  Now, I'm pretty good at
>> incrementally architecting such small little things, so I do make
>> overall progress towards bigger goals.  But it sure doesn't feel like
>> like a blitzkrieg.  Feels like cautiously slogging through a swamp,
>> making sure of one's footing every step of the way.
> 
> 
> That's my theory.  98% of anything to do with computers is just hacking 
> your way through the jungle with a blunt machete.  Lisp (or whatever) 
> can save you 90% of the remaining 2%, but alas, that's only 1.8% of the 
> total.

The only problem is that neither one of you is writing very interesting 
code. You should come work for me. There is not a library in the world 
that would help you with the code we develop. Sure, I /use/ libraries 
such as FTGL, OpenGL, GraphicsMagick etc etc, but that is just to get to 
the starting line. Over here, when the code gets hard I have to take a 
nap every thirty minutes and the "naps" feel like programming. This is 
The Graham Zone, where we do not know what program to write.

In the quest for repeatable income levels you have accepted assembly 
line work. Fine*, but don't blame programming for, or define it by, the 
consequences of that choice. There is a reason they call such work 
"golden handcuffs".

A month ago, while resurrecting (well, rewriting from scratch) an old 
commercial C application in CL, I got back to the same deadly functional 
problem that killed me for months and months on the C version, a problem 
that was more papered over than solved for the successful release. This 
time I had an idea, and a few days later I had implemented the idea and 
was exploring its behavior. After a tweak or three it simply ripped 
through every one of the dozens of varieties of task it had to handle, 
even though the implementation testing and tweaking had been done 
against one initial test case.

Hellasweet. Just two more Dark Continents of functionality to stare down 
and I can ship -- well, no, then there will be a month or two of the 
kind of code you guys write. Send me your resumes. :)

kt

* When I worked in tall buildings I still blew the body shop workers 
away with metalevel code. In COBOL, then Vax Basic. Maybe you Javans are 
missing opportunities to do Great Things. k

-- 
Cells: http://common-lisp.net/project/cells/

"I'll say I'm losing my grip, and it feels terrific."
    -- Smiling husband to scowling wife, New Yorker cartoon
From: Mallor
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156886951.142400.313550@e3g2000cwe.googlegroups.com>
Ken Tilton wrote:
> Tim Bradshaw wrote:
> >
> > That's my theory.  98% of anything to do with computers is just hacking
> > your way through the jungle with a blunt machete.  Lisp (or whatever)
> > can save you 90% of the remaining 2%, but alas, that's only 1.8% of the
> > total.
>
> The only problem is that neither one of you is writing very interesting
> code.

I agree that getting Chicken Scheme to build reliably on all the
different Windows compilers + all other platforms is not an interesting
problem.  It is, however, important to Chicken's infrastructure.
Should I have gone with some other implementation a year ago?
Debateable, and a lot of second guessing.  Should I dump Chicken now?
Not really, as I've solved what needed to be solved.

> You should come work for me.

Ok we'll talk...

> In the quest for repeatable income levels you have accepted assembly
> line work.  Fine*, but don't blame programming for, or define it by, the
> consequences of that choice. There is a reason they call such work
> "golden handcuffs".

Not at all.  Actually I'm the most fearless bleeding edge adopter of
anyone I've ever met.  I don't know anyone else who has done bankruptcy
and food banks just to find his way through programmerdom on his own
terms.  I got free of the golden handcuffs a long time ago.  It irks me
that I'm skilled in many ways that don't readily translate into money.
I handle "Where No Man Has Gone Before" just fine.  It's where a
bazillion drones have gone before that I just yawn and can't be
bothered.

I don't know about defining "programming."  But given the past 2 years,
I'm definitely very sure that "open source programming" leaves tons to
be desired.  It is an open invitation to endless trivial support
burdens.

> Hellasweet. Just two more Dark Continents of functionality to stare down
> and I can ship -- well, no, then there will be a month or two of the
> kind of code you guys write. Send me your resumes. :)

Well, there you are.  You're not immune to most of computerdom being
tedious drivel that has to get done if you actually want anything to
work.  If you have to outsource to 5 guys to make something work, then
that part of your development isn't particularly efficient or
innovative.  It's just gruntwork that you'd rather not do.  So the
question is, how much of one's development is innovative and efficient
vs. just gruntwork.  Your % may be better than Tim's 98%, but what %
are you willing to put on it?


Cheers,
Brandon Van Every
From: Tim Bradshaw
Subject: Re: perceived efficiency
Date: 
Message-ID: <ed20bf$slj$1$830fa79d@news.demon.co.uk>
On 2006-08-29 14:40:22 +0100, Ken Tilton <·········@gmail.com> said:
> The only problem is that neither one of you is writing very interesting code.

Well, yes.  98% of anything to do with computers is not very interesting code.

--tim
From: Ken Tilton
Subject: Re: perceived efficiency
Date: 
Message-ID: <rq4Jg.727$Cn5.307@newsfe09.lga>
Tim Bradshaw wrote:
> On 2006-08-29 14:40:22 +0100, Ken Tilton <·········@gmail.com> said:
> 
>> The only problem is that neither one of you is writing very 
>> interesting code.
> 
> 
> Well, yes.  98% of anything to do with computers is not very interesting 
> code.

This correlates nicely with you not having written any Lisp in two 
years. You could add four lanes to my carpal tunnel and I still could 
not write all the code I am dying to write*. I suggest you try 
bartender's school to support yourself, start programming for fun again.

:)

ken

* Mind you, I use Cells, so all the boring stuff is automated away. 
Hellasweet. k

-- 
Cells: http://common-lisp.net/project/cells/

"I'll say I'm losing my grip, and it feels terrific."
    -- Smiling husband to scowling wife, New Yorker cartoon
From: Mallor
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156900636.280213.168150@m79g2000cwm.googlegroups.com>
Ken Tilton wrote:
> I suggest you try
> bartender's school to support yourself, start programming for fun again.

I've done the equivalent of this, with signature gathering.  When you
aren't getting paid to do the programming, and your day job consumes
tons of time, and you're not exactly supporting yourself with it
anyways, it's a barrier to getting much of anything done.  It's pretty
much the classic "starving artist" problem.  I've been hoping that at
present, I can find an overlap between things I know how to do and am
willing to do, and things I can get paid for.  But it's clear I'm
missing something about the computational landscape.  At any rate, I
know my job hunting is much more labor intensive than the garden
variety "golden handcuffed" programmer.

I wish great open source frameworks existed for getting things done.
As far as I'm concerned, for Windows game development, they don't.  And
if you can't write a game with some kind of sanity of labor, what the
heck is going to be "for fun" in programming anyways?  I can think of
any number of scientific or engineering problems that I'd find
interesting, but it's quite a stretch to say I'd pursue them *for fun*.
 There's an industrial dimension to such problems, and then you're back
to gruntwork again.  To put it another way, we're not at the point in
history where Junior gets his "How To Code Your Very Own Retroviral
DNA" kit for $19.95 at Walmart.

I can't value the process of programming by itself.  There has to be a
result.  This is another aspect of perceived efficiency that really
makes me wonder, especially when talking to guru programmers.  They're
having fun with what they're doing, but is there any result?  Any
consequence that the rest of the world cares about?  Or is it
self-absorption, like writing for oneself and never publishing?


Cheers,
Brandon Van Every
From: Tim Bradshaw
Subject: Re: perceived efficiency
Date: 
Message-ID: <1157043196.244932.311560@b28g2000cwb.googlegroups.com>
Ken Tilton wrote:

> This correlates nicely with you not having written any Lisp in two
> years. You could add four lanes to my carpal tunnel and I still could
> not write all the code I am dying to write*. I suggest you try
> bartender's school to support yourself, start programming for fun again.

Actually, no.  Most of the little stuff I do write nowadays are
use-once programs which only I will use, so they don't have to deal
with all the normal cruft, so they have a much higher
interesting-to-boring ratio than anything I used to do (including in
Lisp).  And the rest of the time I get to do things I'm more interested
in as well, so it's a win.

--tim
From: Pascal Bourguignon
Subject: Re: perceived efficiency
Date: 
Message-ID: <87hczvfd3t.fsf@thalassa.informatimago.com>
Tim Bradshaw <···@tfeb.org> writes:

> On 2006-08-29 14:40:22 +0100, Ken Tilton <·········@gmail.com> said:
>> The only problem is that neither one of you is writing very interesting code.
>
> Well, yes.  98% of anything to do with computers is not very interesting code.

But sometimes even uninteresting code makes an interesting feature.

When I started working, every night we had to enter a sequence of
numbers printed from one batch into the terminal for the next batch.
I couldn't stand it so I wrote a little program that was rather
uninteresting (nothing special about it), but it could automate this
data transfer between the two phases and made us finish our work half
an hour earlier every night. 
Pleasing result from an unpleasing program :-)

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"Our users will know fear and cower before our software! Ship it!
Ship it and let them flee like the dogs they are!"
From: Mallor
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156887094.346218.45090@m73g2000cwd.googlegroups.com>
Pascal Bourguignon wrote:
> Tim Bradshaw <···@tfeb.org> writes:
>
> > On 2006-08-29 14:40:22 +0100, Ken Tilton <·········@gmail.com> said:
> >> The only problem is that neither one of you is writing very interesting code.
> >
> > Well, yes.  98% of anything to do with computers is not very interesting code.
>
> But sometimes even uninteresting code makes an interesting feature.
>
> When I started working, every night we had to enter a sequence of
> numbers printed from one batch into the terminal for the next batch.
> I couldn't stand it so I wrote a little program that was rather
> uninteresting (nothing special about it), but it could automate this
> data transfer between the two phases and made us finish our work half
> an hour earlier every night.
> Pleasing result from an unpleasing program :-)

Yes, my work on Chicken Scheme's CMake build is driven entirely by a
sense of aesthetics.  Computers are not supposed to suck, and *this* is
not going to suck, goddamn it!


Cheers,
Brandon Van Every
From: justinhj
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156868982.576390.24080@m79g2000cwm.googlegroups.com>
Mallor wrote:
> I also wonder at how many programmers confuse efficiency with
> *enjoyment*.  You may *enjoy* the syntax and features of Lisp / Scheme
> more.  But does it actually make you any more productive?

Personally what I find more productive about lisp is that I'm enjoying
writing lisp code so I do it more, and I focus better.

Lisp code is also more powerful. You get more bang for your buck, more
action for less editor window real estate.

Lisp has better debugging, and I can program interactively to extents
that visual studio with edit and continue does not compare with.

> My daily drill is looking up yet another wad of arcane crap to get some
> very basic small little thing working.

How long have you been doing the drill? It seems like a long time. Long
enough perhaps to have struggled and achieved what you wanted via C++,
or even assembly. Or even to have written your own compiler like the
guys at naught dog did.

What seems to be holding you back from Common lisp is lack of
libraries. Well we've integrated opengl, SDL, openRM, ODE and others in
a cross platform, cross lisp implementation way ...

http://www.balooga.com/dokuwiki/doku.php?id=lispbuilder

And the next thing holding you back is you can't get a lisp compiler
for free.

Well, you can still develop using trial versions or clisp, and then buy
the full version once you sell your game or start getting funding for
development.

Justin
From: Javier
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156872669.962651.116920@i42g2000cwa.googlegroups.com>
justinhj wrote:
> http://www.balooga.com/dokuwiki/doku.php?id=lispbuilder

I've tried to install this on OSX with SBCL and doesn't work. It seems
that a lot of things need to be done for working in this plattform.
From: Luke Crook
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156876209.522483.73790@m73g2000cwd.googlegroups.com>
Javier wrote:
> justinhj wrote:
> > http://www.balooga.com/dokuwiki/doku.php?id=lispbuilder
>
> I've tried to install this on OSX with SBCL and doesn't work. It seems
> that a lot of things need to be done for working in this plattform.

The problem is that none of us working on the project have access to a
Mac.

- Luke
From: Fabien LE LEZ
Subject: Re: perceived efficiency
Date: 
Message-ID: <bc0af2lhnsnnoi2jjfekhtvuubqbkfcdrn@4ax.com>
On 29 Aug 2006 11:30:09 -0700, "Luke Crook" <····@balooga.com>:

>The problem is that none of us working on the project have access to a
>Mac.

Did you try an emulator, like qemu or Vmware?
From: Luke Crook
Subject: Re: perceived efficiency
Date: 
Message-ID: <1156977794.799874.108340@b28g2000cwb.googlegroups.com>
Fabien LE LEZ wrote:
> On 29 Aug 2006 11:30:09 -0700, "Luke Crook" <····@balooga.com>:
>
> >The problem is that none of us working on the project have access to a
> >Mac.
>
> Did you try an emulator, like qemu or Vmware?

Do these come with a free copy of OSX?
From: Fabien LE LEZ
Subject: Re: perceived efficiency
Date: 
Message-ID: <2ojdf2pt2q1tfca6421d6t4q9uq3no56qd@4ax.com>
On 30 Aug 2006 15:43:14 -0700, "Luke Crook" <····@balooga.com>:

>> Did you try an emulator, like qemu or Vmware?
>
>Do these come with a free copy of OSX?

No, you have to download them.
Qemu is free.
Vmware has a free version, but I didn't really understand the
difference between the awfully-expensive version and the free version.
From: Rob Thorpe
Subject: Re: perceived efficiency
Date: 
Message-ID: <1157026090.202789.235290@m79g2000cwm.googlegroups.com>
Fabien LE LEZ wrote:
> On 30 Aug 2006 15:43:14 -0700, "Luke Crook" <····@balooga.com>:
>
> >> Did you try an emulator, like qemu or Vmware?
> >
> >Do these come with a free copy of OSX?
>
> No, you have to download them.
> Qemu is free.
> Vmware has a free version, but I didn't really understand the
> difference between the awfully-expensive version and the free version.

:) Re-read the question.

No they don't come with free OSX.
From: Fabien LE LEZ
Subject: Re: perceived efficiency
Date: 
Message-ID: <oeldf25o4do97otttrohfk6m2klidpf89n@4ax.com>
On 31 Aug 2006 05:08:10 -0700, "Rob Thorpe"
<·············@antenova.com>:

>:) Re-read the question.

Oops, sorry.

(Actually, it might be my English that's not good enough, but I
believe your question could mean both what you meant to say, and what
I understood.)

>No they don't come with free OSX.

Well, there are "less official" ways to get around this problem.

Another, more official way, would be to find an older version for
rather cheap at ebay, and open a Paypal subscription to pay for it.
[Just checked: you can even find a iMac with OS X with a "buy it now"
price of $50.]
From: justinhj
Subject: Re: perceived efficiency
Date: 
Message-ID: <1157031269.123365.118340@m79g2000cwm.googlegroups.com>
Fabien LE LEZ wrote:
> On 31 Aug 2006 05:08:10 -0700, "Rob Thorpe"
> <·············@antenova.com>:
> Another, more official way, would be to find an older version for
> rather cheap at ebay, and open a Paypal subscription to pay for it.
> [Just checked: you can even find a iMac with OS X with a "buy it now"
> price of $50.]

Application builder is an open source project run by volunteers. Whilst
we have gone to some lengths to ensure compatibility on different lisp
implementations and on linux and windows XP, I don't think it's likely
we will buy, or use a pirate version of OS X in order to extend support
to that platform.

However if somebody wanting to use this on OS X sends us bugs then we
will fix them, and endevour to help them get it working. In fact we
already started doing so as you can see in this thread on the
application builder list... but I think activity died on what needs to
be done.

http://www.lispniks.com/pipermail/application-builder/2006-March/thread.html#211

Justin