Author Topic: TIOBE Index of programming languages  (Read 2003 times)

0 Members and 5 Guests are viewing this topic.

Online nctnico

  • Super Contributor
  • ***
  • Posts: 27640
  • Country: nl
    • NCT Developments
Re: TIOBE Index of programming languages
« Reply #25 on: September 08, 2024, 10:18:58 pm »
Indices of popularity are marketing tools more so than anything else.
If your job is marketing development tools, then they are probably useful.

Yes and no. If you choose an obscure language for a project, then it will be hard to find people to work on the project. And thus making the project expensive to create and expensive to maintain. So there has to be a really, really, really good reason to choose that particular programming language. In that respect, an index of popular programming languages can help to make a good selection.
« Last Edit: September 08, 2024, 10:22:02 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: newbrain

Offline Infraviolet

  • Super Contributor
  • ***
  • Posts: 1139
  • Country: gb
Re: TIOBE Index of programming languages
« Reply #26 on: September 08, 2024, 10:52:57 pm »
"So there has to be a really, really, really good reason to choose that particular programming language"
If it is an obscure language yes, you'd ned very good reasons, but if it is any of the common languages then what you pick will be less a choice and more like something automatically determined by whether there's any existing library you particularly want to use (for example Fortran is still popular with X-ray astronomers specifically because someone wrote a bunch of x-ray spectrometry libraries for it, Python is good if you want to make use of Tensorflow for AI stuff or use stuff derived from Blender to handle 3d graphical functionality), or by what you're already most familiar with (and can thereby reuse sections of code and functions from things you've written before).
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 20302
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: TIOBE Index of programming languages
« Reply #27 on: September 08, 2024, 11:46:02 pm »
"So there has to be a really, really, really good reason to choose that particular programming language"
If it is an obscure language yes, you'd ned very good reasons, but if it is any of the common languages then what you pick will be less a choice and more like something automatically determined by whether there's any existing library you particularly want to use (for example Fortran is still popular with X-ray astronomers specifically because someone wrote a bunch of x-ray spectrometry libraries for it, Python is good if you want to make use of Tensorflow for AI stuff or use stuff derived from Blender to handle 3d graphical functionality), or by what you're already most familiar with (and can thereby reuse sections of code and functions from things you've written before).

Fortran is still popular with the high performance computing mob (who have been pushing hardware and software since the 50s!) because (1) the language predictably allows correct extreme optimisations on all sorts of hardware (2) solid numerical computation properties (3) lots of existing high quality libraries.

Of course, if you aren't concerned with speed or quality of numerical computation/results, then Fortran looks unappealing.

Similar things can be said, I believe, about statistical calculations and languages like R.

Then there's the high frequency trading mob, who like to code their trading algorithm business logic in hardware description languages.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1032
  • Country: es
    • Picuino web
Re: TIOBE Index of programming languages
« Reply #28 on: Yesterday at 02:03:38 pm »
The Tiobe index is also a good excuse to comment on trends in programming languages, as Paul Jansen does.

This month is a good opportunity to talk about the decline of the C language in favor of other safer languages, such as Rust. So far Rust has managed to get into the linux kernel (quite an achievement) and, as far as we in electronics are concerned, we should be watching to see how it gets into the world of microcontrollers.
 

Offline PicuinoTopic starter

  • Super Contributor
  • ***
  • Posts: 1032
  • Country: es
    • Picuino web
Re: TIOBE Index of programming languages
« Reply #29 on: Yesterday at 02:12:47 pm »
The text also comments that, as embedded applications become larger and larger, c presents problems that can be solved with C++ object-oriented programming.

Here I think there is also a lot to talk about. I believe that a new programming language (C+) is missing. This new hypothetical language would be more powerful than C, but without reaching the many capabilities of C++, which also make it not very maintainable.

Linux Torvalds controversy about using C vs C++ in the Linux kernel:
https://medium.com/nerd-for-tech/linus-torvalds-c-is-really-a-terrible-language-2248b839bee3
« Last Edit: Yesterday at 02:15:31 pm by Picuino »
 

Online SiliconWizard

  • Super Contributor
  • ***
  • Posts: 15126
  • Country: fr
Re: TIOBE Index of programming languages
« Reply #30 on: Yesterday at 09:48:07 pm »
Indices of popularity are marketing tools more so than anything else.
If your job is marketing development tools, then they are probably useful.

Yes and no. If you choose an obscure language for a project, then it will be hard to find people to work on the project. And thus making the project expensive to create and expensive to maintain. So there has to be a really, really, really good reason to choose that particular programming language. In that respect, an index of popular programming languages can help to make a good selection.

If you use TIOBE to pick a language for a serious project in a professional setting, you have a serious problem. Probably indicative of being an MBA guy rather than a tech lead.
 
The following users thanked this post: cfbsoftware

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 20302
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: TIOBE Index of programming languages
« Reply #31 on: Yesterday at 09:50:26 pm »
Indices of popularity are marketing tools more so than anything else.
If your job is marketing development tools, then they are probably useful.

Yes and no. If you choose an obscure language for a project, then it will be hard to find people to work on the project. And thus making the project expensive to create and expensive to maintain. So there has to be a really, really, really good reason to choose that particular programming language. In that respect, an index of popular programming languages can help to make a good selection.

If you use TIOBE to pick a language for a serious project in a professional setting, you have a serious problem. Probably indicative of being an MBA guy rather than a tech lead.

Precisely.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 27640
  • Country: nl
    • NCT Developments
Re: TIOBE Index of programming languages
« Reply #32 on: Yesterday at 10:44:42 pm »
Indices of popularity are marketing tools more so than anything else.
If your job is marketing development tools, then they are probably useful.

Yes and no. If you choose an obscure language for a project, then it will be hard to find people to work on the project. And thus making the project expensive to create and expensive to maintain. So there has to be a really, really, really good reason to choose that particular programming language. In that respect, an index of popular programming languages can help to make a good selection.

If you use TIOBE to pick a language for a serious project in a professional setting, you have a serious problem. Probably indicative of being an MBA guy rather than a tech lead.
You can kick & scream all you want about keeping on using your favorite programming language and forcing that on other people but in the end you'll need several people to get a big software project going. At this moment it is easier to get 10 people who are proficient at Python compared to getting 10 people who are proficient with C. There is only so much a single person can do and you don't want to end up relying on a unicorn. In the end choosing a programming language is very much a logistics / human resource problem. Indexes like TIOBE but also looking at job offerings for various programming languages can show you what are easy languages to get people to code in and which are the harder ones to find people for. For sure there is a positive feedback loop going on where popularity of programming lanuages amplifies itself.
« Last Edit: Yesterday at 11:00:12 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 27640
  • Country: nl
    • NCT Developments
Re: TIOBE Index of programming languages
« Reply #33 on: Yesterday at 10:57:51 pm »
The text also comments that, as embedded applications become larger and larger, c presents problems that can be solved with C++ object-oriented programming.

Here I think there is also a lot to talk about. I believe that a new programming language (C+) is missing. This new hypothetical language would be more powerful than C, but without reaching the many capabilities of C++, which also make it not very maintainable.

Linux Torvalds controversy about using C vs C++ in the Linux kernel:
I'd take anything Linus claims with a large shovel of salt. Fact is that most of the Linux kernel is object oriented and it is a mess due to overly using void pointers to all kinds of random structs. C++ would make the Linux kernel easier to maintain and a lot faster due to early binding. The way the Linux kernel is now means that going from a driver to user space, a chain of -give or take- 10 pointers (either data and function) needs to be walked through which can be espensive time wise due to cache misses. C++ can squash that chain of pointers into a much thinner layer and thus gaining a lot of speed. A while ago I rewrote such a piece of C code in C++ and the execution speed increased so much that I needed a delay loop counting to 350 to slow the new code down to the speed of the old code.

Then again, C++ may not be the ultimate answer for microcontroller use. Without the STL libraries C++ isn't worth much. Recently I've been working on a microcontroller project which uses Micropython to implement the high level logic. This actually works pretty good and Micropython is properly sandboxed which C++ is not.
« Last Edit: Yesterday at 11:02:17 pm by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online tggzzz

  • Super Contributor
  • ***
  • Posts: 20302
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: TIOBE Index of programming languages
« Reply #34 on: Yesterday at 11:43:07 pm »
The text also comments that, as embedded applications become larger and larger, c presents problems that can be solved with C++ object-oriented programming.

Here I think there is also a lot to talk about. I believe that a new programming language (C+) is missing. This new hypothetical language would be more powerful than C, but without reaching the many capabilities of C++, which also make it not very maintainable.

Linux Torvalds controversy about using C vs C++ in the Linux kernel:
I'd take anything Linus claims with a large shovel of salt. Fact is that most of the Linux kernel is object oriented and it is a mess due to overly using void pointers to all kinds of random structs. C++ would make the Linux kernel easier to maintain and a lot faster due to early binding. The way the Linux kernel is now means that going from a driver to user space, a chain of -give or take- 10 pointers (either data and function) needs to be walked through which can be espensive time wise due to cache misses. C++ can squash that chain of pointers into a much thinner layer and thus gaining a lot of speed. A while ago I rewrote such a piece of C code in C++ and the execution speed increased so much that I needed a delay loop counting to 350 to slow the new code down to the speed of the old code.

Then again, C++ may not be the ultimate answer for microcontroller use. Without the STL libraries C++ isn't worth much. Recently I've been working on a microcontroller project which uses Micropython to implement the high level logic. This actually works pretty good and Micropython is properly sandboxed which C++ is not.

I was writing (crudely) OOP code in C ~1984, i.e. before C++ appeared.

Even with STL libraries, C++ isn't worth much  >:D You can write valid C++ programs that can never finish compiling - because as part of the compilation process the compiler emits the sequence of prime numbers. The people designing C++ templates refused to believe that, until Erwin Unruh rubbed their noses in it. That's a big red flag that Something is Very Wrong-headed There!

Using a decent HLL (i.e. not C nor C++) is a good pragmatic decision, provided that it is possible to design and maintain a sane split between hardware, C and the HLL.
« Last Edit: Yesterday at 11:46:07 pm by tggzzz »
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf