top | item 22396814

Ask HN: I'm away from the software industry since 2017; what has happened since?

249 points| lohengramm | 6 years ago

I used to work as a programmer. In 2017, I had to stop working because of health issues. I remember Rust was a cool project, JS had plenty of frameworks fighting between themselves, SPA was a thing albeit I was skeptical of it, and I was in love with Go. Big words like Data Science and Machine Learning were thrown everywhere. Whas has changed in this scenario? Are there new stuff I should know about? Thanks.

233 comments

order

mixedCase|6 years ago

Probably the most surprising thing for you: Go is getting generics. No exact timeline, but it's happening for Go 2.0.

Rust is seeing production use in many places and its being accepted more as the sane alternative to C for modern development of high performance software. Ecosystem still not big or mature enough to make big waves, however, but that depends on how you interpret "big waves".

SPAs are used and abused, the tooling to make a performant progressive website with them has gotten better but the know-how is not widespread enough.

React has essentially won the mindshare battle and they are focusing more on functional components. But there are other things with their own healthy niche like Svelte compiling components that manage their own DOM, Elm is still around (and still not 1.0) and it has inspired other "Elmish" frameworks.

Desktop software quality has gone downhill and seemingly everyone is using Electron.

For many companies, Kubernetes is the new normal mode of operation. You should know it, but it's still far from "the way to do things" for industry in general, mostly due to its complexity and learning curve.

27182818284|6 years ago

>React has essentially won the mindshare

Casually job hunting right now, and it is insane how much React has won to me. Like I knew it was popular, but it seems like it has an outright monopoly with the remaining 5% of market share being split among all the other alternatives.

I don't know what the actual market shares are, but when looking at open positions around the US from coast to coast, it seems to have won.

scabarott|6 years ago

>Rust is seeing production use in many places and its being accepted more as the sane alternative to C for modern development of high performance software

Not quite there yet.

pottertheotter|6 years ago

>React has essentially won the mindshare battle

I'm looking to learn a front-end framework and had a few people recommend Vue. Sounds like maybe I should go for React instead? In case it matters, I'm not looking to be a front-end developer. I'd mainly like to improve some small projects I have. And get the most value out of my time learning a framework.

lohengramm|6 years ago

Go getting generics is definitely surprising. I used to even argue in favor of Go the way it is.

If there's one thing I got from these responses, is that I should look at Kubernetes.

Thank you for your answer.

aganame|6 years ago

Kubernetes is the thing everyone will be moving away from in the next 5 years because it was too complicated for their purposes.

The unfortunate ones that don't manage to move from it will be maintaining 5 year old kubernetes installations.

melling|6 years ago

How popular is React?

I haven’t done much web development in several years myself.

Typescript is mentioned a lot on HN. Saw ReasonML mentioned recently. Vue.js has a movie on the way.

As far as Web frameworks go, what’s popular seems to change every couple years.

mrfusion|6 years ago

Why kubertetes vs docker? And why rust vs D or golang ?

analognoise|6 years ago

"Rust is making waves!"

Rust ranks lower than Delphi on TIOBE, isn't used in a single aerospace, defense, or critical application. Ada has been for almost 40 years, is backward compatible to Ada '83, and has a proof subset (SPARK).

Those waves look more like pond ripples caused by a light breeze.

How about, "Rust - now with bigger pond ripples."

threeseed|6 years ago

The most interesting developments have been in infrastructure.

AWS has started to take on third-party, open source components e.g. Cassandra, ElasticSearch, MongoDB as they run out of things to build. Expect them to continue further up the stack possibly into applications.

Kubernetes has really taken off with every cloud provider having a solid implementation. And it's getting massive adoption within the enterprise as companies look to reign in their cloud cost, simplify their infrastructure and have better DevOps. It also allows them to standardise the NFRs across multiple applications e.g. metrics, logging, security, routing which is more important than ever.

Data Science has seen massive adoption in the last few years within the enterprise space as companies go after the low hanging fruit. Also seeing lots of traditional Data/Reporting Analysts been cross skilled in Data Science and vice versa. It's definitely here to stay for the long term just without the hype.

bogomipz|6 years ago

>"AWS has started to take on third-party, open source components e.g. Cassandra, ElasticSearch, MongoDB as they run out of things to build."

I'm aware of their Elasticsearch and MoongoDB offerings but what is their Cassandra offering?

daxfohl|6 years ago

Perf is becoming more important than it had been. Rust is still around and growing. WASM is becoming mainstream. You see some people migrating away from things that require garbage collection. Edge is becoming real, with Cloudflare and Fastly doing edge functions/workers, and AWS having come out with outposts, local zones, and wavelength (deploy AWS VMs to Verizon 5G hubs).

AWS is still eating the world, Azure is doing well and growing faster in enterprise markets but devs still hate it, GCP seems mainly startup and ML loads and they have an ultimatum to become top 2 or bust by 2022.

Open source is a little under fire. AWS made a closed source MongoDB clone. I feel like things have moved a bit away from DIY toward settling on whatever the big three provide.

JS framework overload has settled down and it's pretty much React and Vue. NoSQL has too, there's still mostly the same players as in 2017 but I'm seeing far fewer new entrants. In general I'd say things have slowed down as a whole, and the level of innovation isn't what it was a couple years ago. Shiny new object fatigue has set in a bit and people just want to make things work.

Docker in production is very real (our team uses docker in production only, not dev), and k8s has the mindshare.

ML is still fairly hot, but various experts saying we're starting to hit a wall wrt ML capabilities, and others saying plow forward and see.

SahAssar|6 years ago

> WASM is becoming mainstream

Really? While I've heard of a lot of experiments and a few companies using it in production, I'd hardly call it "mainstream".

benibela|6 years ago

>Perf is becoming more important than it had been

My eyesight is becoming worse, but I read that as Perl

bpodgursky|6 years ago

> GCP seems mainly startup and ML loads

BigQuery is hot everywhere (I'd rank it as by far the most valuable GCP product). Tons of enterprises are AWS except for when they replicate their entire dataset from S3 to GCS so their BI teams can use BigQuery.

ckdarby|6 years ago

>Perf is becoming more important

Should look at BPF/eBPF. Mainly bcc & bpftrace packages that come with ~70 tools out of the box.

_xnmw|6 years ago

If you're still suspicious of SPAs, you can be sure there's still an alternate universe outside of the Valley bubble that builds server-side web apps on modern frameworks, though now we use Vue.js instead of jQuery. PHP has continued to be a top language of choice for the working class dev, and Laravel is an example of one of the most beautifully crafted (and wildly popular) web frameworks ever made.

Examples of the kind of tooling built by the community that betrays the cultish appeal of Laravel (yep, people actually make a living off Laravel-specific tooling)

- https://tinkerwell.app/ - https://laravelshift.com/

madeofpalk|6 years ago

> language of choice for the working class dev

What an incredibly strange framing.

jnbiche|6 years ago

> though now we use Vue.js instead of jQuery

You realize Vue.js is fundamentally an SPA framework, right? It's got built-in router, state management, etc. In frontend dev, those are all things that are only SPAs really need.

To people "suspicious" of SPAs: are you suspicious of Gmail? Slack? Those are typical use-cases of SPAs. What you're actually suspicious about are ill-informed devs building SPAs when they should be using simple static websites, or server-side includes, or simple progressive enhancement in vanilla JS. But none of those options are practical if you want to build something like Slack, GMail, or Google Docs, or any of the myriad other desktop app replacements we find now on the browser.

All the said, I agree that Laraval looks like an attractive framework. I haven't had the chance to work in it professionally, and probably never will, but it looks solid and with the improvements PHP is making as a language, probably would be totally tolerable and perhaps even enjoyable to work in.

EDIT: Ok, the router and state management are official, but not built-in. Fair enough. I've not used VueJS professionally before (only React, AngularJS, Backbone, and custom frameworks before them) but it's one of the appealing things about VueJS compared to React, which seems to be its major competitor presently.

npsomaratna|6 years ago

Yup - Laravel is fantastic. After many years of disappointments with PHP frameworks (Symfony - too complex; CodeIgniter/Yii - not complex enough), I tried out Laravel recently and haven't looked back since.

NicoJuicy|6 years ago

A lot of good answers here, but none seem to mention that asp.net core is improving a lot and getting traction.

Microsoft bought GitHub and LinkedIn.

Oracle is disliked like before.

eldavido|6 years ago

Have to second this. ASP.NET Core is awesome. Probably wouldn't try to learn it as a first web framework (Django or Rails are better at this), nor is it quite as batteries-included as those other two, but it has a very "grown up" feel to it I like.

Relative to other frameworks, ASP.NET Core is sort of like the tooling maturity of Java (great editor/libraries, rock-solid VM, everything typed and static) combined with the simplicity / "start from scratch" feel of Padrino, Sinatra or Flask, with the expressiveness of a really nice language with type inference, good functional primitives (e.g. LINQ). You can probably serve hundreds/thousands of customers on a single Heroku dyno or three due to extremely robust non-blocking I/O, faster code execution, and much better memory management than Python/Ruby.

Give it a shot. I really like it.

BossingAround|6 years ago

In my mind, with OpenSource being more and more well regarded, the disdain for C#, a language once Windows-only, grows larger.

Probably just a bias in my circles, as we're heavy OSS users and contributors..?

oaiey|6 years ago

I also see this. As a dark matter .NET Dev I realized that in the last 5 years C# and .NET is now treated fairly. It is widely regarded now as a valid choice with no limitations (like costs or OS).

The universal availability of debugging and intelligence in all relevant editors (Code, Atom, vim, emacs, etc) through the LSP and the related debug protocol make things easy.

heavyset_go|6 years ago

You've been spared from the blockchain and serverless hype trains.

muzani|6 years ago

I think React is "winning" the framework competition, if we're judging from number of jobs. It seems like a business decision for many people - React can make websites and apps, and it's probably easier. I haven't had enough experience to say, but it seems like Java; not necessarily the best tool, but something easy to hire for.

Flutter is also coming in hard on mobile. Also not something I've had enough experience to comment on, but there's also little criticism, which suggests it's a good thing.

andrei_says_|6 years ago

Could be that there’s also a correlation between the increased complexity of SPAs requiring more hours to accomplish less and thus requiring more jobs...

Izkata|6 years ago

> React can make websites and apps, and it's probably easier.

It was order-of-magnitudes easier than what existed when it was first released. IMO once CSS modules became common (around 2017 IIRC, so OP may not have known about it), that was when React won - we got fully-styled and functional web components for free.

BossingAround|6 years ago

React + TypeScript seems to be to frontend JS as JEE was to Java.

mrfusion|6 years ago

Dumb question but how is react better than jquery? (Im from 2010 instead of 2017 like op)

ianai|6 years ago

There seems to be a lot more skepticism towards AI/ML and especially anyone pitching their product as using it. I think the requirements to do data science as a job description have ballooned as well - we’re talking requirements for having a PhD and lots of experience.

I could be misrepresenting from just what I’ve read here but trying to be helpful. Ymmv

api|6 years ago

Block chain and cryptocurrency is another thing that's gone from unhinged hype to heavy skepticism.

chooseaname|6 years ago

Nothing has changed. It is still programming. You take some input, you manipulate it and then you do something with the output.

How you do that comes down to mostly a matter of preference with a smattering of "engineering".

ycombonator|6 years ago

In my humble opinion, frameworks and mostly hotshot languages are akin to celebrities. If I asked hey I was away for 10 years spending time in remote island and just came back to LA what changed ? Nothing changes in the main business. We’ve got few celebs come and go Toby Maguire, Lin-Manuel Miranda aka React. They still need to bring back Ahnold for Terminator (looking at you C) or Tom Cruise for MI (looking at you C++). The industry is the same, you need inputs film money and people to generate outputs that people enjoy.

downerending|6 years ago

Pretty much. The cool kids have their heads in the clouds, but still can't be bothered with correctness, reliability, debuggability, etc.

Nothing new under the sun.

dvh|6 years ago

We are running out of nouns to name js frameworks.

asteli|6 years ago

I used to troll my old housemate (web frontend guy) by saying something along the lines of "Oh, Node.JS? Yeah some people I work with use that, but they're mostly moving over to Pangolin with Clamp on the backend." (substituting Pangolin and Clamp for any other nouns)

I don't think he ever caught on.

vbezhenar|6 years ago

I feel like nothing really changed. Rust still is a cool project, JS still has plenty of frameworks, SPA still a thing, Go still a thing, Data Science and Machine Learning is still thrown everywhere. Blockchain hype is dead, I guess.

tpmx|6 years ago

SPA:s are now being overused for no particular reason, particularly by junior talents, who by now have been taught this is the one and only way to build Professional™ web sites.

The Javascript frontend scene almost literally exploded, in various ways.

Webasm got some serious traction. Old serious people like this, becuase it may eventually allow them to avoid the increasingly crazy javascript scene.

Computer vision (by means of machine learning/deep learning) got quite a bit easier to use, even if you're not a PhD in Computer Vision. Real-time inference from static photos is now easy. Real-time inference from video is still sorta hard/expensive, depending on your deployment target (embedded, backend).

Python people are still using Python even though it's dead slow.

A bunch of people moved from Java to Go and suddenly felt a lot happier.

collyw|6 years ago

I am a Python / Django guy given the choice. Python may be a slow language, but I haven't seen many places where python is the cause of the bottleneck. Rewrite stuff so that the database is doing the heavy lifting, and add the appropriate indexes and you shouldn't have any problems.

SPA's are a pain in the arse. Usually close to twice the amount of code to avoid page refreshes. Usually the apps are way slower than a page refresh as well - with lots of JSON calls to get data that would be in one server side page load.

wtracy|6 years ago

Python is pretty performant if you're comparing it to Ruby. ;-)

Python/Django is a great choice for line-of-business/workflow applications where you have dozens or hundreds of users. If you're trying to be "web scale", then Java or Go are probably better choices.

eranation|6 years ago

Serverless is starting to become less of a buzzword and more of an actual movement. I see more and more new projects start with serverless as a sane default before going the containers route. Yeah I know, serverless is not server less, it’s a marketing term, the cloud is just someone’s else computer. But I see more and more preferring someone else to manage auto scaling, load balancing, networking, have much smaller attack surface and not having to have a PhD in k8s to launch a web app.

leet_thow|6 years ago

Interviewing is a nightmare.

collyw|6 years ago

Always has been.

I had a go at my manager recently for letting people do technical tests then telling them they didn't have enough experience after. He could have worked that out before wasting their time.

twright|6 years ago

I’ve been away from tech as long as OP and trying to get back into the industry I completely second this.

jonnytran|6 years ago

Hi, I basically agree. But can you expand on this? What exactly do you (or anyone reading this) see as such a problem with regard to interviewing? Especially, anything you see that's gotten worse.

what-the-grump|6 years ago

Let's see people still can't write SQL. Most data related issues can we done in SQL. But we hit with a pandas data frame hammer and cry that it hurts instead.

Everyone is data scientist. Load Excel into python? Data science. Divide x by y, and run some algo, data science and ML.

mcv|6 years ago

> " I remember Rust was a cool project, JS had plenty of frameworks fighting between themselves, SPA was a thing albeit I was skeptical of it, and I was in love with Go. Big words like Data Science and Machine Learning were thrown everywhere."

From this description, it sounds like nothing has really changed in the past 3 years. This could easily describe today.

There have been some shifts in the fighting JS frameworks though; Vue is a big rising star, has overtaken Angular and is now challenging React for the top spot. Angular is still used a lot, but I think it's on the way out. React is still strong. Typescript is becoming standard.

Server-side rendering is big, though. People talk a lot about static sites (which can still be dynamic), and serverless (which still has a server, obviously).

Rust is more than a cool project; I have no experience with it, but it sounds increasingly like the low-level language of the future. On the JVM, Kotlin is on the rise, has overtaken Scala and Clojure and is second behind Java.

AznHisoka|6 years ago

Lots of comments about which technologies are becoming popular. what about things that have lost popularity? Ie. Ruby on Rails and Hadoop

daxfohl|6 years ago

Node, maybe. There's still plenty of it out there but more skepticism about perf and npm, and less hype that it will be the great general unifier of front and back ends.

They were probably equal in 2017, but now go seems to have far surpassed it in terms of server side relevance.

badpun|6 years ago

Hadoop is still strong, but now that it's matured, the jobs pay a bit less (as it's easier to hire).

downerending|6 years ago

Perl has declined quite a bit further.

Ididntdothis|6 years ago

A lot of noise but fundamentally it’s all the same.

njharman|6 years ago

Different perspectives; being in the industry for 25+ years, I didn't think being away 3 years wasn't long enough for much other than names and fads to have changed.

benibela|6 years ago

Kotlin has replaced Java for Android development

This month was the 25th anniversary of Delphi, but I guess that is not relevant for the industry.

tootie|6 years ago

I think DevOps and cloud services have had the most movement. Kubernetes is seeing rapid adoption as is TerraForm. I'm also seeing a bit of whiplash where enterprises are getting pretty comfortable going all-in on their preferred cloud vendor and just diving into proprietary fully-managed services. AWS is still tops, but Azure is making huge inroads.

Also, everyone has given up on chatbots. Voice assistants are increasing in penetration, but they're just defaulting to transactional modes and not conversational.

imtringued|6 years ago

In the JVM space there are now new web frameworks that specialize in Microservices. The advantages they offer are very low memory usage, better performance, fast startup time and finally the ability to generate a native executable via GraalVM [0].

[0] A lot of JEE Frameworks heavily rely on reflection and other dynamic features that cannot be used in a native image.

tonyarkles|6 years ago

I admit I only dip my toes into the Java ecosystem occasionally. How low is low memory usage? The last microservice-oriented Java framework I used was Spring Boot, but I don’t know that I’d call it lightweight.

ellius|6 years ago

Any of those frameworks that you endorse particularly?

oaiey|6 years ago

Jakarta EE has officially taken over the Java EE spec, tlc, ...

cellis|6 years ago

Frontend hottest: Next.js/Typescript/React w/ hooks.

Backend hottest: Rust, Graphql is gaining adoption at the enterprise level.

Edit: ML is still very hot but tough to get a job as a Data Scientist without actual experience.

dfgfdg|6 years ago

nextjs? whats that

you meant "nestjs"?

fourier_mode|6 years ago

AMD is giving Intel a tough time! Checkout the new Ryzen series processors.

anoncow|6 years ago

I hope your health is better now. Stay strong.

verdverm|6 years ago

Kubernetes has become important

Experiments with new "open source" licenses are unknown

Low code has entered the hype frey

collyw|6 years ago

We moved from one big box to Kubernetes. Now we have a load of kubernetes related problems to fix.

mister_hn|6 years ago

C++ is getting Modules and Concepts in its newest standard (2020) version, bringing more simplification and making it even more modern and as easy as other languages. The compile-time programming is even more powerful than before

aloukissas|6 years ago

Elixir is now fully mature (almost at v2.0) and probably the best all-round language, with a super powerful web framework (Phoenix) and a very rich ecosystem. Highly recommend playing with it!

NicoJuicy|6 years ago

Microservices are the new hype with related tech. It's DDD with a new jacket, requires a devops team and it has some interesting concepts though.

Almost no one has a decent implementation for micro-frontends. Although ING bank released a nice framework related to this - https://medium.com/ing-blog/ing-open-sources-lion-a-library-...

actf|6 years ago

The first rule of DevOps is that if you have a DevOps team then you're not doing DevOps.

tjpnz|6 years ago

Can't speak for the industry as a whole but a lot of companies are moving away from dedicated DevOps teams and shifting the responsibility onto developers. The previous DevOps team in many cases still exists but has been rebranded to SRE.

ryandrake|6 years ago

Just a nit pick, but maybe the title should be updated to specify the question is about “web software” rather than software in general, since the question and most of the answers offered are pretty narrowly focused on web technology and ML and not software in general.

Dowwie|6 years ago

Rust has grown tremendously in the last few years. People are using it as a general purpose language, from Unix command line utilities to industrial IoT services. Greenfield projects are using Rust as are next generation refactoring projects. Game development, multimedia, and even data scientists are showing increased usage. Embedded adoption is growing but at a slower rate. I'm not going to drop names until announcements are made but companies that have used Go for flagship products are no longer doing so. They're rewriting in Rust. Healthcare startup(s) who are building systems to compete with Epic are using Rust. Government contractors working on intelligence systems are also using it.

lbj|6 years ago

AI is still thrown, investors seem to like it.

React is performant now, so if I was you I'd take a good hard look at Clojurescript / Reagent / Porting those to React-Native.

And welcome back, good to hear your health problems are sorted!

jamil7|6 years ago

Kotlin is now preferred for Android development. Apple has embraced FRP and introduced it’s Combine framework as well as SwiftUI, a declarative React-ish view framework for all it’s platforms. Swift got module stability and looking towards server side and cross platform development. Google is pushing Flutter pretty hard and trying to find a place for dart, it looks promising but nobody is using it. React Native is being used heavily by startups and small shops but big companies are still building native apps. PWAs are getting better but still have a way to go.

thrower123|6 years ago

I'm scratching my head to think of anything really significant. It's a bit of a stagnant period, albeit with lots and lots of churn, but all that churn hasn't really amounted to much.

abacadaba|6 years ago

still have to support ie11 but no one cares about 8/9 anymore

arrty88|6 years ago

JSX in favor of HTML has won. Compiled server side languages are the future. Everyone writing untyped is converting.

purplezooey|6 years ago

I got one. Hadoop seems to be dead. Cloudera will be a penny stock and MapR had a very strange exit.

qatanah|6 years ago

Angular - Still lost track w/ their versioning. React - More popular JS Postgres - Getting better and better Svelte - Might make it. K8s - Too much stuff going on. Jump w/ care.

arrty88|6 years ago

MacBooks are still all the rage even with the crappy keyboard.

swiftcoder|6 years ago

And now you can even buy one with the non-crappy keyboard again.

trickledown|6 years ago

Nothing - oh I forgot there is 8 new Javscript framwork this week. It's been a couple of weeks since I checked but there must be a new language or 2 out there.

sgammon|6 years ago

Basically nothing

s4ik4t|6 years ago

Java release cycle was changed. Now, it's being released every 6 months.

Windows 7 and Python 2 are officially dead now :)

ch1lang0|6 years ago

JavaScript, Java and PHP still suck.

craigkilgo|6 years ago

Nope, I think that about sums it up.

booleandilemma|6 years ago

Serverless is getting bigger.

oaiey|6 years ago

But no longer a silver bullet. Costs to be calculated.

city41|6 years ago

Svelte is slowly but surely growing and gaining attention. I think more than any other framework it has the potential to really challenge React in the coming years.

https://svelte.dev/

ergo14|6 years ago

That's not what npm stats show. Rich is good at marketing though.

Scarbutt|6 years ago

Java's market share is declining fast.

Ruby and Clojure are dead, literally for Clojure, most libs are from >7 years ago.

Javascript(and TS) and Python are the tools of the trade to achieve most common things.

Devs are starting to realize how they got fooled by Rust's marketing/hype train for general purpose programming/exploration/prototyping and productivity because it's too restrictive and its compile times are atrocious.

A more accurate Rust slogan:

A language empowering everyone to build reliable and efficient software at a very high cost.

Which is fine is you really need that efficiency.

MangezBien|6 years ago

This seems like an answer from someone who filters the industry through Hacker News.

Java's market share is still huge. Clojure never really had a big market share and Ruby is still very popular.

kanzenryu2|6 years ago

Clojure is more of a case of stability rather than death. Most libs have not needed updating in 7 years. Compare that to other languages which frequently "trigger the libs" ;-)

fulafel|6 years ago

I think most Python, JS, Java etc libraries are "dead" in this sense that you lament about Clojure. The exceptions are the very recent languages. It's natural, most libs don't become popular and flourishing open source projects.

It seems to me Clojure ecosystem is in good shape, a lot of new libs keep coming out and there's a healthy & growing actively maintained set of libs. The Clojure way of data-centric APIs also means that stable libs don't need to be tweaked often to keep them working while the surrounding world changes. In the early days there were more hobby projects published and less serious use, currently the user base is more tilted towards inhouse business software. I grant that it would be cool if there were more stuff like Overtone or Quil from the early days happening now..

threeseed|6 years ago

Should clarify that first statement.

Java market share is declining but the JVM is still as good as ever. Instead everyone is moving to Kotlin and Scala.

Dowwie|6 years ago

Some people won't get past the initial learning curve. It's unfortunate because Rust is a joy to work with.

endemic|6 years ago

My company still uses Ruby/Rails. It’s just so easy.