15 ms·
Top Programming Languages 2019
- kragen 7y agoConsidering HTML a programming language, and not knowing the relationship between Arduino and C++, would seem to call into question the validity of their conclusions. If you're going to include HTML, you should include CSV, JPEG, Word, and URLs too. Also, why are bash and Excel missing? They're clearly programming languages in precisely the way HTML is not, and they're clearly a lot more popular than some of the items on the list.
- capableweb 7y agoEverything with including HTML in this report does indeed seem weird. Especially since they group HTML together with CSS and has the following as the definition of the two: > HTML is a specialized language for describing the appearance and content of web pages, often extended using CSS Hard to take the rest of the report seriously when they don't seem to know what they are talking about. Also, the title of the report should probably replace "Top" with "Most Popular" as they seem to go by usage, not necessarily the "best" language (which I would have thought with the usage of "top") Cuda and Lisp being listed as programming languages also further indicates the authors are missing something.
- kragen 7y agoDo you think it's bad to be weird? It's weird to tell the truth, too, or to keep your word. My complaint about the report is not that it's a weird report; on the contrary, its profoundly poor scholarship is depressingly typical of discussions on the topic. (If you think it's bad to be weird, what are you doing on Hacker News?) The description of HTML you quote seems fairly correct. Lisp is definitely a programming language (though, like most, it has a variety of dialects with varying degrees of compatibility). CUDA is more debatable; to me it seems like a different programming language, but CUDA programmers tell me it's just C (or C++). But until 2010, it didn't even support recursion, which seems to me like a pretty basic feature of C. Maybe in 2019 the position that CUDA is a separate language is less reasonable than it was in 2009.
- capableweb 7y agoI was using "weird" here as in if they are trying to stay factual, that seems like the wrong way to go about it. A discussion about if I/you think "being weird" is bad does not belong here. As far as I know, HTML is not extended by CSS but rather complemented by it. HTML for structure and CSS for styling. Also as far as I know, Lisp is a family of languages, usually Common Lisp, Emacs Lisp, Clojure, Racket, Arc and others. Lisp (the language, not the family) died out and was replaced by others, so saying Lisp nowadays would refer to the family, not the language(s) (LISP 1 & 2)
- kragen 7y agoYou seem to be using "weird" as a synonym for "wrong"; that's what I was objecting to. That kind of aggressive conformism seems entirely out of place† to me on a discussion forum for hackers, who are in their essence not conformist. You might want to think about conforming to the nonconformism ;) † "Out of place" is a fairly precise synonym for "weird".
- a1369209993 7y agoHow about: > Everything with including HTML in this report does indeed seem [out of place in a report that is trying to stay factual]. ?
- kragen 7y agoI didn't mean it was a better synonym ;)
- sgillen 7y agoThey do at least address this: > Below the top 10, some items of note include Arduino at No. 11 and HTML/CSS at No. 12. In previous years, some readers have complained that neither should appear on a list of programming languages. In the case of Arduino, the argument is that there is no such language, that “Arduino” is actually the name of the family of hardware platforms on which the language runs, and that this language should be called Wiring (or sometimes C or C++ for historical reasons). In this, we are led by simple pragmatism: When faced with a programming question, the overwhelming majority of Arduino developers search Google using terms like “Arduino Code for…,” rather than any alternative. By choosing the de facto name, we avoid deeply discounting the popularity of programs written for the Arduino and similar microcontrollers. >Pragmatism is also the name of the game when it comes to HTML, with the objection here that it is not a real programming language because it doesn’t have branching or loop constructs. But given the huge popularity of HTML and CSS among developers, and the fact that they are used to instruct billions of computers to do things daily, we feel any academic arguments about Turing completeness and so on are beside the point. A markup language is still a language.
- kragen 7y agoYes, those are the incorrect arguments I was responding to. (The relationship between Arduino and C++ is not historical.) Thank you for taking the time to quote them!
- deleted 7y ago[deleted]
- open-source-ux 7y ago"Considering HTML a programming language..." Computerphile (popular computing channel on YouTube) made a video on whether HTML is a programming language or not. The professor in the video ((David Brailsford) argues yes (a restrictive declarative language). The commenters mostly disagree: HTML IS a Programming Language (Imperative vs Declarative): https://www.youtube.com/watch?v=4A2mWqLUpzw https://www.youtube.com/watch?v=4A2mWqLUpzw
- kragen 7y agoThanks for the link!
- coldtea 7y ago>Considering HTML a programming language People don't care for semantics. If you write it and it causes a PC to do something (even if it's just to show a website), it's a programming language. Doesn't need to have branching, variables, etc... (not to mention that HTML includes JS and CSS) print "hello world", <b>hello world</b>, same difference.
- kragen 7y agoIt's important to care for semantics in order to have a conversation that conveys information, which is necessary for having culture, so I will continue the semantics discussion you have started. Your proposed definition of programming languages includes, as I said, CSV, JPEG, Word, and URLs. Does that mean that anyone who snaps a photo on Instagram is a programmer? This does not seem to be in accordance with the usual meaning of the word "programmer". Is it "programming" to write a dunning letter in Word? It seems to me like a qualitatively different activity. Programming languages are all more or less equivalent; although they have a variety of paradigms, and although they are supplied with a variety of I/O facilities, you can program more or less precisely the same set of computations in all of them. Consider the differences between C, Forth, Smalltalk, Prolog, Fractran, Lisp, Brainfuck, Haskell, VHDL, amd64 machine code, and Malbolge: some of these do not even have branching or variables, but they are all programming languages; none of them can compute anything that any of the others cannot. The exception might be things like Turner's "Total Functional Programming", which excludes nonterminating computations without, he hopes, excluding much of practical interest; Excel, excluding the macro language, also has this limitation, but in Excel it is more onerous. By contrast, you can't compute so much as a polynomial or NAND in HTML. That is to say, you can't program at all in HTML. So HTML is not a programming language. English does not include Latin, although, e.g.†, phrases like "inter alia" and "et cetera" can be used in English, and it's not uncommon for an English sentence to quote a Latin motto. Similarly, HTML does not include JS and CSS, just as it does not include the URL specification, and Python does not include SQL or HTML; they are six separate languages. † exempli gratia
- 7952 7y agoIt is an abstract form that outputs something seperate and new. In that sense it is like a recipe or a knitting pattern. The artifact created by execution is distinct from the code. The code itself is valued by that output rather than its own intrinsic qualities. And this ability to generate something seemingly novel is what makes coding cool and useful. You can write a bunch of code and get something that has emergent properties. The things you mentioned are usually just data. They are the artifact. They are not generating anything distinct. There is only the data.
- 7952 7y agoIf a kid makes a cool web page by hand coding html they can call it code. Better to encourage people.
- kragen 7y agoSure, HTML is code, just like binary notation for numbers (as commenter breck pointed out). It's just not a programming language. I agree about encouraging people but I don't think that dishonesty is a good way to do it --- they get discouraged and doubt themselves when they inevitably learn that their earlier achievements were faked.
- username90 7y agoWriting code to make a computer do something is programming. HTML is a language used to make a computer do something. Hence it is a programming language. People writing HTML are programming. It is however not a general purpose programming language. Note that writing a Word document is not programming, since people are not writing directly in the language, instead Word generates the code for them. What people see in Word is not a language since it doesn't have a textual representation, and people don¨t write word files directly in docx format.
- kragen 7y agoYour arguments were thoroughly demolished in https://news.ycombinator.com/item?id=20906267 https://news.ycombinator.com/item?id=20906267 before you posted, although you've added a particularly delicious couple of new errors: > Note that writing a Word document is not programming, since people are not writing directly in the language, instead Word generates the code for them By this argument, writing a program in C is not programming either. (This was the sales pitch for FORTRAN: you could fire all your programmers, because the FORTRAN compiler would generate the code for you.) > What people see in Word is not a language since it doesn't have a textual representation This is a particularly amusing error, quite aside from the fact that XML is a textual representation. I suppose programming in Scratch and Labview by this definition isn't "programming" --- while apparently writing HTML would be! Plain ASCII text files have a variety of advantages and disadvantages; it's a standardized, very simple format with half a century of compatible history behind it (and more, if you consider plain text files in other encodings), without extreme limitations. So there are a lot of languages defined in terms of plain ASCII text files rather than OLE containers or whatever, including most popular programming languages, as well as XML, HTML, RFC-822 email, CSV, URLs, and so on. But, as should be obvious, the encoding of your program is entirely orthogonal to the expressivity of the programming language!
- markus92 7y agoInteresting to still see Matlab above Go, Swift and Ruby. Outside of some niche areas (control systems a.o.) it's not that much used in production iirc, and it's slowly being faded out at universities for things like signal processing.
- melling 7y agoNot sure the list is accurate. R shouldn’t be that high, for example. I recently looked into it and bought a book to learn R, even though it seemed to be falling in popularity. Also, Swift is still less popular than Objective C, but SwiftUI should soon change that.
- kragen 7y agoI feel like if you're doing anything statistical beyond the basics, R is still a better option than anything else out there. Also, ggplot2 is best in class for producing static data visualizations, and it's R-only.
- markus92 7y agoR could make some sense for data science stuff (the more traditional kind, not deep learning), where it's a firm number 1. Think of business analytics or epidemiology, or the medical field where everyone uses R for their statistics.
- jhbadger 7y agoR is only "falling in popularity" because more people are interested in deep learning (where admittedly Python has better bindings) than actually doing statistics. But if you want to do actual statistics, take a look at the source code in the "Journal of Statistical Software" and the like. It's almost entirely R.
- sgillen 7y agoTo be fair IEEE spectrum does cater to exactly the people most likely to be in those niche areas.
- kragen 7y ago
- andreygrehov 7y agoR above JavaScript? Matlab above Go? Something tells me that the ranking algorithm is broken.
- analog31 7y agoI wonder if this reflects the interests of electrical engineers, since they talk about weighting their results for the typical IEEE Spectrum reader.
- 6thaccount2 7y agoI'd bet Matlab has more use than you think. Most engineering students use it, as well as some in math and physics. It is also popular in various aspects of industry (Ex: automotive and aerospace) for prototyping and simulations.
- kragen 7y agoFifteen years ago basically all of my scientist friends used Matlab. Now a lot of them have switched to Python.
- 6thaccount2 7y agoVery true, but a lot of folks (think researchers who have been using Matlab for over a decade) might not have the time or desire to learn Python and rewrite their Matlab code or manage two code bases.
- kragen 7y agoThat's true.
- markus92 7y agoI looked a bit at the ranking weights in the interactive tool. The biggest factor is IEEEXplore, the repository of all of their journals. R and Matlab are used a lot in science, whereas no one is going to do a signal denoising algorithm prototype in JavaScript for example.
- viach 7y agoHow comes Javascript is not on desktop in this ranking?
- kragen 7y agoProfound lack of knowledge on the part of those who designed the study, I think.
- agumonkey 7y agoif we go this way we might assume they thought java and javascript are the same
- jhbadger 7y agoOr the fact that PhD engineers aren't making websites for a living.
- kragen 7y agoThat could contribute to the authors having profound ignorance about making websites, I suppose, if the authors were PhD engineers; it doesn't sound like an alternative explanation, but rather a more detailed one. But we were talking here about the authors' profound ignorance about making desktop applications, not websites.
- feniv 7y agoFor comparison: TIOBE Index - https://www.tiobe.com/tiobe-index/ https://www.tiobe.com/tiobe-index/ 1. Java 2. C 3. Python 4. C++ 5. C# 6. Visual Basic .NET 7. JavaScript 8. PHP 9. Objective-C 10. SQL Language popularity on Github: https://octoverse.github.com/projects.html https://octoverse.github.com/projects.html https://madnight.github.io/githut/#/ https://madnight.github.io/githut/#/ 1. JavaScript 2. Java 3. Python 4. PHP 5. C++ 6. C# 7. TypeScript 8. Shell 9. C 10. Ruby StackOverflow Developer Survey https://insights.stackoverflow.com/survey/2019#technology https://insights.stackoverflow.com/survey/2019#technology 1. JavaScript 2. HTML/CSS 3. SQL 4. Python 5. Java 6. Bash/Shell/PowerShell 7. C# 8. PHP 9/10 C++ / TypeScript (varies between surveys)
- kyriakos 7y agohonest question: why so much difference ?
- gravypod 7y agoDifferent sample sets and age distributions. I'd assume many Enterprise-y devs don't have a history on GitHub.
- weare138 7y agoThese type of "top/best/most popular" programming languages lists are usually inaccurate. It's a subjective question that has a slew of variables that skew the results. Like Javascript, for example, is always in the top 10, usually in the top 5, languages but being the only language we have for front end web development and the popularity of web apps of course a crapton of developers are using JS now. That doesn't mean JS is superior to less popular languages or that the majority of JS devs use JS because it's better. We just currently don't have a choice at this time when it comes to web development. Is JS popular because it's the better language or are we just stuck using it out of necessity which drives up it's perceived popularity? There's no way to tell with these types of lists and honestly I think the latter is true with JS.
- reganJohnson 7y agoI guess that it's important to remember that any results are highly coloured by the opinions of the person making up the servey. Also, I don't see any explanation of how they acquired the results, just that it's different and better than other years.
- shmolyneaux 7y agoAn important thing note is that the weights that go into the rankings can be fully customized: https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2019 https://spectrum.ieee.org/static/interactive-the-top-program... The ranking shown on the linked article shows a weighting that's deemed to be relevant to IEEE Spectrum readers, which have a focus on Electrical Engineering. Setting the weighting to be 100% Hacker News, Ladder Logic ends up in the middle and JavaScript is nearly at the bottom. Like most other Top X programming articles, this one should be treated as a bit of fun and shouldn't heavily inform your choice of language.
- submeta 7y agoSo happy to see that Python‘s popularity is still rising, and there seem to be no slow down of the momentum. I got in touch with Python in the 90s but back then it did not convince me. Later in the 90s Perl was much more attraktive (because of Regexes and later because of CPAN). In the early 2000s Python was a better alternative to Perl given all the basic data structures (Perl‘s nested lists were using pointers; how unintuitive for a high level language), Perl‘s module system wasn‘t intuitive amd beautiful either. Finally I could not write large systems in Perl because I of many reasons. So I tried Python, and it immediately replaced Perl for me. Later Ruby seemed very attractive (for someone who was heavily influenced by Scheme and SICP). But Python seemed to have more momentum. So I played around with Ruby, but always stayed with Python for serious tasks. Now, twenty years later I know there are many other programming languages who are more beautiful in my eyes (functional, for instance Elixir), but I absolutely love working with Python: its elegance, its ecosystem, community, resources. I can tackle all sorts of problems with it. And it seems it will be around in the next twenty years.
- TrackerFF 7y agoMy journey was C -> C++ -> Java -> C# -> Python, and I have to say that Python is probably my favorite language. Mostly because of how much more effortless and efficient development feels. Yes, there are even more efficient languages out there, that can do much more with less lines of code, but I feel that Python is just verbose and...well, pseudocode-ish that pretty much anyone with a certain level of coding can read it, and get working. I've noticed that schools have started using Python more and more for entry-level programming classes, so I guess that means more time spent on problem solving, and less time fighting the language. When I was student, the majority of CS classes I took were in plain C. I remember Data Structures and Algorithms being quite a hurdle, simply because much of the time went to tacking C.
- kragen 7y agoPython nested lists use pointers too; this is normal for high-level languages, as I explore in some depth in http://canonical.org/~kragen/memory-models/ http://canonical.org/~kragen/memory-models/. Look: >>> x = [[3, 4], 5] >>> y = [6, x[0]] >>> y[1][1] = 7 >>> x [[3, 7], 5] Octave and Tcl are the exceptions here, and of course in Racket (and maybe in Clojure?) the pointer semantics aren't visible as they are above, but do affect performance. I like Python a lot (I edited the Weekly Python-URL for a while) but it took me longer to switch to it --- most of 2000 and 2001, really. I still occasionally reach for perl for quick command-line things.
- craigkerstiens 7y agoAdding another ranking that updates every few months and in my opinion affects a bit more of reality is the Redmonk rankings: https://redmonk.com/sogrady/2019/07/18/language-rankings-6-19/ https://redmonk.com/sogrady/2019/07/18/language-rankings-6-1... There top 10 is: 1. JavaScript 2. Java 3. Python 4. PHP 5. C++ 5. C# 7. CSS 8. Ruby 9. C 10. TypeScript
- tutfbhuf 7y agoHmmm CSS as programming language?
- V3ritas1337 7y agoI'm not entirely sure it is possible to make a conclusion on which language is best. For me, I use Python for dirty scripts, as well use C# for exploit development, it is very hard to conclude on a topic that is highly subjective.
- breck 7y agoIf you are a new programmer, there is one major omission to this and the other lists: binary notation. That is the #1 language that all these others are built on, and it has remained #1 year in and year out for 80 years (it appeared on the list in the late 1600’s, rose to #1, and has sat there ever since).
- einpoklum 7y agoRegrettably, reasonable reflection refuses recognition of R's resplendent ranking.
- streetcat1 7y agoThe fight is not between languages, but between full echo system of open source libraries for each language. For example, for web dev, the echo system of js make it the lang of choice. For cloud native/system prog , go lang. For ML - python. Those ranks are meaningless.
- jazoom 7y agoWhile I can certainly see why you could call such communities an "echo system", I think you might mean "ecosystem".
- nickpsecurity 7y agoI think part of MATLAB's popularity comes from many colleges requiring students to use it.
- kragen 7y agoYou're probably right.
- muglug 7y agoIgnore this garbage list. If you select any single crosstab (under "create custom ranking"), you can see the data is mostly bogus. Looking at "Google (trends)", PHP is at #48, below Perl (#37), Delphi (#40) and Fortran (#41) - here's the actual data: https://trends.google.com/trends/explore?q=perl,php https://trends.google.com/trends/explore?q=perl,php For "Github (active)" PHP places at #7 below Dart (#2) and Julia (#3) (which contradicts GitHub's own stats: https://octoverse.github.com/projects#languages https://octoverse.github.com/projects#languages). For "Hacker News" it's at #51 (which makes little sense given the number of PHP-related articles posted here).