Hacker News new | past | comments | ask | show | jobs | submit login
Top Programming Languages 2019 (ieee.org)
95 points by lelf on Sept 7, 2019 | hide | past | favorite | 82 comments

For comparison:

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://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

    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)

  1. Java 
  2. Javascript
  3. Python
  4. C#
  5. C++
  6. PHP
  7. C
  9. SQL
  10. Shell
  11. Visual Basic / Typescript
  12. Objective C / Ruby
The above 3 lists merged.

honest question: why so much difference ?

It’s rather hard to score programming languages isn’t it? Especially in any form that’s generally meaningful.

If you look at HN you’d think Go and Rust were actually very popular. If I look at the job agents for my country though, there has been one job listing Go and Rust in 2019 and that was under “nice to have” on a C++ job at Google. On the flip-side of this, if you looked at my local job market the list would only contain JAVA, C# and PHP. Well and JavaScript, but that’s typically in the “nice to have” section because no one uses it full stack and it’s easy to learn. If you looked in your area it might be Ruby and Swift.

Python always have massive stats, but around here 80% of the Python jobs aren’t for CS majors but rather for mathematicians and political scientists.

I wonder what these lists are even for. Some of the best paying programming jobs are for COBOL and it’s never in the top 10, if it’s even in the top 100.

It's an IEEE† publication ("Our default weighting is optimized for the typical Spectrum reader, ..."), my guess would be that their audience is weighted heavily towards EEs/Comp. Eng./embedded systems types and more research oriented professionals.

† Institute of Electrical and Electronic Engineers

I guess it depends on the Domain. For example if you look at Ruby in Non Web Development it would be literally mid to bottom of the list. But if you look at Web, Ruby is constantly in Top 10.

And if you look at Combine list, C and C++ seems to be doing extremely well, but scaling down to specially Web again, C and C++ isn't even Top 20.

Different sample sets and age distributions. I'd assume many Enterprise-y devs don't have a history on GitHub.

These 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.

So much difference? For such a fuzzy topic those are incredibly similar. Ignore the ranking (for all you know #1 could mean 10M users and #8 means 9M users, e.g. an insignificant difference anyway) and consider the top-10 as an (unranked) set of the most popular languages.

Those then are more or less the same in all those sources!

There are a lot of different communities within software; it depends on which ones you consider.

Considering 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.

They 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.

Yes, 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!

"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):


Thanks for the link!

>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.

It'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

>Your proposed definition of programming languages includes, as I said, CSV, JPEG, Word, and URLs.

And yet people don't call them "programming languages", while they do call HTML that -- so that even if HTML is not a programming language, there's still a not formally expressed difference that people can intuitively grasp with those other things...

>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.

You can't program most things in SQL either (not without some modern extensions that make it turing complete), but it is still considered a programming language...

I understand your point that "tt's important to care for semantics in order to have a conversation that conveys information", but I'm of the (e.g. Wittgenstein-ian) school that what matters is not some original/holy definition, but the actual popular usage.

I agree with your fundamental epistemological stance, but disagree with the conclusions you draw.

On somewhat of a tangent, it's fairly uncommon for people to call SQL a "programming language", but you actually can program quite a bit with SQL; even without the recursive common table expressions you allude to, you can do surprisingly complex computations with it, and even define functions in the form of views, as long as they are finite. Certainly neither NAND nor evaluating polynomials poses any difficulty for SQL. In fact, here's an example of arbitrary polynomial evaluation in SQL which works in MySQL, MariaDB, Postgres, Oracle, and SQL Server, in this case evaluating 5x⁴ + 2x + 5 at the points 0, 1, 2, and 3:

    select x, sum(a * power(x, e))
    from (select 3 as x union select 0 union select 1 union select 2) xt,
         (select 4 as e, 5 as a union
          select 0, 5 union
          select 1, 2) t
    group by x;
(In SQLite, you easily can evaluate a particular polynomial, or, with a bit more hassle, any polynomial up to some finite degree, but evaluating an arbitrary polynomial would seem to be out of reach without using recursive CTEs.)

Returning to the subject at hand, I have occasionally heard people saying HTML is a programming language. But I think they're just mistaken. Presumably most people at some point thought the world was flat; we shouldn't attempt to explain away their error by saying that they meant something different by "world" or "flat" than we do. Some people think vaccines cause autism; this isn't actually because they're using the word "vaccine" or "autism" in a different sense than we are. They're just wrong. (As for the people who think organic food contains no chemicals, I'm not sure; I think some of them are just wrong, while others are in fact just using a nonstandard definition of "chemical", meaning something like "pure chemical" or "industrially produced chemical".)

In the same way, people are just wrong if they think HTML belongs to the set that includes C, Forth, Smalltalk, Prolog, Fractran, Lisp, Brainfuck, Haskell, VHDL, amd64 machine code, Malbolge, Scratch, Octave, Python, and R, rather than to the set that includes CSV, JPEG, Word, and URLs. Similarly, bash clearly belongs to the former set, and Excel (without macros) and SQL arguably do.

In a lot of cases, they seem to be reasoning based on shallow surface features like the use of plain ASCII text files. (You can see several examples of this even in the thread here, such as https://news.ycombinator.com/item?id=20906702.) This is similar to the neural network that learned to recognize photos of tanks based on whether the photos had been taken on a sunny day or a cloudy day, or the people who think I'm "hacking into systems" when they see me using a terminal emulator --- an understandable error from the ignorant and foolish, but not one we should allow to confuse our own thinking.

It 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.

Everything you said above is true of URLs, JPEGs, and Word documents (which are XML), too, except for the things that aren't true of HTML, namely, "this ability to generate something seemingly novel", and "You can write a bunch of code and get something that has emergent properties." (To some extent that's true of JPEG, but not HTML.) It is not true that URLs, JPEGs, and Word documents "are usually just data. They are the artifact. They are not generating anything distinct," although I concede that it's true of CSV files.

Do people write jpegs and word documents by hand in a text editor?

Your question reminds me of when I first learned it was possible to write programs without line numbers. It took me a while to believe it.

I suppose you don't think programs in Scratch, Flash, or Labview, or output from a compiler, are programs?

If you hand-write your jpegs, I'll not argue if you want to call yourself a programmer.

Man, these job interviews get tougher every year! No, I create my JPEGs with C-x M-c M-butterfly: https://xkcd.com/378/

Everything 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.

Do 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.

I 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)

You 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".

How about:

> Everything with including HTML in this report does indeed seem [out of place in a report that is trying to stay factual].


I didn't mean it was a better synonym ;)

If a kid makes a cool web page by hand coding html they can call it code. Better to encourage people.

Sure, 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.

Writing 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.

Your arguments were thoroughly demolished in 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!

An important thing note is that the weights that go into the rankings can be fully customized: 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.

R above JavaScript? Matlab above Go? Something tells me that the ranking algorithm is broken.

I 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.

> no one is going to do a signal denoising algorithm prototype in JavaScript for example.

This has been a big problem for me in Dercuano; the notes in it about signal processing and circuits vary between impenetrable and handwavy (and, in the worst cases, both) in large part because I'm doing my prototypes in IPython with Numpy or in Falstad's circuit.js, and there's just no reasonable way to include that in Dercuano itself. So I'm trying to figure out how to make prototyping signal processing algorithms in JS a reasonable thing to do. I don't expect to have feature parity with Octave, but I feel like it should be possible to improve on the VT100-based user interface featured even by Octave and Rstudio, and offer equal or better performance and enough conveniently accessible features that it's practical for at least what I'm doing.

I wonder if this reflects the interests of electrical engineers, since they talk about weighting their results for the typical IEEE Spectrum reader.

Matlab is 100% used more than Go.

Virtuall all industrial control and systems engineering is written in matlab.

A big chunk of scientific and engineering code is written in matlab.

I would say there exist more Matlab code than Go code, however I think Go is much more popular among all developers.

A lot of people using Matlab aren’t developers.

Do you mean they run Matlab programs but do not edit them? I don't think those people are being counted, are they? If they develop programs in Matlab it seems to me that tautologically they are developers, even if, like Con Kolivas, that isn't their job title.

A lot of people who write programs aren’t doing software development, they aren’t developers. Unless your definition of developer is one who programs (which is already covered nicely by the term programmer, but to each their own).

I'm not familiar with the distinction you're making; would you like to elaborate?

One whose career is focuses on building software vs. one who programs sometimes as part of their job that is otherwise not focused on building software. Most of us on HN are in the former category, but there are tons of people in the latter category as well.

I see. Well, it's true that lots of Matlab programmers have something other than programming as their job, maybe most of them. I don't think this makes the activity fundamentally different; a baby is still a baby, whether delivered by a doctor or by a midwife, and birthing is still birthing. But you are certainly free to call it by a different name if you like.

It has a huge influence on the language being used. There are simply many kinds of “programming”, and thinking about it as a homogeneous activity is just going to yield ridiculous PL popularity lists that compare apples and oranges.

It certainly does have a huge influence on the language being used, as do things like living in Nigeria, writing code to run on on-orbit satellites, and working at Microsoft. But I wouldn't venture to say that Nigerians, Microsoft employees, and space cadets are therefore not doing "software development", just that they're doing it under atypical circumstances. (And, as that list suggests, in the end all of us have some atypical circumstances.)

I do agree that people frequently overestimate the homogeneity of programming, and that this homogeneity makes such lists less useful. Still, I think it's a useful observation that in 1985 Paul Lansky was writing music in FORTRAN and electrical engineers were writing circuit simulators in FORTRAN, while today musicians tend to do their software development in PureData or something similar, while electrical engineers tend to use MATLAB, Octave, C++, or Python. And I think part of the nature of software development is that it's typically a highly collaborative activity --- a library written by an electrical engineer can be used by a musician, but usually only if they're using the same programming language.

I'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.

Fifteen years ago basically all of my scientist friends used Matlab. Now a lot of them have switched to Python.

Very 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.

That's true.

Adding another ranking that updates every few months and in my opinion affects a bit more of reality is the Redmonk rankings:


There top 10 is:

  1. JavaScript
  2. Java
  3. Python
  4. PHP
  5. C++
  5. C#
  7. CSS
  8. Ruby
  9. C
  10. TypeScript

Hmmm CSS as programming language?

So 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.

Python 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/. 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.

My 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.

Ignore 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

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).

For "Hacker News" it's at #51 (which makes little sense given the number of PHP-related articles posted here).

Regrettably, reasonable reflection refuses recognition of R's resplendent ranking.

I think part of MATLAB's popularity comes from many colleges requiring students to use it.

You're probably right.

Interesting 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.

Not 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.

I 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.

R 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.

R 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.

To be fair IEEE spectrum does cater to exactly the people most likely to be in those niche areas.

I wonder if they're lumping Octave in with Matlab. The numerical analysis class I audited last quatrimester was taught using Octave, for example.

They probably did, but I doubt it'd be more than a rounding error for this ranking. Matlab's toolboxes are still way ahead of anything available for Octave.

Sure, and there's no Simulink, but for many purposes you don't need those.

The 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.

While I can certainly see why you could call such communities an "echo system", I think you might mean "ecosystem".

How comes Javascript is not on desktop in this ranking?

Profound lack of knowledge on the part of those who designed the study, I think.

Or the fact that PhD engineers aren't making websites for a living.

That 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.

if we go this way we might assume they thought java and javascript are the same

I 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.

I'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.

If 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).

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact