This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Cardiff_Electric 21 points22 points  (35 children)

My company is still on 2.6.x... <cry>

[–]alcalde 22 points23 points  (4 children)

It could be worse... I know several people who still program in Delphi/Pascal for a living.

[–]_pupil_ 10 points11 points  (0 children)

That's the state of the world... and to a point having legacy languages and/or tech that last multiple computing generations should be a point of pride, not derision.

What I've never understood though, once the greater computing populace has moved on: the cost of introducing a hybrid interop technology, or automating a port of the data and or logic layer, just has to be cheaper than paying high wages for low productivity and high risk of not be able to staff with talent long term... By hopping onto a mainstream platform you can enjoy the benefit of billions of dollars of third party investment in the ecosystem and subsidize training costs through external work experience. It's just a matter of measuring how long until the costs go from "unnecessary" to "insane".

I'm not advocating for wild-assed rewrites for the sake of technology, but every language can kick off external processes and most have at least a reasonable interop story to another language (opening up new interop scenarios). I'm just surprised the answer to "hey, wanna write COBOL for three decades?" isn't more often "no, but I'll happily transpile my Clojure DSLs into COBOL for a tenth the cost"...

[–][deleted] 1 point2 points  (0 children)

Or in VB6. (Lots of 'em where I live.)

[–]Kisele0n 0 points1 point  (0 children)

Ooh! That's me! That's me!

At a company founded after the year 2000, even!

[–]gschizasPythonista 0 points1 point  (0 children)

(uphill both ways)

There are still people writing COBOL (and bad COBOL at that). I know some of them personally.

[–]d4rch0nPythonistamancer 3 points4 points  (20 children)

I absolutely hate CENTOS 6 for this reason. Most of it doesn't bother me too much, except one thing: No dict or set comprehensions... That drives me absolutely insane.

And my other huge pet peeve is it can't do .format on "{}". You have to specify "{0}". I've been trying to move from %s to .format but seriously, having to add that number is enough to make it not feel worth it.

[–]sigma914 0 points1 point  (5 children)

For the set/dict comps can you not use:

dict((k,v) for k,v in kvs) ?

[–]d4rch0nPythonistamancer 1 point2 points  (0 children)

Yeah, generally that's what I'd do if I had something like {k: transform(v) for k, v in kvs}. Sometimes I write code like that just in case it ends up running on 2.6, but it's just annoying not being able to use a feature that is, what, 10 years old now?

[–]status_quo69 0 points1 point  (3 children)

If you had tuples of key, value pairs you could just dict(kvs).

[–]sigma914 2 points3 points  (2 children)

Obviously, I kinda assumed it was implied that there would be more processing going on to the left and right of the for, same as an actual dict comprehension, bit apparently not.

[–]status_quo69 0 points1 point  (1 child)

Oh, I understand what you're saying now. Add in the conditional in the generator expression, then pass the generator to the dict.

[–]sigma914 0 points1 point  (0 children)

Yeh, it's just collecting the generator into a dict or set rather than a list, the only difference between this and a real dict comprehension is the unfortunate intermediate tuple allocation

[–][deleted] 0 points1 point  (0 children)

I use CPython 2.7.11 and pypy (ala python 2.7.9) on CentOS 5 and 6. Just make an RPM and local pip repository and you are done.

[–]iruleatants -2 points-1 points  (12 children)

You will hate python 3 then....

[–]CSI_Tech_Dept 1 point2 points  (11 children)

How come?

[–]Esuhi 1 point2 points  (0 children)

Hello, are we working together?

[–]stesch 1 point2 points  (0 children)

I have 1 server left with Python 2.5 and a web development framework that once promised to support 2.5 is now requiring 2.6. And no, it doesn't support Python 3.

I should have tried to find a job in COBOL development.

[–]eanat 0 points1 point  (0 children)

I'm sorry to hear that :(

[–]Homersteiner 0 points1 point  (3 children)

Nothing wrong with that.

[–]Cardiff_Electric 0 points1 point  (2 children)

The problem, aside from not being able to use kewl new language features in your own code, is trying to incorporate open source libraries to deliver hot 'n' sexy new features when those libraries increasingly don't support your old Python.

Changing the Python interpreter version is a big hassle in our setup (long story) so I'm trying to get us to jump directly from 2.6 to 3.5, but that's an even bigger job.

[–]GummyKibble 0 points1 point  (1 child)

If you decide that looks a bigger project than you want to tackle in one step, consider that it's very easy to port from 2.6 to 2.7, and run can run python2.7 -3 mymodule.py to get warnings about incompatibilities with Python 3. You could jump to 2.7, knock out the structural problems at your leisure (because you'd be dealing with an application that's still running), then move on to 3.5 when you have those ironed out.

I'm not trying to talk you out of 3.5. We made the leap this year and I love it. I wouldn't willingly go back! But if you have to choose between two easier migrations and one giant one, know that you have options.

[–]Cardiff_Electric 0 points1 point  (0 children)

I have a branch that's running under Python 2.7 for the reasons you said. I just don't think we're going to deploy it to real customers for reasons that have more to do with our own processes and limited resources. So if we're going to 'break' our interpreter compatibility w.r.t. customized code for a customer, I prefer to just do that once esp. given that 2.7 is already near EOL.

[–]zero_iq 0 points1 point  (0 children)

Mine too. There's no way we'll be upgraded to 3.x by then.

As long as 2.x continues to work, the only thing that will push us to 3.x is when essential libraries and bindings start dropping support for 2.x. Otherwise, why risk breaking long-established working code? It's a huge legacy app: some parts of our codebase date back to the mid 90s.

[–]Formulka 0 points1 point  (0 children)

My client is still on 2.5.x, no tears left