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 367842
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: Blank Stare
by voidlogic on Thu 11th Jun 2009 01:04 UTC in reply to "RE[4]: Blank Stare"
Member since:

Just a few thoughts:

"...Maybe that was too subtle."

Unfortunately, any article read outside a close group of friends is inherently going to be viewed as attempting to be authoritative.

"Also I wasn't really trying to compare resource usage/verbosity of programming languages. I was comparing the effort required to solve a set of problems of varying sizes in a fixed programming language...."

Verbosity is somewhat correlated with effort. Not entirely, as I can take the same amount of time to write a 100 line Haskell program as a 800 line java program that do the same thing. Perhaps exploring the best way to quantify effort would be a good start. Although this is of course hard because humans and their varying skill levels are involved.

"it can obviously only measure programming language _implementations_, not the languages themselves."

I agree, perhaps this merits a discussion off whether it is possible at all. I would find in unsurprising if measuring implementations was all that is possible. There are of course many other ways to compare languages, such as their position in the Chomsky hierarchy and family (procedural, functional, logic, etc).

"You're obviously right in that you cannot literally apply big O notation to programming languages. You could define a set of reference problems. Where it really falls apart is Turing completeness.."

If you are examining a set of example implementation of an algorithm, it may be valuable as a metric to understand the "effort" of the average programmer using this language, even if it says nothing about the theoretical construct itself. I would also like to point out your use of the "Turing completeness" is incorrect, you may want to look into the term in more detail.

My advise concerning presenting idea such as you are would be a to read many of the informal proposals by Edgar Dijkstra. Also, don't be afraid to take another page if that is the cost of being more precise. The difference between philosophy and theoretical computer science is mathematical formalism, people like it.

"Were you thinking of a specific forum? "

Check out the IRC channels on frenode, use groups and google groups. I didn't have a specific one in mind.

If you would like I would be willing to critique your future articles and at least tell you what I would guess people would not like.

Take care.

Reply Parent Score: 2