Re: [fonc] goals

2010-07-09 Thread spir
On Thu, 8 Jul 2010 18:01:36 -0700 (PDT)
Alan Kay alan.n...@yahoo.com wrote:

 ...seeing if very compact runable maths could be invented and built to 
 model...

Isn't this a good definition of Lisp?

Denis


vit esse estrany ☣

spir.wikidot.com

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread Colin Putney

On 2010-07-08, at 9:21 PM, Steve Dekorte wrote:

 
 Thanks for the response. That kind of sounds like the goal is fewer lines of 
 code (and presumably less labor) per unit of function (increasing 
 productivity). Is that correct?

Well, I don't speak for Alan, but I have to think it's a bit more than that. 
The biggest problem we have in computing is that we're terrible at it. Just the 
other day I remarked to a colleague that the system we were working on had 
about 10x too much code for what it did, and he agreed. So yes, less code for 
the same functionality might (might!) be higher productivity, but it's also a 
rough measure of quality. Writers seek economy of words, athletes seek economy 
of motion, we seek economy of code. 

Colin
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread Steve Dekorte

On 2010-07-09, at 12:56 AM, Colin Putney wrote:
 On 2010-07-08, at 9:21 PM, Steve Dekorte wrote:
 
 Thanks for the response. That kind of sounds like the goal is fewer lines of 
 code (and presumably less labor) per unit of function (increasing 
 productivity). Is that correct?
 
 Well, I don't speak for Alan, but I have to think it's a bit more than that. 
 The biggest problem we have in computing is that we're terrible at it. Just 
 the other day I remarked to a colleague that the system we were working on 
 had about 10x too much code for what it did, and he agreed. So yes, less code 
 for the same functionality might (might!) be higher productivity, but it's 
 also a rough measure of quality. Writers seek economy of words, athletes seek 
 economy of motion, we seek economy of code.

I agree that labor including maintenance (which may include understandability, 
extendability, etc) is a better end measure but that code length (or maybe 
keystrokes, etc) can be a reasonable starting point for measuring it.

Btw, this discussion may sound trivial, but consider the question: Is 
computing technique X is better than Y? We need to know by what measure it's 
better for the question to be meaningful. And without a measure that matches 
one's goals, decisions made on their basis may be counterproductive.


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread BGB

yeah.

I guess a lot depends on other factors though.

for example, is a lot of this added code because:
the programmer has little idea what he was doing, and so just wildly 
copy-pasted everywhere and made a big mess?...
has lots of code which is actually beneficial, such as doing error checking 
and building abstractions.


similarly, is a piece of code smaller because:
the programmer is good at getting work done in less code?
or because the code is essentially a tangled mess of hacks?


these may matter more in many cases than the total code size.

like, if the app is only 10 or 15 kloc, but most of it is composed of 
if(...) goto ... and ugly use of bit-twiddling and pointer operations 
(say, you see things like ((int *)(((void **)p)[i+5]))[16]+*(int *)(*(void 
**)q) pretty much every-other line), and the programmer couldn't be 
bothered to use more than 3 or 4 characters for most of their function 
names, this is not necessarily a good thing.


a similar app which is maybe 20-25 kloc, but consists of code which may be 
understood (and doesn't blow up in ones' face as soon as it is fed bad 
data), may be a little better.



but, then again, sometimes an app may benefit from being smaller, for simple 
sake that ordinary humans can work on it (without having to go up a steep 
learning curve and having to become experts on the thing before being able 
to do much of anything).


for example, a 350 kloc app may be better, even if it does a little less, 
than a 5 or 10 Mloc app, if it means that the programmers can more easily 
understand the thing in its entirety.



feature bloat is also a problem. features may be good, but too many features 
may not be a benefit to ones' purpose, and sometimes a piece of code which 
is smaller and only does a few things well, may be better than a larger 
piece of code trying to do everything adequately... (sometimes, we don't 
need some unified one true implementation).



but, a lot comes down to abstraction as well:
a much larger codebase with much better abstractions may still be much 
easier to work on than a smaller codebase with few or poorly-chosen 
abstractions (for example, if the codebase is relatively well organized, and 
its code relatively self-explaining, then one can more easily get things 
done without having to keep as much in-mind, but if changing something one 
place means they have to fix something somewhere else which breaks as a 
result, this is a problem...).



but, there are many factors involved.

or such...


- Original Message - 
From: Colin Putney cput...@wiresong.ca

To: Fundamentals of New Computing fonc@vpri.org
Sent: Friday, July 09, 2010 12:56 AM
Subject: Re: [fonc] goals



On 2010-07-08, at 9:21 PM, Steve Dekorte wrote:



Thanks for the response. That kind of sounds like the goal is fewer lines 
of code (and presumably less labor) per unit of function (increasing 
productivity). Is that correct?


Well, I don't speak for Alan, but I have to think it's a bit more than that. 
The biggest problem we have in computing is that we're terrible at it. Just 
the other day I remarked to a colleague that the system we were working on 
had about 10x too much code for what it did, and he agreed. So yes, less 
code for the same functionality might (might!) be higher productivity, but 
it's also a rough measure of quality. Writers seek economy of words, 
athletes seek economy of motion, we seek economy of code.


Colin
___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread David Leibs






for example, is a lot of this added code because:
the programmer has little idea what he was doing, and so just wildly  
copy-pasted everywhere and made a big mess?...
has lots of code which is actually beneficial, such as doing error  
checking and building abstractions.


similarly, is a piece of code smaller because:
the programmer is good at getting work done in less code?
or because the code is essentially a tangled mess of hacks?




It isn't that the programmer has little idea of what he is doing.   
Things just take time to be transformed into an optimal form.
There is a good example from the history from math, and physics that  
illustrates the point.  Maxwells equations originally applied to a set  
of eight equations published by Maxwell in 1865.  After that the  
number of equations escalated to twenty equations in twenty unknowns  
as people struggled with the implications.  Maxwell wrestled with  
recasting the equations in quaternion form.  Time passed. It was all  
very ugly.  Finally In 1884 Oliver Heaviside recast Maxwell's math  
from the then cumbersome form to its modern vector calculus notation,  
thereby reducing the twenty equations in twenty unknowns down to the  
four differential equations in two unknowns that we all love and  call  
Maxwells equations. Heaviside invented the modern notation giving us  
the tools to make sense of something very profound and useful.  Good  
work on hard things takes time plus a lot of good people that care.


cheers,
-David Leibs




___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


RE: [fonc] goals

2010-07-09 Thread Carl Gundel
From: fonc-boun...@vpri.org [mailto:fonc-boun...@vpri.org] On Behalf Of
David Leibs
Sent: Friday, July 09, 2010 1:33 PM
To: Fundamentals of New Computing
Subject: Re: [fonc] goals

It isn't that the programmer has little idea of what he is doing.  Things
just take time to be transformed into an optimal form.

The programmer must also be given permission to take that time.  I can
remember only once in 23 years of software development when my employer
actually told everyone to stop and clean up the code for 2 weeks.  No new
features, just make the code better.  I was astonished, and very pleased.
This sort of thing should be done as a matter of course.

Alan and Co. seem to me to be trying to make up for decades of our industry
refusing to clean up the code.  What is 20 million lines of code can be 20
thousand.  If you can apply the 80/20 rule to this in the sense that you can
provide people with a lever that does 80 percent of what you need, and if
the system is tractable for motivated casual coders so that they can provide
the other 20 percent then you have something really valuable.

Early home computers provided some of this quality in spite of their
shortcomings.  The machines and languages were simple enough so that anyone
with enough attention span to read a 250 page book could bend the computer
to his will.  That's a vision of personal computing.  I think this idea is
lost in our popular culture.

-Carl Gundel
Psyche Systems


 

___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread John Zabroski
Just to be clear,

The foremost experts and definitive source on software metrics -- Fenton and
Pfleeger [1] -- do not really support SLOC/day/programmer as a good metric
for productivity.  It seems to me (from hearing reports by others) that most
people do not actually read books on metrics and instead gravitate towards
the simplest ones, regardless of effectiveness.

Usually SLOC/day/programmer is a good way, though, to convince your boss
that a project predicted to be 300,000 lines of brute force coding cannot be
done in a weekend.  The argument being you literally cannot type that fast.

Cheers,
Z-Bo

[1] http://www.amazon.com/Software-Metrics-Norman-E-Fenton/dp/0534956009

On Fri, Jul 9, 2010 at 2:47 PM, Max OrHai max.or...@gmail.com wrote:

 Just to clarify, I'm a bit uncomfortable with productivity talk here
 because it seems too narrow and ill-defined. Productivity of what
 exactly? By whom? For whom? To what end? To a specific manager of a specific
 project in a specific development phase, these questions may have specific,
 meaningful answers. When it comes to fundamentally rethinking basic tools
 and practices, I'm not so sure.

 Of course, core values must be somewhat vague, to allow them to mesh with
 constantly changing circumstances. Personally, I'd rather strive for
 quality than productivity. I'm generally suspicious of premature
 quantification: just because you can measure something doesn't make it
 meaningful!

 It seems to me that, as crufty, haphazard, hidebound, etc. as software
 engineering is today, software engineering management (with its
 productivity metrics such as source lines of code per programmer per
 day) are even worse. We all know code quality varies wildly between
 programmers using the exact same sets of tools. Talent and training
 contribute enormously. However, I imagine that everyone on this list can
 agree that the tools themselves matter too, even if it's difficult to
 quantify that difference precisely.

 Keep it simple is a widely applicable and successful heuristic. I see
 this project as (largely) an experiment in applying that heuristic to the
 fairly well-defined category of creating the personal computing
 experience, with a depth and breadth impossible in the
 productivity/profit-bound world of commercial software, and a consistency
 and quality level impossible in the the traditional open-source project.
 It's just an experiment, though. It's *research* (or, if you prefer,
 intellectual masturbation). If we already knew the outcome, it wouldn't be
 research, would it?

 -- Max


 On Fri, Jul 9, 2010 at 10:33 AM, David Leibs david.le...@oracle.comwrote:





 for example, is a lot of this added code because:
 the programmer has little idea what he was doing, and so just wildly
 copy-pasted everywhere and made a big mess?...
 has lots of code which is actually beneficial, such as doing error
 checking and building abstractions.

 similarly, is a piece of code smaller because:
 the programmer is good at getting work done in less code?
 or because the code is essentially a tangled mess of hacks?



 It isn't that the programmer has little idea of what he is doing.  Things
 just take time to be transformed into an optimal form.
 There is a good example from the history from math, and physics that
 illustrates the point.  Maxwells equations originally applied to a set of
 eight equations published by Maxwell in 1865.  After that the number of
 equations escalated to twenty equations in twenty unknowns as people
 struggled with the implications.  Maxwell wrestled with recasting the
 equations in quaternion form.  Time passed. It was all very ugly.  Finally
 In 1884 Oliver Heaviside recast Maxwell's math from the then cumbersome form
 to its modern v http://en.wikipedia.org/wiki/Vector_%28geometric%29ector 
 calculus
 notation, thereby reducing the twenty equations in twenty unknowns down to
 the four differential equations in two unknowns that we all love and  call
 Maxwells equations. Heaviside invented the modern notation giving us the
 tools to make sense of something very profound and useful.  Good work on
 hard things takes time plus a lot of good people that care.

 cheers,
 -David Leibs





 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread David Leibs
I am somewhat dyslexic and I don't always read things in the right  
order so  I read

   SLOC/day/programmer

as
   SHLOCK/day/programmer

it fits in a negative metric kinda way.  Maybe it is a meme we should  
unleash on our overlings.


-djl

On Jul 9, 2010, at 12:16 PM, John Zabroski wrote:


Just to be clear,

The foremost experts and definitive source on software metrics --  
Fenton and Pfleeger [1] -- do not really support SLOC/day/programmer  
as a good metric for productivity.  It seems to me (from hearing  
reports by others) that most people do not actually read books on  
metrics and instead gravitate towards the simplest ones, regardless  
of effectiveness.


Usually SLOC/day/programmer is a good way, though, to convince your  
boss that a project predicted to be 300,000 lines of brute force  
coding cannot be done in a weekend.  The argument being you  
literally cannot type that fast.


Cheers,
Z-Bo

[1] http://www.amazon.com/Software-Metrics-Norman-E-Fenton/dp/0534956009

On Fri, Jul 9, 2010 at 2:47 PM, Max OrHai max.or...@gmail.com wrote:
Just to clarify, I'm a bit uncomfortable with productivity talk  
here because it seems too narrow and ill-defined. Productivity of  
what exactly? By whom? For whom? To what end? To a specific manager  
of a specific project in a specific development phase, these  
questions may have specific, meaningful answers. When it comes to  
fundamentally rethinking basic tools and practices, I'm not so sure.


Of course, core values must be somewhat vague, to allow them to mesh  
with constantly changing circumstances. Personally, I'd rather  
strive for quality than productivity. I'm generally suspicious  
of premature quantification: just because you can measure something  
doesn't make it meaningful!


It seems to me that, as crufty, haphazard, hidebound, etc. as  
software engineering is today, software engineering  
management (with its productivity metrics such as source lines  
of code per programmer per day) are even worse. We all know code  
quality varies wildly between programmers using the exact same sets  
of tools. Talent and training contribute enormously. However, I  
imagine that everyone on this list can agree that the tools  
themselves matter too, even if it's difficult to quantify that  
difference precisely.


Keep it simple is a widely applicable and successful heuristic. I  
see this project as (largely) an experiment in applying that  
heuristic to the fairly well-defined category of creating the  
personal computing experience, with a depth and breadth impossible  
in the productivity/profit-bound world of commercial software, and a  
consistency and quality level impossible in the the traditional open- 
source project. It's just an experiment, though. It's research (or,  
if you prefer, intellectual masturbation). If we already knew the  
outcome, it wouldn't be research, would it?


-- Max


On Fri, Jul 9, 2010 at 10:33 AM, David Leibs  
david.le...@oracle.com wrote:






for example, is a lot of this added code because:
the programmer has little idea what he was doing, and so just  
wildly copy-pasted everywhere and made a big mess?...
has lots of code which is actually beneficial, such as doing error  
checking and building abstractions.


similarly, is a piece of code smaller because:
the programmer is good at getting work done in less code?
or because the code is essentially a tangled mess of hacks?




It isn't that the programmer has little idea of what he is doing.   
Things just take time to be transformed into an optimal form.
There is a good example from the history from math, and physics that  
illustrates the point.  Maxwells equations originally applied to a  
set of eight equations published by Maxwell in 1865.  After that the  
number of equations escalated to twenty equations in twenty unknowns  
as people struggled with the implications.  Maxwell wrestled with  
recasting the equations in quaternion form.  Time passed. It was all  
very ugly.  Finally In 1884 Oliver Heaviside recast Maxwell's math  
from the then cumbersome form to its modern vector calculus  
notation, thereby reducing the twenty equations in twenty unknowns  
down to the four differential equations in two unknowns that we all  
love and  call Maxwells equations. Heaviside invented the modern  
notation giving us the tools to make sense of something very  
profound and useful.  Good work on hard things takes time plus a lot  
of good people that care.


cheers,
-David Leibs





___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc



___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org

Re: [fonc] goals

2010-07-09 Thread John Zabroski
Just wondering... when did that metaphor get started at VPRI?  The first
time I had heart you reference the t-shirt metaphor was October 2009 [1]. I
remember joking about it on Lambda the Ultimate in April of 2009 [2], and my
joke was actually based on a presentation given by the head operations
physicist of the Relativistic Heavy Ion Collider project at BNL, Todd
Satogata [3].  He gave a talk about how you can buy a t-shirt with Maxwell's
Equations on it and it pretty much describes the whole universe.  But he
said his goal was to unify the strong force and weak force and come up with
a new t-shirt, and make millions of dollars and become famous.  When I heard
that you were interested in Maxwell's Equations for Computer Science, I
immediately made the connection to Todd Satogata's BNL speech (I've heard
him give roughly the same pitch in other speeches many times), so that is
why I made the joke about printing Maxwell's Equations for Computer Science
on a t-shirt.

[1] http://media.cs.uiuc.edu/seminars/StateFarm-Kay-2009-10-22a.asx
[2] http://lambda-the-ultimate.org/node/3265#comment-48129
[3] http://toddsatogata.net/

On Fri, Jul 9, 2010 at 1:44 PM, Alan Kay alan.n...@yahoo.com wrote:

 One of my all time favorite metaphors and examples for part of what we are
 trying to do in this T-shirt programming project.

 Cheers,

 Alan

 --
 *From:* David Leibs david.le...@oracle.com

 *To:* Fundamentals of New Computing fonc@vpri.org
 *Sent:* Fri, July 9, 2010 10:33:04 AM
 *Subject:* Re: [fonc] goals





 for example, is a lot of this added code because:
 the programmer has little idea what he was doing, and so just wildly
 copy-pasted everywhere and made a big mess?...
 has lots of code which is actually beneficial, such as doing error checking
 and building abstractions.

 similarly, is a piece of code smaller because:
 the programmer is good at getting work done in less code?
 or because the code is essentially a tangled mess of hacks?



 It isn't that the programmer has little idea of what he is doing.  Things
 just take time to be transformed into an optimal form.
 There is a good example from the history from math, and physics that
 illustrates the point.  Maxwells equations originally applied to a set of
 eight equations published by Maxwell in 1865.  After that the number of
 equations escalated to twenty equations in twenty unknowns as people
 struggled with the implications.  Maxwell wrestled with recasting the
 equations in quaternion form.  Time passed. It was all very ugly.  Finally
 In 1884 Oliver Heaviside recast Maxwell's math from the then cumbersome form
 to its modern v http://en.wikipedia.org/wiki/Vector_%28geometric%29ector 
 calculus
 notation, thereby reducing the twenty equations in twenty unknowns down to
 the four differential equations in two unknowns that we all love and  call
 Maxwells equations. Heaviside invented the modern notation giving us the
 tools to make sense of something very profound and useful.  Good work on
 hard things takes time plus a lot of good people that care.

 cheers,
 -David Leibs






 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc


___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread Alan Kay
The metaphor happened to me in grad school in the 60s when I finally took the 
trouble to trace McCarthy's Lisp in itself and realized just how powerful and 
comprehensive he had made it in such a compact way. It was not so much the 
Turing aspect but the slope of the power from nothing. I said to myself 
this is the Maxwell's Equations of computing. I think I recounted this in the 
Early History of Smalltalk.

And as a science and math major as an undergraduate, I knew the story that 
David 
told about how Heaviside had collapsed the difficult to understand partial 
differential equations form into the vectorized-operatorized t-shirt size we 
know. As a post-doc I had some fun working in McCarthy's lab at Stanford and a 
hobby was finding much more compact ways to do Lisp (it can really be shrunk 
down from John's version)  and amounts really to being able to say what it 
means to send a message from one context to another 

Cheers,

Alan





From: John Zabroski johnzabro...@gmail.com
To: Fundamentals of New Computing fonc@vpri.org
Sent: Fri, July 9, 2010 2:48:27 PM
Subject: Re: [fonc] goals

Just wondering... when did that metaphor get started at VPRI?  The first time I 
had heart you reference the t-shirt metaphor was October 2009 [1]. I remember 
joking about it on Lambda the Ultimate in April of 2009 [2], and my joke was 
actually based on a presentation given by the head operations physicist of the 
Relativistic Heavy Ion Collider project at BNL, Todd Satogata [3].  He gave a 
talk about how you can buy a t-shirt with Maxwell's Equations on it and it 
pretty much describes the whole universe.  But he said his goal was to unify 
the 
strong force and weak force and come up with a new t-shirt, and make millions 
of 
dollars and become famous.  When I heard that you were interested in Maxwell's 
Equations for Computer Science, I immediately made the connection to Todd 
Satogata's BNL speech (I've heard him give roughly the same pitch in other 
speeches many times), so that is why I made the joke about printing Maxwell's 
Equations for Computer Science on a t-shirt.

[1] http://media.cs.uiuc.edu/seminars/StateFarm-Kay-2009-10-22a.asx
[2] http://lambda-the-ultimate.org/node/3265#comment-48129
[3] http://toddsatogata.net/


On Fri, Jul 9, 2010 at 1:44 PM, Alan Kay alan.n...@yahoo.com wrote:

One of my all time favorite metaphors and examples for part of what we are 
trying to do in this T-shirt programming project.

Cheers,

Alan





 From: David Leibs david.le...@oracle.com

To: Fundamentals of New Computing fonc@vpri.org
Sent: Fri, July 9, 2010 10:33:04 AM
Subject: Re: [fonc] goals







for example, is a lot of this added code because:
the programmer has little idea what he was doing, and so just wildly 
copy-pasted 
everywhere and made a big mess?...
has lots of code which is actually beneficial, such as doing error checking 
and 
building abstractions.

similarly, is a piece of code smaller because:
the programmer is good at getting work done in less code?
or because the code is essentially a tangled mess of hacks?





It isn't that the programmer has little idea of what he is doing.  Things just 
take time to be transformed into an optimal form. 
There is a good example from the history from math, and physics that 
illustrates 
the point.  Maxwells equations originally applied to a set of eight equations 
published by Maxwell in 1865.  After that the number of equations escalated to 
twenty equations in twenty unknowns as people struggled with the implications. 
 Maxwell wrestled with recasting the equations in quaternion form.  Time 
passed. 
It was all very ugly.  Finally In 1884 Oliver Heaviside recast Maxwell's math 
from the then cumbersome form to its modern vector calculus notation, thereby 
reducing the twenty equations in twenty unknowns down to the four differential 
equations in two unknowns that we all  love and  call Maxwells equations. 
Heaviside invented the modern notation giving us the tools to make sense of 
something very profound and useful.  Good work on hard things takes time plus a 
lot of good people that care.

cheers,
-David Leibs





___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc





  ___
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc


Re: [fonc] goals

2010-07-09 Thread John Zabroski
I know that part.  I meant extending the metaphor to the joke about printing
t-shirts.  David mentioned collapsing this, and I mentioned how I brought up
the joke on LtU about doing this for computer science.  I've read your
Maxwell's Equations for Computer Science before, such as the NSF 2007
report, but never read the t-shirt joke before the talk I linked below.   I
first heard this joke from Todd Satogata, who wants to keep Maxwell's
Equations as simple as a cool t-shirt, but increase its expressive power by
unifying the strong and weak forces -- it just shows even physicists don't
give up shrinking the size of the core theory that defines their field.

Have a good weekend!
Z-Bo

On Fri, Jul 9, 2010 at 7:24 PM, Alan Kay alan.n...@yahoo.com wrote:

 The metaphor happened to me in grad school in the 60s when I finally took
 the trouble to trace McCarthy's Lisp in itself and realized just how
 powerful and comprehensive he had made it in such a compact way. It was not
 so much the Turing aspect but the slope of the power from nothing. I
 said to myself this is the Maxwell's Equations of computing. I think I
 recounted this in the Early History of Smalltalk.

 And as a science and math major as an undergraduate, I knew the story that
 David told about how Heaviside had collapsed the difficult to understand
 partial differential equations form into the vectorized-operatorized t-shirt
 size we know. As a post-doc I had some fun working in McCarthy's lab at
 Stanford and a hobby was finding much more compact ways to do Lisp (it can
 really be shrunk down from John's version)  and amounts really to being
 able to say what it means to send a message from one context to another 

 Cheers,

 Alan

 --
 *From:* John Zabroski johnzabro...@gmail.com

 *To:* Fundamentals of New Computing fonc@vpri.org
 *Sent:* Fri, July 9, 2010 2:48:27 PM
 *Subject:* Re: [fonc] goals

 Just wondering... when did that metaphor get started at VPRI?  The first
 time I had heart you reference the t-shirt metaphor was October 2009 [1]. I
 remember joking about it on Lambda the Ultimate in April of 2009 [2], and my
 joke was actually based on a presentation given by the head operations
 physicist of the Relativistic Heavy Ion Collider project at BNL, Todd
 Satogata [3].  He gave a talk about how you can buy a t-shirt with Maxwell's
 Equations on it and it pretty much describes the whole universe.  But he
 said his goal was to unify the strong force and weak force and come up with
 a new t-shirt, and make millions of dollars and become famous.  When I heard
 that you were interested in Maxwell's Equations for Computer Science, I
 immediately made the connection to Todd Satogata's BNL speech (I've heard
 him give roughly the same pitch in other speeches many times), so that is
 why I made the joke about printing Maxwell's Equations for Computer Science
 on a t-shirt.

 [1] http://media.cs.uiuc.edu/seminars/StateFarm-Kay-2009-10-22a.asx
 [2] http://lambda-the-ultimate.org/node/3265#comment-48129
 [3] http://toddsatogata.net/

 On Fri, Jul 9, 2010 at 1:44 PM, Alan Kay alan.n...@yahoo.com wrote:

 One of my all time favorite metaphors and examples for part of what we are
 trying to do in this T-shirt programming project.

 Cheers,

 Alan

 --
 *From:* David Leibs david.le...@oracle.com

 *To:* Fundamentals of New Computing fonc@vpri.org
 *Sent:* Fri, July 9, 2010 10:33:04 AM
 *Subject:* Re: [fonc] goals





 for example, is a lot of this added code because:
 the programmer has little idea what he was doing, and so just wildly
 copy-pasted everywhere and made a big mess?...
 has lots of code which is actually beneficial, such as doing error
 checking and building abstractions.

 similarly, is a piece of code smaller because:
 the programmer is good at getting work done in less code?
 or because the code is essentially a tangled mess of hacks?



 It isn't that the programmer has little idea of what he is doing.  Things
 just take time to be transformed into an optimal form.
 There is a good example from the history from math, and physics that
 illustrates the point.  Maxwells equations originally applied to a set of
 eight equations published by Maxwell in 1865.  After that the number of
 equations escalated to twenty equations in twenty unknowns as people
 struggled with the implications.  Maxwell wrestled with recasting the
 equations in quaternion form.  Time passed. It was all very ugly.  Finally
 In 1884 Oliver Heaviside recast Maxwell's math from the then cumbersome form
 to its modern v http://en.wikipedia.org/wiki/Vector_%28geometric%29ector 
 calculus
 notation, thereby reducing the twenty equations in twenty unknowns down to
 the four differential equations in two unknowns that we all love and  call
 Maxwells equations. Heaviside invented the modern notation giving us the
 tools to make sense of something very profound and useful.  Good work on
 hard things takes time 

Re: [fonc] goals

2010-07-09 Thread Richard Karpinski
Max,

You mention software engineering management which reminds me of Tom Gilb's
book Principles of Software Engineering Management which is still a
favorite of mine despite that he replaced it with his more recent
Competitive Engineering. He begins any management exercise by defining six
to ten measurable goals, and specifying how the numbers shall be calculated.
These are usually quality goals with specific numbers attached.

If easily learned is a chosen goal, it is accompanied by selected training
and testing procedures to find the numbers which measure progress toward
that goal. Inventing ways to meet  multiple goals is what he means by the
term engineering. Lines of code is a number all right, but it's not often a
useful number for the stakeholders paying for the effort. Minutes to
complete a specified task after a day of training and practice might more
likely be a useful target.

Perhaps you'd like to have a few of those quality goals. It often seems that
the only real goal for software projects is delivery date since the others
all give way in the effort to meet that one. I hate it when that happens.
No time to do it well, but always time to do it over is a frequent
complaint.

Richard

On Fri, Jul 9, 2010 at 11:47 AM, Max OrHai max.or...@gmail.com wrote:

 Just to clarify, I'm a bit uncomfortable with productivity talk here
 because it seems too narrow and ill-defined. Productivity of what
 exactly? By whom? For whom? To what end? To a specific manager of a specific
 project in a specific development phase, these questions may have specific,
 meaningful answers. When it comes to fundamentally rethinking basic tools
 and practices, I'm not so sure.

 Of course, core values must be somewhat vague, to allow them to mesh with
 constantly changing circumstances. Personally, I'd rather strive for
 quality than productivity. I'm generally suspicious of premature
 quantification: just because you can measure something doesn't make it
 meaningful!

 It seems to me that, as crufty, haphazard, hidebound, etc. as software
 engineering is today, software engineering management (with its
 productivity metrics such as source lines of code per programmer per
 day) are even worse. We all know code quality varies wildly between
 programmers using the exact same sets of tools. Talent and training
 contribute enormously. However, I imagine that everyone on this list can
 agree that the tools themselves matter too, even if it's difficult to
 quantify that difference precisely.

 Keep it simple is a widely applicable and successful heuristic. I see
 this project as (largely) an experiment in applying that heuristic to the
 fairly well-defined category of creating the personal computing
 experience, with a depth and breadth impossible in the
 productivity/profit-bound world of commercial software, and a consistency
 and quality level impossible in the the traditional open-source project.
 It's just an experiment, though. It's *research* (or, if you prefer,
 intellectual masturbation). If we already knew the outcome, it wouldn't be
 research, would it?

 -- Max


 On Fri, Jul 9, 2010 at 10:33 AM, David Leibs david.le...@oracle.comwrote:





 for example, is a lot of this added code because:
 the programmer has little idea what he was doing, and so just wildly
 copy-pasted everywhere and made a big mess?...
 has lots of code which is actually beneficial, such as doing error
 checking and building abstractions.

 similarly, is a piece of code smaller because:
 the programmer is good at getting work done in less code?
 or because the code is essentially a tangled mess of hacks?



 It isn't that the programmer has little idea of what he is doing.  Things
 just take time to be transformed into an optimal form.
 There is a good example from the history from math, and physics that
 illustrates the point.  Maxwells equations originally applied to a set of
 eight equations published by Maxwell in 1865.  After that the number of
 equations escalated to twenty equations in twenty unknowns as people
 struggled with the implications.  Maxwell wrestled with recasting the
 equations in quaternion form.  Time passed. It was all very ugly.  Finally
 In 1884 Oliver Heaviside recast Maxwell's math from the then cumbersome form
 to its modern v http://en.wikipedia.org/wiki/Vector_(geometric)ector 
 calculus
 notation, thereby reducing the twenty equations in twenty unknowns down to
 the four differential equations in two unknowns that we all love and  call
 Maxwells equations. Heaviside invented the modern notation giving us the
 tools to make sense of something very profound and useful.  Good work on
 hard things takes time plus a lot of good people that care.

 cheers,
 -David Leibs





 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc



 ___
 fonc mailing list
 fonc@vpri.org
 http://vpri.org/mailman/listinfo/fonc