
Magical thinking in Software Development - prez
http://wrongsideofmemphis.wordpress.com/2012/11/16/magical-thinking-in-software-development/
======
lutusp
An important point missing from this article is that Python speed can be
measured in two distinct ways -- how fast the code runs, and how fast the code
gets written.

If a program needs to be up and running yesterday, then the fact that it's not
as fast as C/C++ may not actually matter.

I think this issue should be mentioned more often in discussions of execution
speed -- the time required to write the code in the first place. For that,
Python excels.

~~~
mercurial
All these measurements should be considered in the same light: what is the
projected TCO of the software? And this includes a number of metrics:

\- programmer productivity

\- hardware costs

\- speed

\- flexibility

\- ease of maintenance

\- barrier of entry

\- interop with other software

How easy will it be to maintain the software in ten years? Wrt to Python, it's
a fantastic language, but I've become scared of large codebases in dynamic
languages.

~~~
lutusp
> I've become scared of large codebases in dynamic languages.

Fair enough. It seems to me that if an application has high performance
demands and is expected to be in service for years, it should eventually be
rewritten in a faster language. I find myself designing/developing programs in
Python because development is so fast, then rewriting the result in a faster
language after the design phase is over.

The rewriting phase is basically a translation, not a redesign. In most cases
I know exactly how the program should behave, so there's no design taking
place.

~~~
mercurial
Python is absolutely great for prototyping. And I like it for smaller, more
self-contained apps where you don't have to worry too much about mission
creep. And of course, you have sqlalchemy.

But all in all, it's more the safety you get from static typing I'm interested
in than a pure speed boost. Though pylint is not too bad, it's still not the
same.

~~~
jaimebuelta
I've work (and continue doing it) on quite big and complex projects in Python,
and it works really well for that. Of course, it can depend of the context,
but in general I don't think that safety is much more and issue on a dynamic
language (and in Python in particular).

