Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Python Programming

Ask Slashdot: Will Python Become The Dominant Programming Language? 808

An anonymous reader shares their thoughts on language popuarity: In the PYPL index, which is based on Google searches and is supposed to be forward looking, the trend is unmistakable. Python is rising fast and Java and others are declining. Combine this with the fact that Python is now the most widely taught language in the universities. In fields such as data science and machine learning, Python is already dominating. "Python where you can, C++ where you must" enterprises are following suit too, especially in data science but for everything else from web development to general purpose computing...

People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs. If you write good unit tests and enforce Test Driven Development, the compiler becomes un-necessary and gets in the way. You are forced to provide too much information to it (also known as boilerplate) and can't quickly refactor code, which is necessary for quick iterations.

The original submission ends with a question: "Is Python going to dominate in the future?" Slashdot readers should have some interesting opinions on this. So leave your own thoughts in the comments. Will Python become the dominant programming language?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Will Python Become The Dominant Programming Language?

Comments Filter:
  • No (Score:4, Interesting)

    by Anonymous Coward on Monday June 12, 2017 @03:34AM (#54600155)

    No. [wikipedia.org]

    • Re:No (Score:5, Insightful)

      by fnj ( 64210 ) on Monday June 12, 2017 @09:03AM (#54601433)

      I'm going to say this is a case where Betteridge does NOT rule. Yes, python is not perfect: it is as slow as molasses in execution speed, and has terrible multithreading capability. So what. These imperfections are completely outweighed by its superb readability/understandability/clarity, and the ease with which it can be learned.

      No one is going to write an OS or an office suite all in python. But for a large swathe of programming tasks it is ideal. It is a lot more than just a scripting tool like, for example, perl.

  • Betteridge says: (Score:5, Insightful)

    by KeensMustard ( 655606 ) on Monday June 12, 2017 @03:35AM (#54600157)
    No.

    But in all seriousness, is this even for real or just clickbait? Why would we want just one programming language?

    • by sthomas ( 132075 ) on Monday June 12, 2017 @03:59AM (#54600273)

      To.... rule them all?

    • There is a difference between being the dominate language and the only one.
      C has been the dominate language for decades and they were also many other popular languages as well. However dominate language status meant you better know this language because even if it it isn't your bread and butter you will run across it.

      However today where hardware is cheap and fast and most software written is web based or cloud based means that many of the advantages of the older language are becoming moot. Now that being t

  • by Anonymous Coward on Monday June 12, 2017 @03:38AM (#54600171)

    No.

    Can you just stop?

    I will now end the discussion with the word Hitler.

  • by mfearby ( 1653 ) on Monday June 12, 2017 @03:39AM (#54600175) Homepage

    Enough said. Whitespace which has meaning is just nasty.

    • I agree, and so do many therapists.

    • by thesupraman ( 179040 ) on Monday June 12, 2017 @04:09AM (#54600315)

      Iseeyourpointinfactifeelthatyoushouldpushforsuchaconcepttobemorewidelyaccepted.

      Or, on the other hand, perhaps it is just as valid as any other parsing requirement? Language commands need some form of context, python just happens to choose that one.

      The real issues with python are lack of performance scaling within the language (without using extension hacks), and the horrific threading problem. If those were solved then it would be much much much better.

      Fwiw I have been developing commercial systems in python for over ten years.

      • by superwiz ( 655733 ) on Monday June 12, 2017 @04:55AM (#54600481) Journal
        It doesn't have a threading problem. It solves the threading vs process problem. CPU bound threats *should* be processes. And it is safer and more efficient to have 1 GIL per CPU. IO bound threads should be threads. This why threads developed on 1-CPU machines and multi-process model developed on multi-CPU machines. Python has 2 libraries with effectively unifying model for inter-thread communications, but one uses processes while the other threads. Both have almost the same API. Processes are bad if you need a context switch before data can travel from one task's to another task's space. In modern processes, you lose more by having data travel from 1 L1 cache to another L1 cache. So you might as well have 1 CPU-bound thread per core when your threads are CPU-bound and do very little talking to each other. Which exactly what you get with multiprocess threading library.
    • by plopez ( 54068 ) on Monday June 12, 2017 @04:15AM (#54600329) Journal

      The last programming I know of, other than the joke ones, that had significant white space was Fortran 77. That was due to punch cards. It was due to punch cards that you also could not use lower case letters. F90 discarded white space significance in 1990. Thee years later Guido reinvents it. What next, is he going to force us to use UPPERCASE CHARACTERS?

    • by Anonymous Coward on Monday June 12, 2017 @04:19AM (#54600339)
      I'm a Whitespace [wikipedia.org] developer, you insensitive clod!
    • by Geeky ( 90998 ) on Monday June 12, 2017 @05:22AM (#54600603)

      Agree. Code should not fail to run because of programmer errors that are not visible in the text editor - i.e. a stray tab instead of spaces.

      It's also a nightmare copying code snippets, especially from the web - you might as well retype them by the time you've fixed the tab vs. space issues.

  • No (Score:5, Funny)

    by grungeman ( 590547 ) on Monday June 12, 2017 @03:40AM (#54600177)
    And my teacher was wrong. There actually are stupid questions.
  • by buddyglass ( 925859 ) on Monday June 12, 2017 @03:58AM (#54600267)
    I could see it supplanting Java in some situations and utterly obliterating Ruby and PHP. That said, I like compilers, even if they're compiling to byte code. And I don't find refactoring to be a chore. Especially when your IDE does some of the more mundane tasks for you.
    • I can easily see it supplanting Java in many situations. My experience is that usually python solutions end up faster and easier to work with than Java ones. Mostly because of the libraries. It is easy to make a cross platform python program that uses native gui libraries, image libraries, numerical libraries etc.

      When I have looked at things like simple numerics in Java it gets killed by C++ and by Python since Python programs will normally rely on scipy which will in turn rely in BLAS and LAPACK. From ever

  • Lol (Score:5, Interesting)

    by Anonymous Coward on Monday June 12, 2017 @04:07AM (#54600305)

    Is that a parody?
    "People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs"

    Sure, who needs good tools when you can just do the work of the compiler yourself?

    I'm pretty sure - the day will come where even the author will be bored of checking datatypes and constraints in unit tests that have to cover all possible runtime paths. For me the future will be a language with a really strong type system, that can be verified by the machine as much as possible. You can't have systems crash after 4 days of number crunching because it finally reached that stupid mistake in one path that was forgotten in the unit tests.

    We have computers to do that work for us, not the other way round.

    Oh and of course we'll use machine learning as much as possible to automate the automating.

    • Re:Lol (Score:5, Insightful)

      by Entrope ( 68843 ) on Monday June 12, 2017 @06:13AM (#54600747) Homepage

      Most of my time is spent working on an app with C++ at the low levels, Python at the high levels, and Perl/JS for web stuff. I am one of two developers who primarily does C++, we have two who primarily do Python, and one who primarily does the web bits. The Python code unsurprisingly does a lot of database operations and IPC, so many of its endpoint types are strings. I am always shocked how many of the Python-domain commits are only to add or remove type conversions that testing missed. That problem is almost entirely absent in C++, with its strong static typing, and in Perl and JS, with their mostly "DWIM" operators and types.

      I do not bet on Python being much more than a glue language unless it gets strong compile-type type checking. That may be enough to make it a "dominant" language, because people ship more and more good libraries that can be simply picked up and used by higher-level code, but it will probably never displace other languages without stronger compile-time checks.

    • I wish I could find an IDE worth learning so I could stop needing to learn all these damn languages.
  • by fazig ( 2909523 ) on Monday June 12, 2017 @04:26AM (#54600363)
    Is that still a thing in Python? I've been out of the loop for quite some time. But the last time I've been into it, this 'feature' was a big obstacle for modern hardware, considering the hardware trends of having more and more CPU cores.
    • It's still a thing and likely will always be a thing. That said, the multiprocessing [python.org] module makes writing code that can spin up as many processes as you want and allow them all to communicate is relatively painless.

  • by plopez ( 54068 ) on Monday June 12, 2017 @04:27AM (#54600367) Journal

    The same reason we had languages such as Basic and Pascal as languages. Namely universities using them in intro classes because they are "easy". So people with no concept of the scale or complexity of commercial software think it is the be all and end all of programming. So you get MBAs mandating Python on their projects even though it is the wrong tool for the job.

  • by Opportunist ( 166417 ) on Monday June 12, 2017 @04:28AM (#54600371)

    Python is easy to pick up and can do anything (on high level) that C can. On the other side, its drawbacks include being an interpreted language, meaning both that whoever wants to run Python scripts has to have the relevant interpreter on his system, which is arguably easier and more likely to work in Linux than Windows and that it will run slower and need more resources than a comparable C program.

    So whether Python will become the dominant language will mostly depend on

    1) Whether enough people with little to no programming experience feel the urge to create code.
    2) Whether enough people can be bothered to install the runtime to run said code.
    3) Whether we continue to have no problem wasting resources on inefficient code or whether we move towards more virtualization/containerization where the individual VMs have to do with very little CPU time.

  • Ruby (Score:3, Insightful)

    by Meneth ( 872868 ) on Monday June 12, 2017 @04:42AM (#54600433)

    I should hope not. Ruby is much nicer.

    • Re:Ruby (Score:5, Informative)

      by BlackPignouf ( 1017012 ) on Monday June 12, 2017 @07:30AM (#54600977)

      Ruby lover here. I can code Ruby while I sleep, but I felt a bit left out because there are so many awesome Python projects.
      In comparison, there's Rails as awesome Ruby project with a lot of momentum, and .... that's about it.

      With Ruby knowledge, it's actually pretty easy to grasp Python. There are a few gotchas and the syntax feels a bit boring compared to Ruby, but it's also easier to read other people's code because it's usually more explicit and a bit less dynamic than Ruby.

      I still love Ruby, but it's good to be able to write a few lines of Python and release the power of Numpy/Pandas/Sympy/Matplotlib/NetworkX/... It took me about 2 weeks to learn enough Python to use those libraries, and I still learn new stuff every day.

      Some parts of Python's syntax are really nice, e.g. list comprehension :

          >>> [x**2 for x in range(10) if x % 2 == 1]
          [1, 9, 25, 49, 81]

      It's completely different than all the Enumerable methods in Ruby, but it's very powerful and quite easy to read after a while.

  • by Ambassador Kosh ( 18352 ) on Monday June 12, 2017 @04:45AM (#54600449)

    There are lots of good libraries for python that hand off the heavy lifting to c,c++ and fortran. Python works well for gluing these things together.

    Python on its own though is quite slow and if you find yourself needing to chain together calls between low level libraries where each call is quite fast the cost of gluing them together can be extreme. However the parts of the code that are seriously CPU bound tend to be fairly small while all the rest of the stuff build no top takes up most of the time to write.

    I would say for most software you could do a python wrapper around a C++ core and end up with more maintainable and faster code. In my case I use a python optimization framework around a c++ based simulator. Writing all the optimization code in C++ would be a pain in the neck and provide no real speedup since the current code is not speed bound in the python part anyways. I see the same things in cluster control software when the code that distributes my jobs to the nodes and then gathers the data back and then makes the decisions on the next set of jobs to run accounts for 1% of the total runtime.

    I think this will result in better software overall with Python as the core language wrapping high speed libraries. In many cases those libraries already exist, where they don't exist you have to write them.

  • by Otis_INF ( 130595 ) on Monday June 12, 2017 @04:45AM (#54600451) Homepage

    People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs. If you write good unit tests and enforce Test Driven Development, the compiler becomes un-necessary and gets in the way.

    No, dummy, the compiler is a large set of unit tests for you, ready to run, so you don't have to write them yourself. Why wouldn't you use a compiler so you can avoid runtime exceptions/errors? Why would you choose deliberately to postpone that to be checked at runtime or worse: that you have to write checks for all those cases yourself (and you'll miss a lot of them)

    The compiler isn't something used by 'slaves of an IDE', but by developers who know a compiler will save them from writing tests for situations already checked by the compiler. Oh, and it generates fast code ahead of time too, so your users don't have to wait for an interpreter to come up with fast code.

  • by Freischutz ( 4776131 ) on Monday June 12, 2017 @05:11AM (#54600563)
    Python will never beat Perl ... ever!!! **Ducks for cover**
  • by ( 4475953 ) on Monday June 12, 2017 @05:54AM (#54600689)

    I admire Python for its toolchain and libraries but it's just way too slow. Even Racket is faster and it's probably still too slow for my current needs. ( I use it for making a prototype first.) By 'slow' I refer to lack of snappiness and long startup times, these bottlenecks cannot be eliminated by writing support libraries in C. The actual algorithms I use don't need much speed, but the user interface and support functions like searching, directory scanning etc. need to be fast. You can fake speed by using a lot of threading in the user interface, but that's complicated, error-prone, and the end result still feels somewhat sluggish.

  • Ok, I'll bite... (Score:5, Insightful)

    by wheelbarrio ( 1784594 ) on Monday June 12, 2017 @06:05AM (#54600723)
    I'm a fan of Python, but this question is a joke, right?
    Sidestepping interminable arguments about the merits of language A vs language B, and ignoring the flat-out ignorant assertions in the 'anonymous reader's thoughts' about IDEs and compilers, the question is predicated on a culpably ignorant interpretation of the very data they cite.

    So here's how PYPL works:

    The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google.

    so... what the data actually show is that relatively more folks want to learn Python these days than C or Java or Haskell (or whatever) — which is scarcely surprising since more non-specialist programmers are learning to code than ever before, and Python is easy to learn and great to teach with for that demographic — what the data definitely do NOT show is that Python is replacing C or Java or Haskell (or whatever) in the production domains in which those languages shine. And it never will.

  • I don't think so (Score:5, Interesting)

    by gweihir ( 88907 ) on Monday June 12, 2017 @07:16AM (#54600903)

    Don't get me wrong, I like Python and have done quite a few things with it, including performance-critical Python classes in C. But I think writing good Python code is something that requires a lot of experience, including with other languages. Python is a language that does not stand in your way to an extreme degree. That means in many cases you have to do things yourself that other languages do for you, for example type checks (yes, they are needed sometimes) and decisions when doing inheritance. Do them wrong or not do them at all and you end up with an unmaintainable mess. There is also quite a bit of stuff you have to test at run-time that compiled languages probably find at compile-time. That requires good testing and a design-by-contract approach helps a lot.

    One the other hand, for actual experienced experts, glue-code and "business logic" does not get much better than what Python offers, and embedding C-code is easy once you have understood the idea. It definitely has a long-term future.

  • by Mordaximus ( 566304 ) on Monday June 12, 2017 @07:40AM (#54601025)

    Interestingly, selecting countries on PYPL shows that Python is #1 in the US, France and UK. India and Germany have Java #1.

    Not that it's an indication of anything, really. Right tool for the right job. The projects being worked on in Java probably don't lend themselves well to Python and vice versa.

  • by aglider ( 2435074 ) on Monday June 12, 2017 @07:42AM (#54601031) Homepage
    Please elaborate. By number of lines written? The number of programs written? The number of fortune500 choices?
  • by swilver ( 617741 ) on Monday June 12, 2017 @07:49AM (#54601063)

    If Python just disallowed mixing of tabs / spaces in files, it would already be a lot better. Just flag an error as soon as indentations are detected that are not the same style.

  • To quote a legend... (Score:3, Interesting)

    by GotoGuy ( 4316955 ) on Monday June 12, 2017 @08:14AM (#54601191)
    "Do you think Ringo is the best drummer in the world?" "Ringo isn't even the best drummer in the Beatles."
  • by lorinc ( 2470890 ) on Monday June 12, 2017 @08:26AM (#54601251) Homepage Journal

    People who complain that you can't build large scale systems without a compiler likely over-rely on the latter and are slaves to IDEs. If you write good unit tests and enforce Test Driven Development, the compiler becomes un-necessary and gets in the way.

    Says the guy that never worked on a project with 100+ classes and 100k+ lines of code...

    Don't get me wrong, I love python and it's become my main programming language. But hey, I'm a researcher and everything I code doesn't have to do more than producing a few results to put in a paper and then be thrown away and never looked at again.

    You know why Java is the top language now? It's not only because it's so easy that many professional applications have been written 15 years ago by dumb interns, but also because it's so robust that these applications can still be maintained by even dumber interns today. You're never going to get that with python (or js, or ruby, or whatever new hype thing you believe is the new messiah).

  • by Zobeid ( 314469 ) on Monday June 12, 2017 @09:33AM (#54601603)

    I thought Javascript was going to rule the world? Dammit...

  • by ooloorie ( 4394035 ) on Monday June 12, 2017 @11:57AM (#54602643)

    Python's widespread adoption is not due to some magic programming language sauce but network effects. In a sense, Python has taken on a niche similar to Visual Basic. But that's also why Python has such a hard time evolving: you can't improve it much without breaking a lot of its libraries.

    Python's biggest limitations, the way it represents objects and limited concurrency, actually already have been addressed in a number of Python re-implementations, but people aren't using those because many extensions and libraries don't quite run in those environments.

    So, Python won't become "the" dominant programming language, it will just remain one of of a number of popular programming languages.

    If there will be a single dominant programming language eventually, it will probably have to look more like Swif: near native speed, garbage collection, some systems programming features, and yet interactive execution via on-the-fly LLVM compilation.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...