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 367770
To read all comments associated with this story, please click here.
Blank Stare
by ringham on Wed 10th Jun 2009 20:19 UTC
ringham
Member since:
2006-03-23

I'll start simply: what?

First, this article's title is horribly misleading. 'Hello World' Considered Harmful - okay, it started out alright, but only 20% of the article is actually about why the author thinks hello world programs are harmful. The 20% that is about it is not very clear, and goes into a complex math discussion that seemed to rely on poor assumptions to begin with.

By the way, Big O notation is not "a way of describing how much resources (CPU cycles, memory) an algorithm uses for some very big input size n.". It is used to describe the complexity of an algorithm. So don't invoke computational complexity theory if you don't really understand it.

The author's discussion on asymptotic behavior came out of left field and as far as I'm concerned had nothing to do with the point of the article.

Then, finally, the discussion goes into static vs duck typing - WTF? Why? It in no way clearly supports the title of this article.

This article is a mess. It's amazing it's on the front page.

Reply Score: 15

RE: Blank Stare
by CoolGoose on Wed 10th Jun 2009 20:24 in reply to "Blank Stare"
CoolGoose Member since:
2005-07-06

For me is more like Big wall of text.

Reply Parent Score: 2

RE[2]: Blank Stare
by frantisheq on Wed 10th Jun 2009 20:37 in reply to "RE: Blank Stare"
frantisheq Member since:
2008-07-25

agree

Reply Parent Score: 1

RE: Blank Stare
by voidlogic on Wed 10th Jun 2009 21:01 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: Blank Stare
by tyrione on Wed 10th Jun 2009 21:06 in reply to "Blank Stare"
tyrione Member since:
2005-11-21

O(n^2) is complex math?

Reply Parent Score: 2

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

Please don't think that just because I tried to give a short explanation of big O notation I do not understand asymptotic behavior. In fact I mentioned the phrase and wrote that it's about growth. Don't let the first sentence throw you.

Like I said, I wanted to sacrifice some precision to make the article less dry and long winded. Maybe I chose the wrong trade off and got people bitching instead of thinking...

Reply Parent Score: 3

RE[2]: Blank Stare
by ringham on Wed 10th Jun 2009 21:12 in reply to "RE: Blank Stare"
ringham Member since:
2006-03-23

Your article doesn't make any sense. It is not organized in any coherant fashion. It goes off on wild tangents and draws conclusions out of thin air, and when conclusions aren't drawn out of thin air, they are based on faulty assumptions. That is why people are bitching.

There is no possible way an intelligent discussion could be started from that article, it's just too poorly written. Sorry.

Reply Parent Score: 2

RE: Blank Stare
by daedliusswartz on Wed 10th Jun 2009 21:52 in reply to "Blank Stare"
daedliusswartz Member since:
2007-05-28

By the way, Big O notation is not "a way of describing how much resources (CPU cycles, memory) an algorithm uses for some very big input size n.". It is used to describe the complexity of an algorithm. So don't invoke computational complexity theory if you don't really understand it.

It's been a few years since I had to assess "big-o" (I hate that name) of various algorithms, but I don't think it was ever referred to as being a way to describe the complexity of an algorithm. It certainly is used in complexity theory, but, it was used to indeed describe the resourcing usage of various algorithms under the worst and average case scenarios.

Or in layman's terms, it essentially described an algorithm's efficiency.

Reply Parent Score: 1

RE[2]: Blank Stare
by Doc Pain on Wed 10th Jun 2009 23:11 in reply to "RE: Blank Stare"
Doc Pain Member since:
2006-10-08

Or in layman's terms, it essentially described an algorithm's efficiency.


It describes the growth of resource requirements (cycles, memory, storage etc.) depending on the growth of input data - so yes, it describes how efficient an algorithm works. This is, as I mentioned, always connected to some kind of input data, because algorithms are usually considered processing some input data to generate output data. I'm sure many "modern" programmers haven't ever heared of this. By the way, where is my favourite O(e^x) = exponential of today's "modern" applications? And I think I missed O(0) = zero and O(1) = constant in the comparison... :-)

Reply Parent Score: 2