Ada Lovelace credited with first computer programming language; wrote an algorithm for the Analytical Engine (early mechanical computer)
This is often credited as the first computer program ever written and by extension she is often credited as the first computer programmer. Those are great things and accurate as far as I know, but I think saying that she created the first programming language is a bit disingenuous.
I know, that's why I said it's not strictly untrue. Depending on your current state of mind, "style" may mean something different to you. I didn't mean to imply it was untrue, just that it did make me pause for a second and think.
The truth is, since I'm programming in Perl most of the time and I'm not restricted much in style (in the paradigm sense), I'm often changing between functional, imperative and OO "styles", so I don't think of "style" as referring to that very much. To be clear, I don't think this is inherently a benefit of Perl, but of the class of languages to which it belongs.
Looks, good but uses TIOBE and is missing C# in second table (high-level, multi-paradigm, cross-platform, used in gamedev, webdev, enterprise, used by Stack Overflow, Stack Exchange, Unity3d, Mono etc.).
Hmm ... those are not all the most popular. They are just the most widely used.
The real test for popularity will be which languages the polyglot programmers will choose if unburdened by legacy code . I think that we will see C/Python/Perl/Javascript there but i have yet to hear a good word for Java or the dark corners of C++.
While you could do much worse for a measure of popularity, some languages are popular, but dont have a huge open source community. For example, Objective-C and C# are both probably higher in reality.
There's no evidence that the GitHub list is comprised only of entries where the developer chose the language because they truly enjoyed or liked it.
The only reason that Javascript is at the top is because of the Web's popularity in my opinion. Personally I've seen many, many more people say they enjoy C# and think it's a well-engineered language than I have seen for Javascript.
Then of course we have people who choose languages based on their ideology.
It seems you're right. That's pretty bothersome. "The Terminator is written in COBOL" is practically an urban myth at this point. There are a plethora of articles about it.
"How will java's recent security vulnerabilities affect its popularity?"
This is the one question the infographic takes the time to ask. It's a poor question, but one many people seem to ask after the recent java plugin vulnerabilities.
Java hasn't been popular for in-browser development for many years now, and even at its height it was never that popular. These security vulnerabilities only affect Java use cases where untrusted java code is expected to be restricted to limited system access. This is not the environment mainstream java software will ever run in, so the mainstream use cases for java are entirely unaffected by these security issues.
The majority of Java software falls into two classes: desktop/native software and enterprise/server software.
Desktop/native software, like Minecraft or Android apps is either intended to have full system access (Minecraft) or is already restricted to making system calls through a rigid API that requires user permission to have access to (Android apps). In addition, Android uses its own Dalvik VM, so issues with Oracle's JVM are immaterial. Security of browser applets is a non-factor in both cases (android phones can't even run them).
Enterprise/server software are Java web applications, Java services, and other enterprise/web/server architecture pieces. These don't run on end user machines and are trusted applications, so JVM sandboxing is not really a concern.
There is absolutely nothing insecure about Java as a language. Occassionaly, there are issues with certain implementations of Java. These latest security flaws were in an implementation of Java that very few people use. Yes, everyone should remove Java from their browser, but if they were even using Java it almost certainly wasn't in the browser to begin with. The plugin has stuck around far long than it was useful, so good riddance.
Removing Java from a system altogether, as I have seen many people recommend, is in general too far and may break desktop apps users depend on that are not a security threat.
Sorry for the rant... I'm actually an ex-Java developer who has fallen for Ruby. There are plenty of legit problems with Java, but security generally isn't one of them.
The problem I have with any of these types of rankings is always the basis, which is so nebulous that it never holds up under scrutiny.
In this case, popularity is measured in terms of the number of programmers using a language, the number of training courses, and the number of third-party vendors.
I use about 5 different languages on this list, and another 3-4 that aren't. Which group am I counted in?
Training courses = popularity? Hmm, maybe. That also represents a sales angle, so it's skewed. As pointed out elsewhere, Javascript is incredibly popular but I don't find a lot of training courses available for it. It must not be popular!
Third-party vendors? Guess it depends on what you're selling (again, sales skews the line.) Some languages don't formulate well to products being sold (think dynamic languages that can't be compiled/obscured).
And lastly, what purpose does a popularity list not driven by job descriptions serve?
> And lastly, what purpose does a popularity list not driven by job descriptions serve?
The only purpose a popularity list driven by job descriptions serves is in determining the employability consequences of getting the language on your resume; every other conceivable purpose of a popularity list is best served by one not based on job descriptions.
This document is a mess. The title "The History of Programming Languages" does not correspond at all to the content.
No mention of machine language or assembly; no mention of functional or declarative style languages like Prolog, SQL, SetL; no mention of major languages like PL/1, Basic, Ada, Algol; no mention of a compiler or interpreter; one line on Lisp, banishing it to 1959; no mention of any theoretical underpinnings like Turing machines, Lambda calculus, computability.
I couldn't understand why anyone would put so much effort into making it look pretty and so little into making it communicate until I got to the end and learned it is just an advertisement for a security auditing program. They are really only concerned with current popular programming languages because that is what their prospective customers are using.
25 comments
[ 2.4 ms ] story [ 60.2 ms ] threadThis is often credited as the first computer program ever written and by extension she is often credited as the first computer programmer. Those are great things and accurate as far as I know, but I think saying that she created the first programming language is a bit disingenuous.
http://www.fourmilab.ch/babbage/sketch.html#NoteG
Seems to resemble a mathematical proof more than anything, but perhaps this just means that mathematics was the first programming language. :)
EDIT: Actually, in Note E she appears to introduce a custom notation for the machine. Perhaps this is what the article was referencing.
While not strictly untrue, depending on what you consider a "style", it did cause a double-take.
The truth is, since I'm programming in Perl most of the time and I'm not restricted much in style (in the paradigm sense), I'm often changing between functional, imperative and OO "styles", so I don't think of "style" as referring to that very much. To be clear, I don't think this is inherently a benefit of Perl, but of the class of languages to which it belongs.
The real test for popularity will be which languages the polyglot programmers will choose if unburdened by legacy code . I think that we will see C/Python/Perl/Javascript there but i have yet to hear a good word for Java or the dark corners of C++.
See the GitHub top languages: https://github.com/languages
The only reason that Javascript is at the top is because of the Web's popularity in my opinion. Personally I've seen many, many more people say they enjoy C# and think it's a well-engineered language than I have seen for Javascript.
Then of course we have people who choose languages based on their ideology.
http://landofthefreeish.com/code/the-terminator-was-written-...
Yeah, but that's because the Terminator thinks in 6502 assembly.
Completely different issue. ;)
This is the one question the infographic takes the time to ask. It's a poor question, but one many people seem to ask after the recent java plugin vulnerabilities.
Java hasn't been popular for in-browser development for many years now, and even at its height it was never that popular. These security vulnerabilities only affect Java use cases where untrusted java code is expected to be restricted to limited system access. This is not the environment mainstream java software will ever run in, so the mainstream use cases for java are entirely unaffected by these security issues.
The majority of Java software falls into two classes: desktop/native software and enterprise/server software.
Desktop/native software, like Minecraft or Android apps is either intended to have full system access (Minecraft) or is already restricted to making system calls through a rigid API that requires user permission to have access to (Android apps). In addition, Android uses its own Dalvik VM, so issues with Oracle's JVM are immaterial. Security of browser applets is a non-factor in both cases (android phones can't even run them).
Enterprise/server software are Java web applications, Java services, and other enterprise/web/server architecture pieces. These don't run on end user machines and are trusted applications, so JVM sandboxing is not really a concern.
There is absolutely nothing insecure about Java as a language. Occassionaly, there are issues with certain implementations of Java. These latest security flaws were in an implementation of Java that very few people use. Yes, everyone should remove Java from their browser, but if they were even using Java it almost certainly wasn't in the browser to begin with. The plugin has stuck around far long than it was useful, so good riddance.
Removing Java from a system altogether, as I have seen many people recommend, is in general too far and may break desktop apps users depend on that are not a security threat.
Sorry for the rant... I'm actually an ex-Java developer who has fallen for Ruby. There are plenty of legit problems with Java, but security generally isn't one of them.
In this case, popularity is measured in terms of the number of programmers using a language, the number of training courses, and the number of third-party vendors.
I use about 5 different languages on this list, and another 3-4 that aren't. Which group am I counted in?
Training courses = popularity? Hmm, maybe. That also represents a sales angle, so it's skewed. As pointed out elsewhere, Javascript is incredibly popular but I don't find a lot of training courses available for it. It must not be popular!
Third-party vendors? Guess it depends on what you're selling (again, sales skews the line.) Some languages don't formulate well to products being sold (think dynamic languages that can't be compiled/obscured).
And lastly, what purpose does a popularity list not driven by job descriptions serve?
The only purpose a popularity list driven by job descriptions serves is in determining the employability consequences of getting the language on your resume; every other conceivable purpose of a popularity list is best served by one not based on job descriptions.
No mention of machine language or assembly; no mention of functional or declarative style languages like Prolog, SQL, SetL; no mention of major languages like PL/1, Basic, Ada, Algol; no mention of a compiler or interpreter; one line on Lisp, banishing it to 1959; no mention of any theoretical underpinnings like Turing machines, Lambda calculus, computability.
I couldn't understand why anyone would put so much effort into making it look pretty and so little into making it communicate until I got to the end and learned it is just an advertisement for a security auditing program. They are really only concerned with current popular programming languages because that is what their prospective customers are using.