We were unable to load Disqus. If you are a moderator please see our troubleshooting guide.

JoeyJoe • 13 years ago

And what's with all this 2.x versus 3.x crap? Make up your minds people! Where is this language going?

JoeyJoe • 13 years ago

That is EXACTLY why Python sucks. You nailed it.

Andrei • 14 years ago

I'm a programmer with 13+ years experience in web and desktop applications, and I use Python on occasions (not for the language itself, but for some applications written in Python).

I don't recall seeing a programming language more hectic that Python. It looks like an April's Fool joke that caught on with the public, like a hack that people just don't let go.

I spent a few days reading some books about it and I got pretty good with it, but in many parts I consider it a hack. You want some examples, I assume:
- lists: add an item: append/insert method; get+remove an item: pop method (strange name matching)
- lists: add an item: append/insert method; remove an item: del STATEMENT (that's right, not a method, but a statement)
- lists: add an item: append/insert method; get the size: len FUNCTION (that's right, not a method, but a standalone function)
- iterate over items: for dicts use the iteritems method, for lists use the enumerate function
- and many others.

I like programming languages which are either brief, or well designed (so that you can "guess" how API calls will look like before you read about them, by extrapolating your previous experience in that language). Python is none of that. Moreover, IMHO it's widespread use in Linux's desktop apps is even hurting Linux's image as a good desktop OS.

Now the good part: I like Python's whitespaces matter approach. Again, it has some design problems, but it's nice.

PythonHater • 16 years ago

Python is terrible, you shouldn't promote it, it is impossible to read and overall very lame, stick to language which at least follow common sense when implementing the syntax.

Theindianmc • 12 years ago

yo, dont hate, and please dont discriminate, cuz if u do ill come after u, and make u eat my poo.

LOL

Doug Hancox • 13 years ago

Python's most critical flaw is the fact that it can't export ANYTHING as an EXE. And the only way to do so is to essentially trick the program into doing it for you by finding a third party installation app and hoping it takes the bait.

Fuck this programming language.

Spaminator • 12 years ago

Not everyone uses Windows. File extensions are meaningless. Microsoft's version of the Python platform is called .Net. Your compiled .Net "EXE" applications can't run without installing a massive library. If you would prefer stand-alone applications then you can use an appropriate language such as C++ or Haskell. Have a nice day. :)

LIAM • 9 years ago

Linux sucks most of the time, I've tried getting into it multiple times. The conclusion is always the same it's massively under supported and really only good for specific tasks but those tasks that it's good for it's over powered and badass. PS you don't have to install the library for .net it's preinstalled on all windows machines. Some people hate on Microsoft because they are dominating just because your butt hurt doesn't mean you should tell people .net is as bad as python. Stand alone applications? You mean 98% of applications out there?

Kaihusrav Najmiddinov • 2 years ago

I just explored python to check out if it is worth to be learnt, cause idiots, who are not programmers have putted it in requirements for jobs. It sucks, so do its promoters and authors

Trimbo • 14 years ago

I love that I typed in "Python Sucks" and your blog came up first.

LOL.

Tom • 15 years ago

Python is better than all other languages.
The reason? Its fast enough for me to mess around with and its easy enough to learn (or grasp).

I have made a python program that generates Fractals (Wikipedia it) and writes them to a .png file, complete with colours. It took me an hour to make, with messing around.
Its cool, but a bit low rez (With 100x100 pixels it would be). So, I made it draw 1000x1000 pixels, but it was a bit slow. So I added threads workers from the Thread linked with the Queue module that took in x and y co-ordinates, ran some clever math functions and spat out a colour, then drew a pixel on that x,y co-ordinate. Its a bit faster, so I imported Psyco and .full()'ed it, which sped it up about 3 times.

The point? I couldnt have done any of that without Python docs.

Kaihusrav Najmiddinov • 2 years ago

may be it is the best for you, cause you get lack of chances grasp better languages, which are 10 times faster, and you wouldn't need those extra works you did above app with python

Anonymous • 8 years ago

LOL theese noobs dont even know python. Haters gonna hate. Theese fools dont even know about py2exe. Python FTW

thedonvaughn • 17 years ago

so is this site about big pythons? I love pythons. They are big. They are pythons. My python ate my mother's perls. The python than poop out the perls. Silly Big python.... it's funny how it embarrasses the perl.

eske2 • 11 years ago

necropost!
idle help(pow)

Guest • 12 years ago

Python sure does suck.  WHen you do find docs, they're of the form presented at the truly awful docs.python.org - no simple examples and a truly dreadful interface.  But Python it's a vacuum cleaner next to Perl's black hole of suckiness!  I know it's been said, but Perl is write-only.  Time for it to die a lonely, neglected death.
And I have to say that this comment box sucks beyond the scope of either of the above.  It doesn't scroll in Firefox. 

aMoLk • 13 years ago

No problem with whitespaces. I have been programming for 10+ years and I like my code to look neat. I use whitespaces/tabs anyway whenever I'm writing programs, whether its HTML or TCL or Shell or anything else. So, I like a language where I can leverage my whitespacing skill ;)

Python3kFTW • 14 years ago

Honestly, anyone who accuses Python of lacking documentation or readability is entirely off their tree. Python has:
- Docstrings (access them via help(object) or help() and type the name in)
- docs.python.org, which uses the excellent Sphinx documentation tool
- Most modules come with a readme (although this is common to *just about every* language, people often overlook it)
- Crunchy (http://code.google.com/p/cr... which makes online tutorials 'come alive', so to speak, by embedding an interpreter in the browser

Python even has it's own version of CPAN, the Python Package Index (PyPI, http://pypi.python.org/pypi) with an absolutely huge listing of packages.

And comparing Django and PHP is ridiculous as Django is a framework, PHP is not. This probably explains "anonymous"'s comment.

The one point I have to agree on is that Python is *S.L.O.W*, and although you can increase it's speed quite easily (Psyco, Cython, C Extensions, Stackless Python (which is an incredible implementation), etc) and bring it up to scratch.

On whitespace: Yes, Python does use a HUGE amount of whitespace, but as "Just a Developer" pointed out, it's not all necessary and does drastically increase the readability of your code. Someone tell me this is not criptic: for(@x){s/(http:.*)/urlencode($1)/eg} and this is the problem you will always face with people who don't know the language they are talking about (and I am no exception, I don't know ANY Perl)

~sigh~

Guest • 12 years ago

Docs.python.org is about the least most helpful documentation I've ever read.  Want a simple example of something? Go elsewhere.  If Sphinx is the tool responsible for the awful (the index doesn't scroll with the page - wfh?), the Sphinx is _not_ an excellent documentation tool.Where I do agree, though, is that Perl is truly, direly, appallingly awful.  Oh, and I do (or did) know Perl.

doc • 14 years ago

i like perl's implicit arguments. they reflect what i actually do with my code... like, you know, read from the list of arguments to the program. or, say, do something with a list variable. try doing this in python and it will lokk like some reverse polish meltdown. for(@x){s/(http:.*)/urlencode($1)/eg}

Kilroy • 14 years ago

Yes, Python is a very powerful language BUT it is also very slow!
And I am not comparing it with C or other compiled language or statically typed language. Python is also slow compared to other dynamically typed interpretive languages.

It is okay for PHP and ASP to be slow because PHP and ASP do not claim to be powerful or advanced languages and they are easy to learn. But Python claims to be an advanced language. Advanced and yet so slow????

Andy • 14 years ago

Well Python rocks :)

Windows runs on Python. I am sad that the developers of Blender selected such an un-professional language which is both non standard, and unfriendly to a programmer. Do you expect an artist to be using PYTHON ? are you listening BLENDER MORONS ? You should have sticked to C++ (minus the MS shit .NET).

PHP is a great language and is so much friendly, need a a day of training to even the worst of morons to understand the Perl and C++ borrowed syntax.

Anyone who accuses perl if favor of PYTHON, you should get your facts straight. A languange for even a novice has to be forgiving, and yet remain graceful which PHP does generations ahead from any PYTHON ASS's thoughts.

OOPS, My Foot, we never use it when not required. PERIOD. A simpe form submission does need a .NET component shit. it just needs 5 lines of code than struggling around Apache to get this Python shit requiring all ports open(AKA PLONE).

good luck guys, rant all from your hear against python, I love 3D Toools, but will never forgive the original coder who shose python as an API, he was surely insane or incapable on c++ or even PErl.

Doug • 15 years ago

I can write perl in my sleep. I'm just learning python. Somehow I found this. Python whitespace is mostly a non issue. Not better. Not worse. Different. For myself, I like to put temporary debug print statements flush left...guess I'll have to change that habit with Python. Ok, that does suck. But in case you haven't figured it out by now, ALL PROGRAMMING LANGUAGES SUCK(tm). Perl, Python. They suck equally, in different ways. Now get back to work.

mike • 15 years ago

http://ipython.scipy.org/moin/

At the interactive prompt you can type ? and it will spit out what the function does, along with many other cool tricks.

anonymous • 15 years ago

Dear ron_paulite,

Python is not slower than php. It is the other way around.

http://shootout.alioth.debi...

Click there and you will see in almost all tests, php lags heavily behind python.

It is also faster than perl.

http://shootout.alioth.debi...

Sybren • 15 years ago

Well, if you can't even find http://docs.python.org/ nor http://www.python.org/doc/, you surely lack the skills to judge any programming language.

Torsten Bronger • 15 years ago

There are lies, damn lies, and benchmarks.

And the worst benchmark all is a person just browsing the Web and listening to his "feeling".

The *serious* benchmarks other people did show that -- of course -- Python has the same speed than PHP whithin the error span. Most even see an advantage for Python.

BTW, those Web framework benchmarks are really superfluous. Unless one framework is not one order of magnitude slower than the others -- and none of the significant is -- it's simply unimportant. Look at the hype with Rails although it *is* slowest until we get the YARV in the upcoming Ruby release.

Raj • 15 years ago

Python rules and Perl drools.

Also, Vim rules and EMACS drools.

Discuss. ;-)

Anonymous • 8 years ago

Yep :D

ron_paulite • 15 years ago

Python is slow.

Whenever somebody says Python is slow, Python fans would say that Python, being an interpreted language, will always be slower than compiled languages. Or they would say Python is fast enough

The PROBLEM is Python is slower than PHP.

Just go to any Python website and you will know.

An example is:
http://www2.ljworld.com/
And this site is created by the creators of Django!

And it is not just this Python site that is slow. There are many many Python sites which are very slow. And please don’t say that it could be the web hosting or the server which is slow — because when so many Python sites are slower than PHP sites, it couldn’t be the web hosting.

Also, Zope/Plone is even slower.

Python is slow. Very slow.

Sure, Python is definitely a more advanced and powerful language than PHP. But what’s the point if it is slow. And contrary to what Python fans like to say, Python is not an easy language to program in. And it is definitely not easier to write Python web applications as compared to PHP.

Python sucks. Python is slow.

Anonymous • 8 years ago

Python is one of the easiest languages. My 3-year old sister can understand it.
Also YOUTUBE AND GOOGLE USE PYTHON. Do they seem slow to you.
*facepalm* Theese noobs

madwifi • 15 years ago

python doesn't suck, but it's horrible

Scott Wimer • 15 years ago

I came here via 'pydoc sucks'.

I wrote a validation helper library from some Django code I was working on, dutifully writing doc strings for each helper and a docstring header.

When I try to view it with pydoc though, it barfs because it can't find a django module that my library uses.

I don't want my doc viewer to execute my code; I want it to extract and format documentation.

If your code writes to a file in the top level, then reading its docs via pydoc will create, or delete, or whatever files. That's really suboptimal.

thatguy • 15 years ago

Since when did Python not have enough documentation? There's a giant tutorial directly on the Python website..

brianary • 15 years ago

@Just a Developer:

1. If you say so. There are differing posts about this online, and I'd wager that the two are at about the same order of magnitude in terms of speed, in general.
2. Wrong.

  eval {
....
};

if ($@) {
if ($@->isa('MyFileException')) { # Specific exception handler
....
}
else { # Generic exception handler
....
}
}


3. Examples, please? I don't believe this is true. For the most part, other languages copy Perl. Who had RegEx first?
4. There is a standard library, depending on the distro of Perl you use. And maintaining CPAN modules is only a nightmare if you frighten easily. ;) There's a whole module for easy module maintenance (CPAN). I imagine that this is something Python programmers will claim is a liability until PyPAN is ready.

I haven't used Perl for serious programming in years, but when I need to quickly rename a bunch of files, massage some data, &c., Perl is indispensable.

I like Python's indent-blocks. That's part of what has drawn me to learn it, but I am also runnning into the lack of documentation, and it could cause me to walk away. Don't dismiss Perl docs with "ok, the extra documentation is mostly centered around perl's terminally weird syntax and stupid implicit argument behavior.", because that's just stupid and subjective. Read some Perl docs and see if that's really the case. In fact, pick 20 common features and compare the docs to Python's, and see what I mean. pydoc is nice, and I really like the local web server feature, but there's just no CONTENT there.

The thing that is really throwing me is that there is no easy way to do something as simple as parsing an RFC 1123 or RFC 822 datetime value, which are used in email/MIME, HTTP, RSS, &c. This is a BIG hole. When people complain about the fact that strptime ignores timezones, Guido himself just points the finger at C, as if that's an acceptable excuse. If you can't parse a standard date format, fixing that should be a top priority.

Also, what's up with repr() vs. str()? That's bizarre.

Just a Developer • 16 years ago

Joe Krahn said:
> Perl has it’s own problems. Object oriented features are a hack,
> and even well-formatted code can look rather cryptic. The
> documentation is much better just because it has been around
> much longer than Python. It is also much faster, probably for the same reason.

1. Perl is not faster, either not produce smaller code, if you want get
things right. Well, with Perl actually you can produce smaller sources
by GZIP'int em all, and most important that readability of the source
after compressing won't change that much... :-)

2. Perl also has lack of exception handling. There are Error module,
which is basically a hack and workaround, which does not catches
properly lot of things. Well, even trivial things, like division by zero.

3. Perl's built-in regular expression support is significantly different
that what most other languages provide. It makes Perl very powerful
tool while parsing text documents. However, this is very strong
disadvantage of Perl with none of counterweighting advantages while
working with XML (which is NOT a text!) and other complex data structures.

4. Standard library in Perl is absent, strictly saying. The rest is in CPAN.
To maintain such system, in some cases turns to be nightmare at
commercial production.

In short, the place of this rubbish lister is in museum. Perl6 is vaporware
and Python/Ruby, both of them beats Perl at Unix SA field these days.

> I would rather use something less cryptic than Perl, but without the fragile
> and annoying indentation rules of Python.
Python idents aren't that fragile. They could be annoying, but using
correct editor and writing in correct way, Python is fine.

Maybe you want to read this nice posting:
http://www.secnetix.de/~oll...

Guest • 12 years ago

ROFL!

1. Perl is not faster, either not produce smaller code, if you want get

things right. Well, with Perl actually you can produce smaller sources

by GZIP'int em all, and most important that readability of the source

after compressing won't change that much... :-)

she • 16 years ago

python is horrible because:

- whitespace matters:
no programming language that runs on NASA software should ever EVER EVER care about significant whitespace to satisfy a parser's need
- def __this_stinks__(blabla,blablablablabla):
horrible horrible horrible.
- wrong OOP. When Alan Kay said OOP he not only did not mean C++, but also did not mean Python

Anonymous • 8 years ago

People say that cos they are too stupid to understand python. LOL

bruce_sears • 7 years ago

Python is a hack attempt at a serious object programming language. I have been using it intensively for a year now. get this. create a new object:

python:

my_object = cmd.driver.cli.linux.ifconfig.ifconfig.Ifconfig(...)

i don't particularly care if the end-user can avoid the triply redundant dumbassery with some magical __init__.py crap.

python has a small project mindset that makes it easier for beginners, and harder for serious projects. another example is the lack of a decent API doc tool. sphinx just does not do the job in enabling easy navigation around a very large API. nothing written for python does. perl's natdocs are (or were? sadly i'm stuck in the python world anymore) were so far superior it is just laughable.

and yes, white space actually *is* the dumbest possible delimiter. let me know next time you read any document without punctuation (but it's SO natural! [face palm])

name = "fred"
character_count = len(name)

such utter vomitorium vomit. this is an object programming language? chortle. gasp. choke. if you don't know what that statement should look like in a object programming language, you have no business doing object programming. and this sort of stuff is rampant. python is like some very smart 13 year old wrote a programming language, and could never give up on it. it kind of got better over the years because they actually got some real world experience, yet, the awful choices they made early on, they could just never admit to have gotten *wildly* wrong. sure you can program tons in it. there are lots of sub-par programming languages you can accomplish the same in. it proves nothing.

matt • 16 years ago

I thought I was smart and pretty decent at programming until I spent the last several days, surrounded by books, trying to learn python. Don't get me wrong, I could easily entertain a 6-year old with my IDLE interpreter antics. I've even built a GUI and blah blah blah. But there is an anoying "spin" (read: lie) about the "ease of Python." Here are the significant issues (from the standpoint of a business owner who just wants a robust and very quick solution to web and desktop applications):
1- There is virtually no documentation. This whole thread began with someone saying they couldn't find documentation and that is the crucial problem. For those of you who disagree, look in the mirror--you're taking for granted how much you know. And for the rest of us, it's very very difficult to find a simple requirement like, what are the arguments i need to pass to a simple function?
2- Data Typing is not handled eloquently. It seems to be transparent at first, but unclear data types in python have led me to some very difficult to debug code (even when I seemed to explicitly type my variables).
3- Python has no GUI. Oh I know you're going to blog that there are dozens of them from Tkinter to Qt to Wx etc. But those have crappy documentation, no matter how powerful they are. I managed to crank out a few GUI's, but just the GUI itself took days on what would have taken less than 20 minutes in Visual Studio. (Don't misunderstand, I despise MS World- But if you value your time as much as your money, it makes sense to use VS. I've already spent more on the API Python Wing and unhelpful Python books than I would have spent just buying Visual Studio outright).
4- Python is not free. You'll spend a gazillion hours trying to figure out some documentation that would have simply popped up on the screen in VS. And the books. I've personally put Mark Lutz's kids thru school with his Python books. And the web tutorials are well-intended but, for my level worthless. And don't go off thinking I'm some lame beginner. I've created several very successful businesses and programmed much of the software that keeps them running at a high level.
5- Python is not intuitive. Sure you can write some apparently readable code at the interpreter. But take a bird's eye view of some fairly simple code in the basic python modules...there's nothing remotely readable about it. My dog can do some amusing tricks but I wouldn't let him drive my car.

Anonymous • 8 years ago

LOL If u wanna learn python just go on codcademy.

Joe Krahn • 16 years ago

There is no explanation here as to why Python sucks. The main problem with Python is that changes in whitespace can change the function. Having a language that enforces indentation is OK, but Python depends on precise alignment across many lines of code. Also, an indentation always counts as one indentation level, no matter what the size, but a dedent can be any number of dedents, depending on the previous lines of code. It works OK for small bits of code, but larger programs get really ugly. A folding or Python-aware text editor helps, but it is still a language weakness. It makes about as much sense as Fortran77 indentation rules.

Perl has it's own problems. Object oriented features are a hack, and even well-formatted code can look rather cryptic. The documentation is much better just because it has been around much longer than Python. It is also much faster, probably for the same reason.

I would rather use something less cryptic than Perl, but without the fragile and annoying indentation rules of Python. Ruby looks promising, but I have not used it much yet.

Someguy • 16 years ago

Perl > Python by far. It has much better documentation and is more common sense in my opinion.

flamoot • 16 years ago

It's the book

burt • 16 years ago

I have a copy of "Python Programming" by John Zelle
The most important part of the book is hidden in Appendix B and half of the programs in the book will not run. Is it the Python or the book?

Theindianmc • 12 years ago

It depends. Which code doesn't work?

LKRaider • 17 years ago

@Ben:

please, name three.

Ben • 17 years ago

If Python doesn't suck, then why do 50% of the Python programs I try to run (on several Linux distros, FreeBSD and Mac OS X) die with a stack trace?

Anonymous • 8 years ago

Because u suck at python?