John Nagle <[EMAIL PROTECTED]> writes: > The major complaint I have about Python is that the packages > which connect it to other software components all seem to have > serious problems. As long as you don't need to talk to anything > outside the Python world, you're fine. But once you do, things > go downhill. MySQLdb has version and platform compatibility > problems. So does M2Crypto. The built-in SSL support is weak. > Even basic sockets don't quite work right; the socket module > encapsulates the timeout mechanism but doesn't get it right. > > In the Perl, Java, PHP, and C/C++ worlds, the equivalent > functions just work. That's because, in those worlds, either the > development team for the language or the development team > for the subsystem takes responsibility for making them work. > Only Python doesn't do that. > > Python has been around long enough that this should have > been fixed by now. > > John Nagle
You experience isn't shared by everyone. Some of us find Python the most functional and portable of the candidates you mention. Perl - excellent modules and bindings for just about everything you can think of, but the whole thing is painful to watch. Once you've done a few code reviews on 10,000 line perl packages where even the authors have no idea what the code is doing, you tend to look elesewhere. Java - a world of its own. They reinvent the wheel instead of linking to existing libraries. In the process you get libraries upon libraries upon libraries. Even if there isn't a performance hit, you (as a human) can get lost. And the language is just too verbose to live with. PHP - are we talking web scripts or serious programs? Are you doing numerical analysis, NLP, computational chemistry, or bit twiddling in PHP? C - the portable assembler. Solid, trusted, tunable performance, bindings for everything. Of course memory bugs can stop your project in its tracks for indeterminant periods. C++ - objects tacked onto C; but that didn't work so invent a whole world of templates and rewrite everything again, but now trickier than C to bind to other languages. Good work can be done in C++, but that is a testimony to the programmers and not to the language. Python - it just works. Same scripts run on every platform. Bindings available to every C/C++/FORTRAN library I've needed so far. Often the bindings are not complete, but oddly enough the binding developers have chosen to do just the functions I need, so who cares. A clean architecture for adding more function bindings if I'm so inclined. -- Harry George PLM Engineering Architecture -- http://mail.python.org/mailman/listinfo/python-list