Linked by RandomGuy on Wed 10th Jun 2009 20:00 UTC
General Development This series is aimed at programming language aficionados. There's a lot of very abstract writing about programming languages and a lot of simple minded "language X sux!" style blog posts by people who know next to nothing about programming. What I feel is sorely missing is a kind of article that deliberately sacrifices the last 10% of precision that make the theoretical articles dry and long winded but still makes a point and discusses the various trade offs involved. This series is meant to fill that void and hopefully start a lot of discussions that are more enlightening than the articles themselves. I will point out some parallels in different parts of computing that I haven't seen mentioned as well as analyze some well known rules of thumb and link to interesting blogs and articles.
Thread beginning with comment 367778
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Blank Stare
by voidlogic on Wed 10th Jun 2009 21:01 UTC in reply to "Blank Stare"
voidlogic
Member since:
2005-09-03

"I'll start simply: what?"

That is totally what I thought.

"I'm Benjamin Schuenemann, a physics student"...

Why do physicists always mistake themselves as computer scientists?

I don't hold any ill will against the author, but he clearly does not know his Computer Science.

He is attempting to apply methodology/terminology for describing algorithms to programming languages. While that is an interesting abstract idea, it needs to be better defined and he does not take it anywhere meaningful. Here is a much more interesting metric: http://shootout.alioth.debian.org/u64q/shapes.php

Which editor let this slip by?

Reply Parent Score: 3

RE[2]: Blank Stare
by RandomGuy on Wed 10th Jun 2009 21:47 in reply to "RE: Blank Stare"
RandomGuy Member since:
2006-07-30

He is attempting to apply methodology/terminology for describing algorithms to programming languages. While that is an interesting abstract idea, it needs to be better defined and he does not take it anywhere meaningful.

I'm relieved. Somebody understood my idea and finds it interesting ;)
Could you take it anywhere meaningful on one page?

Honestly, this is not meant as a "Oh, so Mr computer scientist knows better, well then show me, Mr computer scientist" kind of reply. I would love to see people evolve this idea. That's why I wrote this article.

Reply Parent Score: 3

RE[3]: Blank Stare
by voidlogic on Wed 10th Jun 2009 22:40 in reply to "RE[2]: Blank Stare"
voidlogic Member since:
2005-09-03

First off sorry for being an elitist bastard. Your presentation of such idea probably would have better received in a forum somewhere. That way you could have evolved your idea before presenting it to the world- without the authoritative context implied by an article.

I think your insight, that there are analytical methods for evaluating programming languages, is a valid and true point. The problem is that big-O notation is not very suitable, let me try to explain why.

Specificity, since big-O notation evaluates algorithms, not languages, it is language independent. If you are trying to apply the underlying principle of big-O notation very generically: In your axis on the big-O graphs you present, although unlabelled, have cost on the y-axis and problem size on the x-axis. What you should have done was replaced cost and problem size with the properties of languages that interest you. I think you will find however that one line graph cannot define a language as the result depends on a program examined.

One approach often done (see the link in my last post) is creating a scatter plot where the data points are programs written in a lang. and looking at trends.

Now, I understand your point is that features of a language that make it suitable for a small project (your example was a dynamic type system) may actually make is less ideal for a large project. But big-O notation can not really be applied to this problem in a tractable way.

If you are interested in this subject there are hundreds of papers in the IEEE journals of software engineering and ACM journals, they would be a very good place to start and propose many metrics you may find insightful. Definitely check out my original link.

Reply Parent Score: 2

RE[3]: Blank Stare
by rhyder on Fri 12th Jun 2009 07:05 in reply to "RE[2]: Blank Stare"
rhyder Member since:
2005-09-28

Thanks for writing the article, but I agree with others that your approach tends to obfuscate your ideas. The central idea, that it's possible to make a systematic appraisal of the applicability and efficiency of different languages for different types of problem, is interesting. I wonder if you needed to get into the technicalities of Big O, although I confess, I don't fully understand it. A graph showing that the complexity of different code increases for a given language when implementing different algorithm types might have sufficed as an explanation.

A lot will depend on where you intend to take your future articles and on your intended audience. Will this be an explanation of your idea for the general reader or will it be a treatise that specifies a precise algebraic method of programming language analysis?

Although I'm intrigued by what you're proposing, I have to agree with the other commenter when I say that, stylistically, the current article is neither fish nor foul in its approach. Good luck and I'll look out for your future attempts.

Reply Parent Score: 2