Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Stats Programming Python

C Drops, Java (and Rust) Climb in Popularity - as Coders Seek Easy, Secure Languages (techrepublic.com) 56

Last month C dropped from 3rd to 4th in TIOBE's ranking of programming language popularity (which tries to calculate each language's share of search engine results). Java moved up into the #3 position in September, reports TechRepublic, which notes that by comparison October "saw relatively little change" — though percentages of search results increased slightly. "At number one, Python jumped from 20.17% in September to 21.9% in October. In second place, C++ rose from 10.75% in September to 11.6%. In third, Java ascended from 9.45% to 10.51%..."

Is there a larger trend? TIOBE CEO Paul Jansen writes that the need to harvest more data increases demand for fast data manipulation languages. But they also need to be easy to learn ("because the resource pool of skilled software engineers is drying up") and secure ("because of continuous cyber threats.") King of all, Python, is easy to learn and secure, but not fast. Hence, engineers are frantically looking for fast alternatives for Python. C++ is an obvious candidate, but it is considered "not secure" because of its explicit memory management. Rust is another candidate, although not easy to learn. Rust is, thanks to its emphasis on security and speed, making its way to the TIOBE index top 10 now. [It's #13 — up from #20 a year ago]

The cry for fast, data crunching languages is also visible elsewhere in the TIOBE index. The language Mojo [a faster superset of Python designed for accelerated hardware like GPUs]... enters the top 50 for the first time. The fact that this language is only 1 year old and already showing up, makes it a very promising language.

In the last 12 months three languages also fell from the top ten:
  • PHP (dropping from #8 to #15)
  • SQL (dropping from #9 to #11)
  • Assembly language (dropping from #10 to #16)

C Drops, Java (and Rust) Climb in Popularity - as Coders Seek Easy, Secure Languages

Comments Filter:
  • by vadim_t ( 324782 ) on Sunday October 13, 2024 @11:04AM (#64860741) Homepage

    Why is TIOBE still talked about? Their data is complete nonsense. Don't believe me? Look at how it's made:

    https://www.tiobe.com/tiobe-in... [tiobe.com]

    It's basically searching for "$LANGUAGE programming" on various search engines, then taking the "5 million results found" counts. After that they use some fudge factor they seem to have come up by themselves. Why is google.com worth 7.69%? Why is Wikipedia the second in the list, do mentions on Wikipedia go up and down by language popularity? Why is google.co.uk in the list, when it also returns English results?

    Does Google even promise that the result count they display is remotely accurate?

    Let alone that this barely means anything if it worked because it's trivial for anyone to inflate counts by encouraging the use of the term, or it can also go down if some prominent site happens to go down.

    It's an absolutely terrible metric and I don't understand why anyone cares about it. At least try to be remotely accurate. Look at Stack Overflow activity. Look at commits on Github. Look at subreddits. Something that indicates actual usage at a given point in time.

    • by Entrope ( 68843 )

      The "why" is right there in the name: The Importance Of (click-)Baiting Engagement.

      I also find it interesting that the focus is in easy and safe languages. Nobody cares about developer productivity or flexibility these days? Usually, you compromise on two -- and at least one -- I irder to get the other two.

    • Why is TIOBE still talked about?

      I'm assuming because someone is paying for it to be talked about. As you've pointed out it's data based on completely bogus metrics, which usually means they started with the conclusion they wanted and found a way to reach it. Then shitty media companies desperate for any dollars they can get feature stories about this research so that it gets some eyeballs on it. Then they throw a few nickels at the tail-end of the media-human-centipede and get /. editors to post it here because no one actually reads the c

  • Java? Rust? Get serious, world. Does Mommy massage your wrists while you type, so her pwecious angew doesn't get carpal tunnel? If you're not managing your own memory, are you even really programming? Ideally, I'd like a language that lets me adjust my own voltage and Hertz.
    • by narcc ( 412956 )

      Cartoonish machismo aside, the belief that you don't need to think about memory when using a managed language is a real problem.

      • What are you thinking about in terms of memory when using a managed language? If you open your resources using the try-with-resources mechanism, any system resources get automatically closed. The garbage collector largely takes care of everything else.

        If you have performance constraints, you might find yourself using native arrays which are *much* faster. And, in that case, you need to check bounds. Of course, if you do mess up, you'll get a helpful stack trace which will make fixing the bug trivial.

    • by Kisai ( 213879 )

      The only languages that matter are C (which you are required to know if you want to use any existing software library.)

      You can learn any scripting language (eg Javascript, PHP, Perl, Python) and you will generally understand how it works before the idiots inflating the version numbers start core-rotting the language with features that belong in C++ not a scripting language.

      Like good god , "WebASM" was the worst possible thing to exist, now you get people porting their rubbish code from "language and engine

      • Yes, you can install more than one JRE. I have Java 8, Java 16, Java 17, and Java 21 on my development box. I run Minecraft as a player with Java 8, Java 16, and Java 21.

      • by Pieroxy ( 222434 )

        nobody should be using Java to develop anything due to Oracle's meddling.

        Nobody in their right mind uses Oracle's JVM or JDK. Everyone uses OpenJDK which is 100% open source thanks to Sun Microsystems open sourcing it before Oracle bought them. Oracle is *nothing* in the Java world, as and their potential discontinuation of the JRE would greatly benefit the Java community.

        You should talk about stuff you know. You draw conclusions based on fantasies, no wonder they're completely off base.

      • Who cares if your JRE gets discontinued? You can run older JRE code on newer JREs just fine. Or if you don't like that, you can keep an older JRE around.

        With Java, you don't have to recompile for different architectures. If you have old C code around and want to run it on a newer architecture, you have to recompile. And your code might not compile with the latest compiler. And the older compiler might not be available for a new architecture, so you're stuck.

        With Java, you just copy the JAR file any

    • Makes no sense to compare rust to java in this regard. You very much manually manage memory with rust, however most of it is done implicitly through better semantics.

      C++ developers complain about it because they don't understand the concept of implicit destructive move semantics -- one here referred to the idea as "cretinous" because he's used to C++ moves, which are fucking bonkers, just like everything else in that language. As Linus Torvalds and Drew Devault have said: It's a language only enjoyed by bad

  • ...of CHEAP software engineers is drying up
    Companies prefer tools that allow cheap and low skilled coders to quickly churn out mediocre code

    • If the code isn't core to the function of your business, this is a wise choice.
  • by Somervillain ( 4719341 ) on Sunday October 13, 2024 @11:19AM (#64860757)
    I care about what employers choose. I like to get paid. New programming languages honestly rub me the wrong way as every person I've ever met who pursues new languages does so as a substitute for mastering an older one. Most people who have written in 10 languages have never mastered a single one. If you know what you're doing?...the old languages are perfectly fine.

    For me, libraries make a much bigger difference than languages. Java is my main language and there are dozens of things it can do better....but I rarely write PURE Java. Most of what I've ever needed to do has been written and is in a library somewhere. I spend more time assembling library code than writing pure Java. But even when I do...it's fine...some languages do things maybe 5-10% better, but it really never adds up.

    I will wager that if Rust is a night and day difference for you, then you didn't learn your old language correctly. Certainly, that was the case for everyone I've ever met who jumped ship to node.js and Python.

    Great...you improved your productivity slightly by moving to Python/node.js/Rust...now you can write novice code even faster?
    • I have found that you can have years to decades of experience, but in my experience with job hunting, if you don't have experience in that language, even though it is like 100 other languages, but written by a startup so they can make money on support of it, you get shown the door. I wouldn't be surprised to see another language popping up out of nowhere and becoming the latest "fad", just because C-levels will demand it used just to keep up with the Joneses, and we get a generation of programmers who know

      • by SirSlud ( 67381 )

        "The funny thing is that C and C++ have so many tools to check for pointer issues, and dangerous function calls like scanf(), that show-stopping memory leaks or buffer overflows is pretty much past us, other than for legacy code."

        Holy fuck I can tell you don't actually make software for a living

  • by Uecker ( 1842596 ) on Sunday October 13, 2024 @11:39AM (#64860773)

    IMHO C is still one of the most useful languages and perfectly fine even for large projects (why should this have changed suddenly after many decades?).

    Safety is an issue but there are also many great tools to help with this and which get better continuously (e.g. GCC's analyzer), and the alternatives have their fair share of problems too.

    • Because projects get larger and larger every decade.
      The biggest (mostly) C project is perhaps the Linux kernel - and similar kernels.

      You only use C if you really must, or are a masochist.

      It is useful, if assembly would be a pain, and you have a well working toolchain for what ever 8 bit or 16 bit microcontroller or DSP you are coding. And that is it.

      • by Uecker ( 1842596 )

        This is a lot of nonsense. I enjoy writing C and so do many others. You certainly need to know how to structure large projects in C, but this is no secret. The benefit is also clear: Fast compilation times.

        • by rlwinm ( 6158720 )
          As do I. I think most people who complain about C don't know C.
      • by rlwinm ( 6158720 )

        You only use C if you really must, or are a masochist.

        Maybe in business apps. But that's far from the main genre of software. Embedded is still C. I've worked on some massive C programs. While the Linux kernel is large by line count, it's mostly individual drivers that all fir an API. So it's not even as daunting as you may think. For the last 30 years I've done mainly C and assembly doing everything from chemical process monitoring to linear accelerator beam control. C is a capable language for huge sys

      • by gweihir ( 88907 ) on Sunday October 13, 2024 @12:43PM (#64860893)

        The Linux kernel is, by basically any metric, the largest software project on the planet. It works well. It is under active development. It is not ossified in any way.

        That alone proves without any room for doubt that C is suitable for large and very large projects and does not make things harder than needed. In fact, there is reason to believe that C is, at this time, the only language suitable for competent kernel development and one of the very few languages that has proven itself in very large projects. Obviously, a lot of "coders" are not suitable to work on large and very large projects, or kernels, though.

        • "That alone proves without any room for doubt that C is suitable for large and very large projects and does not make things harder than needed. "

          No, it only proves that it is not impossible to use C for large and very large projects..

          • by gweihir ( 88907 )

            Actually yes. The project would have failed if the tool was not quite suitable for the task. Like other projects that did fail. But I get it, there always has to be some big-ego-small-insight asshole. This time you are it.

          • It is not impossible to use any language for large and very large projects.
            It's just that some programming concepts and languages only make it (up to infinitely) more complex, and you always need skills in organising code at code, file, and tools levels.

            That's why C is perfectly useable for any size project because using another language doesn't magically eliminate those essential skills.

        • Sorry but this argument doesn't hold up. Writing kernels in C is a time-honored tradition and the Linux kernel took 35 years to get where it is today. There haven't been any large kernels written in decades because it's such a time-consuming and difficult task.

          The closest recent example we have is UEFI which is written in C++.

          When you look at *commercial software* (where developers time isn't free), C is popular for real-time solutions where it's necessary and embedded solutions where there is limited

    • by gweihir ( 88907 )

      Indeed. The problem with C is mostly people that try to code in it while not being sufficiently competent. It is absolutely no problem to code defensively in C and to not screw up. But it requires real insight to do so. The good thing about C is that the really incompetent will not even get their code to compile. But that turns out to be a too low bar.

      • The problem with C is mostly people that try to code in it while not being sufficiently competent

        Exactly! No one should ever write a line of C until they're an expert.

  • All languages as the final step of their compilation are rendered into assembly language. All the low-level bits of an OS that deal directly with the hardware are also written, at least partially in assembly language. Ditto low-level library bits like memcpy. Assembly language is the giant upon whose shoulders all else rests.
    • Everything you write in assembly, you can write in C, or Pascal, or Oberon or Ada ... and so on.

    • All languages as the final step of their compilation are rendered into assembly language. All the low-level bits of an OS that deal directly with the hardware are also written, at least partially in assembly language. Ditto low-level library bits like memcpy. Assembly language is the giant upon whose shoulders all else rests.

      Why are you obscuring how the computer really works with a bunch of human constructs like symbols, mnemonics and labels?

      Computers work exclusively with binary numbers. You need to look directly at the bits to fully understand your code.

      Preferably, you should exclusively use rows of toggle switches and neon indicators to interact with your system.

  • WTF is with (all of the parens)? [Why not take it to the next level with some brackets too?]

    Maybe (it's all) [bullshit] anyway.

  • by quonset ( 4839537 ) on Sunday October 13, 2024 @12:29PM (#64860845)

    For all you coders, a list [imgur.com] of programming languages and how they work.

    • Still missing the panels showing the horse built in C both looks good and is fast (but should not be ridden by a fat jockey).

      Not to mention it'll translate between all the other horses, as well as ponies and donkeys.

  • Good coders will code in whatever suits the task best. Bad coders do follow-the-hype and often cannot even really go to another language on short notice.

    That said, Rust is still niche and will remain niche. It is too complex and requires too much experience with different coding concepts to be accessible to bad and mediocre coders, and these are the vast majority. That is not to say it is a bad design. I had a look at it a while back and it gets some things right, like prevalent immutability, functional con

    • by Uecker ( 1842596 )

      Rust has some good ideas. But for my taste it is far too complex. With respect to C it has essentially thrown out the baby with the bathwater.

      Other problems I have with Rust are: long compilation times, instability of language and dependencies, the supply-chain disaster that is cargo.

      Marketing wise I find it annoying that they pretend that memory safety is the only important thing and that they like to compare safe Rust to arbitrary C (no tools for improving safety) when talking about safety and compare C

      • Marketing wise I find it annoying that they pretend that memory safety is the only important thing

        Well, that is pretty much its only real selling point...

      • by gweihir ( 88907 )

        Yes. The Rust propaganda and the claims of its community are dishonest on an advanced level. Or maybe they are simply collectively delusional.

      • the supply-chain disaster that is cargo

        That is certainly a matter of opinion. I love the fact that I can quickly download and build a project to make some small tweaks without having to spend hours of frustrating work manually identifying and installing all of the exact versions of the dependencies necessary to build the project. Almost anyone who has worked with a modern language will find the process of starting development on a mature C/C++ project to feel absolutely archaic. I'm not even that big of

        • by Uecker ( 1842596 )

          I usually use apt-get to install my dependencies, which works flawlessly. But yes, this is then a then on the level of Linux distributions.

          But my issue with cargo is not that it makes installing dependencies easy, but that it is an essentially un-curated list of unstable code that changes all the time, where a project might not actually be associated with the repository that it claims to be, can run arbitrary code as your users during compilation, and hides in a hidden directory in your home directory. (A

  • TIOBE has always shown strange results. Just comparing to a more reliable source as StackOverflow's yearly survey shows how unreliable counting hits can be. For all you know, more hits could be due to people having problems with it or the buzz made by some government about good languages for security. News can be amplified by random outlets, which makes the principle fundamentally flawed. I'm surprised some people are still basing their articles on that index.
  • They don't mention that the 27 year old language, Delphi, has risen into the top 10 and displacing those so-called wonder languages.

    Delphi's Object Pascal is very capable, easier to read and write over Rust, quick and backwards compatible with older code.

    Still, Tiobe, goes to great measures to ignore it for years.

  • by 93 Escort Wagon ( 326346 ) on Sunday October 13, 2024 @02:16PM (#64861107)

    I was worried someone might forget.

  • hard.

    The smarter the tool the dumber the operator. That's the point of tools, isn't it?
    Then of course, the cheaper the operator is too... as pointed out above.

    Look at "network operations centers" now. I read a few of the job postings lately for fun and they want a monkey to "monitor alarms" .. I'll pass Homer's resume along... he's been in that job at the nuclear plant for over 30 years, must be getting bored by now... ...and if you think about it, automating those button pushing monkeys with "AI" will be a
    • What is wrong with monitoring alarms? Somebody has to triage the outages. If you do this with a shell script (possible), you have to continuously maintain the shell script. And if the script has a problem, you have exactly one person to call (the person who maintains it.) If you, instead, put a human in the NOC, it's much easier to make changes and they can handle unexpected conditions. The reason you have a NOC is because you care about reliability.

!07/11 PDP a ni deppart m'I !pleH

Working...