
The earliest version of HN I can find; 166 LOC - pg
http://www.ycombinator.com/arc/news.6sep06.arc
======
caffeine

        ; *** remove before flight
              (hspace 30)
              (intag (a href "kapow") (pr "kill server"))
    

lol..

------
henning
Why would there be any confusion over what the earliest version is? It would
just be the initial revision in your source control repo.

~~~
irrelative
I agree completely. Even if I'm just playing around, the cost of creating a
source repository is so small (especially with distributed repos) that I
pretty much do it when I'm just playing with an idea.

If the idea grows big, it's fun to look at where it was when I started. If it
fizzles, well at least you have something for the memories...

------
jacquesm
We should translate that into as many languages as possible and use it as a
benchmark for a real world application to compare the efficiency of the
various languages.

~~~
profquail
You mean, like this?

<http://shootout.alioth.debian.org/u32q/>

~~~
pg
I wish someone would create some benchmarks that were good for comparing code
size. That would be a bit harder, because the problems would have to be
bigger, and thus more likely to be ambiguous, but it would be a useful thing
to have.

~~~
ivankirigin
I think those comparisons would be meaningless.

For example, looping over a matrix in matlab is both clunky and extremely
inefficient. You can just do matrix operations that are extremely tight.

You might use that to say it is better than C.

But it is C. They've just make language constructs that make is easy to do
matrix operations. You could do the exact same thing with a library in C.

So comparing languages might run into the issue of comparing available
libraries. I don't think new languages want to compete on availability of
libraries.

~~~
scott_s
By your rationale, Perl and Python are C.

Since Matlab has _language constructs_ for doing matrix operations, it is
better for manipulating matrices than C. That Matlab compiles down to C, or
calls into C libraries, is an implementation detail.

~~~
ivankirigin
You can't get around the interpreted vs compiles difference (among others)
that differentiate Python and C. The discussion is one of code size though,
not the other differences.

You can make compact and readable C that looks like other language constructs
by writing libraries, to a limit.

My point, if I didn't complete it, is one I've mentioned a few times.
Libraries matter more than things like LOC count. And it is a really big
difference.

I challenge anyone to write an Arc levenberg marquardt minimization in less
than 100 LOC. In Matlab (and other languages with good sets of libraries) it
is literally just a parameterized function call.

Maybe I'm just too pragmatic for discussions like this.

~~~
jacquesm
Ok, so let me try to spell this out to see if I understand what you mean:

You are basically saying that whatever is primitive to the languages is
irrelevant because the language that has the best libraries will win such a
contest hands down because what needs to be re-implemented in one language is
a primitive in the other.

That's true as far as I can see, but only for 'domain specific' problems. By
running a benchmark that contains samples from many domains it should be
possible to average out those factors.

Another way to deal with it would be to limit the code to code written in
primitives.

Still matlab would handily outperform any other language not endowed with
primitives for matrix manipulation, but that's exactly the whole point of such
a test. To figure out given a problem for a certain domain what would be the
most expressive platform to solve the problem in.

~~~
ivankirigin
Across many domains, the effect of libraries is exaggerated. Perhaps
minimization isn't enough. Let's add image processing, talking to hardware
over a serial port, and parsing an xhtml file. Libraries win:

    
    
      image.convolve( filter )
      hardware.write( c_struct )
      beautifulsoup( xhtml )

------
colladude
"meaning it's 4 days old." -> 4 years :-)

~~~
jdale27
No, 4 days. The write date of the file is September 6, the comment below says
he started writing it on September 2.

------
sanj
What's the LOC now?

~~~
jrockway
About 10x that:
[http://github.com/nex3/arc/blob/dca901c0cb59ebb533a511df3a84...](http://github.com/nex3/arc/blob/dca901c0cb59ebb533a511df3a844e578e4fa5d6/news.arc)

