Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Monday September 16 2019, @09:06AM   Printer-friendly
from the use-whatever-you-want dept.

Arthur T Knackerbracket has found the following story:

Python sits firmly in top place in the newest annual ranking of popular programming languages by IEEE Spectrum.   

The ranking and others like it are meant to help developers understand the popularity of languages in a world where no one really knows what programmers are using on their laptops. 

IEEE Spectrum has placed Python in first spot since 2017, and last year it was just ahead of C++. The top language is given a score of 100, and all languages with lower scores are scaled in relation to it. C++ last year scored 99.7, followed by Java at 97.5, and C with 96.7.

Today, in the IEEE Spectrum's sixth annual ranking, Python's 100 is a long way ahead of runner-up Java's 96.3 score, while C is in third place with 94.4. C++ has slipped to fourth with 87.5, while in fifth is specialist statistical computing language R with a score of 81.5. 

The magazine for engineering members of IEEE, the world's biggest engineering and applied-science organization, attributes Python's popularity to the vast number of specialized libraries it has, especially for developers building artificial-intelligence applications. 

[...] They go on to note that Facebook, which was originally built with PHP, launched its alternative to PHP, Hack, in 2014 and since then JavaScript, TypeScript and Python have become the most popular languages for web development. 


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Insightful) by Anonymous Coward on Monday September 16 2019, @01:27PM (9 children)

    by Anonymous Coward on Monday September 16 2019, @01:27PM (#894593)

    Pythons popularity comes from two places:

    1. It looks like pseudocode, so you can use the surface features without understanding it much.

    2. Duck typing makes implementing API's in python easier from C++ than in other languages.

    Both of these apparent features, actually cause scalability problems IMHO.

    Perl was a non-OO language that was extended to have OO features, and today is almost universally written in an OO style. There are ten ways to do everything, five of which are documented, they are just never the same five twice.

    Python is an OO language that nobody writes using OO. Because in Python there is only one way to do anything, it is documented five different ways, and they are all wrong. "Everything is an object!". Actually no... Everything is two objects, at minimum.

    Python looks easy, until you realize that all that punctuation that looks gnarly in Perl actually means something, and that in python each of those single characters is represented by either a method or a class instead. Which is to say once you get past 1000 lines or so, Perl is often more economical than Python.

    Ruby is stylistically cleaner than both of them, but slower. Java should just die. If you are thinking about Java, learn RUST. Java was sold as a security enhanced language. (it really isn't) RUST is actually a security enhanced language.

    I've used Python for about 18 months now. I'm dropping it and focusing on C++ instead. Anything that has a Python API, has a C++ API, and C++ is easier to automate in the development cycle. I'd rather focus on RUST, but there are a few projects out there that probably should be written in RUST, but are in C++.

    Python is viewed as a winner mostly by managers who want programmers to be "human capital". IOW, to make it easier to fire you. Which they inevitably will, because Python doesn't scale.

    Starting Score:    0  points
    Moderation   +3  
       Insightful=2, Interesting=1, Total=3
    Extra 'Insightful' Modifier   0  

    Total Score:   3  
  • (Score: 3, Interesting) by PiMuNu on Monday September 16 2019, @02:46PM

    by PiMuNu (3823) on Monday September 16 2019, @02:46PM (#894608)

    > Which they inevitably will, because Python doesn't scale.

    Python scales really well because you can prototype in python, find what works and sort out the API/UI, then optimise the slow stuff using C++ without changing the API/UI.

    > Python is an OO language that nobody writes using OO.

    I don't think this is true. But if you choose to use it that way, at least the language enforces some basic stuff like "module-is-a-namespace" to maintain scalability, which C++ does not enforce.

  • (Score: 3, Insightful) by DannyB on Monday September 16 2019, @03:07PM

    by DannyB (5839) Subscriber Badge on Monday September 16 2019, @03:07PM (#894625) Journal

    I'll give you an Insightful, but with one caveat.

    Java does have a place. It isn't so widely used and highly ranked for no reason. All languages have warts.

    RUST is no replacement for Java in the places where Java is widely used. Saying that indicates you don't really understand how and why Java is used, nor its true advantages. And yes, it does have some, despite its warts.

    If Java isn't right for you, then don't use it.

    --
    The lower I set my standards the more accomplishments I have.
  • (Score: 2) by tangomargarine on Monday September 16 2019, @03:21PM (2 children)

    by tangomargarine (667) on Monday September 16 2019, @03:21PM (#894635)

    Java was sold as a security enhanced language. (it really isn't)

    Was it? I mean, it's a strongly-typed language, but so is C++.

    I was under the impression the main selling point of Java was its cross-platform-ness, back in the days where that wasn't a thing anybody really did, short of writing compilers for every platform they wanted it on.

    --
    "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
    • (Score: 0) by Anonymous Coward on Wednesday September 18 2019, @02:55PM (1 child)

      by Anonymous Coward on Wednesday September 18 2019, @02:55PM (#895671)

      My perl program is more cross platform in practice than it would be if I wrote it in java.

      If I use perl for my program the end user/customer does not need to install anything else. Whereas if I used java they'd need to install a compatible java runtime.

      Perl comes built in on most platforms AND for Windows you can use stuff like PAR to pack it so the end user does not have to install perl.

      Unfortunately in recent times I think folks like Redhat and Apple are now removing it as a default, so I may eventually need to resort to PAR for those too...

      That'll increase my work a bit but even so in practice getting the end users/customers to install the correct java runtimes will still be more pain and/or work.

      • (Score: 2) by tangomargarine on Wednesday September 18 2019, @06:08PM

        by tangomargarine (667) on Wednesday September 18 2019, @06:08PM (#895756)

        Yes, now it's a lot easier. But back in the mid-90s it was a different ballgame.

        --
        "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
  • (Score: 2) by Pino P on Monday September 16 2019, @04:11PM

    by Pino P (4721) on Monday September 16 2019, @04:11PM (#894661) Journal

    I'd rather focus on RUST, but there are a few projects out there that probably should be written in RUST, but are in C++.

    To understand at least a small part of why this is the case, think about why there's a Game Boy Advance crate for Rust but no crate for Mega Drive (aka Sega Genesis) or Amiga. It turns out that anything that needs to run on m68k has to be in C, in C++, or in a mix of the two. This is because the only full implementation of Rust is an LLVM front end, and there isn't quite enough community support to maintain an m68k back end for LLVM. C and C++, by contrast, have GCC front ends, and GCC has an m68k back end.

  • (Score: 2) by loonycyborg on Monday September 16 2019, @07:59PM

    by loonycyborg (6905) on Monday September 16 2019, @07:59PM (#894783)

    C++ and Python are good in their niches. C++ is good due to compatibility with C and has a lot of features that lets you to catch many errors at compile time instead of runtime which makes it ideal for larger projects that don't need to be changed often. While python is easy to understand and modify for small pieces of code while maintaining large codebase becomes a pain due to python's relative lack of scalability and its interpreted nature. But the best thing to do is to make C++/python hybrid programs, ether via embedding or extending. That way you get best of two worlds: have often changing parts of program in python modules to avoid recompiles and do heavy lifting in C++ to have performant and maintainable core. But if you try to make language that can replace both python and C++ you'd end up with .. Java.

  • (Score: 1, Interesting) by Anonymous Coward on Monday September 16 2019, @08:15PM (1 child)

    by Anonymous Coward on Monday September 16 2019, @08:15PM (#894791)

    Why on Earth would anybody be using pseudo code? Even for beginning programmers still learning, you're better off just using comments for that purpose. That way you already have comments about what you intend for a given block of code to do, even before you actually type it.

    People citing it's resemblance to pseudo-code and the whitespace thing should really just keep quiet as neither are good features of the language.

    • (Score: 2) by tangomargarine on Wednesday September 18 2019, @06:11PM

      by tangomargarine (667) on Wednesday September 18 2019, @06:11PM (#895758)

      With a sufficiently elegant language, most of the time you shouldn't *need* comments because you can tell what the code is doing just by looking at it.

      And the problem with comments is making sure they actually match the code as changes are made. If the comment is from 4 years and 3 major overhauls of the component ago, it may not be very useful, if not actively misleading.

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"