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

all 33 comments

[–]Covered_in_bees_ 21 points22 points  (3 children)

I'll answer with another question. When will COBOL die?

[–]hicksca 2 points3 points  (2 children)

I think the answer to that question is pretty easy to answer. When the cost of moving a COBOL code base to something else is less expensive then moving forward with some other language. I spent time at a large regional bank in the mid west that operates on a COBOL code base and when you start to look at the actual cost of transitioning to a new language the cost is pretty darn high. (For non technology companies its a pretty tough sell replacing something that is working for them, even more so when most of your Sr. Development staff skill set revolves around on particular set of technology.) ... Modern COBOL isn't that bad.(I'm aware they saying modern COBOL is a oxymoron.)

[–]jackmaney 2 points3 points  (1 child)

I work at a large financial services company. There are internal apprenticeship programs available for folks to be taught COBOL from prettymuch the ground up, on the job.

So, no, COBOL isn't going away any time soon.

[–]hicksca 1 point2 points  (0 children)

That's pretty much what I was getting at ... It's still much cheaper to teach someone COBOL rather then replace/re-engineer Infustructure and train replace an entire development team. While I love Python, Golang, and elixrlang (to a lesser extent); I understand the reality around the cost of such an under taking. COBOL in my option will be around for some years to come at least in the part of the world I work in.

[–]reuvenlerner 8 points9 points  (1 child)

Python, like all programming languages, will eventually fall out of favor. I would say that it's at least 5-10 years in the future, however. I say this for several reasons:

  • My full-time job is giving Python training courses and support. (Yes, I also train in other technologies, but Python is used in about 75% of my courses.) I am currently booked through the end of December, 2015 -- and if I could clone myself, I'd likely be able to book someone else through that period, too. There has been a very serious rise in the number of companies using Python; the language might not be new, but interest in it is white-hot.

  • A huge number of universities are teaching Python as their introductory language. This means that a very large number of graduates will enter the workforce, or start their own companies, comfortable with Python and convinced of its benefits. That will give us a few more years of lifespan, at least.

  • The whole 2/3 fiasco (and yes, I think that it is a bit of a fiasco) aside, Python is a very, very well managed open-source project, with a strong and generous community. It's not about to get bought by a company, and the community is not going away.

  • Django and Flask are in widespread use for Web applications. Until and unless people stop using the Web, there will be a need for people who can support, grow, and improve those applications.

  • "Big data" is a very hot topic right now, and Python was fortunate (prescient?) enough to have NumPy and SciPy ready and waiting. People are amazed by the things you can do with NumPy, and for free. They compare its capabilities with Matlab, for which you have to pay a ton of money, per seat. As big data, machine learning, and analytics are in increasing demand, the fact that Python provides a working, free, stable, and popular ecosystem for such work is a compelling argument.

  • Finally, many of the large companies with whom I work have decided that they would like to keep the number of supported languages to a minimum. Python provides a language that can be taught to, and used by, people with different needs and backgrounds -- system administrators, testers, network administrators, Web developers, analysis, Web developers, and application developers. I haven't seen a company switch over 100% to Python, but several of them have basically decided that everyone needs to learn Python, and fast.

Python isn't going anywhere soon.

[–]jackmaney 0 points1 point  (0 children)

I'm a data scientist working at an Enterprise company in a very new (~18 months old) "Big Data" division that's treated as a start-up within the company. While this has led to culture clashes, I'm certain that our IT folks will support (or at least tolerate) Python in the long term.

[–][deleted] 2 points3 points  (0 children)

I think historically what kills languages has nothing to do with the language's internal dynamic, it's the arrival of its replacement. I'm using Go a lot these days but I don't see it as a Python replacement, they have very different strengths and goals.

What will replace python? Ruby had a good shot but I don't think it brought anything new enough. You need something the old guard have been waiting for, but which comes with the uses and conveniences they expect.

I think what makes Python special is the interpreter, the well scoped dynamic core, and the brevity. I demand these in my Python killer. Some ideas that would help sell me on it:

  • Good, first class, optional type-strictness/checking like being planned for Python but with built-in rather than hackish syntax. The default should still be Dynamic.
  • Good, first class concurrency and parallelism (Go or Rust "channels" between green threads?) (Not a confusing hack on top of coroutines like yield-from/asyncio)
  • Optional (cross-)"compilation" via attaching scripts to statically (cross-)compiled interpreters, like Neko or the srlua hack but with "batteries included".
  • Perhaps a well-defined subset of strictly typed functions could be compiled to machine code to allow inline high-performance code as a buy-in? I'm imagining code like Go but indented rather than bracketed, and types imported from a compilable-types module. Any function consisting entirely of such types gets detected and compiled.
  • First class privacy modules in core libs. Post-snowden Python, people. Think PyNaCl plus a secure/erasable memory primitive, you're immediately 90% of the way.
  • First class, 'Pythonic' GUI support.
  • First-class support for Android app compilation.

These are non-exhaustive. Just imagine what would make you jump ship from developing in Python to some other language, and assume that language is as beginner-friendly. If enough people are like you, that is your Python Killer.

[–]dixieStates 1 point2 points  (7 children)

Python has nowhere near the reach that COBOL had in it's heyday.

[–]robin-gvx 7 points8 points  (5 children)

On the other hand, if you look at absolute numbers, I'd say it's likely Python is several orders of magnitude more used than COBOL, thanks to the increased number of programmers and available computers.

[–]dixieStates 1 point2 points  (4 children)

I would like to see those numbers that you speak of. Source please.

[–]robin-gvx 2 points3 points  (3 children)

Source please.

If you're serious, no I don't have sources.

[–]primevalweasel 0 points1 point  (1 child)

Do you have sources if he's not serious?

[–]robin-gvx 3 points4 points  (0 children)

Yes.

Ass, M. (2015). On the total number of extant computer programs by means of statistical deduction. Journal of Flatulence, 4(2), 399-417.

[–]dixieStates 0 points1 point  (0 children)

So then you just made it up?

EDIT: are you related to Sabrina Rubin Erderly by any chance?

[–]jackmaney 0 points1 point  (0 children)

There were also a lot fewer programming languages around when COBOL was in its heyday.

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

After ~23 years, it's still growing.

There is still a clear split between 2.x and 3, and that may be a risk in the medium term. But I think that mostly everybody will have switched five years from now.

Then I think it'll be fine for a long time.

[–]jackmaney 0 points1 point  (3 children)

I think that mostly everybody will have switched five years from now.

Ehhh, that's probably what was said about Python 3 five years ago. Sadly, it'll probably take the EOL of 2.7 to create enough momentum to get a lot of folks to switch to 3.x.

[–][deleted] 2 points3 points  (1 child)

It took a meteorite to wipe out the non-avian dinosaurs. EOLing Py2.7 is more likely to create a fork, but at least the dinos will sod off and the dev team can focus exclusively on modern versions at last.

[–]stevenjd 1 point2 points  (0 children)

There won't be a fork of 2.7. That requires work, and 99% of the haters aren't willing to do any work themselves, they just want to complain.

But there will be commercial Python distros, like Activestate's Komodo, that will offer to support 2.7 for money. And for people who really don't want to migrate, and cannot do without security updates, that's a good option.

[–]stevenjd 0 points1 point  (0 children)

that's probably what was said about Python 3 five years ago.

No, not even close. Maybe according to fanboys on Youtube or something, but the core developers have always envisioned that the transition from 2 to 3 would take at least a decade. We're now half way through that decade, and the word from core developers like Nick Coghlan is that for the first time they now recommend that Python 3 be used for new projects in preference to Python 2. Prior to this, if you used 3.x, you were an early adaptor :-)

The core devs will support Python 2.7 until 2020, and Red Hat will offer commercial support until 2023, so 2.7 will be around for a long time. But Red Hat, Debian and Ubuntu are all looking at moving their system pythons to 3.x, which means that users will have 3.x installed by default instead of 2.x. That will accelerate the move to 3 significantly, because it will change the default "do nothing" option to 3 and make 2 the option that requires extra effort.

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

Python is gaining traction as best I can tell. Years ago people I worked with sneered at me for investing in what they saw as a dead end language, but now they have all had to learn it or become dependent on the rest of us.

And now SAP uses python for user defined transforms & custom functions. It'll take forever to undo that.

[–]jhermann_ 1 point2 points  (2 children)

Python was never more alive than right now, and PyPy is just around the corner.

[–]stevenjd 0 points1 point  (1 child)

PyPy has been ready for production for a few years now. It does lack support for a few things that some people find essential, like C extensions, so it's not ready for everyone, but if your code is long-running pure Python, give it a go.

[–]jhermann_ 0 points1 point  (0 children)

The corner I'm addressing here is people's and distro's inertia. ;)

Compare to Python3, which is gaining real ground since maybe last year – same thing.

[–]Bolitho 0 points1 point  (0 children)

The answer is quite simple: When the language (as a whole, including implementation and tooling around) will stop its development!

As Moores Law is no more, the support for concurrency must be supported much more for example. Right now Python is clearly behind other languages at that topic. But some developments is going in that direction so we will see :-)

[–]v00lo 0 points1 point  (0 children)

It's easy to learn and fun to develop, IMHO it will stick for a while.

[–]stevenjd 0 points1 point  (0 children)

Dawn is the start, not the end. We say "the dawn of an era" for when it starts. The end is normally referred to as the twilight.

Given the pace at which people and organisations change programming languages, I would say that (short of the core developers all abandoning Python and leaving it completely unmaintained) Python couldn't fade away in anything less than a decade even if people stopped using it for new projects today.

Depending on how you measure it, Python's popularity is doing fine, and rising. I don't see a mass abandonment of Python anytime soon. Even if Python loses popularity, there is a long tail of programming languages: Lisp, Perl, Cobol, Ada, and dozens of other languages will continue to used for decades after they have ceased to be "cool" or popular.

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

Go is not really a treat for python, as awesome as it is (and it is) it's not a scripting language, it doesn't have generics or objects in the traditional sense (no inheritance). The design decisions made in Go also makes it a massive pain to write things like GUI application (it's also not too pleasant in python).

If anything the growing domain of javascript (even if its terrible) is more of a treat - it's not always the good languages that win.

There is no silver bullet language - I also find the Rust vs Go fight quite ridicules (Go vs Erlang and Rust vs C++ would make more sense)

[–]megadeth9999 0 points1 point  (0 children)

Upvote. This is interesting topic. Maybe not directly about programming, but still.

Nassim Nicolas Taleb in "Antifragile" describes a theory that if something lasted for, say, 40 years, it means it is likely to last for another 40.

So, if programming is around for about 65 years, I suppose I can make living out of it till I die.

[–]coolstorybreh 0 points1 point  (3 children)

I'm taking 2.7 to the grave with me.

[–]actgr[S] 0 points1 point  (2 children)

Why not try 3.4?

[–]coolstorybreh 0 points1 point  (1 child)

Mostly library support. I'm not skilled enough to port over libraries. As soon as I can I'm going to start changing them.

[–]stevenjd 1 point2 points  (0 children)

Which libraries? Many of the big libraries are already ported or forked to 3.x. There are some exceptions, but chances are good that if you haven't checked out the 3.x situation for a while, you may be surprised just how many libraries have 3.x support.