“It’s been nearly 20 months since the last major release of the Python programming language, and version 2.5 is probably the most significant new release of Python since 2.2. The latest release includes a variety of additions to the standard library, language extensions, and performance optimizations.” More links here.
Hurray!
Movable Python has had a new release too
http://www.voidspace.org.uk/python/weblog/arch_d7_2006_09_16.shtml#…
Supports 2.5 and Ironpython
Windows only at the mo…
Davy
Well, pretty much any linux box will have python by default… =)
just love it…
http://docs.python.org/dev/whatsnew/pep-309.html
It seems currying (partial function application) is now supported by a module or am I missing anything?
I’d say it is an important change but not listed on the highlights page.
Could it be because Guido doesn’t like functional programming all that much?
That’s really only slighter shorter than using a lambda, so it’s not as though it was never “supported,” per se.
server_log = lambda m: log(m, “server”)
Ok, thanks. I’m not (yet) into python so I didn’t know.
All I heard was some random rambling about Guido not liking functional programming.
But I’ll definately give python a shot after I have managed to work through the pile of physics books in front of me. It’ll be the day when perl6 is ready, you know
Every language has its own space – each language will have a part of the larger problem space to which it is best suited. This is useful to understand, and it nullifies the common language preference arguments.
However, python I believe has the following strengths:
* not too encumbered by syntax
– many programmers realise that it is one of those languages where the first iteration or protoype works without the need to go and fix language syntax errors.
* has a good representation
– compared to some languages the leap between the human brain idea and the actual code is small. consider the difference between System.out.println(“Hello World”); and simply print “Hello World” … iteration is also particularl natural – check it out.
– for me, most of my problem space is now carved u p betweem C (performance, footprint) and Python.
* standard distribution has many useful libraries and functions
ths is useful becuase if there is one official smtp library, then it is more likely to be mature and more likely to be bug-fixed. this is the opposite of libraries where you extend functionality from a less trusted source.
you’re not reinventing the wheel with libraries to do useful and very practical tasks – from smtp to http, from base64 encode to portable file operations. you’ll even find that different layers are exposed – you have a high level “www” lib, or a lower level “http” lib or even lower “socket” .. and so on.
* portable and available multi-platform.
you won’t have too much trouble obtaining python and running your code on linux, bsd, solaris, macos .. even windows.
* readable ad understandable code
this is important. wen you read your own code months later, or pass your code to someone else if it much more likely to be understood than other languages.
I often recommend python to first time programmers. you’ll be amazed how many non-technical people enjoy processing text data files, or outputting numbers to be plotted by a graph plotter, or even printing out the times tables! newcomers are amazing at the seemingly easy power and possibilities with programming.
python is great – but it could be greater:
* a serious IDE – the “idle” IDE is very weak and not a good advertisement for python. we need something like netbeans/eclipse is for java – code completion, library introspection and so on.
* threading
i know that python has a very nice and portable threading model – and for most applications its perfect and brings easy threading to more developers. however, this threading is “in the python interpreter” achieved with a granularity of python microcode. it would be useful to have additional libraries for OS/kernel provided threads.
essentiall a python interpreter running threaded code does not make use of multiple CPUs or cores.
* asynchronous model
the Twisted Networking framework is an attempt to provide asynchronous networking at various networking application layers – however the code is ugly and the dcumentation is not in the spirit of the usual accessible, clear python philosphy.
by the way I just wrote a quick script which iterates loops with a depth of three:
python 2.4.3 = 16.205 seconds
python 2.5 = 12.058 seconds
that’s a 34% increase!
Good write up!
Eclipse has pydev which is wonderful for python work . It has autocompletition, debug support, syntax highlighting, outline and all the other advantages that eclipse offers
That performance increase is really good. Python is still a slow language but for RAD it’s awesome. It would be interesting to see if the cpython beats Ironpython in peformance now (this will prove even more that .net is only designed for imperative and statically typed code).
“That performance increase is really good. Python is still a slow language but for RAD it’s awesome.”
Sorry to break your bubble, but Python is not RAD, until it has a serious IDE with a visual forms designer it will never be RAD.
If you want a RAD Python you should make it known to the developer tools group of Borland(soon to be a seperate company) as there has been talk of a Turbo Python which would be similar to Delphi.