I just had Guido van Rossum’s blog pointed out to me, and on it, he’s just made an announcement about the next “major” version of Python, for which they’re going to do some massive internal changes, and (god forbid), break backward compatability. So, firstly, you may want to read the post, which you can get here and then take a look at some of my thoughts.
Firstly, removing “print” as a keyword (and rebirthing it as a function, a la C) is something that should have been done years ago — truly it is an abomination and deserves to die a slow and painful death.
Many functions useful to the building of for loops have had their entire internal structure revamped; instead of building lists and iterating over these lists, they simply use an iteration function — from an algorithmist’s point of view, this is truly wonderful (technical details follow). The current python model implies that to initiate a for loop, you would need to go through an O(n)-time process of constructing a list, and then use that list to get an iteration variable (which has an O(n) space overhead) — clearly not very efficient. The new version of range acts like Python’s xrange(), which simply uses an iteration function. The time and memory increase will be enourmous.
Division (where necessary) is now floating-point by default; so 1/2 will now equal 0.5 instead of 0. From a teaching point of view, it’s going to be wonderful.
A Java-like Class hierarchy now exists, which, despite my great hatred of Java, is one of its OO-related strong points.
So, all in all, I think Python 3K is going to be very interesting, indeed, and am looking forward to trying out some of the alphas when they’re out (August)
Oh, and I had the following picture brought to my attention:
Who is the person on the right? You’ll have to watch the latest two eps of Doctor Who to find out. And thanks to Nic Wittison for making the composite.
Well, it appears as though I’ve been neglecting this place for quite some time, so I suppose I should update you a bit on what’s been going on in the land of me recently
Firstly, my first “proper” semester at Uni has just finished (with the exception of exams), and things seem to be going well. So, I think I should comment on the subjects I did
- Chemistry’s generally quite interesting; I’m doing it more for the opportunity for more practical stuff than maths and computing offer; the weekly lab sessions are great in that regard. The exam, however, is probably the one I’m least confident about.
- Maths (Calculus and Applications) hasn’t really consisted of much more than I did in Year 12, except with a bit more focus on learning theorems and such. It’s not my ideal stream of maths (I hope to be studying something a bit more interesting as far as I’m concerned next year), but still enjoying it.
- Algorithms (second-year Computer Science) has been really enjoyable, I’m going into the exam quite confidently, and expect that it will be my best subject at the end of all of this.
- Introduction to Systems (1st-year non-programming stuff) has been the most dreadful subject I’ve ever studied, ever. The content is put together indifferently, and the local lecturer really doesn’t appreciate the fact that he has to teach it. I’ve learned practically nothing in it, and have got nothing out of it, with the exception of one of my unfilled first-year slots being filled. In my opinion, it’s worth not doing the BComp here, just so you can avoid it and units like it, and luckily, that’s the case for me (as I’m doing a BSc)
In other related news, I got invited to train with the School of Computing’s ACM ICPC team, which is great, as it means I can extend myself a bit. To that end, I’ve enrolled in a Winter School unit designed as preparation for that sort of stuff, which, aside from placing me in Launceston for a week, and making me do an exam on my birthday, looks like it will be really good fun.
Well, that’s about it for now, I expect that I’ll be making regular updates over the exam period. Bye!
chris@Petya:~/Desktop$ python Python 2.4.4 (#2, Apr 26 2007, 00:02:45) [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from __future__ import braces File "", line 1 SyntaxError: not a chance