Diff: //nopython @ 674b34603 | src | log | howto

-- a/nopython++ b/nopython
@@ -1,5 +1,7 @@
h1. [ No Python ]

h1. Preable

bq. <tuomov> but python FAILS
<tuomov> fucking idiots
<tuomov> typical foss crap..
@@ -7,7 +9,7 @@
<tuomov> it's pure shit
_Tuomo Valkonen on Python_

Python is

*Disclaimer:* I do not code in Python. Why would I want to code in such a broken programming language. Why broken? language? If you think if this page contains errors, or you do know about even more severe pitfalls of subj. you are welcome to send [[Voker57/contact|me]] mail about those.

h1. Python brokenness from user's point of view.

@@ -15,7 +17,7 @@

If you didn't notice that these programs are sluggish and consume much memory, -you're blind- even now you can still be healed.

Lastmp, for example, crashes "wherever it encounters broken Unicode":http://bitcheese.net/vlog/post/580. Looks like you need to surround every string loading Solving this problem requires -surrounding unicode loadings with try..catch in python for that not to happen. Good design, eh? try..catch- calling unicode(data, 'ignore') instead of unicode(data). Note the string option used where saner language would use enum, flags or other method.

h1. Python brokenness from developer's point of view.

@@ -51,7 +53,7 @@
So let's count chars. Here goes class initializer definition in python:

bc. def __init__(self)
return 0 None

Same in ruby:




@@ -72,15 +74,19 @@

On the other hand, you have all the good-known stuff from C like parentheses all over the place and segfaults. Do you see segfaults often in dynamic languages? Well in python you do. Also, its libraries require *compilation*. What a nonsense.

h2. Python vs OCaml

* No static type system. It makes impossible to apply "correct by construction" principle in python. Although, exceptions just don't work (see above).
*

No pattern matching. And even no switches — actually even PHP has it. Some people recommend to use "if - else if" constructions instead...
*

Python performance sucks. Any single implentation of OCaml works much faster than any implentation of Python. has no static type system. It makes impossible to apply "correct by construction" principle in python.

h2. Python vs Ruby

* Objects. I mean, hashes of methods

Python appears to be an object-oriented language, but OOP system is just a syntactic sugar for dictionaries, and you have to fall back to direct intervention to do serious business. It doesn't even have private members. Some people say that it's Python vision of OOP, but then they might as well say that raising horrible kludges in C to obtain something that remotely resembles OOP is C vision of OOP.

Ruby shares the similar niche, but features brilliant OOP with conceptions borrowed from Smalltalk.

h2. Pythoogle

Many people praise Python because Google uses it. Well, it's "used":http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm for non-critical tasks mostly, and they use ancient 2.2, because of API breakage between minor releases. The only web services done in python are code.google.com (which doesn't support any decent VCS) and google groups.

h1. Conclusion

By Alexander Markov on Fri Jan 08 19:36:28 +0000 2010