Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Python Programming

IEEE's Top Programming Languages of 2022: Python (and SQL) (ieee.org) 76

The IEEE's official publication, IEEE Spectrum, has released its ninth annual ranking of the top programming languages. The results? Python remains on top but is closely followed by C. Indeed, the combined popularity of C and the big C-like languages — C++ and C# — would outrank Python by some margin.

Java also remains popular, as does Javascript, the latter buoyed by the ever-increasing complexity of websites and in-browser tools (although it's worth noting that in some quarters, the cool thing is now deliberately stripped-down static sites built with just HTML and simple CSS).

But among these stalwarts is the rising popularity of SQL. In fact, it's at No. 1 in our Jobs ranking, which looks solely at metrics from the IEEE Job Site and CareerBuilder. Having looked through literally hundreds and hundreds of job listings in the course of compiling these rankings for you, dear reader, I can say that the strength of the SQL signal is not because there are a lot of employers looking for just SQL coders, in the way that they advertise for Java experts or C++ developers. They want a given language plus SQL. And lots of them want that "plus SQL...."

Job listings are of course not the only metrics we look at in Spectrum. A complete list of our sources is here, but in a nutshell we look at nine metrics that we think are good proxies for measuring what languages people are programming in. Sources include GitHub, Google, Stack Overflow, Twitter, and IEEE Xplore [their library of technical content]. The raw data is normalized and weighted according to the different rankings offered — for example, the Spectrum default ranking is heavily weighted toward the interests of IEEE members, while Trending puts more weight on forums and social-media metrics.

Python is still #1 in their "Trending" view of language popularity, but with Java in second place (followed by C, JavaScript, C++ and C# — and then SQL). PHP is next — their 8th-most-trending language, followed by HTML, Go, R, and Rust.
This discussion has been archived. No new comments can be posted.

IEEE's Top Programming Languages of 2022: Python (and SQL)

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

    by 93 Escort Wagon ( 326346 ) on Sunday August 28, 2022 @04:37PM (#62830697)

    I've worked with a lot of electrical engineers. They all love python because it's easy to quickly learn enough to be able to hack useful little scripts together, without having to develop a deeper understanding of coding or operating systems. It's a perfect language for that sort of purpose.

    • You could say the same of Matlab. Or R certainly also has that "agile development" aspect for people in finance or in market research with limited programming expertise. Python, R, and SQL all have their ease of use (much quicker results than with something like C) combined with their open-source appeal and in-demand packages libraries (e.g., in big data/machine learning/etc). I give Python the edge because of its relatively tight and clear philosophy (e.g., a list comprehension is often a "pythonic" way
      • You could say the same of Matlab.

        Matlab is proprietary, which is a big handicap. Many people won't pay to run your code.

        Or R certainly also has that "agile development" aspect for people in finance or in market research

        R is losing ground to Python in almost every area. R's strong point is statistics, but Python's statistics libraries are now just as good and improving faster. It is much easier to hire people with experience in Python.

        • Matlab is proprietary

          I've used Octave, which is open source, but I only used it for simple graphs. I don't know how compatible the two are.
          https://wiki.octave.org/ [octave.org]

          • It's been a number of years (and I am not an EE), but back when our faculty and students were looking at Octave - the big hurdle was they needed a number of Matlab toolboxes, which aren't (or weren't? no idea if that's changed) compatible with Octave.

            However, in the end most of our guys moved away from Matlab... but rather than to Octave, they just chucked the whole kit and caboodle over for python.

          • I remember the main reason we did not use Matlab in school was the licensing. Octave I was told was compatible enough if I needed to learn Matlab for work after I graduated.
        • Several years ago, I used R specifically because it was the only thing to support the MANOVA (Multiple ANOVA) test.
          That time is gone and R is dead to me.

        • Matlab is proprietary, which is a big handicap.

          The licensing is also onerous... lost many hours trying get their license manager to work.

    • Re:No surprise (Score:5, Interesting)

      by TechyImmigrant ( 175943 ) on Sunday August 28, 2022 @06:47PM (#62830995) Homepage Journal

      I am an EE and I choose Python and C. Python gets the computer to do a lot of heavy lifting for me - big ints, big floats, dicts, everything dynamic etc. With C I get to tell the computer exactly how it's going to do it. Most tasks fall into one camp or the other. I could choose to use other languages and C would be the first to get replaced by one of the nice alternatives (Jai and Zig are in the front running for me).

      But I have a degree in Computer Science and I know more language theory than I need to use. I am seriously unimpressed with OO first and functional programming for getting work done outside of very specific cases. E.G. OO works with operator overloading nicely, but when taken way too far, you spend your time trying to grok the library, rather than the problem space. If was less effort to write my own matrix library in Python than it was to try and get Numpy to use GF(2^p) elements in its matrices. So I like a language like Python where the power is in the base language so you aren't forced to use other people's libraries.

      Chips are designed in System Verilog, VHDL or some other less common variants. No HDL is a good imperative language (MyHDL excepted but it transpiles to Verilog). The irony is that digital hardware is essentially functional and functional HDLs work well and map nicely to the problem domain, but nobody uses them and the tools don't support them. Python as a meta language works well with HDLs.

      Python can be easy to use, but it also permits sophisticated expression of deeper programming concepts. That seems like a good thing to me. Both enabling people who are working on something other than crafting perfect code and bring the goods to programming literate people who want an efficient way to get a lot done.

      There, I got through a complete language rant without complaining about Rust.

      • Re:No surprise (Score:4, Insightful)

        by gweihir ( 88907 ) on Sunday August 28, 2022 @08:00PM (#62831159)

        Well, I am a CS type with an engineering PhD in the IT field. I share most of your assessment. OO has its place, but it is a specialized tool and generally very overrated these days and there are lots of tasks where you do not want to use it or use it only for some parts. The CS/IT field is still not quite ready to admit they have mindlessly followed yet another hype and declared it superior to everything that came before. (There were a few of those hypes already.) Functional is nice to have as an embedded component but pure functional is not really good for most tasks except for very specialized scenarios as well. In Python, you can do imperative, OO, functional (with limits), just as needed. And C? Almost as powerful as Assembler, but a lot less painful and far more portable.

        Bonus to the Python and C combination: C embeds very nicely into Python.

        • I find the problem with OO is that type hierarchy tends to back you into a corner when you least expect it to, and then before you know it you have a fuckton of refactoring to do. More annoying is how inflexible it tends to make whatever libraries you are working with.

          • by gweihir ( 88907 )

            Indeed. One of the many problems with the idea. Another one is that you get a lot of "bureaucracy" that is beneficial only in some case and stands in your way in many others.

          • I find the problem with OO is that type hierarchy tends to back you into a corner when you least expect it to....

            I find that this only happens to programmers who don't understand OOP. The first letter in SOLID prevents this entirely. People coming from a procedural background tend to try shoehorning procedural skills into OOP, and it usually causes this very issue.

            In non-OOP programming, you model your program around code. In OOP, you model your program around behavior. With that mindset, you almost automatically avoid the bad habits the result in the problem you describe. You have to try really hard to back yourself

            • That's fine and all until a few libraries you need have abstract classes, then your behavior model tends to get fucked with in ways you can't control. THAT is where inheritance loses its flexibility.

              Game programming also suffers from this, particularly when using ECS where you might want to mix and match some behaviors while excluding others.

              Rust's trait system doesn't allow libraries like that, while still giving you polymorphism anyways. If you need a specific behavior, just impl the trait. If you don't n

        • The CS/IT field is still not quite ready to admit they have mindlessly followed yet another hype and declared it superior to everything that came before.
          No one ever claimed that OOP is superior to anything else.

          The hype is in the anti hypers and haters. Normal people just use stuff. I'm on the OO bandwagon since 1989, there never was anyone in my environment who hyped it or called it superior ...

          OTOH, for many things, e.g. GUIs and compiler construction it is obviously superior. But no one is argueing about

          • by gweihir ( 88907 )

            Well, have a look at what is taugt. Some Students in CS/IT/Data Science/etc. probably do not even know that you can write non-OO code except for small scripts.

            • For teaching I still think Pascal is one of the best languages.

              If you want to teach "Programming". But then it starts getting a bit difficult to decide what is more important. E.g. Algorithms? Data structures? Databases? Internet (routing, IP, etc.), Concepts of programming languages (OO, functional, etc.), higher level languages versus assembly, slowly moving to design of chips and computers and systems, aka parallel computing, Computability theory etc. ? Big-O? Proving, aka Djikstra's calculus or weakest

          • No one ever claimed that OOP is superior to anything else.

            Then put me at the start of the list. Having spent years doing procedural, functional, and object oriented programming, I will readily proclaim OOP as superior to the others. The other are great for hacking together small programs, but they quickly become rather painful as the size and complexity of programs grow. OOP, on the other hand, is far less painful in larger system than the other two.

            • That is not the same as the parent meant.

              He meant it was "sold" and "hyped" as superior.

              Obviously in many niche cases it is superior, in a certain sense.

              I personally do not see a big difference between OO and functional, but that might be because the paradigms are often merged, like in Scala/Java/Groovy/C++.

              Before we had we had real lambdas or even closures, we had to use hand crafted Function objects with a call()-method. And obviously we could not free float combine new functions out of existing ones.

              But

      • by Uecker ( 1842596 )

        Out of curiosity, what is it you like more about Jai and Zig?

        (I still like C a lot and I am very productively using it.)

      • OOP has nothing to do with operator overloading.

        • OOP has nothing to do with operator overloading.

          Yes. I was pointing out how overloading works nicely with OO. E.G. A class for some mathematical object with the various operations (add, sub, mult, div, power etc) can have the operations easily overloaded onto the +,-,*,/,^ operations with the local working state hidden away in the class object.

          It can be done without OO of course, but I see it as one of the few areas where OO works well. The only time I use C++ is when I need to model unconventional mathematical objects in a cpu efficient way. Otherwise I

      • PHP is a better language than Python since PHP is roughly around three times faster than Python for the same non-trivial tasks. The only reason people use Python is because they don't realize PHP runs just fine on the CLI.

        PHP "arrays" are implemented as ordered hash tables. Simply put, they are the single most powerful data structure ever created. When you insert 1, 2, 3, 4, 5 in a dictionary and get back 3, 1, 2, 5, 4 when iterating over it, maintain order has to be done externally to the object. It's

        • >PHP is a better language than Python

          Not when you need to compute integer arithmetic modulo 2^255-19. Python will happily do that. PHP will not.
          That and Python has OrderedDict.

          from collections import OrderedDict
          # now your dicts are ordered when iterating over them.
           

    • by gweihir ( 88907 )

      On the surface, yes. Python can be used as a quick, easy scripting language. But it does not end there at all (unlike Perl, for example)

      If you have an actual clue you can do complex and advanced stuff with Python quite well. Also, C embeds nicely into it.

      • Re:No surprise (Score:5, Informative)

        by kbrannen ( 581293 ) on Sunday August 28, 2022 @09:26PM (#62831381)
        You can do some pretty advanced stuff with Perl as well because of CPAN. I'm not sure I've ever needed something I couldn't find a module for in CPAN, which is a real strength of the language. That includes embedding other languages into Perl (Inline::C), which wasn't hard to get working when I needed it once. Yeah, I know people like to dump on Perl because "it's hard to read", but if so, that's the fault of the programmer (as in "you can write bad code in any language"). Also, with Perl, I don't have to worry about white space and can just string together a couple of lines with a full if/then/else, or do/while, or whatever to do a quick "glue job". I haven't found any other language that does string handling better than Perl, although there may be one out there I haven't tried yet.

        Python is a nice language, but for "glue" and other quick scripting jobs that need something more advanced than a bash script, Perl is the first tool I reach for.
        • The problem I personally have with perl is that I forget how to use it every time. There's so many little flags and shit to know that I can't keep them all in my head. That's not perl's problem though, it's mine. If I used it more often I'm sure I wouldn't have this problem. On the flip side, every time I try to make perl do something, I succeed. Either someone has already done enough parts of it before that I can copy and paste my way to victory, or as you say, there's a module for that.

          However, that's a t

          • There's so many little flags and shit to know that I can't keep them all in my head.

            You don't have to: it's the 80/20 rule. All of my scripts start with "-w; use strict; $| = 1;" If I need anything else, I'll look it up, but that template covers almost all of my typical scenarios.

    • Re:No surprise (Score:5, Interesting)

      by AmazingRuss ( 555076 ) on Sunday August 28, 2022 @08:57PM (#62831303)
      I want to like Python, but everything I make with it makes me feel dirty.
  • by greytree ( 7124971 ) on Sunday August 28, 2022 @04:48PM (#62830721)
    Wikipedia:
    "Structured Query Language)[5] is a domain-specific language used in programming"

    Of course, one wouldn't expect a Slushdit Oditur to care.
    • Re: (Score:2, Informative)

      by iggymanz ( 596061 )

      Many of us don't consider wikipedia authoritative; all kinds of misconceptions, mutable social mores and religious beliefs are presented as fact in wikipedia.

      SQL is a programming language, it can instruct a computer to process information. Your opinion and the opinion of the random who wrote the wikipedia definition are of no import.

      • by antdah ( 1057288 )
        They also put HTML on the list, which, however generously you widen the definition, is no more a programming language than Markdown or LaTeX. (I agree about SQL though.)
        • by Anonymous Coward
          LaTeX is Turing complete.

          ANSI SQL92 is not, but ISO SQL99 is Turing complete.

          HTML is not, but extended with CSS3 it is.
          • It is not a requirement that a 'Programming language" be Turing complete. Apples and kumquats.

      • SQL is a programming language, it can instruct a computer to process information.

        By that definition, any program is a programming language. Do we call WoW players now "programmers"?

        • The OP thinks that because SQL is domain specific instead of general, it should not count as a programming language. By that narrow definition, things like Matlab, Unix shell scripting, Emacs Lisp should not count as languages.

          Also I think most people are only exposed to SQL to get simple queries therefore they do not know the complexity that DBAs often employ with things like Stored Procedures.

          • No, the OP pointed to wikipedia which states that SQL is a Domain Specific Language and not a Domain Specific PROGRAMMING Language.
            The OP also pointed to a document explaining the difference between Domain Specific Languages and Domain Specific PROGRAMMING Languages.

            • No, the OP pointed to wikipedia which states that SQL is a Domain Specific Language and not a Domain Specific PROGRAMMING Language. The OP also pointed to a document explaining the difference between Domain Specific Languages and Domain Specific PROGRAMMING Languages.

              *Sigh* Domain specific language [wikipedia.org]:

              There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages (more generally, specification languages), and domain-specific programming languages.

              Domain Specific Languages include domain specific programming languages. As an analogy, I own a Honda sedan. Your and the OP's point is arguing that I do not own an automobile because I own a sedan. Does that make any sense to you?

              • *sigh*
                No, the point is that a DSL is not *by defintion* a DSPL.

                So a Honda is a car, but it is not *by definition* a Honda Sedan.

                Similarly, SQL is a DSL, but is NOT BY DEFINITION a DSPL.

                • No, the point is that a DSL is not *by defintion* a DSPL.

                  What part of DSL includes DSPL is not clear to you? You seem to think that DSL and DSPL are binary and exclusive terms (false dichotomy argument).

                  So a Honda is a car, but it is not *by definition* a Honda Sedan.

                  And you are arguing that I do not own a car because I own a sedan. False dichotomy again.

                  Similarly, SQL is a DSL, but is NOT BY DEFINITION a DSPL.

                  Citation needed. Or are you going to cite one course at one university in 2010 again?

                  • You are clearly too stupid to understand.

                    What part of "That DSL includes DSPL does not mean that all DSLs are DSPLs" is not clear to you?

                    HONDAS INCLUDE HONDA SEDANS BUT NOT ALL FUCKING HONDAS ARE HONDA SEDANS.

                    It's time you got hit by the smart stick and changed your name to Knowingfool.

                    • What part of "That DSL includes DSPL does not mean that all DSLs are DSPLs" is not clear to you?

                      No one has said that but you. Is SQL domain specific? Yes. Is it used to program? Yes. But according to you it is not a DSPL because . . . you say so. How does that not defy logic.

                      It's time you got hit by the smart stick and changed your name to Knowingfool.

                      Oh yes, an ad hominem attack instead of an actual point. Typical.

                    • What part of "That DSL includes DSPL does not mean that all DSLs are DSPLs" is not clear to you?

                      No one has said that but you. Is SQL domain specific? Yes. Is it used to program? Yes. But according to you it is not a DSPL because . . . you say so. How does that not defy logic.

                      No-one has to say it, it is a STATEMENT OF FACT.
                      SQL *MAY* BE A DSPL BUT THAT DOES NOT FOLLOW FROM SQL BEING A DSL !!!

                      It's time you got hit by the smart stick and changed your name to Knowingfool.

                      Oh yes, an ad hominem attack instead of an actual point. Typical.

                      Says the *sigh*er.

                      More explicitly then:
                      You are being unbelievably dense and appear unable to follow logical statements.

      • SQL is a programming language because it is turing-complete. Being able to "instruct a computer to process information" makes it a query language, which is what it was designed to be from the beginning.

        Being a programming language, however, doesn't make it a good programming language. Many argue that it's not a particularly good query language, but it's still here and has probably outlived many such claimants, so it clearly does its job.

    • by gweihir ( 88907 )

      Well, with some understanding of semantics, you can find out that your quote actually says SQL is a domain specific programming language...

      • No, you are wrong. A DSL is not the same as a DSPL.

        Read this: https://people.cs.ksu.edu/~schmidt/505f14/Lectures/DSLS.html#9.3

        The internet does not make people stupid. It just makes the stupid ones more obvious.
        • -1, strawman

          Gweihir does not claim that "a DSL is the same as a DSPL". The phrase in question is that a specific language is "a domain-specific language *used in programming*" (Emphasis added.)

          From the very page you linked to "If the computer is a ``participant,'' that is, we can use some subset of the DSL to tell the computer what to do --- we can program the computer in a domain-specific programming language (DSPL)."

        • by gweihir ( 88907 )

          I see you cannot admit being wrong. Well, no point in continuing this.

          • I stated that you were wrong and linked to a document showing why you are wrong.

            That is how non-stupid people learn stuff.

            But you are stupid.
            The internet does not make people stupid. It just makes the stupid ones more obvious.
    • by jma05 ( 897351 )

      SQL is a programming language. Being a domain-specific language does not exclude it from being a programming language. You are confusing programming languages to exclusively be general purpose programming languages. That's just your personal definition. Someone else may exclude scripting languages. But those aren't broadly accepted definitions of a programming languages.

      SQL is a domain-specific programming language.

      • No. You are confusing Domain Specific Languages ( as SQL is described as in Wikipedia ) with Domain Specific PROGRAMMING languages.

        I provided a link explaining the difference.
        • by jma05 ( 897351 )

          SQL is both a Domain Specific Language and a Domain Specific PROGRAMMING Language. The later is a subset of the former.
          Your link states the first, but does not exclude the later.

          From the same link
          "SQL is a set-based, declarative programming language". It may not be "an imperative programming language like C or BASIC", but it is a PROGRAMMING LANGUAGE nonetheless.

          You seem to not think of declarative programming languages as programming languages. That might be the source of your confusion.

    • I agree with this sentiment. SQL isn't a programming language at least in the traditional sense of compiling to bytecode or assembly opcodes. It could be viewed as a scripting language of sorts though since it has syntax and the database engine will interpret valid syntax as instructions to run some code. But if all you do with SQL is simple SELECT/INSERT/UPDATE/DELETE, then it's not really even that since your application has to run a bunch of logic outside of the database. I'd wager 95% of all SQL is

  • SQL (Score:2, Troll)

    by backslashdot ( 95548 )

    SQL is a programming language? I guess, only for lack of there being nothing else to call it .. but man that is stretching it.

    • Better than calling HTML a programming language, I guess.

      • by gweihir ( 88907 )

        HTML is not a programming language. Although it can be misused as such by exploiting security vulnerabilities in anything that processes HTML.

        • HTML is not a programming language.

          Correct. Apparently CSS3 is turing-complete, however, and that's HTML-adjacent...

          • by gweihir ( 88907 )

            Interesting. I never looked at CSS at all. My own small web-page runs well without it.

            • I haven't done anything at all with CSS3. I last did some stuff with CSS2, but just for normal theming. CSS3 is pretty neat from a user perspective because it allows one to do a lot of things normally done with Javascript, which means in turn that sites using it tend to mostly function even with scripts disabled.

              • by gweihir ( 88907 )

                This sounds like a pretty bad idea. Oh well, I am in the IT security space, so no lack of work also because things like this...

    • Re:SQL (Score:4, Informative)

      by Reemi ( 142518 ) on Sunday August 28, 2022 @05:27PM (#62830791)

      SQL is Turing complete, which for me settles the issue.

    • Re:SQL (Score:4, Informative)

      by WaffleMonster ( 969671 ) on Sunday August 28, 2022 @05:37PM (#62830825)

      SQL is a programming language? I guess, only for lack of there being nothing else to call it .. but man that is stretching it.

      Yes, even if you ignore vendor specific procedural dialects (TSQL, PLSQL, PGSQL) which are almost always implied when referring to "SQL" the standard itself is a language.

      https://en.wikipedia.org/wiki/... [wikipedia.org]

    • by rbrander ( 73222 )

      It's a functional programming language, like APL, and LISP.

    • by gweihir ( 88907 )

      SQL is domain specific, but still a programming language.

  • False dichotomy? (Score:5, Informative)

    by pjt33 ( 739471 ) on Sunday August 28, 2022 @05:52PM (#62830859)

    Why is C# listed as "C-like" but not Java? C# is basically Microsoft's second attempt at their own version of Java, following the legal problems they had with J#.

  • I have no idea how anyone who claims to know about programming languages could miss this.

  • In August, with just over 4 months left in the year ...

"Ada is PL/I trying to be Smalltalk. -- Codoso diBlini

Working...