Almost in the TOP 10. Good vibes for Delphi in 2017 :D


Almost in the TOP 10. Good vibes for Delphi in 2017 :D

Comments

  1. I wish I could share your optimism but after the layouts of prominent developers last year, I am not so sure. It would be nice if EMB could give us some reassurance of how they intend to continue developing Delphi going forward.

    ReplyDelete
  2. Most interesting long-term trend has been the slow decay of "dominant" languages i.imgur.com - i.imgur.com/iZHuFM3.png

    In 2002 there were 3 languages clearly ahead of the pack, there are now just 2, and they are inexorably going down.

    Looks like the long-term trend is a mish-mash of languages at 2-4%... is it the death of the universal language? A coming era of specialty/niche languages?

    Or maybe sheer inertia? ie. there is now so much code out of there that new developer generations cannot rewrite or refactor more than a fraction of it. A couple decades ago there was more code written each year than had been written in the decade before, that allowed for vast swings in language popularity, which are no longer possible.

    ReplyDelete
  3. Godfrey Fletcher The next release might give an impression. Anything earlier is pure speculation.

    ReplyDelete
  4. C# needed Xamarin to get more popular too :D

    ReplyDelete
  5. Horácio Filho C# has been going down in popularity since 2012, which is about when Xamarin released its first products... by TIOBE's chart, Xamarin spellt doom for C# :)

    Michael Thuma Java did not get any statistically significant boost from Android, yes there is a bump in early 2016, but it's a bit late for an Android boost, and by end of 2016 Java popularity was back to its regular downward trend. C++ is not showing any trend reversal as well.

    Also the same thing about frameworks could be said (and was said) way back at the turn of the millennium with the Internet bubble, when you had both languages and platforms popping up left and right, many involving multiple languages.

    I think the reason is more basic. For instance taking Linux Kernel size as reference, in 2005 there was about 7 millions LOC. A project adding functionality worth 1 million LOC in a new language would have represented 15%. By 2015, the size was 20 millions LOC, and the same 1 million LOC project would have represented just 5%.

    So I suspect that as time passes, and the weight of "history" keeps growing, it takes an ever higher amount of effort to achieve a significant mind-share for any language.

    New languages can no longer stay "new" long enough to achieve statistical dominance (like they could when code bases were smaller). The features of new languages can be adopted or mimic'ed, and the new languages themselves just grow old.

    ReplyDelete
  6. Eric Grange Xamarin was too bad in the first years, a lot of problems with GC, code generation limitations and so on :( Now it is a lot better :D

    ReplyDelete
  7. Based on about a year ago, the storyboard editor was terrible in Xamarin.

    ReplyDelete
  8. Mike Margerum It is a huge negative side of Xamarin's tooling :( Now they have a built-in storyboard editor. Without Mono/Xamarin I don't see how C# could resist to the cross-platform world once it was strictly Win32.

    ReplyDelete
  9. Horácio Filho the primary reason for existence of C# is still Microsoft and the Windows world, cross-platform it is still not significant, and there is nothing in C# and Mono that gives it a fundamental edge over the myriads of other cross-platform languages out there.

    But the same story can be told about most languages, whatever "edge" they have can all too often be replicated in a matter of years, which is not enough to capitalize on that "edge" and take a significant portion (say 15% or more) of the mind share.

    Also C# is by now an "old" language, its chance to dominate went away years ago.

    Cross platform was the disruption of the C era, Memory management and intermediate code were disruptions in the last Millenium, but these days emulation and virtualization have marginalized both of these. The 2010's disruption was low-power GPUs everywhere and multi-core, but it materialized more in platforms (mobile) than languages.

    The next disruption should be interesting, who knows what it'll be, but I reckon it'll take far more than incremental improvements.

    ReplyDelete
  10. Horácio Filho I'm referring to the built in storyboard editor in Xamarin. it was total trash a year ago. The mobile stuff moves to fast to use either Delphi or Xamarin IMO. objC was not for everyone, but swift is close enough to C# that anyone can learn it quickly. the GUI is so different on phones / tablets (if you are building the gui right) that its not worth using anything other than the native mobile toolkits. I'm persevering at using delphi to target macOS, but I've given up on using it or Xamarin for mobile dev. YMMV of course.

    ReplyDelete
  11. Eric Grange

    >Most interesting long-term trend has been the slow decay of
    >"dominant" languages i.imgur.com - i.imgur.com/iZHuFM3.png

    >In 2002 there were 3 languages clearly ahead of the pack, there
    >are now just 2, and they are inexorably going down.

    I think you're missing the most important conclusion from the data, and it's a very different one. But first let me say that TIOBE is what we call a "lagging indicator". It counts the total number of web pages devoted to a language, even if those pages haven't been edited since 2001. TIOBE then is actually skewed more in favor of older languages such as Delphi. It's not a "leading indicator" capturing the state of the moment; there are better indices for that that look at Google Trends, job postings, new Github projects, etc.

    But that said, the consensus of the major indices show that the top five languages haven't changed in TEN YEARS. Yes, sometimes one may move up or down one spot, but collectively they've been the same for a decade now. Rather than a sign of change, this indicates stabilization.

    Javascript for web, C++ for performance-critical code, Java for enterprise, C# for desktop, Python for glue code... the big languages appear firmly entrenched. They have so much momentum - and such vast ecosystems - it would take a major, major innovation to knock any of the top languages from their perches.

    >Looks like the long-term trend is a mish-mash of languages at
    >2-4%... is it the death of the universal language? A coming era of
    >specialty/niche languages?

    We already had an explosion of niche languages, but things seem to be stabilizing now.

    >Or maybe sheer inertia? ie. there is now so much code out of there
    >that new developer generations cannot rewrite or refactor more
    >than a fraction of it.

    There's this, but also that the code out there is in the form of open source libraries and new developer generations don't want to reinvent the wheel in another language when they can download an actively supported, mature library from Github and solve their problem with two lines of code.

    ReplyDelete
  12. Eric Grange

    >+Horácio Filho C# has been going down in popularity since 2012,
    >which is about when Xamarin released its first products... by
    >TIOBE's chart, Xamarin spellt doom for C# :)

    In terms of measuring actual use, there's no indication that C# has been declining in popularity since 2012 though; for instance, RedMonk's rating system based on Stack Overflow and Github activity:

    redmonk.com - The RedMonk Programming Language Rankings: June 2016

    I actually stand corrected in that it's the top TEN languages that haven't changed over the last ten years, not the top five, according to Redmonk.

    IEEE also has a rating system (that you can also create your own custom ratings with!) and it also doesn't show the downfall of C#:

    http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2016

    C# - and the rest of the top 10 languages - appear here to say. The .NET ecosystem is too huge for it to be toppled any time soon.

    >New languages can no longer stay "new" long enough to achieve
    >statistical dominance (like they could when code bases were
    >smaller). The features of new languages can be adopted or
    >mimic'ed, and the new languages themselves just grow old.

    I'd suggest we're seeing something like this with the functional programming languages such as Haskell (and that we also saw it with Lisp). The useful features of functional programming and Lisp were adopted into other languages, but not the entire paradigm/philosophy.

    I'd contend the most basic explanation for the current situation is the extreme importance of ecosystem today. In fact, one developer survey attempting to research factors that make languages succeed found that the robustness of the ecosystem - particularly the open source ecosystem - was the single largest factor by far given by developers for choosing a language. It's not just those lines of code counts you cite, but that these lines of code often form open source libraries on Github, that make the difference. Using a new or niche languages requires reinventing wheels, while those who stick to the mainstream can drop in a mature, supported library for free to solve most of their programming tasks. I can personally testify that in enterprise today it is becoming mainstream to conduct a survey of open source solutions to potentially adopt or contribute to before any decision to actually develop code internally is made. There are even books and white papers today specifically written to guide developers and management through this task.

    ReplyDelete
  13. Joseph Mitzen I am not sure if you're looking at the same chart as me, http://i.imgur.com/iZHuFM3.png

    If you look at 2002-2006 era, things changed quite a bit, all of the TOP 5 was Java, C, C++, PHP and Perl, the #1 was above 25% the #5 was around 7%.
    Fast forward to 2016, and Java is still #1 but eroded at 20%, on a spike up from 15%, C is below 15%, C++ is at 7%, and the rest are in the mish-mash zone.

    The TOP 5 landscape changed quite a bit, in 2006 they collectively made up about 70%, in 2016, they make up 50%, and probably less at the end of 2016.

    > even if those pages haven't been edited since 2001

    Old websites and content from 2001 has been dwarfed by content produced since.

    > new developer generations don't want to reinvent the wheel in another language when they can download an actively supported, mature library from Github and solve their problem with two lines of code

    I am not convinced that github and open source represent a significant percentage of the total source code out there, or even a meaningful representative sample of the languages being used.

    The largest codebases I know of are not open-source ones. Also dozens of millions of LOC for entreprise-specific software and applications is nothing extraordinary. Sure there is a lot of copy-pasta, but that's still code that needs and uses developers (FWIW some customers total more LOCs of scripts than we do have in our main application... just scripts)

    ReplyDelete
  14. Eric Grange

    >+Horácio Filho the primary reason for existence of C# is still
    >Microsoft and the Windows world,

    It's open source now... it's reason for existence will be whatever those who contribute to it want it to be. Between the open sourcing of core C#, Xamarin, and Powershell (including porting it to Linux), the addition of Ubuntu compatibility and Bash to Windows 10, C# adding Linux as a target (before EMBT!) and SQL Server becoming available for Linux, Microsoft is making an intense push to make C# a first-class cross-platform tool. It's no longer a Windows-only language. MS has realized it is not the dominant OS on servers and especially not in the cloud. They want (and need) Linux sysadmins to feel easy working on Windows and the Windows admin on Linux (hence the cross-porting of Bash and Powershell). Nadella has acknowledged the cross-platform world we now live in and intends to behave as a good citizen.

    > cross-platform it is still not significant, and there is nothing in C#
    >and Mono that gives it a fundamental edge over the myriads of
    >other cross-platform languages out there.

    The .NET ecosystem, hands down.

    >Also C# is by now an "old" language, its chance to dominate went
    >away years ago.

    You don't consider C# a dominant language now? It's been in the top ten for ten years. I watched Wall Street port the Delphi part of their Java/Delphi code (yes, Delphi was used in a lot of front ends for many Wall Street firms) to C# ten years ago. Now I'm watching a new wave of job openings from Wall Street looking for developers to port Java to C#.

    >The next disruption should be interesting, who knows what it'll be,
    >but I reckon it'll take far more than incremental improvements.

    It's already beginning... HSA/HSAILS.

    theregister.co.uk - The 'third era' of app development will be fast, simple, and compact

    ReplyDelete
  15. Eric Grange

    >Fast forward to 2016, and Java is still #1 but
    >eroded at 20%, on a spike up from 15%, C is
    >below 15%, C++ is at 7%, and the rest are in
    >the mish-mash zone.

    I don't put much weight in the specific numbers being assigned, and neither do some other language rankers such as Redmonk, who state that it's more relevant to consider languages as falling into different tiers. In essence, it's easy to determine by a variety of different metrics that Java and C++ are major languages compared to lua and Haskell, but it's a much more difficult task to separate languages in the same tier from each other.

    We're not dealing with "first order effects" here - we're not directly measuring usage. We're measuring things that should be affected by usage, although not necessarily linearly. If language A has 20X more Stack Overflow questions than language B, we can safely conclude that language A is significantly more popular, as the magnitude dwarfs potential errors. If a language has 99.5% the questions of another, it becomes much less certain to be able to draw conclusions from that.

    Another issue is that the weighting of search terms and the choice of search engines has changed for TIOBE over the last ten years, which makes direct comparison of raw values over that time period problematic.


    >> even if those pages haven't been edited >>since 2001
    >Old websites and content from 2001 has
    >been dwarfed by content produced since.

    That's not necessarily something that can be stated as fact, and it doesn't eliminate the point. A language like Visual Basic that was very popular for a time but since fallen off will still have a great deal of old web pages hanging around. This is a particular reason why TIOBE is a lagging indicator. It's no different than counting the total number of repositories a language has on Github vs. total new repositories that year or total active repositories. It will take a long time for dying tools to appear as such. The Popularity of Programming Languages Index uses Google Trends data, which indicates what people are actually searching for, as a "leading indicator" for this reason.

    http://pypl.github.io/PYPL.html

    They explain their reasoning this way:

    >The TIOBE Index is a lagging indicator. It
    >counts the number of web pages with the
    >language name. Objective-c programming
    >has over 20 million pages on the web,
    >while C programming has only 11 million.
    >This explains why Objective-C has a high
    >TIOBE ranking. But who is reading those
    >Objective-C web pages ? Hardly anyone,
    >according to Google Trends data.
    >Objective C programming is searched 30
    >times less than C programming.



    >I am not convinced that github and open
    >source represent a significant percentage
    >of the total source code out there, or even
    >a meaningful representative sample of the
    >languages being used.

    >The largest codebases I know of are not
    >open-source ones.


    >Also dozens of millions of LOC for
    >entreprise-specific software and
    >applications is nothing extraordinary.


    But is there any reason to believe that the composition of languages of this unseen code is different than what's reflected in Google Trends data, Github data, online job listing data, and the other metrics indexes use?

    ReplyDelete
  16. > But is there any reason to believe that the composition of languages of this unseen code is different
    > than what's reflected in Google Trends data, Github data, online job listing data, and the other metrics indexes use?

    Joseph Mitzen yes and no, among the metrics you listed some will, but other will not.

    Basically all that mass of existing source code will impact metrics that measure what developers have to learn and use, but will only marginally impact downloads of dev tools because the tools have already been downloaded for that older source (and ofttimes no longer evolve, f.i. VB6), or people do not want to invest in migratings existing codebase (if you have a 3 million LOC Delphi 7 codebase, migrating to a new Delphi would be a huge investment f.i, going way beyond maintaining the old code with the old tools).

    It will impact devs looking up docs for older languages online, but less so the job requirements (for a variety of reasons, primary one being the scarecrow effect), so it would impact TIOBE or Google Trends, but not Github (proprietary code does not go there in the first place, and frankly devs do not want to advertise their expertise in VB6 f.i.... like they may want for a new hip language).

    I cite VB6 because I know of a very huge codebase still in use, everyone working on it is pretty much ashamed of it, and they've moved to VB.net for newer stuff, but the sheer size of the thing and amount of code to be recreated means it won't be obsoleted before a very long time. Actually most of what is obsoleted is not because of coding efforts, but because of changes in regulations and new processes... what works stays around. And chances are the new DotNet code will be frowned upon as ancient obsolete tech long before all the prehistoric VB6 code is gone :)

    ReplyDelete

Post a Comment