Ten top programming languages 2017 - IEEE

Note that Python, C, Java, and C++ are all in the top 3%. IEEE notes that, strictly speaking, HTML isn’t a language, see the text.

All (48) languages are listed at http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017 Clicking on a language gives a brief description.

Makes me realize how out of date I’m getting. I’ve written 8 of those listed below, another 7 on the long list, but there are a dozen I’ve never heard of, or only barely. Also, I don’t see awk/gawk and postscript, in which I’ve written as much as anything but possibly c and shell (mostly bash), nor make, Basic, binary (had no assembler, just an opcode table), or any of the many application-specific languages I’ve used over the years such as dBase, AML, etc., etc.

I actually implemented my own macro language in gawk a few years back. I started with m1 from the awk programming language book, and expanded it to include several forms of loops/iterators, incrementers, and reporting tools to support building makefiles, very similar to what cpp -M does.

Yes, I actually write postscript to make things like flyers, business cards, numbered tickets, and such. I started just writing a postscript output to convert code which drove an obsolete plotter to the new one, and found it to be a flexible, powerful graphics language.

https://insights.stackoverflow.com/survey/2017 also has some interesting “in the wild” stats

Where do you see that? I see HTML ranked 16th, and when you click on it, text pops up that says “A specialized language for describing the appearance and content of Web pages”.

Time to switch to RobotPy :wink:

At experience in more than 25 languages like me - you realize such comparisons are more about politics than capacity to do work.

I mean ‘assembly’ langauge alone:
Macro?
RISC?
CISC?
Inline?
MCU or MPU?

Imagine the value of functional example blocks for slow things but clear capacity to optmize to the instruction and hardware level? You can get that capacity within your primary language or by hooking together different languages and elements…which then have new scope to add to the project.

For the life of me I cannot explain why python is ranked #1. Great language for beginners, but I havent seen or worked for a company that used python at all. Atleast not in this area.
C++ should be #1

HTML got the raw end here too.

IIRC, most software is written for internal applications, and Python is flexible and easy enough to be used for all of those cases (test automation, processing data, prototypes, etc). It might be a West Coast thing, but I see Python used all over the place here.

Thats fair, its flexibility definitely lends itself to quick implementations or even long term solutions for iternal data processing.

I guess I just didnt consider the amount of areas where it may be used internally but suffice to say that in my (limited) experience its not been used much out here. The west coast is where its at though for software in general, and im young yet with limited corporate exposure so il take your word for it.

Check out the methodology, that explains it http://spectrum.ieee.org/ns/IEEE_TPL_2017/methods.html .

There are probably a lot more google searches, twitter mentions, and GitHub repositories for Python. If you change the page to order by job opportunities then Python drops a few spots. While I don’t see a ton of postings requiring it when I look, I see it all the time in the list of other useful skills. It is also growing in populatiry in the Data and Machine learning world, it has become a lot more common to see it in classes in school.

Can confirm. Most data science work seems to be moving towards python. Java still has a reasonable foothold for distributed work, but even then most people I know who use spark prefer the Python or Scala bindings.

That being said, as soon as something interacts directly with a customer, python is out. ¯_(ツ)_/¯

Can confirm, I’ve spent the last two weeks writing python tools that are solely for internal use. It’s a great “glue” language. Definitely wouldn’t say it’s just a west coast thing. Might be a bit more of a startup thing though :stuck_out_tongue:

Python is also popular as a MATLAB alternative that doesn’t require selling kidneys to get.

Have always thought of Python as a “jack of all trades, master of none” kind of analogy but it excels other languages in some key ways.

  • It arguably has the easiest syntax of any of the languages listed
  • Has a massive library support for all kinds applications, (web applications through, data analysis, and even embedded systems if you consider Raspberry Pi)
  • Doesn’t have the overhead required by some languages (eg. JVM)
  • Is pretty much the go to languages for machine learning
  • Free/Open Source (I’m looking at you Matlab)

Python and Ruby have GIL which matters to multi-threaded applications:

https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.dabeaz.com/python/UnderstandingGIL.pdf&ved=0ahUKEwjfyvKchJvVAhVj54MKHVJ1DgUQFggpMAE&usg=AFQjCNHxiCHDRmBCgAtB8FmRDlYwlPqeeg

Have a lot of fun with both but this detail matters in some high performance cases.

Have a look at Octave.

As noted above, Python isn’t used much for writing applications, but everybody I know who does system adnimistration or similar activities uses it, and it is the “official” application scripting language of a number of technical applications. It seems to be replacing shell and perl as the go-to language for maintenance, administration, and “glue” scripts.

But Matlab to Python? Their domains of high applicability don’t seem to have a whole lot of overlap.

I would beg to differ, for example:

Bank of America uses Python heavily for banking applications.

http://thegatewayonline.com/technology/technology-at-a-bank/bank-of-america-merrill-lynch-become-part-of-the-quartz-community

Python is also a common tool for system configuration management through SaltStack/Ansible and is a key element in dynamic compute cloud API tools like Boto.

I was busy earlier today in PyODBC sitting on top of UnixODBC/LibMyODBC writing a DSN connected MySQL application for a healthcare company. That company uses a mix of Java/R/Ruby and Python. The MySQL backend is in a private Amazon RDS instance running MySQL because of a compatibility issue with Aurora.

I often use Flask for quick and dirty internal REST services.

Note: I do not work for Bank of America or Amazon but I have a professional relationship with both.

Correction: It’s not a programming lanugage strictly speaking. It’s a markup language. Still a language.

For Python, if you use the multiprocessing library, you can get around the GIL.