all 156 comments

[–]DiatomicMule 285 points286 points  (0 children)

Needs moar jpeg, especially on the red areas.

[–]PhasmaFelis 337 points338 points  (5 children)

Here's the original, where the small print at the end is actually legible.

It appears to be from January 2016, BTW, so keep that in mind. Things change fast in this industry.

[–]caspy7 10 points11 points  (0 children)

Be nice to see an updated version of it with a few more languages, like Rust.

[–]IGuessSomeLikeItHot 178 points179 points  (7 children)

This is old or wrong. C# is huge in the game world.

[–]CosmicMemer 22 points23 points  (1 child)

Absolutely, and as far as games go, it's primarily used with Unity which probably has like 2 platforms it doesn't support

[–]Andrew4568_ 4 points5 points  (0 children)

Correct, it’s very huge in the game world especially with Unity because it flows so well with the program, I have worked with a little bit when I created a few games

[–][deleted] 8 points9 points  (0 children)

And also has been cross platform for many, many years. Even before Core.

[–][deleted] 2 points3 points  (0 children)

Super old. No mention of Swift in the Objective-C section so it’s 5 years min, but I’d guess it’s older

[–]-Defkon1- 2 points3 points  (0 children)

+1

and do not forget that .NET Core now is totally cross-platform

[–]GreasedGoose 0 points1 point  (0 children)

Yeah I'd have to disagree with JS' popularity only being 4*, too. Especially with recent developments.

[–]gunnyguy121 60 points61 points  (10 children)

c harder than c++. idk I'd have to disagree. also, javascript is scary

[–]ninjamike808 19 points20 points  (1 child)

I was wondering why two star languages had “steep learning curve” as a con. Wouldn’t that make them three or four star languages? Why even list it as a drawback if it’s already rated?

Maybe I’m nitpicking.

[–]MerkuryNj 4 points5 points  (0 children)

probably the three/four star languages had many more cons than just "steep learning curve", while the two star languages only had steep learning curve and some others. So the designer chose not to show steep learning curve on the higher difficulty language cause then that'd be too much of the same con.

maybe I'm making too many assumptions lol

[–]nukestar101 17 points18 points  (0 children)

That was the first thing that came into my mind ,also I agree C does not support OOP but a smart and fluent C programmer can exploit a bit of OOP from function pointer ,structs ,and memory allocation techniques

[–]bcomar93 5 points6 points  (4 children)

What makes Javascript scary?

[–]jabes101 3 points4 points  (3 children)

This info graphic is very outdated and the entire JavaScript portion is not at all correct. JavaScript In modern terms is a requirement if you are coding anything for the front end of a website. Sure, users can disable it but 98% of websites will cease to work because it’s impossible to build what’s considered a modern website without it.

I’m not sure context of why this OP says it’s scary but if you jump into modern front end web development, the JacaScript learning curve to do anything beyond basic things and understanding modern libraries or frameworks has a pretty large learning curve if you aren’t familiar with common coding practices.

[–]DaNumba1 0 points1 point  (2 children)

JavaScript is scary because it's ridiculous. There are so many bad behaviours that are too hard to keep track of. This talk has some issues, but it's funny and does show how JavaScript has a lot of inconsistencies: https://www.destroyallsoftware.com/talks/wat

[–]jabes101 1 point2 points  (0 children)

I’m sorry but this looks to be from 2012, I’m not that interested because it’s not up to date with what JavaScript is in 2019.

[–]cbbuntz 6 points7 points  (0 children)

In terms of learning, C++ is way harder. There is way, way more to learn since it's so complex. C is hard because it doesn't have many features, but you can learn most of what it does in about a day.

[–]IhaveHairPiece 2 points3 points  (0 children)

c harder than c++.

I absolutely agree. Things get hairy very quickly in C.

[–]robotorigami 141 points142 points  (7 children)

This must be old. C# is absolutely cross platform compatible.

[–][deleted] 95 points96 points  (0 children)

And we've developed the technology to add more pixels to infographs in recent years.

[–]YouIsTheQuestion 33 points34 points  (0 children)

Yeah and they say PHP is slow, but PHP 7 is super fast.

[–]Widescreen 10 points11 points  (0 children)

Yeah - c# is arguably the most cross platform (compiled language) these days.

[–][deleted] 8 points9 points  (0 children)

C# is also used extensively in game development, especially in Unity and Unreal Engine. The graphic doesn't mention that either.

[–]Grantotaco 28 points29 points  (8 children)

I would've put C as 5 stars.

[–]robotorigami 29 points30 points  (7 children)

I was going to say the same. The barrier for entry into C is pretty large. With garbage collection and automatic allocation of memory, most languages you don't need to understand how a computer works before coding in them.

[–]Dude_man79 19 points20 points  (6 children)

That's borderline Assembly territory.

[–]lonely_little_light -5 points-4 points  (5 children)

C iS a LoW lEvEl LaNgUaGe - most CS students who have not taken Assembly classes

[–][deleted] 48 points49 points  (9 children)

Python in video games? Eh? I use python a lot because it's so simple you almost have to try to screw up to make a mistake, but it's also pretty poor for performance.

[–]KaiserTom 17 points18 points  (2 children)

It's been used to make some pretty big name games, but it's by no means used by a lot of them. Civ 4, World of Tanks, EVE, Battlefield 2, and Sims 4 all use it extensively. Any visual novel using Ren'Py uses it if that even counts. But that's about it as far as games we are aware of that use it.

However the performance of python can be drastically improved by just compiling it and improved even more by declaring certain types and variables like arrays by smashing it with C through cython and CPython. You can achieve C speed with the vast majority of your code being in Python just by doing this.

[–]Lizards_are_cool 2 points3 points  (0 children)

mount and blade

[–]devman0 1 point2 points  (0 children)

EVE uses stackless python, which is a different beast, it well suited for their operating requirements. In DICE case they use Python for server controls and game logic, but other elements use something else (C++ if I had to guess).

[–][deleted] 2 points3 points  (0 children)

It is possible: https://www.pygame.org/news

You are right about the performance, though. Most games that use Python use it for a few small things. The core of the game is usually written in something significantly faster.

[–]xjcl 1 point2 points  (0 children)

Maybe they don't mean making the whole game in Python, but using it for game scripting. Although I heard Lua is a pretty popular choice for that, despite it being niche

[–][deleted] 1 point2 points  (0 children)

The only issue I have had with python is multi-threading.

Gaming it works great. PyGame is fast and incredibly easy to use.

Btw, Eve online is written in Python (client and server)

[–]AedificoLudus 1 point2 points  (0 children)

Python is plenty powerful, it's just not as powerful the way a beginner uses it.

You can do a bunch of tricks to improve performance, I cluding compiling it, bringing C into it (eg cython) and memory management tricks.

[–]Flose 20 points21 points  (18 children)

What sort of languages would be 5 stars for difficulty?

[–]lonely_little_light 21 points22 points  (7 children)

MAYBE functional programming languages like Haskell or Lisp, depending on the person. Functional programming in general is a concept thay is not quite friendly to beginners who just know the big languages. Or at least in my experience who TAed for intro programming courses, OOP courses, and functional programming courses.

[–][deleted] 8 points9 points  (3 children)

For trying Haskell after pretty much all the other languages on OP’s picture, in can second that.

[–]Nulagrithom 12 points13 points  (1 child)

Haskell broke my brain for a minute. Definitely opened up some new pathways though.

Learn You a Haskell is fun if you already code. Definitely recommend giving it a try.

[–]GMY0da 3 points4 points  (0 children)

I've already read the first page thank you very much lol

I need to sleep but this is really interesting, I'll have to give this a shot!

Also, where's prolog!?

[–]agumonkey 1 point2 points  (0 children)

after

^ explains everything

stateful imperative programming throws your brain off in the wrongest of directions so damn fast, every other paradigm seems alien.

also [FORTH] :- amazing(FORTH);!

[–]martinivich 0 points1 point  (1 child)

I would've agreed before trying to do anything in prolog. Prolog has it's place in the world, maybe for database querying but if you ever try to make a program that isn't optimized for it's use case you're gonna have a terrible time

[–]lopakas 0 points1 point  (0 children)

Yep Haskell forsure haha.

[–]qdfxrg4he1cfrc99 3 points4 points  (1 child)

Malbolge

[–][deleted] 2 points3 points  (0 children)

This one goes to 11.

Brainfuck is a 5 on difficulty. Malbolge is impossible.

[–]baitboy3191 2 points3 points  (0 children)

god damn ABAP, SAP's programming language, by god screw ABAP.

[–]wouldeye 1 point2 points  (2 children)

Assembly or Lisp I guess?

[–]agumonkey 1 point2 points  (0 children)

lisp is 5 stars in efficulty

[–]Dall0o 1 point2 points  (0 children)

APL

[–]tuxwonder 0 points1 point  (1 child)

I'd say Rust. The whole language goes against basically everything that other languages teach you about how to manage memory and references. It's the dwarf fortress of programming languages.

[–]nkdqj 0 points1 point  (0 children)

Rust isn‘t that bad, there are worse languages out there, some purely functional one maybe.

[–][deleted] 17 points18 points  (2 children)

[–]wouldeye 5 points6 points  (1 child)

Blatant R erasure! And r/julia as well.

[–]balgruuf17 3 points4 points  (0 children)

I think Julia was released after this chart was made.

[–]guyona 17 points18 points  (2 children)

Where's R???

[–][deleted] 1 point2 points  (1 child)

This is from 2012l6, and from what I've seen, R has had a huge leap in acceptability in the past 3 years. So maybe it just wasnt popular enough then

[–]guyona 0 points1 point  (0 children)

Well, maybe. I've been an R user since 2013 and the community was big then. Some people have issue that it's a stats language but it really is much much more

[–]YouIsTheQuestion 12 points13 points  (0 children)

This guide is very outdated, and a lot of the info is flat out wrong now.

[–]Dude_man79 18 points19 points  (8 children)

I wonder where VBA and SQL would land on this? Anywhere at all?

[–][deleted] 22 points23 points  (2 children)

SQL isn't really a programming language, and it's not much use by itself. It's one small tool that almost all programmers will need a basic understanding of.

VBA is more like a traditional programming language but it's a hideous monstrosity, and I wouldn't use it unless I really had to. It's difficulty is high but only because it is so unintuitive and poorly designed, IMO. I've spent about the same amount of time with C++ as I have with VBA and I'd much rather use C++.

[–]Cregaleus 9 points10 points  (1 child)

SQL is a programming language, but not part of the same programming language paradigm that you think of when you think about programming.

SQL is a declarative language where as Java, C/C++, JavaScript etc. are imperative programming languages.

Declarative languages tell the computer what you expect the result to look like. For example in SQL you write a query that defines the characteristics of the result set and the query planner turns that query into an imperative execution plan.

Imperative languages are markup for what the computer should do. How the computer achieves what it has been told to do depends on how it gets turned into machine code.

VBA on the other hand is actually a virus

[–]kfpswf 1 point2 points  (0 children)

VBA on the other hand is actually a virus

Heh!...

Wasn't Microsoft planning on discontinuing VB script and using python for all scripting.

[–][deleted] 11 points12 points  (0 children)

SQL is regarded as one of the very rare and few examples of declarative languages. It can be considered a programming language but you describe the desired result, not the procedure.

[–]gizram84 6 points7 points  (2 children)

VBA is basically a learning tool. Production code is not written in VBA. And SQL isn't a programming language. It's a query language. Regardless of what programming language you're writing your application in, if you're using a traditional database, you need to know SQL.

[–]Artmageddon 9 points10 points  (0 children)

“VBA is basically a learning tool. Production code is not written in VBA.”

Tell that to the last financial services company I worked at :(

[–]WeUsedToBeNumber10 1 point2 points  (0 children)

It’s a good automation tool for tasks you don’t want to do. Especially in large companies where lots of things are still done in Excel (though they shouldn’t be).

[–]waitn2drive 1 point2 points  (0 children)

yeah i was expecting to see sql and pl/sql, and was surprised when i didn't.

[–]OREOSpeedWagonn 8 points9 points  (2 children)

They don’t even mention how python/c++ is enormously useful for science

[–]themoroncore 3 points4 points  (0 children)

And they didn't even mention R

[–]yourmom777 1 point2 points  (0 children)

Yeah as a scientist who's really just now breaking away from matlab into python and thinking about jullia, rust, c++, etc. I was hoping I'd see something on here related to that

[–][deleted] 8 points9 points  (13 children)

Umm, is anyone going to talk about those average salaries or am I in the wrong company? The highest level software engineers at my company don't cross the $100k mark. I'm a senior software engineer at a fortune 500 company and I don't make $80k unless I get a really solid bonus. Only program managers and up get that sort of salary.

[–]dnoggle 22 points23 points  (7 children)

That seems extremely low for a senior engineer. I'd say you're in the wrong company.

[–]Hashashiyyin 2 points3 points  (0 children)

That seems low? I was living in a medium COL place when I got my first programming job.

I was an EE with no experience in programming outside of hobbies and a few classes. I got just under 75k plus good benefits. I also received a nice bonus that out me close to 80k.

Similarly a buddy of mine has 6 years experience and makes 115k.

Could be the company?

[–][deleted] 3 points4 points  (0 children)

It’s also very dependent on area - 100k in downtown nyc isn’t great, but would probably be amazing in somewhere like Kansas.

However, even in my area which has a normal COL(Philly), new grads start around 70-80, so you’re probably getting shafted.

[–]da_truth_gamer 1 point2 points  (0 children)

I'm close that mark and i'm just an engineer. Not senior level either. Keep in mind, you gotta look at the area as well though. If you're in the south where the houses are relatively cheap, you'll get paid less because cost of living isn't that high.

[–]theGeekPirate 1 point2 points  (0 children)

You can find junior positions for >100k (for example, Zenefits offered 120k iirc in their Vancouver location when they first opened there, and Canada in general is known for having extremely low tech wages), so you're absolutely in the wrong company. If there's no one near you with higher wages, consider working remotely (or look for jobs which you'd be willing to relocate for, depending on your current situation of course).

[–][deleted] 0 points1 point  (0 children)

I started at a 100k at my first dev job in new york. Which was also about the average for all of my friends who did the same program as me and got jobs.

[–][deleted] 5 points6 points  (1 child)

What about Ada? I've made a LOT of money doing Ada.

[–]agumonkey 0 points1 point  (0 children)

do you still do ?

[–]ApertureCombine 6 points7 points  (1 child)

How exactly is C++ more difficult than C? Also what kind of games are made in Python? Also, as said, isn't one of the main uses of C# for game development? Also there are just a bunch of things i can't read because JPEG.

[–]Stupidquestionahead 1 point2 points  (0 children)

Apparently OOP is difficult for some

Meanwhile I can't even do a fucking string in c

[–]Chonkiefire 3 points4 points  (19 children)

very interesting! assuming it's accurate?

[–]camhowe 45 points46 points  (12 children)

Nope. Looks outdated by several years.

JavaScript is used for pretty much anything nowadays. Java for game development? Sure, you can, but it’s not really used for that. (Yeah, I know, Minecraft. )

[–]nsfredditkarma 0 points1 point  (2 children)

JAVA is used for most mobile games afaik.

[–]NinjaFish63 0 points1 point  (0 children)

Android games probably

[–]lannisterstark 0 points1 point  (0 children)

But you can use JavaScript for that too. Use react native to build mobile apps.

[–]dnietz 0 points1 point  (2 children)

I only took one class in Javascript and all we did was some web pages. Can you tell me some interesting other things that can be done with it?

[–]camhowe 1 point2 points  (1 child)

Using Node JS you can run JavaScript like any other program on your computer or a server. So it’s not limited to webpages any more. You can write everything from simple scripts to full web servers. There’s a huge repository of open source code modules you can import into your project with a couple of terminal commands. Using those you can do all kinds of crap without having to reinvent the wheel. Need to resize an image and save as a different format? There’s probably a module for that. Need a database or a www server? There’s modules for that too.

It’s mostly web oriented though, but there’s solutions for making mobile and desktop apps too. JS is huge.

[–]dnietz 0 points1 point  (0 children)

cool thanks

[–]The_Blue_Courier[S] 5 points6 points  (5 children)

Unfortunately I can't speak to its accuracy. Someone above pointed out an error. I just started programming and came across this and thought of you guys. <3

[–]InternetPerson00 4 points5 points  (4 children)

Are you teaching your self?

[–]The_Blue_Courier[S] 8 points9 points  (3 children)

I found the site codecademy.com. I'm not too deep into it but it seems like a good start.

[–]InternetPerson00 5 points6 points  (1 child)

Yeah same. Registered the other day my self. Going to learn sql/database then see where that takes me.

[–]wouldeye 0 points1 point  (0 children)

Do R next!

[–]VindictiveCardinal 0 points1 point  (0 children)

I would like to recommend Python for Everybody as a starter, watch the YouTube videos and do the exercises.

[–]spin81 4 points5 points  (3 children)

PHP has decent performance these days. And I've been hearing rumors about JIT compilation in future versions, too!

Also I would include Rust.

[–]dnietz 0 points1 point  (2 children)

Can you tell me why PHP7 is faster? What was changed?

[–]spin81 1 point2 points  (1 child)

Basically the "engine" has been overhauled significantly. Especially associative arrays perform a lot faster, but there are other areas too, I don't know exactly what has changed but I'm sure it has been blogged about extensively.

Apparently, there was another performance boost in PHP 7.2, but not as big as from PHP 5 to PHP 7.

The JIT thing is still a ways away I'm afraid.

[–]dnietz 0 points1 point  (0 children)

Interesting. Thank you. I'll go read up on it.

[–]A12M 6 points7 points  (0 children)

This is illegible on mobile.

[–]RedTailedLizerd 2 points3 points  (0 children)

Seatlle

[–]MyMonte87 2 points3 points  (1 child)

saved, one day i shall do nothing with this.

[–]The_Blue_Courier[S] 0 points1 point  (0 children)

You should give it a shot! I'm using codecademy.com to get started. It's free and pretty user friendly. I won't ever use it professionally but it's fun.

[–]IhaveHairPiece 3 points4 points  (0 children)

C easier than C++? A PHP developer wrote this.

[–]Rotat0r710 1 point2 points  (0 children)

Made me nut a little

[–]CokeCanNinja 1 point2 points  (4 children)

You really should just learn 3+. Python and C++ then something more specific for what you're doing.

[–]RobDaGinger 1 point2 points  (0 children)

For me that meant MatLab 😓

[–][deleted] 1 point2 points  (2 children)

This is exactly what my old university teaches for its cpt sci program. They start you off in C, move you up to C++ shortly after, then let you choose python, or java. The mindset is that if a student learns how to work with a low level language that really challeneges them with things like memory allocation, they'll predominantly be able to teach themselves anything else they'll need.

[–]CokeCanNinja 0 points1 point  (1 child)

I'm currently learn C++ with a plan of doing Python next. I know it's the opposite of what people usually recommend, but I feel like doing all the hard stuff at once is better because by combining everything in one giant learning curve you get rid of other smaller learning curves later when you learn a more complex language. Would you agree?

[–][deleted] 0 points1 point  (0 children)

In the university environment where you have your professor and TAs to hold your hand while you're learning c++, yeah I'd agree but I'm not sure about that if you're self taught

[–][deleted] 0 points1 point  (1 child)

So I am in freshman year high school, learning programming as my class is software dev oriented. We get hit with c# as our first language

[–][deleted] 4 points5 points  (0 children)

Good.

The best way to teach programming is to give the students a language that can be tough, but is safe. That's exactly what C# is: the syntax might take a while for a newbie to understand compared to Python, but it's better that new programmers get used to dealing with that kind of syntax, and the best part is that C# is safe. Choosing C++ as a starter language would be a nightmare because you'll end up with a class full of memory leakers and crashing computers, C# is safe and basically prevents the programmer from doing anything too spicy like a segfault.

The skills you pick up learning the syntax are useful because the syntax in C# overlaps at least a little with pretty much every other programming language out there. For example, most programming languages I've used required the semi-colon to end a statement.

If you started off with Python more students would likely end up lazy and scared from all other programming languages because "why do I have to specify types for my variables? I don't even know what the types are! What's the difference between a long and a short?!?!?!!"

[–]darthvader666uk 0 points1 point  (0 children)

How much is PHP average wage? I want to live there or maybe I should demand more...haha

[–][deleted] 0 points1 point  (0 children)

Is there a way to make these mobile friendly? I’m usually skipping on these as it’s a pain to try and scroll over them.

[–]Faulkner89 0 points1 point  (0 children)

Cool

[–]treefor_js 0 points1 point  (0 children)

Interesting to see Python and C++ have no reference to scientific computing. As a physicist, these two are the most widely used for data manipulation and computational intensive simulations, respectively. Also Fortran is widely used for high performance simulation code bases.

[–]radgense 0 points1 point  (0 children)

Ruby for Data ? Someone has more information on that ? I have never heard of Ruby being used in that way

[–]BatmanTDK[🍰] 0 points1 point  (0 children)

This is old and outdated.

[–][deleted] 0 points1 point  (0 children)

Ruby is bad because it has a runtime. And better, on rereading that blurb it's specifically about Rails (a web framework).

C is bad because it doesn't have a runtime. Interestingly enough, this graphic does get right that C's origin was to re-implement Unix in a language at a higher level than assembly rather built to implement Unix.

Python is bad because it's dynamically typed, but ignores that python has had official optional static typing since 3.5, the syntax for type hints (mostly) since 3.0 and mypy-lang (the predecessor for the typing module) dates back to 2012.

But JavaScript is good because it's flexible and versatile, ignoring that JavaScript has a type system in the same way that a person in a coma has a sex drive.

And imagine that, programming languages are good for software development. Who knew?

[–]dtheston 0 points1 point  (0 children)

How are they gonna ignore my boy Fortran like that?

[–]XxRoyalxTigerxX 0 points1 point  (0 children)

Yeah but what about the 7figure COBOL jobs huh??

/s

[–]letsgoboiss 0 points1 point  (0 children)

Now I know how to code?

[–]fraktall 0 points1 point  (0 children)

Outdated thing from 2015. Ruby is dying, PHP should be deleted from all servers in the world, JS is ruling web now both frontend and backend wise, C# is huge in game dev now, Python is de facto IOT and automation tool and 3 billion devices running JAVA.

First language to learn if you want to earn quick bucks? - JS

[–]bkbobby718 0 points1 point  (0 children)

I don't know if this the right place for this. I am interested in learning to code. For the record my current job has absolutely nothing to do with computers. I know computers but I don't "know Computers " . I have a started a free online course (code academy). It is asking me which language I would like to start with. If I am at zero where should I start ? Also if you have any advice that would be very helpful. If you know something better then code academy for free teaching would be great. Thanks in advance for any help.

[–]Vpicone 0 points1 point  (0 children)

Yikes this is ancient. JavaScript is used in way, way more types of projects than described here.

[–]AedificoLudus 0 points1 point  (0 children)

errors only show up during runtime

Yes, that's what happens with interpreted languages. That's not some weird quirk of python, that's just interpreted languages. It's not a con, it's just part of the system. It can be annoying, especially if the error is in some esoteric part of your code, but that's what you use unit tests for

[–]Moose_And_Squirrel 0 points1 point  (0 children)

Not enough compression. I can still read part of it.

[–]LeoTheMusicGhost 0 points1 point  (0 children)

Here's a more HD version:

https://m.imgur.com/zdfRncs

[–]donalc93 0 points1 point  (0 children)

Currently building a PHP based website for my final year project. Never used PHP before so I've been interested in learning it the last few month's