Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Re:Not that surprising (Score 1) 196

You say that you need the backwards compatibility, but you never say why? Why does it make a difference that you are running old code in an old interpreter rather than the new one? Why force new code to be the same as that old code? It's the same thing, only you get the choice to advance.

It's not impossible to upgrade code, and it's always possible to run it in an old (but supported) interpreter. There is no merit to keeping the language at a standstill.

Comment Re:Not that surprising (Score 1) 196

There is a huge difference there - the kernel isn't like Python, you can't run two disparate versions on the same system to run older code.

Programming language have to be able to make occasional breaking changes like this, because otherwise we settle for crap languages with all the problems that can't be fixed. You know what happens then? People make more languages to fill the gap, and then rather than just making a few changes, you either stick with the old bad version (just as you could have before), or switch to a new language which will require a complete rewrite rather than just modification (which, in Python's case, is often as simple as pushing it through 2to3).

If you really can't afford to have Python change, continue to use 2.x - guess what, it's still (as evidenced by this post) being supported, and will be for some time yet.

Comment Re:Not that surprising (Score 1) 196

Of course I understand the importance, but your argument is that there should never be any breaking changes, which means languages have to be perfect from the moment they are made, which is clearly never going to happen. Either we accept a broken language, which is not acceptable, or we make breaking changes. That's necessary sometimes. If you need to, 2.x still exists and you can run something using it.

Comment Re:Not that surprising (Score 1) 196

That doesn't make sense. Of course there is a reason to use Python. I'm not saying PHP being bad makes Python good, I'm using PHP as an example in favour of making breaking changes, as not doing that has caused the language to develop in a way that turns it into a really bad language. As to 'It's only worth it if you can can be sure that you won't have more backwards incompatible changes in the future.' - that makes no sense. Potentially, in the future, the language could have new features added, or features changed to make it better that require breaking backwards compatibility. Naturally, there is always a need to weigh up the cost of doing so with the benefits. I doubt we'll see breaking changes in Python for a long time yet, but they may well happen at some point, and there is nothing wrong with that.

Comment Re:Not that surprising (Score 1) 196

1. Why bother? The language can support it natively, so why not just do that?

2. It should never reach that point - it sounds like your code is convoluted and poorly laid out. If the cost of the function call is actually affecting your program, then the code you are talking about is hugely performance-sensitive, and should probably be offloaded into an extension module.

Comment Re:Not that surprising (Score 1) 196

That doesn't make it a good idea. Go and look at PHP, and you'll see why. PHP is a horrific mess of deprecated stuff, and it's insanely hard to find the right way to do something in the cruft of hacked in features and old ways of doing things. As with all things, we make mistakes when we design languages. Sometimes, we can fix those without breaking backwards compatibility, sometimes we can't. It's worth making the break to make the language better - it's just not wise to do it more than very rarely.

Slashdot Top Deals

CCI Power 6/40: one board, a megabyte of cache, and an attitude...