Recent

Author Topic: TIOBE Programming Index merges Object Pascal and Delphi!  (Read 7316 times)

Leledumbo

  • Hero Member
  • *****
  • Posts: 8207
  • Programming + Glam Metal + Tae Kwon Do = Me
TIOBE Programming Index merges Object Pascal and Delphi!
« on: July 09, 2011, 04:32:14 am »
See this month's index.  That's a good step. Now, they only need to merge Pascal as well, so we can beat JavaScript :D

zbyna

  • New Member
  • *
  • Posts: 49
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #1 on: April 06, 2020, 06:17:14 pm »
It lasted nearly 9 year but now Delphi and FPC are splitted again:
https://www.tiobe.com/tiobe-index/

This Month's Changes in the Index
This month the following changes have been made to the definition of the index:
Ian pointed out that Delphi and Object Pascal have separate Wikipedia pages so they should also have different TIOBE index entries. As of this month Delphi and Object Pascal are split. Delphi is at position #22 and Object Pascal at position #73.

In my opinion Delphi and FPC are compilers for Object Pascal.  :o

avra

  • Hero Member
  • *****
  • Posts: 1885
    • Additional info
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #2 on: April 06, 2020, 09:12:06 pm »
Ian pointed out that Delphi and Object Pascal have separate Wikipedia pages so they should also have different TIOBE index entries.
Weak argument. So GNU C++, Visual C++, C++ Builder, Watcom C++ and Think/Symantec C++ have separate wiki pages and still they all count under one C++ Tiobe index. Do they deserve to get separate Tiobe indexes? If wikipedia lists all Pascal compilers together here https://en.wikipedia.org/wiki/List_of_compilers#Pascal_compilers and FreePascal and Delphi are all Pascal compilers, that makes such argument even more absurd. They should not only be under one Tiobe index, but Delphi, Object Pascal and Pascal should be under single Tiobe index. Separation of Pascal from Delphi/ObjectPascal is the prisoner of C and C++ separation. C is still used in Linux and embedded world, while we can not say the same for good old Pascal. It is used mostly for learning and hasn't got much real use. And even for that learning modern compilers are used.

We should be aware that Embarcadero (or who ever owned Delphi IDE at the time) is guilty of separation between Delphi and Object Pascal since they started insisting calling their variation of Object Pascal language the Delphi language. It is not different language at all. There are more differences then that in C++ language between 2 C++ compilers. Delphi language (if we want to call it like that) is an extension to an Object Pascal (or dialect of it), as Object Pascal is an extension to plain Pascal. If I remember well, First Borland's hooray into OOP was called something like Turbo Pascal with Objects.

In my opinion Delphi and FPC are compilers for Object Pascal.  :o
Let's just look into Think/Symantec C++ at https://en.wikipedia.org/wiki/THINK_C. As you can see it has originally extended C before it implemented a subset of C++. Do you think that they didn't call it C++ just because at first it supported only single inheritance? Of course they called it C++. And they had the right to call it. What strikes me is the fact that you have much better chances to compile the same visual application under Delphi and Lazarus/FreePascal then to compile some application with GNU and Microsoft C++ compiler, and yet both C++ compilers are in the single Tiobe index while that is not the case with Object Pascal and Delphi.

I have only one word for Tiobe's consistency in separation of Pascal, Object Pascal and Delphi - and that is discrimination.
« Last Edit: April 06, 2020, 09:23:10 pm by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

jwdietrich

  • Hero Member
  • *****
  • Posts: 1112
    • formatio reticularis
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #3 on: April 06, 2020, 09:22:01 pm »
The TIOBE index is a highly questionable construct. Its methodology is more than dubious.
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 2.0.8 | FPC 3.0.4 | PPC, Intel, ARM | macOS, Windows, Linux

avra

  • Hero Member
  • *****
  • Posts: 1885
    • Additional info
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #4 on: April 06, 2020, 09:26:58 pm »
The TIOBE index is a highly questionable construct. Its methodology is more than dubious.
Yes, but big argument for non-pascal developers when language popularity needs to be quantified somehow and compared. There are no valid alternatives. That's why we need to try to correct that to have a more realistic situation.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

simone

  • Sr. Member
  • ****
  • Posts: 343
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #5 on: April 06, 2020, 10:49:55 pm »
Certainly Object Pascal today does not have the popularity of 20 years ago. However in Tiobe index it was always in the top 20 until last month. Three months ago he was in position #13. Is it credible that a language loses 10 positions in 3 months? Is it realistic that Scratch is more relevant than Delphi, Scala, Rust, Kotlin, Cobol, Fortran and Lisp? After 35 years in the IT industry I can say that this is completely wrong. I'm sorry, but Tiobe is losing credibility to my eyes.
Microsoft Windows 10 64 bit - Lazarus 2.0.6

jwdietrich

  • Hero Member
  • *****
  • Posts: 1112
    • formatio reticularis
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #6 on: April 06, 2020, 10:58:12 pm »
Certainly Object Pascal today does not have the popularity of 20 years ago. However in Tiobe index it was always in the top 20 until last month. Three months ago he was in position #13. Is it credible that a language loses 10 positions in 3 months? Is it realistic that Scratch is more relevant than Delphi, Scala, Rust, Kotlin, Cobol, Fortran and Lisp? After 35 years in the IT industry I can say that this is completely wrong. I'm sorry, but Tiobe is losing credibility to my eyes.

TIOBE is as mindless as counting search results for [programming language] + "programming" in Google and Q&A sites. This is the cheesiest method of assessing the popularity of a progrmaming language. Perhaps Pascal is low in ranking since it is a rather consistent and logical language, so that less questions arise compared to the more "popular" languages.
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 2.0.8 | FPC 3.0.4 | PPC, Intel, ARM | macOS, Windows, Linux

Warfley

  • Full Member
  • ***
  • Posts: 124
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #7 on: April 07, 2020, 12:21:55 am »
TIOBE is as mindless as counting search results for [programming language] + "programming" in Google and Q&A sites. This is the cheesiest method of assessing the popularity of a progrmaming language. Perhaps Pascal is low in ranking since it is a rather consistent and logical language, so that less questions arise compared to the more "popular" languages.

Even than, when I search for something I either search for "lazarus  [question]", "fpc [question]" and "delphi [question]". None of them would count into tiobe because I don't add the term "programming" to it.

The only thing you can somehow tell from tiobe is how many new people are interested in a certain language, as it only evaluates the most general search term possible. E.g. when I try to find out what for exampel scala is, I search for "scala programming language" or when I want to learn it I search for: "Scala programming tutorial" or something like this.
People who are already using the language usually don't search for this, and from what I have read, TIOBE does not intend to capture anything else, so ranking of newcommers is more or less the goal.
Combine this with the fact that people often search not for "objectpascal programming language" but rather "lazarus ide" or something like this.

TIOBE is therefore inherintly biased against programming languages, where the search term does not include the name of the language (like for lazarus). It also heavily favors things where you basically have to add "programming" to get any meaningful results. E.g. searching for "go" in your favourite search engine will, if you are not already a programmer) most likely not grant you any information about the programming language.

That said, there is of cause also the way people start using a language. As I said TIOBE only measures how relevant a language is for newcommers, not according to specific questions. If you now start learning Pascal at your Uni or School (where it is still quite popular, at least here in Germany), you will more or less directly start with very specific questions, because you have a set of tasks to solve. There is no need for a general overview, because you are already told what to use and do.

Certainly Object Pascal today does not have the popularity of 20 years ago. However in Tiobe index it was always in the top 20 until last month. Three months ago he was in position #13. Is it credible that a language loses 10 positions in 3 months? Is it realistic that Scratch is more relevant than Delphi, Scala, Rust, Kotlin, Cobol, Fortran and Lisp? After 35 years in the IT industry I can say that this is completely wrong. I'm sorry, but Tiobe is losing credibility to my eyes.

I don't think TIOBE is nessecarily "bad", but you need to understand what is measured. First it does not measure the current state, but the newcomers. So it may give a hint how the state will be 5 years or so from now, but even thats a strech. It can't be used to make any statements about current popularity of a language. And that Delphi or Lazarus is not the hot topic everyone who wants to get into programming searches for is rather uncontroversial. On the other hand, nearly everone who wants to get into programming knows at least something about python.
And even if you are looking at newcomers, it also has a lot of caveats. If you want to assess the popularity of a language, there is a very simple way, look at the download figures. The most current version of Lazarus for windows has on sourceforge currently >2k downloads per week, a few years ago this was only around 1.5k (I don't exactly know when this was, but I remember times downloading it when the number there war around 1.5-1.6k). Lazarus is getting more popular.

Also measuring the popularity is not an easy task in it of itself. For example you could take a look at languages used on Github: https://githut.info/ But this only measures open-source projects that use Github which is therefore heavily biased towards highly accessible general purpose languages (which is why for example C is below C++) and Pascal doesn't even make it into the top 50. Evaluating search terms is also not easy, for example when searching for go the term usually used by the community to avoid confusion is "golang". So any Index trying to capture the current usage by search terms, needs an indepth understanding of the terms the community uses. Going by what buisnesses use, is as missleading as the Github sources, just in the opposite direction, against open-source projects.


After all, all measures have their pros and cons and using one of them is like using any tool, if you don't understand what it does, its useless.

Weak argument. So GNU C++, Visual C++, C++ Builder, Watcom C++ and Think/Symantec C++ have separate wiki pages and still they all count under one C++ Tiobe index.
[...]
Let's just look into Think/Symantec C++ at https://en.wikipedia.org/wiki/THINK_C. As you can see it has originally extended C before it implemented a subset of C++. Do you think that they didn't call it C++ just because at first it supported only single inheritance? Of course they called it C++. And they had the right to call it. What strikes me is the fact that you have much better chances to compile the same visual application under Delphi and Lazarus/FreePascal then to compile some application with GNU and Microsoft C++ compiler, and yet both C++ compilers are in the single Tiobe index while that is not the case with Object Pascal and Delphi.

I have only one word for Tiobe's consistency in separation of Pascal, Object Pascal and Delphi - and that is discrimination.
Bad comparison, C and C++ are standardized. If you have standard C++ it will compile on VC++, G++, Intel C++, etc. and run the same. Sure everyone can call his C++ dialect C++, but there is the term ISO-C++ which can only referr to standard compliant C++. Vc++, G++, Intel C++, etc. are all ISO-compliant up to C++17. There is a standardized Pascal dialect, which no one uses.

On the other hand is the Object-Pascal dialect the FPC implements and Delphi incompatible. Look no further than function pointers. While I think that splitting those two indices up with the reasoning of wikipedia articles is kinda stupid, and after all the differences are rather minor, these are still two different dialect, which is not true for two ISO-C++ compilers, which implement the same language and can only differ in parts where the standard is undefined.

A better comparison there would be Lisp, as every software using Lisp (such as emacs) uses it's own dialect (as Lisp for itself is just S-Expressions). As TIOBE simply has one category LISP, even though LISP is only a family of language dialects, I think that the only consistent way would be to also have one entry for ObjectPascal (or even Pascal as the more general family)
« Last Edit: April 07, 2020, 12:43:34 am by Warfley »

dbannon

  • Hero Member
  • *****
  • Posts: 1044
    • tomboy-ng, a rewrite of the classic Tomboy
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #8 on: April 07, 2020, 12:50:22 am »
.......
TIOBE is as mindless as counting search results for [programming language] + "programming" in Google and Q&A sites. This is the cheesiest method of assessing the popularity of a progrmaming language. Perhaps Pascal is low in ranking since it is a rather consistent and logical language, so that less questions arise compared to the more "popular" languages.

Plus of course most questions about FPC and Lazarus are directed directly to our forum and don't get counted by Google.  That it works so well is a problem ? sigh.

Davo
Lazarus 2, Linux (and reluctantly Win10, OSX)
My Project - https://github.com/tomboy-notes/tomboy-ng

440bx

  • Hero Member
  • *****
  • Posts: 1827
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #9 on: April 07, 2020, 01:12:19 am »
If you have standard C++ it will compile on VC++, G++, Intel C++, etc. and run the same. Sure everyone can call his C++ dialect C++, but there is the term ISO-C++ which can only referr to standard compliant C++. Vc++, G++, Intel C++, etc. are all ISO-compliant up to C++17.
That may be true for "hello world" class programs but, there are plenty enough differences between implementations of C++ that porting from one implementation to another requires _work_ not just a simple recompilation.

That said, the work required is not usually caused by syntactic or semantic differences (except in the case of those "implementation defined" compiler behaviors.)  Most implementations do adhere to the standard but, when it comes to details such as specifying alignment in fields, variables, controlling the output of the compiler, it's a different story.  There are _many_ details in an "ambitious" program that the standard doesn't address and every implementer designed their own way of addressing them.

Personally, since I don't use any of the object oriented stuff, porting my programs from Delphi to FPC is usually simpler and faster than porting MSVC++ code to g++ and, the result is more often than not, significantly better.

As far as TIOBE's separation of the various Pascal dialects, I believe that reflects their "comprehensive" understanding of computer languages in general.  (estimate: it's probably at the level of understanding my neighbor's cat has of differential calculus - they named it Newton but, it doesn't seem to have had the desired effect.)

FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 64bit.

Warfley

  • Full Member
  • ***
  • Posts: 124
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #10 on: April 07, 2020, 01:24:51 am »
That said, the work required is not usually caused by syntactic or semantic differences (except in the case of those "implementation defined" compiler behaviors.)  Most implementations do adhere to the standard but, when it comes to details such as specifying alignment in fields, variables, controlling the output of the compiler, it's a different story.  There are _many_ details in an "ambitious" program that the standard doesn't address and every implementer designed their own way of addressing them.

At my workplace we have a very simple rule: if your code relies on undefined/implementation specific behavior (such as alignment of fields) your code is broken and any merge request containing UB code will be rejected. To ensure this the GCC now ships ASAN and UBSAN (originally from clang), which do runtime checks for UB (and memory violations). While it's true that a lot of C++ code (if not most) relies on UB, you can easiely just code standardized C++. Developers writing broken code is not the fault of the compiler.

440bx

  • Hero Member
  • *****
  • Posts: 1827
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #11 on: April 07, 2020, 01:27:28 am »
Developers writing broken code is not the fault of the compiler.
I see your point and agree to some extent but, there are times when you need control over details that force the programmer to write code that pushes the envelop in order for the program to perform as intended.
FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 64bit.

Warfley

  • Full Member
  • ***
  • Posts: 124
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #12 on: April 07, 2020, 01:33:13 am »
there are times when you need control over details that force the programmer to write code that pushes the envelop in order for the program to perform as intended.
Yes, I do fully agree, somethimes it is required, especially for really low level stuff, but I would say 90% of the UB code you face is avoidable. I mean it also happend to me that I build UB code because I simply assumed this would be working (and didn't want to read cppreference) and also some websites (like cplusplus.com) are known for having UB code on their site, which gets copied by many.

One great thing about languages like fpc flavored pascal or delphi is, if you don't have a standard, nothing is UB. But thats a little off topic. As I said, I think c++ is kinda a bad example, but they have LISP in their list, which is a language that has so many dialects that there is not even the "one" lisp one could think of

jwdietrich

  • Hero Member
  • *****
  • Posts: 1112
    • formatio reticularis
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #13 on: April 07, 2020, 08:59:09 am »
If the ranking of programming languages is of interest at all then the RedMonk index may be a more sensible approach, see https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ for the latest statistics.

Here, with respect to the number of projects on GitHub, Pascal is in the 50th percentile, i.e. it ranks exactly in the middle of all programming languages, making it more popular than other well-known languages including Mathematica, Smalltalk or Scheme. On the other hand, it is below the 50th percentile with respect to questions on StackOverflow. This supports the hypothesis that Pascal has more clarity than other languages, so that less questions are necessary.
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 2.0.8 | FPC 3.0.4 | PPC, Intel, ARM | macOS, Windows, Linux

Warfley

  • Full Member
  • ***
  • Posts: 124
Re: TIOBE Programming Index merges Object Pascal and Delphi!
« Reply #14 on: April 07, 2020, 05:41:24 pm »
This supports the hypothesis that Pascal has more clarity than other languages, so that less questions are necessary.
I don't think this is the case. For example I think Python is in many cases much clearer. For example: Check if an element is in an array:
Code: Pascal  [Select][+][-]
  1. for o in arr do
  2.   if o = val then
  3.   begin
  4.     // found
  5.     break;
  6.   end;
Python:
Code: Python  [Select][+][-]
  1. if val in arr:
Similar for Java, I don't think that Pascal is nessecarily clearer than Java. But both are right on the line. Don't get me wrong, I think Pascal is clearer in the sense that reading code is simpler, but most questions are not: "what does this code do" but rather: "how do I accomplish this" and there I would say that languages like python or Java are at least as clear, if not clearer than pascal.

I think it mostly breaks down to 3 factors, 1. most pascal developers are long term pascal users, and turns out the more you use a language the less questions you have about that language. Also pascal has never changed much. Sure new things came to the language, like type helpers, generics, etc. But the differences are rather small, and most Delphi 7 code will still work in modern versions and vice versa. Compare this with  C++, where prior to C++11 this was basically a completely different language. And lastly, pascal has different communities. When having a question about Lazarus or Delphi, chances are much higher to get a quick answer here  than on Stack overflow.

So you basically have a large repository on Pascal code available on the internet in many specialized Lazarus or Delphi forums, that has accumulated over decades (for example when googling something like "Delphi screenshot" I still get one of the first results being from swissDelphiCenter an article from 2006, before Stack Overflow even existed, that still works today perfectly fine.

This is simply not the case for Languages like python, there Stack-Overflow is the repository of information, and even for languages like Java, a lot of the old code doesn't work anymore (e.g. javax)

 

TinyPortal © 2005-2018