
State of Software Engineering in 2020 - soygul
https://quanticdev.com/articles/software-engineering-in-2020
======
diggan
Everyone always list the "top programming languages" or the "fastest growing"
ones. I'd like to see the opposite, the "fastest losing/shrinking" ones, would
be a interesting list to see which languages people are suddenly using less
off.

~~~
mdgrech23
you can infer this from graph - it's ruby.

~~~
diggan
No, I think ruby would be the fastest shrinking language of the top languages.
I want the fastest shrinking language of all of them, not just the top ones.

~~~
rafiki6
I'm curious what you would be looking for in that data. Growth rate is
relative. So my view of it is if a programming language has 100,000 users but
another one has 10,000 users, a 2% reduction of users in one is a lot more
meaningful in one over the other. One indicates a severe reduction in
popularity, whereas another could just be a blip over time.

Again, this isn't meant to be antagonistic. I'm genuinely curious what you
intend on doing with stats overall rather then top languages.

~~~
diggan
Not looking for anything in particular really, just curious. Both absolute and
relative numbers would be interesting to see.

For example, if a language has 10 users and 5 stops using it, that's
interesting. If a language has 10000 users and 5000 disappears, that's also
interesting. If a language has 3 users and 1 stops using it, that's too
interesting.

------
agentultra
Nice work, a lot of effort and research. In addition it might be worth
checking out the Software Engineering Body of Knowledge [0] maintained by the
IEEE as well.

[0] [https://www.computer.org/education/bodies-of-
knowledge/softw...](https://www.computer.org/education/bodies-of-
knowledge/software-engineering)

------
williamdclt
There's interesting data but the personal opinions seem weirdly shallow.

\---

"I was predicting that once all good features of TypeScript end up in
JavaScript itself, it would be discarded just like CoffeeScript"

There's almost no "feature of Typescript" apart from typing. We have "?." and
"??" now, but that's almost it? Building features on top of JS has always been
a non-goal.

Also, "My thoughts on TypeScript did not change, of course" \- why "of
course"? It's nothing obvious, and revising your opinion is always wise

~~~
soygul
I would expect more things (especially on typing and classes) to be ported to
JS. That's what I meant.

At least, private/static fields, optional chaining & null coalescing (as you
pointed out), default parameters are now in JS (almost). I'll add them to the
article to make it more clear.

~~~
diggan
Personally, I'd prefer it if both typing and classes was not in JS, as the
problems they solve can also be solved in other ways. Now I already lost the
battle around classes but if types somehow becomes mandatory in JS proper, I'd
probably leave JS behind me. Now, mandatory typing will never happen in JS and
I already kind of left JS behind for ClojureScript, so guess I'm in luck
there.

------
ryanmarsh
The "Top Programming Languages" slope-graph with gradient is chart-junk and
makes my eyes bleed. There are spurious emotional comments throughout.

 _However, it is sad and somewhat surprising to see South America and Africa
so far behind._

Who is surprised that the continent of Africa lags behind? How could anyone,
at this point, be surprised by the struggles faced by people across the
continent of Africa?

~~~
soygul
Those two combined have a population of 1.6B. Obviously one would expect them
to be behind but having less than 1/3rd of contributions from Europe alone.
That is unexpected to me.

------
collyw
This seems like a crappy version of the Stack Overflow survey, with less
information overall.

------
christiansakai
What does it mean for non programmers and future of economy for non
programmers? I refuse to bow to the notion that everyone should learn to code
or become programmers because trucking jobs will be gone.

~~~
throwawayjava
As white collar automation starts to hit hard over the next 5-10 years, the
number of desk jobs will massively decline. Also, most of the remaining people
who work desk jobs will be doing some sort of programming.

 _> I refuse to bow to the notion that everyone should learn to code or become
programmers..._

Why?

Most programming isn't as hard as people seem to think.

I used to think that a perhaps some really smart middle schoolers can learn
enough about programming to build a simple CRUD-based web app: a bit of Python
or PHP, just enough SQL (the idea of tables, columns, rows, and cells; SELECT,
UPDATE, and DELETE statements), and just enough HTML/Javascript.

However, after doing a few semester-long middle school enrichment activities
with randomly (not self) selected students, I am now relatively certain that
_EVERY_ "normal" middle schooler can learn enough Python, SQL, and
HTML/Javascript to build a CRUD web app.

 _> ...because trucking jobs will be gone._

Driving a truck is quite a bit more difficult than people seem to think.
Frankly, I'm fairly confident that truck drivers will be better off than your
average white collar worker, even if trucking is completely automated.

In the world where "everyone at a desk does some programming", any properly
educated person within a std.dev. or two of average intelligence will be fine.
The only question is whether there will be enough work to go around.

~~~
Someone
_”any properly educated person within a std.dev. or two of average
intelligence will be fine.”_

I don’t think that is true even today.

[https://en.wikipedia.org/wiki/68–95–99.7_rule](https://en.wikipedia.org/wiki/68–95–99.7_rule):
_”in a normal distribution […] 68.27%, 95.45% and 99.73% of the values lie
within one, two and three standard deviations of the mean”_

So, your claim is that only the bottom (and, possibly top) 2.5% of the
distribution need to worry. That corresponds with IQs of below 70/above 130
([https://en.wikipedia.org/wiki/Intelligence_quotient](https://en.wikipedia.org/wiki/Intelligence_quotient))

Also
([https://en.wikipedia.org/wiki/Intelligence_quotient#Job_perf...](https://en.wikipedia.org/wiki/Intelligence_quotient#Job_performance)):
_”The US military has minimum enlistment standards at about the IQ 85 level.
There have been two experiments with lowering this to 80 but in both cases
these men could not master soldiering well enough to justify their costs”_.

~~~
throwawayjava
Yes, 2 full standard deviations would be the higher (ie, lower) extreme of my
"within a std.dev. or two" ballpark.

I use that ballpark because I'm told it's (very roughly) the population that
my students were randomly selected from. My methodology isn't perfect, to be
sure, but I'm not pulling numbers out of thin air :)

The specific criteria is that none of my students had an IEP. And, by
definition, everyone more than two standard deviations from mean had an IEP.

Now, probably there are a lot of students with IEPs who are less than two
standard deviations from the mean. Hard to know who those students were in
terms of the IQ distribution. Probably a lot of them are on the lower end, but
possibly learning disabilities are more smoothly distributed than that. And I
also don't know how many students were excluded, so even if we knew where to
concentrate their mass in the IQ distribution, it wouldn't help.

It's worth noting that this means I also never worked with students who tested
_above_ two standard deviations from the mean. "Gifted" students had their own
special education that ran concurrently with the period of the day when the
enrichment activities were done. I guess the assumption is they'd be fine, but
I'm told by some teachers that's not necessarily the case.

------
evmar
"TypeScript adds a great deal of complexity both in tooling and dependencies,
and I do not think that it is worth it."

The subjective parts of that statement are the author's opinion and fine
enough, but I am confused by the "dependencies" part. TypeScript is a single
self-contained dependency. Especially in the context of the larger web
ecosystem where to do almost anything else you do need a million dependencies,
I find this remark pretty confusing.

~~~
soygul
Reference is to the type definitions that you mostly need separately for your
dependencies:
[https://github.com/DefinitelyTyped/DefinitelyTyped/tree/mast...](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types)

Obviously this is not obligatory. Also I agree, the statement is not clear so
I'll add above point to the article.

------
cuddlecake
As a personal anecdote, I found that changing career to carpentry would likely
improve the state of engineering for me personally.

Not quite sure though, IoT would surely ruin my day eventually.

------
pxtail
Damn, end of the year already? huh, time flies...

~~~
iamricks
Soon we will be seeing "Top programming languages to learn in 2021"

------
einpoklum
It looks like this guy is "looking for the penny under the lamp-post". To him,
FOSS = stuff on GitHub.

