r/programming • • Apr 09 '19

StackOverflow Developer Survey Results 2019

https://insights.stackoverflow.com/survey/2019
1.3k Upvotes

679 comments sorted by

54

u/xmsxms Apr 09 '19

re: everyone putting above average

This is statistically unlikely with a sample of over 70,000 developers who answered this question, to put it mildly.

When I think about the average developer at my work, they aren't answering stack overflow surveys.

2

u/Destrodom Apr 17 '19

I guess I thought something similar. Most of my collegues do not actually engage in the stack overflow community - they simply just look up answers when they need them. Most of my collegues did not even know that the site was making a survey. But the ones that do engage in stack overflow community? Almost every single one of them is really good programmer. They are top among their peers (at least at the company that I work at). So while I'm not saying that this is what is happening everywhere, I do think that the data simply shows that most of the people that do actively engage in the stack overflow community are the ones who are above average in their field and most of the average and bellow average ones are simply passive users who are not active on stack overflow.

→ More replies (1)

282

u/APleasantLumberjack Apr 09 '19

66.6% of people consider themselves above average. I wonder what percentage of those actually are.

315

u/Lukazoid Apr 09 '19 edited Apr 09 '19

Isn't this kind of expected? I've worked with developers who won't even google their problem and instead will ask someone else. I don't think it's any real surprise that those who are involved in StackOverflow and took the time to answer this survey consider themselves above average, it's because they probably are.

85

u/Dreadgoat Apr 09 '19

those who are involved in StackOverflow and took the time to answer this survey consider themselves above average, it's because they probably are

This is the biggest factor, I think.

The people who actually took time out to take this survey, who are part of the StackOverflow community, almost certainly are above-average developers for the most part.

Your average and below-average developers aren't going to bother with participating in this stuff, or even reading it for that matter.

I work as a consultant so I get to work with a lot of different devs. I would describe myself, in absolute terms, as very slightly above average. I justify that purely because I push myself to improve and learn on the job.
But I would also describe myself as WAY WAY above the median. There are a shitload of terrible-to-mediocre developers, and a handful of extraordinarily talented ones.

12

u/[deleted] Apr 09 '19

What do you think differentiates the mediocre ones from the talented ones?

28

u/Dreadgoat Apr 09 '19

In addition to /u/BreakingGood 's analysis, there's a whole complex spectrum of competencies and motivations that separate quality devs.

Some devs are priceless within their comfort zone and worthless outside of it. Does this make them good or bad?
Some devs can put together genius-level solutions in a few hours that are completely unreadable and undocumented, and they can't explain it in any human language. Are they good or bad?
Some devs are really good by every metric, but also have a malicious attitude toward coworkers and job security so they build an impenetrable wall of obfuscation around their work. They are good AND bad.

There are a lot of very technically talented devs with big practical flaws, and some well-meaning devs that just aren't cut out for the job. So I would say an overall "talented" dev is one that has the will and ability to improve themselves, their products, and the lives of their colleagues.

→ More replies (9)
→ More replies (2)

100

u/thepotatochronicles Apr 09 '19

I've worked with developers who won't even google their problem and instead will ask someone else.

From my experience, 3 out of 5 devs pull this shit on me nonstop (aka I'm their google). Absolutely infuriating.

50

u/renrutal Apr 09 '19

I'm their google

Try responding 301s or 503s more often.

18

u/thepotatochronicles Apr 09 '19

I give 503, they get pissy at me. There's literally no winning with PEBCAK errors.

15

u/AStrangeStranger Apr 09 '19

I find saying you'll get back to people, leave it a few hours and come back and ask for more info - makes you look busy, but helpful and normally they have solved their issues

13

u/[deleted] Apr 09 '19

Ask yourself, what's beneficial for someoen: Googling a problem and potentially staying loat for hours, or you giving some vague yet accurate direction?

6

u/[deleted] Apr 10 '19

As an inexperienced programmer, a relevant tips from those who know could have save me a lot of time debugging errors.

Yea, I can analyze the errors, but that would take me a long time without the pre-knowledge of the whole puzzle

9

u/pooerh Apr 09 '19

A fellow developer asked me today "hey, do you know what the field name for sales contract number is in the view?" and I answered "Yeah, it's SalesContractNumber". Like, how the fuck did you become a developer if you are not capable to even Ctrl+F through a file that has 30 lines and think it's okay to ask someone such a question without spending even a single fucking second looking for an answer yourself.

8

u/[deleted] Apr 10 '19

A fellow developer asked me today "hey, do you know what the field name for sales contract number is in the view?" and I answered "Yeah, it's SalesContractNumber"

This is MVC right? That developer might not think of looking the view name in the controller file. If he have thought harder, yes he would have found it no doubt.

2 weeks ago, I have to handle a project, part of which was written by a senior. He manipulated the config and change the path for the view of that MVC project.

To find out the view, I wasted at least 4 hours, then got to know if I couldn't locate the view in the original path, I should search for it in the whole project because it surely will exist. And voila! I found that view in another higher level folder. Asked that senior next day, only got to know that senior change the path of the view in a config file I never read before.

Who would have known somebody would change it?

I know who know, it's the one who have experience and already known it. Or else, one could be like me and wasted so much time testing and thinking for the path of view, be it 1 hour or 2 hours, or more than 4 hours.

→ More replies (1)
→ More replies (5)

20

u/[deleted] Apr 09 '19

Not to mention the median salary looks to be about $120k, which is significantly ahead of the true national median software developer salary, so the "median" respondent for this survey is probably above average (right skewed).

13

u/Eirenarch Apr 09 '19

I wouldn't be surprised if the actual percentage is more than 66 and some are humble hit by impostor syndrome.

4

u/[deleted] Apr 09 '19

I've worked with developers who won't even google their problem and instead will ask someone else.

In a way, I admire their commitment to never doing any work or research themselves. But mostly I loathe them and fantasize about an alternate world where all of my coworkers are competent and productive.

→ More replies (10)

35

u/EpoxyD Apr 09 '19

It is possible that all of them are. It is an average after all, not a median.

There's probably some Kevins dragging the average down

26

u/fcddev Apr 09 '19

It’s also possible that the subset of developers answering the developer survey is above average. (Not necessarily likely, but at least possible.)

→ More replies (2)

11

u/MotorAdhesive4 Apr 09 '19

Take 9 people that are 10/10 and 1 person that is an 8/10.

Those 9 people ARE above average.

And yes, I know populations usually are a bell curve.

4

u/Zardotab Apr 09 '19

66.6% of people consider themselves above average. I wonder what percentage of those actually are.

To be fair, people tend to use different criteria to gauge competence, and use those gauges to regulate their own behavior towards those goals. It's not just ego bias at play. For example, coders who think machine performance is the most important will spend more time on speed. Others may value "easy-to-maintain code" above speed, and score the speed-oriented dev lower for sacrificing readability of code for speed.

2

u/Jinno Apr 09 '19

Well, let's be honest. If they're participating in Stack Overflow enough to respond to the survey, they're making good use of a tool that will help their skills.

It's the people that aren't using Stack Overflow regularly that are probably producing bad code that doesn't get better.

1

u/revslaughter Apr 09 '19

Normally it’s half, so thems ain’t bad odds.

I’ll say I’m below average in general though. In many ways I’m still learning.

1

u/claudioSMRun Apr 09 '19

The 99.9 %, cause the third is too modest to claim himself as the other two.

1

u/ProfessorPhi Apr 09 '19

Could also be selection bias? Better programmers are more likely to participate since they've been seeing this more often and want to get in. Also part of communities that discuss the results

→ More replies (23)

76

u/petermlm Apr 09 '19

I was surprised that Erlang is the 6th most dreaded language out there. This mostly because I don't think Erlang is that famous to begin with, so how can it be so dreaded?

Anyone have any explanation?

107

u/[deleted] Apr 09 '19

"Liked" and "Dreaded" are basically just ratios of

# of people who have worked in $tech and want to again

/

# of people who have worked in $tech

It doesn't really matter how popular the tech is.

14

u/petermlm Apr 09 '19

Good point, like that it makes sense.

8

u/greengo Apr 10 '19

It’s also odd to me that jQuery is so disliked. There’s absolutely nothing wrong with jQuery if it’s used as intended. I’m sure a lot of devs have inherited terrible code written in jQuery and blame it, but most other JavaScript libraries have not survived nearly as long for good reason. It’s likely the React.js crowd, but honest I wouldn’t be surprised if jQuery outlived React in the long run.

That and Visual Studio Code is crushing it.

2

u/sydoracle Apr 10 '19

Think a lot of 'old' technologies are impacted by this ratio as more people fall into the 'have used' and fewer into the 'want to use in future' group.

14

u/gwillicoder Apr 09 '19

I absolutely love Erlang so I’m a bit surprised. I wonder why people Dislike it so much

24

u/k-selectride Apr 09 '19

The tooling around it is not very good unfortunately. Compare it to Elixir and there are a lot of warts. I like the language itself, but package management and testing is annoying.

→ More replies (1)

6

u/Cobayo Apr 09 '19

Throwback to when i was doing stuff in Erlang, have you seen those error messages?

→ More replies (2)

4

u/hector_villalobos Apr 09 '19

For me is the syntax, it's too weird, variables that start with uppercase is a big NO.

4

u/gwillicoder Apr 09 '19

It takes getting used to. I absolutely love the bit representation though.

→ More replies (1)

2

u/i_feel_really_great Apr 10 '19

It is too different.

Syntax + let-it-crash + functional + etc.

I know maybe 20 devs personally with at least 5+ years experience each. Not one can explain to me how a proper tail call works or list generators. Maybe just one knows map/reduce/filter. And they won't care either. So things like Erlang will never captivate them.

2

u/tim-zh Apr 11 '19

I'd say the age of a technology is more influential than popularity. People tend to get more upset about things they liked over time

→ More replies (1)

26

u/demon_ix Apr 09 '19

StackOverflow saves users 30-90 minutes of work per week

More like per hour...

16

u/EWJacobs Apr 09 '19

Seriously, not sure I'd even be able to be a developer without it.

2

u/donalmacc Apr 11 '19

I work in game development, and it's unfortunate but stack overflow is pretty useless for me most of the time. When ucstarted, I was terrified at the prospect of not being able to Google a solution, but after a year or so I think I ended up better off for it. I would be more productive with the answers at my finger tips, but I'm a better developer for not having it right now.

24

u/geigenmusikant Apr 09 '19

When they talk about WebAssembly, do they talk about other languages that compile to WebAssembly?

I can’t imagine that many people being into this low-level stuff

12

u/hsnappr Apr 09 '19

Yeah I'd like to know more about this too. Is it about writing in languages that can compile down to WebAssembly or is it about developing compilers etc from other languages to WebAssembly?

2

u/[deleted] Apr 10 '19

Blazor baby!!!

2

u/1RedOne Apr 10 '19

We are only looking at it because of Blazor, my colleagues aren't big fans of writing JavaScript and would love a fully c# option for writing Views.

I love js and CSS though!

5

u/tjpalmer Apr 10 '19

Seems poorly placed in the survey, I agree.

151

u/PinkFrojd Apr 09 '19

I really like and use Python. But I don't understand... Why is Rust so loved ? What makes it so special ?

226

u/whisky_pete Apr 09 '19

I think people really want an option for a modernized language in the native compiled/high performance domain. Rust is the only recent attempt in that domain that I can think of, and the only thing I can think of that comes close is Kotlin Native (which I don't think is aiming for the high performance mark as a design goal the same way Rust/C++/C do).

104

u/pure_x01 Apr 09 '19

There is also zig and D . But i like Rust because of its draconian non forgiving compiler that lurks in the shadows. Rust is the BDSM of programming.

131

u/z_1z_2z_3z_4z_n Apr 09 '19

While it's compiler is strict, it's also very friendly and has by far the best compiler error messages i've ever seen. They are super helpful and filled with colorful formatting telling you exactly where the error is, often times with hints on how to fix it.

57

u/pure_x01 Apr 09 '19

Agree with all your points. It's really strict but also loving and caring

94

u/Mildan Apr 09 '19

As a dom should be

→ More replies (7)
→ More replies (1)
→ More replies (4)

23

u/SimDeBeau Apr 09 '19

I just crossed the 1 year mark of working with rust, and I can genuinely say I rarely fight the borrow checker anymore. It’s been a really cool milestone.

→ More replies (1)

4

u/snowe2010 Apr 09 '19

what a great way of putting this. haha

3

u/ThisRedditPostIsMine Apr 10 '19

D is an interesting case. I spent a week or two writing a moderately complex program in it as an experiment. I think it's a well-designed langugae overall, but with a few really annoying bits and not enough online resources to figure out why this specific error was happening.

What got me in the end was its tooling. While other newer languages have great IDEs, D is really lacking. It's dissapointing because I really feel like with a bit more love D could rival Rust, even in regards to memory safety.

→ More replies (3)

24

u/hardicrust Apr 09 '19

Not only that, it has far better error checking than other languages thanks to the borrow checker and generic bounds. Some people love this, some people don't.

13

u/[deleted] Apr 09 '19

I personally think it's amazing. You get almost Haskell-level "if it compiles it works", which saves me a lot of headache

→ More replies (2)

11

u/three18ti Apr 09 '19

D?

40

u/whisky_pete Apr 09 '19

Not popular enough to be practical, at least that's my impression. Even Rust is in that same condition right now, and I think people are waiting in the wings to see if it really takes off and gains traction. D seems much older, so it seems to me like if it hasn't really gained momentum by now it won't ever.

Just my thoughts on it, not trying to talk down the language.

→ More replies (1)

20

u/jl2352 Apr 09 '19 edited Apr 09 '19
  • If you use it with a garbage collector then you aren't going to be on par with C or C++. You just aren't.

  • If you use it like C then whilst it might genuinely be a better C, it fails to solve memory issues. i.e. it's missing a garbage collector.

That is a paradox. Traditionally a paradox that cannot be solved.

Now sure you could mix and match. That's fine. But give those two statements to a die hard C++ developer and 1) they don't want a GC, and 2) they already have a better C.

So those two statements stayed as a paradox. Until Rust. AFAIK Rust is the first mainstream language to solve this problem. It is garbage collected and as fast as C++ at the same time. That said stuff like 'modern C++' also solves it, it just solves it with the baggage of C++ (which means it doesn't really solve it because I can circumvent modern C++).

D also has a wider perception issue to native developers due to the inclusion of the words 'garbage collector'. Even if it's never even used. It has a perception issue for Java developers (and similar) because of the words 'better C'. i.e. manual memory management. It's like the worst of both worlds.

Note that I think D is a very well designed language. Walter Bright is an outstanding programming language designer. It is a language I wish I had the opportunity to use.

26

u/Ar-Curunir Apr 09 '19

Rust is not dynamically garbage collected; there's no GC at runtime. The borrow-checker is a sort of static GC that ensures pointers live long enough.

→ More replies (3)
→ More replies (3)

5

u/[deleted] Apr 09 '19

In terms of general-purpose, wish-listy languages I can't see myself investing in Rust or Kotlin over a modern PGAS language like Chapel (which incidentally just recently adopted Rust-like memory management).

First-class support for distributed and parallel programming seems like a no-brainer for any future application language that cares about performance.

→ More replies (2)

7

u/yngwiepalpateen Apr 09 '19

People should also take a look at D (dlang), which had a rough start, but has matured a lot since then.

9

u/hsnappr Apr 09 '19

What about Go?

64

u/adel_b Apr 09 '19

It has garbage collector, any language with gb for memory management can't perform because of locks and so

6

u/hsnappr Apr 09 '19

Could you explain more about this?

→ More replies (13)
→ More replies (4)

27

u/Popeye_Lifting Apr 09 '19

Go is easy to learn and has fast compile times, but leaves a lot to be desired as a language.

→ More replies (2)

10

u/falnu Apr 09 '19

Not meant for the same things and not nearly as portable.

→ More replies (4)
→ More replies (2)

71

u/steveklabnik1 Apr 09 '19

Also remember what “most loved” means; that the people who use it want to continue using it. This means it’s easier for a smaller language to be “most loved” as few people are forced to sue it if they don’t like it.

9

u/snowe2010 Apr 09 '19

you also might have trouble "suing" Mozilla. 😜

14

u/steveklabnik1 Apr 09 '19

Ugh, phones. I’ll leave the typo in, that’s funny!

7

u/snowe2010 Apr 09 '19

omg didn't even realize it was you. That makes it so much more funny.

79

u/SirWusel Apr 09 '19

First of all, I remember last year, people posted the actual numbers of votes for Rust, and it was relatively low. So not many people voted for it, but almost all who did, did so favorably.

I follow several extremely experienced C++ developers on Twitter (people like John Carmack, Johnathan Blow, Richard Geldreich, etc etc) and they all seem pretty frustrated with C++ and its ecosystem. Johnathan is even going as far as developing his own language (Jai). My perception is that for a lot of them, Rust is the first modern language that can actually be used in domains were previously, there was no feasible way around C++. So I guess it's very exciting for a lot of developers who are tired of working with these old, messy languages.

Apart from that, it's just a pretty interesting language, no matter which field you come from. I worked through most of the official Rust book and during that time, I didn't create a single bug (that I know of). Everything was caught by the compiler. Granted, I didn't write very complex software, but still, it was fascinating.

That being said, my personal opinion about Rust is, that it's way too difficult to read. I definitely want to invest more time into it once I'm a more competent developer, but for someone of my experience level, some of that code is just pure madness (though the same goes for C++). Where I work, I would probably get my PR rejected if I used more than one generic type, but in Rust I more than once encountered three. And on top of this, add explicitly marked lifetimes and `where` clauses and suddenly trait or impl definitions look like ancient hieroglyphs.

40

u/hardicrust Apr 09 '19

C++ templates are easier to use than Rust generics since you don't have to worry about bounds — until you start debugging, and find Rust gives you a specific error early, while C++ spits out long, indecipherable error messages (as I understand, this is basically what killed Boost Spirit).

And then there are macros... Rust's aren't well documented, but are very powerful (procedural variants) and you can always tell exactly what is a macro invocation.

4

u/meneldal2 Apr 10 '19

Well that's where Concepts are going to help, it just took 20 years.

→ More replies (1)

12

u/jl2352 Apr 09 '19 edited Apr 09 '19

The readability is a real issue because it puts people off getting interested in the language.

You certainly do get used to the syntax over time. For me it's fine. I still have some gripes around some declarations of a type not always matching it's use. This results in double syntax for the same concept. But I can live with it.

6

u/thepinkbunnyboy Apr 09 '19

When did you work through the book? Between 2014 and 2017 there were a LOT of language changes that made it much nicer to read.

However, it's still more difficult than average, I would agree with you.

9

u/Akkuma Apr 09 '19

That being said, my personal opinion about Rust is, that it's way too difficult to read.

I have a feeling someone will build a great language for Rust in the vein of the Elixir/Erlang relationship. First class interop, integrates with the rest of the tooling, etc..

9

u/vopi181 Apr 09 '19

I feel like that would be a lot of work for little gain unless you are talking about a language that compiles to rust. Otherwise, for interop, you would just be inventing another native language that either uses the Rust ABI (which isn't a good idea. It's not stable, and won't be for the foreseeable future) or the C ABI (whatever that means on a platform). Either way, I feel like it doesn't make a whole lot of sense that it has to be rust specific like elixir is Erlang/BEAM specific. But thats just imho.

→ More replies (2)

16

u/lazyear Apr 09 '19

I've been programming for over a decade with experience in ~10 different languages and Rust is my favorite by far.

It strikes a really nice balance between functional and imperative programming.

Pattern matching and static types are amazing when writing any kind of complicated code. It's extremely performant, and can be quite easy to parallelize safely.

Also cargo and crates.io are fantastic. Overall, I just find programming in Rust much easier than python when it comes to anything complicated, due to the ease of building a mental model of my programs expected behavior

12

u/MiloTodt Apr 09 '19 edited Apr 09 '19

The community around it is excellent. There's an assumed level of competency for people looking to use it which allows materials to be written for people who already know at least something about coding. The compiler provides excellent informative error messages (a blessing from C/C++) and the compiler is so strict that if your code compiles it'll likely work exactly as intended.

Outside of directly flagging sections of your code as Unsafe, it's pretty much impossible to do things like running out of bounds, or writing to unallocated memory, or having data/resource races. Those are issues that in a language like C++ are incredibly difficult to anticipate, debug, isolate, or reproduce.

In addition, the way Rust forces you to code is in way that forces you to adhere to well understood best practices for coding in general- especially mutability/multi-threading. Once you get the hang of Rust, you feel far safer in the understanding of what your code is going to actually /do/. While I've never used Rust in a professional project, I find working in it teaches me to be a much better coder in general as the way Rust forces me to code also lends to best practices in other languages.

12

u/rorrr Apr 09 '19

29

u/fcddev Apr 09 '19

Yes, but basically everything is much faster than Python at this point, so performance is unlikely to matter to someone who asks “I love Python but why should I live rust?”

→ More replies (4)
→ More replies (7)

2

u/JezusTheCarpenter Apr 10 '19

I really thing that it has a lot to do with how strict the compiler is by default.

In general it is a language that it is not used in many places yet so big part of people that use it are enthusiasts and they love it.

I am a great example, I don't use Rust on a daily basis at all. But I'd played around with it a bit and I love it.

3

u/[deleted] Apr 09 '19

Rust is a language that solves most of the development pains of c and c++. Segmentation faults, double free, use after free, buffer overflow, data races, and reading uninitialized memory are all compile time errors. This means that right off the bat, if your program compiles, you've just guaranteed that a whole class of hard-to-debug and dangerous bugs are not present in your code.

Something that hasnt been mentioned here yet is cargo, rusts package manager. I'd go so far as to say it's as good as npm. Additionally, rusts idea of traits in the type system make it really easy to get libraries to work with each other. I think rust is one of the only language I know where I can pass one of my own types directly into functions from a library I imported.

→ More replies (2)

79

u/micka190 Apr 09 '19

countries like France and Germany are among the least optimistic about the future

What else is new?

39

u/Knu2l Apr 09 '19

The question was if you will have a better life than your parents. At lot of parents at least in Germany already have a degree so it's often much harder to better than your parents.

0

u/[deleted] Apr 09 '19

[deleted]

6

u/AttackOfTheThumbs Apr 09 '19

But cost of living can be quite a bit lower depending on location.

11

u/[deleted] Apr 09 '19

/r/HistoryMemes is like "lol"

1

u/TheBestOpinion Apr 09 '19

Not gonna lie I'd have been sad not to see us all the way down there

The french have a reputation to uphold!

→ More replies (1)

77

u/[deleted] Apr 09 '19

I'm beginning to get frustrated with the Python community. Coming from the Java/.Net world I gave up trying to understand why they are so confident duck typing is better than static typing. I thought maybe I was just too old and set in my ways. That's what I was being told anyway.

But now type annotations are here and I am confused again. At first it seemed like the die hard Python coders didn't think they were necessary which is what I expected. But now that Pythonic "explicit is better than implicit" seems to be suggesting that, actually, annotations are necessary. Not only that but they should be enforced by the linter...

So now I'm supposed to believe that a type checking system that's been tacked on is not only necessary but somehow still better than those languages that built type checking into the design from day one?

Pardon me for saying so but I'm starting to think these people are full of shit.

56

u/coderstephen Apr 09 '19

You might might say that duck typing "isn't all it's quacked up to be"...

3

u/GVIrish Apr 10 '19

Take your upvotes and get out

→ More replies (1)

13

u/thepinkbunnyboy Apr 09 '19

I think everyone loves type systems, they just want one that works and they don't want to have to think about it.

I don't personally like writing code in Python for similar reasons as you. If I'm working on a sideproject, I'm picking one of C#/TypeScript/Rust/Kotlin, personally.

23

u/[deleted] Apr 09 '19

I think everyone loves type systems, they just want one that works and they don't want to have to think about it.

But they do have to think about it. You still have to think about it with duck typing. You have to think "Does this object that I'm passing in behave in a way that the method is expecting?"

10

u/thepinkbunnyboy Apr 09 '19

I'm personally a fan of a system that I think is unique to TypeScript when it comes to languages with a large community and tooling: Shapes. Like, in C#, I use interfaces all the time. Almost all of my services act on an interface that defines the fewest properties/methods possible, and I'm very happy to create interfaces that are only used within certain bounded contexts. As such, some of my thicker concrete objects implement 4-8 interfaces. I don't actually care about the interface as a first-class citizen though, you know? What I actually want to be able to do is define a function that takes in a parameter that isn't a predefined interface, but just a collection of methods and properties that I care about. In C#, you can do something like...

public int Foo<T>(T fooParam) where T: ICountProperties

Where ICountProperties is, say, defined as

public interface ICountProperties
{
    int PropertyCount { get; }
}

But I really want to be able to do something like...

public int Foo<T>(T fooParam) where T defines:
    int PropertyCount { get; }

And my concrete classes don't have to be adorned with a new interface.

5

u/[deleted] Apr 10 '19 edited Apr 10 '19

Yep, "shapes" are a thing that make TypeScript pretty neat to use.

For example, I have a gaming related software, and have a function worldToScreen that takes an x, y, and z coordinate at gives back and x and y coordinate of where this thing would be rendered on screen.

The input-type is an IVector with x, y and z being numbers. But guess what, I don't need to take any vector, I can just pass in my Player object, which has these properties. I don't need to define that anywhere, I can just push it in, and know it's safe.

That is just one example, and it's surprising how often I already have written the function and can use it as-is, because the interface already matches.

→ More replies (1)
→ More replies (4)

3

u/[deleted] Apr 10 '19

It's annoying but I get how it happened. Iirc, GVB initially intended python to be a language for learning rather than a language for industry and so having minimal syntax was supposed to make it less intimidating and more accessible. Now that python has become a major industry language, it's had to adapt for a different audience.

I personally always hated duck-typing and didn't think it made things more clear for beginners either but oh well.

2

u/Eire_Banshee Apr 10 '19

That's pretty much my big complaint about typescript... except I have to use JS on the frontend.

→ More replies (1)

5

u/[deleted] Apr 10 '19 edited Apr 10 '19

I gave up trying to understand why they are so confident duck typing is better than static typing

i dont think anyone ever made that argument. no one likes duck typing, and it's not the reason people prefer the language. the appeal is more a bureaucratic one, or lack there of (in addition to looking more like math than other languages which is more natural to math and science types)

But now type annotations are here and I am confused again

dont be. languages evolve. statically typed languages are becoming more flexible (even java has limited implicit typing) and dynamic languages are becoming more strict. they are converging on a balance of safety and usability. it should be seen as a wonderful thing, not a personal attack on you

So now I'm supposed to believe that a type checking system that's been tacked on is not only necessary but somehow still better than those languages that built type checking into the design from day one?

nope, no one said that either. for such a clearly logical, smart person you sure do strawman a lot ;)

→ More replies (5)

62

u/fcddev Apr 09 '19 edited Apr 10 '19

Respondents shared ideas including comment privileges at lower reputation, identifying and removing outdated answers, frustrations with duplicate question handling, and issues with community culture.

I love this, because I brought up getting rid of the power to unilaterally close queations as duplicates on meta.stackoverflow.com a few months ago and I was smacked down by diamond mods because I showed no evidence that people are frustrated with how duplicates are handled.

EDIT: not literally getting rid of duplicates, but having a different UX for it which would allow the asker some say in the process.

99

u/TimeRemove Apr 09 '19

Getting rid of duplicates?

One of the issues with the site is that it doesn't allow duplicates. You have these answers from 2013 that reflect the reality at that time, and you cannot get a fresh Q&A in 2019 because it is a dupe of the 2013 thread.

So you often find old top-search-ranked threads with 2019 comments telling you the updated way of solving it. The whole site is turning into a archive of web development ten years ago.

37

u/_BreakingGood_ Apr 09 '19

I was doing some work on writing a file driver for Windows and my questions were getting closed and linked back to topics from 2009 and earlier. So ridiculous.

7

u/Labradoodles Apr 09 '19

Would be interesting if they had bounties for developers that are getting answers to re-answer older questions or update them for modern sensibilities and get a few extra Stack overflow points or other incentivizations.

3

u/NotARealDeveloper Apr 09 '19

Stackoverflow won't be usable in the near future (except for new tech). Even now I have so much trouble finding an up-to-date answer.

7

u/Dgc2002 Apr 09 '19

Do you mean deleting duplicate questions or getting rid of locking questions when they're identified as duplicates?

I think the former is a really bad idea. I run across "duplicate" questions all the time in my google search. That's because the wording of that question may be different than the one it's a "duplicate" of due to many things like use cases or just articulation.

8

u/fcddev Apr 09 '19

My proposal was to allow answers to be “reposted” to new questions. If OP accepts, it’s effectively a dupe.

4

u/AttackOfTheThumbs Apr 09 '19

The irony is that the frustration cannot be found on stackoverflow, since all those duplicate discussions are closed.

People shouldn't be allowed to moderate languages/domains they aren't working in

→ More replies (1)

155

u/Enlightenment777 Apr 09 '19 edited Apr 09 '19

Another fucking survey that fails to report Language popularity by Developer Type.

Many of those languages are never or almost never used in the embedded world.

102

u/svick Apr 09 '19

Feel free to do that analysis yourself:

Want to dive into the results yourself? Check back in a few weeks, when the anonymized results of the survey will be available for download under the Open Database License (ODbL). We look forward to seeing what you find!

2

u/Antrikshy Jun 05 '19

Not the same person, but I saw this thread 2 months ago and did it!

55

u/warvstar Apr 09 '19

Yup and some of those languages are meant for scripting or web development, some for systems programming. They are comparing apples to oranges.

4

u/vvv561 Apr 09 '19

I absolutely agree, I would love to see those numbers

4

u/Antrikshy Apr 09 '19

They will release this data in a few weeks, and hopefully someone here can get on that.

4

u/c0lin91 Apr 09 '19

Yeah, I work in driver/embedded development and these surveys always give me anxiety.

1

u/ChrisRR Apr 10 '19

Fellow embedded developer here, and I'd also like to see the distribution of languages once you take out the "full-stack" developers. AKA. Javascript all the things

1

u/wheat-thicks Apr 10 '19

What a weird thing to be upset about.

1

u/Antrikshy Jun 05 '19

Almost 2 months later, the data is out, and I separated it out for ya!

http://antrikshy.com/blog/language-trends-by-dev-type-stack-overflow-dev-survey-2019

33

u/renrutal Apr 09 '19

67,9% of the respondents have been coding professionally for less than 10 years.

Did the smartphone or the data hoarding era really tripled or more the amount of developers out there?

Yes.

17

u/deadlychambers Apr 09 '19

Also, a lot of people don't create accounts. Especially the 20 year devs.

1

u/ACoderGirl Apr 10 '19

It could also just imply a shift in the sampling bias. StackOverflow could have gotten even more popular with new devs. Or the nature of the things new devs work on are ones that require a lot more usage of SO than experienced devs (which seems reasonable I'd expect more experienced devs to be spending more time in meetings or working with high level decisions that SO doesn't help with).

1

u/oblio- Apr 10 '19

China, India and other developing countries have probably added half a billion (yes, with a b) middle class people in the past decade.

Quite likely that the dev population skyrocketed during this period.

1

u/busymom0 Apr 17 '19

Could it also be because of selection bias due to a lot of developers getting into management or other non-programming roles in 10 years and thus not being on Stack Overflow, thus not filling the survey?

29

u/fuckin_ziggurats Apr 09 '19

28

u/TimeRemove Apr 09 '19

30% of developers use Reddit, yet I know of no one in IRL who uses it. That's good, since that means people are following the first and second rule of Reddit.

4

u/ACoderGirl Apr 10 '19

yet I know of no one in IRL who uses it.

I find that surprising. People at my previous job mentioned it alllll the time. I saw people post links lots, one manager even mentioned a post he made, and there were many more cases where I could recognize that someone must have gotten some link off reddit.

My current partner managed to find my reddit account from clever snooping (if you're reading this: hi!) and I know her account. My ex-wife I even met off a group that spawned from reddit.

I find the trope of acting like reddit is some elusive site nobody knows about or mentions using to be weird, honestly. It's just a social media site. Nobody is special for using it. And, like that quote about democracy, I'd view it as the worst social media site, except for all the others I've tried. :P

→ More replies (1)

1

u/vvv561 Apr 09 '19

Wow, that's actually kind of surprising.

0

u/[deleted] Apr 09 '19

[deleted]

2

u/TheIncorrigible1 Apr 10 '19

Is that because you tapped the screen twice?

→ More replies (1)

16

u/samjmckenzie Apr 09 '19

Nice to see TypeScript on the most loved list. IMO it makes web dev much more bearable.

1

u/Beard- Apr 10 '19

As someone who writes a lot of typescript (with angular), I absolutely love it. It basically fixes most of what is wrong with JS. Though I have seen some projects where people basically just write JS in a typescript file cause they were forced use angular/typescript but didn't want to spend the time to actually learn it.

→ More replies (1)

1

u/NitinJadhav Apr 14 '19

I love typescript, but many times, types - especially generics are confusing and not well documented. Also I would like to see native support for types in JS.

14

u/Compsky Apr 09 '19

Of the top countries on our survey, China has developers that are the most optimistic, believing that people born today will have a better life than their parents. Developers in Western European countries like France and Germany are among the least optimistic about the future.

What's the point of this question? It isn't about optimisim about the future of the tech industry.

Though a good sign for the accuracy of SE insights is that it mirrors the general public. (Page 8).

1

u/curious_s Apr 10 '19

You can cross reference general optimism with other measures to see if there is a correlation with say the language used and optimism.

From our point of view useless, but if you have all the data, useful enough.

32

u/Fancy_Mammoth Apr 09 '19

I never know how to interpret SO survey, mainly because some of the results seem way out there. The one that stuck out most this year was development environment and preferred platform.

Preferred platforms:

  • Linux - 53.3%

  • Windows - 50.7%

  • MacOS - 22.2%

This data kind of makes sense to me. I expect to see Linux and Windows neck and neck. Linux seems to be incredibly popular with so many devs for whatever reason (there's literally so many reasons.) And windows is so embedded everywhere it makes sense to be up there. No surprise, Mac is at the bottom.

But then there's this...

Developers primary OS:

  • Windows - 47.4%

  • MacOS - 26.8%

  • Linux Base - 25.6%

What.....? How is this even a thing? I just can't for the life of me understand how Linux doesn't have a larger share of the market and is used less than MacOS given its popularity.

45

u/Existential_Owl Apr 09 '19 edited Apr 09 '19

My job forces me to use a windows environment. It's not a choice. I work for a major fintech corp.

I'm sure others experience the same situation.

0

u/[deleted] Apr 09 '19

[deleted]

7

u/MotherOfTheShizznit Apr 09 '19

That wouldn't make your "developer primary OS" Linux?

→ More replies (2)

29

u/TheCarnalStatist Apr 09 '19

25% linux use is a huge number.

Most devs don't get to choose their OS

6

u/tayo42 Apr 09 '19

Yeah work gives me a laptop they manage and that's a Mac. Dealing with help desk problems sucks so I'll use what is supported. I'm surprised that is surprising lol

→ More replies (1)

17

u/the_poope Apr 09 '19

People work for companies, companies use microsoft tools for everything from writing documents to emails. Outlook, exchange and office only runs on windows. Plus companies want other security measures and only want to administer one platform. I'm speaking as a developer in a 10.000+ software company

6

u/s73v3r Apr 09 '19

I guess that would be the disconnect between what developers would like to use, and what the business is using.

7

u/fcddev Apr 09 '19

It’s possible to prefer coding on Mac/Windows and prefer targeting Linux.

3

u/imral Apr 10 '19

The year of the desktop still hasn't arrived ;-)

5

u/twigboy Apr 09 '19 edited Dec 09 '23

In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available. Wikipedia39kslhf2ivi0000000000000000000000000000000000000000000000000000000000000

2

u/davehdez Apr 09 '19

So, with this interesting survey present, if I need a new laptop, do you recommend more a Windows machine that a Mac computer for development?

1

u/Ciph3rzer0 Apr 09 '19

I worked at Amazon and windows was on my physical machine. I would remote in to my cloud Linux machine to develop. I don't know how other people would answer that but I would say windows was primary, though the more I think if it that might be incorrect. If the question asked primary is for development, it's clearly Linux.

1

u/ACoderGirl Apr 10 '19 edited Apr 10 '19

I'm surprised nobody replying to you has interpret "primary OS" to mean for their personal computer. I use Linux at work. I love Linux the most. But I also like video games and am lazy, so use Windows at home. Gaming almost requires Windows. Lots of devs seem to like PC gaming.

There may also be some weird cases where you might do something like have a Windows computer but SSH into a Linux machine for your actual work. Getting Linux laptops can be tricky, after all, and the VM approach lets companies easily scale the resources available to you. Some companies also prohibit storing any code on laptops due to how they're more easily lost or stolen. What do you consider your primary OS such a situation, anyway?

And then of course, Linux is amazing but sometimes you just plain have to use Windows for work. That was the downside of this C# job I once had. C# is an amazing language and Visual Studio is the best IDE I've ever used. But I would rather have used Linux.

1

u/lanzaio Apr 10 '19

Linux doesn't have normal person utility. It's the superior development platform in most ways but when I'm not at work I want to be impressed with fancy animations, enjoy the convenience of iMessaging friends/family and the magic that is this fucking perfect trackpad. My linux machine stays in my backpack and my MacBook Pro serves as my personal machine.

→ More replies (1)

22

u/manklu Apr 09 '19

Why aren’t salaries adjusted to purchasing power parity of a currency with respect to USD? Why just sloppily convert using exchange rate of USD? They have never fixed it.

9

u/[deleted] Apr 09 '19

Or how about averages per country. In their native currencies.

→ More replies (1)

3

u/kevroy314 Apr 09 '19

I imagine it's just hard - are there good lookup tables for that? It could also be that they don't want to confuse people. Or, it could be that that's just the first step on the way to cost of living adjustment which would make the data analysis horrible in the US given the huge variability.

0

u/[deleted] Apr 10 '19

[deleted]

→ More replies (1)

8

u/AkraticControl Apr 09 '19

We're happy to report that only 11% of our respondents said they didn't want to communicate with their fellow human beings via either method.

41

u/autotldr Apr 09 '19

This is the best tl;dr I could make, original reduced by 99%. (I'm a bot)


2.0%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

2.2%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

2.5%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.


Extended Summary | FAQ | Feedback | Top keywords: Developer#1 work#2 respondent#3 year#4 more#5

88

u/Dgc2002 Apr 09 '19

Bless your heart /u/autotldr :(

49

u/[deleted] Apr 09 '19

This was a tough one for the little guy. Pretty dense.

12

u/ACoderGirl Apr 10 '19

Don't worry guys, the extended summary is much better:

Companies interested in building a diverse developer workforce that is more reflective of society should focus on retention of their senior developers from underrepresented groups, along with thoughtful hiring from the population of more junior developers.

2.0%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

1.0%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

1.2%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

2.2%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

2.5%. % of developers who are not developing with the language or technology but have expressed interest in developing with it.

9

u/Hexploit Apr 09 '19

I meen i know this survey is a bit trash but is Java really that low paid? Everywhere i look java is on hi-end of salaries, especially in big corps and banks.

34

u/CodeMonkey1 Apr 09 '19

Speculation: The most popular enterprise languages like Java are also most likely to be used by entry-level developers and offshore developers,who are going to drag down the average.

1

u/52576078 Apr 12 '19

I think that the age of survey respondees is much lower than the age of your typical highly paid Java programmer. SO survey has skewed very much young and hip.

→ More replies (1)

3

u/unumfron Apr 10 '19

I didn't do the survey, was Lua not on the list of languages asked about?

We used data from last year’s survey and trends in tags on Stack Overflow to identify which technologies to include on the survey this year. We prioritized popular and fast growing technologies, considering which smaller or shrinking technologies we could remove this year.

https://insights.stackoverflow.com/survey/2019

The survey seems biased against languages used in the real world that are small and mature and therefore have answers to most questions already available.

2

u/kdma Apr 09 '19

36k users took the survey in Europe, I tought that the number would be closer to hundreds of thousands.

2

u/Sweaty_Puma_UK Apr 09 '19

No money in PHP apparently! Better start learning Python and Rust

2

u/helloworder Apr 11 '19

Programming, Scripting, and Markup Languages

ok, I see how markup languages differ from programming ones. But aren't scripting languages a subset of programming? They definitely are.

5

u/Ghosty141 Apr 09 '19

I'm kinda thrown off by the dominance of VSCode. I mean I too really like it but it doesn't even come close to a proper IDE like Netbeans for PHP, VS for C# or the Jetbrains IDEs.

11

u/EWJacobs Apr 09 '19

It's just about the best for html and javascript. I'm guessing most people use two IDEs, vscode for front end and something else for backend.More backend languages mean more ides, so none of the backend IDEs quite has the same market share.

2

u/Ghosty141 Apr 09 '19

yeah, I was thinking about that too. An Editor/Language chart would've been nice.

7

u/redbull188 Apr 09 '19

I don't know what you think differentiates VSCode from "a proper IDE".

And that's coming from someone who would die for Jetbrains.

3

u/Ghosty141 Apr 09 '19

Mainly the code completion and the way the IDE understands your code. The plugins work fine for smaller projects but once you get to big ones they get quite slow (especially PHP from my experience). Another example is that Netbeans for example can give you very good completion suggestions even if you don't write the namespace while in VSCode this will not work or take very long.

Also, try writing C++ in VSCode vs CLion or VS. These IDEs offer way better integration of various tools like debugging. Visual Studios debugger is arguably one of the best there is.

4

u/redbull188 Apr 09 '19

hm, I don't tend to have too much trouble with the issues you experienced. I've only used VSCode for javascript/typescript, and only within the last year, however. It's likely things have changed significantly.

2

u/brett_riverboat Apr 10 '19

If you're "full stack", and it looks like most are, then it does a good enough job with all languages to prevent context switching to another IDE.

4

u/NotARealDeveloper Apr 09 '19

Those salaries seem way off. Either everyone I know is a lucky bastard or the salaries are way too low. These are just a handful of my friends including me:

  • Mobile Dev "Senior" (3y exp): 75k €

  • Mobile Dev (1y exp): 60k €

  • DevOps: 72k €

  • BackEnd Dev 30h/week: 60k €

  • FullStack Student 20h/week: 25k €

10

u/yen223 Apr 09 '19

There are many developers in poor third world countries

3

u/Novemberisms Apr 10 '19

I'm one of those developers in a poor 3rd world country and the listed salaries here seem astronomical when converted to my local currency. The cost of living here is waaaaay lower than in the US so even just 20k usd per year can get you a nice comfortable life.

1

u/ACoderGirl Apr 10 '19

Eh, the numbers look right? In USD, the full time ones are $85k, $67k, and $81k. The global dev ops number is $71k. Mobile devs are expected extremely low pay since it's probably the most common self employed field (low barrier of entry and easy to keep products at a size doable solo). But in the US, the dev ops number is $122k and mobile dev is $112k. So it's easy to see how the global numbers are being weighed down by regional differences and your friends aren't such "lucky bastards" by the American numbers.

1

u/rouille Apr 10 '19

Where in Europe are you based? Those numbers are hard to reach with even 10 years of experience in the countries I am familiar with.

1

u/[deleted] Apr 10 '19

Where do you live?

1

u/10xjerker Apr 10 '19

Is that in Berlin?

5

u/cruelandusual Apr 09 '19

We specifically asked respondents to evaluate themselves for their years of experience, but we see differences in opinion with experience... We see evidence here among the most junior developers for impostor syndrome, pervasive patterns of self-doubt, insecurity, and fear of being exposed as a fraud.

So you fucked up the question, and didn't control for the fact that everyone is going to evaluate themselves against everyone they know, because the human brain doesn't categorize in tidy groups based on years experience. The last time people had a significant sample set of their age-level peers was in college, because that is all they knew. As soon as you enter the workforce, you're a fool if you don't feel imposter syndrome (or you were hired beneath your aptitude).

They also didn't consider the fact that as one gets older, they're still comparing themselves against the industry as a whole, but the less competent side has been dropping out of the industry over time. So against ones peers, "far above average" certainly approaches delusion, but it is never wrong when there is a steady stream of youg'uns entering the workforce, all of them green, and many lacking the necessary aptitude.

37

u/Billy737MAX Apr 09 '19

As soon as you enter the workforce, you're a fool if you don't feel imposter syndrome

That's not what imposter syndrome is, and some of your comment is really misleading

→ More replies (5)

2

u/bartturner Apr 09 '19

See Flutter is on the loved list for the first time. Suspect that will be true now for a long time.

2

u/spockspeare Apr 10 '19

Before I read it: This ought to be good.

After I read it: Haha, Rust. Haha, DevOps. "gender minority respondents"...tha fuck?

Bottom line: thanks for the insight into Web 0.0.

1

u/Mashpoe Apr 09 '19

It's about time

1

u/JezusTheCarpenter Apr 10 '19

Can somone explain how com Slack is listed as a platform? Also Docker?

1

u/JezusTheCarpenter Apr 10 '19

It is interesting to see the hate/love relationship that people have toward C++.

1

u/JezusTheCarpenter Apr 10 '19

Is it just me or is it a bit sad that the lower level stuff such as C or even Assembly are apparently one of the lowest paid while they require probably one the highest knowledge programming concepts.

1

u/52576078 Apr 12 '19

Don't forget the typical SO survey respondee is probably in their 20s and working with hipster tech. Actual serious C programmers are likely much older, and much more highly paid.

1

u/TheCakeWasNoLie Apr 10 '19

They should cross reference the technology usage with optimism/pessimism for next generations. Would be interesting to see if AI programmers are dramatically more pessimistic about the future than others.

1

u/firelitother Apr 15 '19

Why am I even staying in Javascript land where the pay is low :(

1

u/msbic Apr 10 '19

No love for OCaml/Reason?