

Stop Worrying Start Coding - alifaziz
http://alifshutch.posterous.com/stop-worrying-start-coding

======
T-R
I agree with the conclusion - stop worrying, start coding; but not with the
arguments. Code is a form of communication; Communication has speed.
Communication speed is related to things like redundancy and vocabulary.

A language with a lot of redundancy, like English or Java, is slower than one
with generally less reduandancy, like Japanese or Python. Redundancy can be
within syntax (like long words), or with context (like implied subjects in
Japanese, writing "self" in Python, or declaring types in Java) - redundancy
protects against signal/context loss, but its cost is in speed.

Vocabulary represents an abstraction of a concept. A person with a smaller
vocabulary in a particular topic will take longer to express a concept than
one with a large vocabulary in that area. If a language has a small vocabulary
in a particular area, it will be slower than a better suited language.

In the end, getting the message across is more important than the speed of
getting it there, but if you have a choice, use only as much redundancy as you
need to get the signal across, and choose the language which gives you the
largest domain specific vocabulary.

------
wccrawford
I disagree about choosing a language. I've been bitten first-hand when
choosing a language for something it isn't good at.

These situations are pretty few and far between, but they do exist. I once
used VB for a very processor-intensive algorithm because it was the best tool
I had at the time for GUIs. For easy problems, the tool worked fine. It was
about a week until I hit a problem that took hours to run on it. A few days
later, I hit a problem that took days to run.

Had I written it in a more suited language, I could have delayed that
problem... Possibly forever.

I actually consider rewriting that code even to this day... But I don't really
have a good use for it now, like I did then.

In short: For that problem, I followed the advice in this post, and I was
burned.

------
Swizec
The general advice here is very good, but the point of languages being fast or
not is in fact discussible.

Languages with cleaner semantics ... are faster to code.

Languages that are easier to implement ... have more fast implementations.

Languages that have more fast implementations ... are likely to have one very
fast implementation.

HOWEVER! Worrying about all of this before you've coded anything is premature
optimization. Before you're holding something that is too slow in your hands,
the only speed that matters is how comfortable you are with a language and how
quickly you can code with it.

