Ask HN: What are the most interesting emerging fields in computer science?

381 points by Norther ↗ HN
Hey HN,

What do you think is the most interesting emerging field in Computer Science? I'm interested in PHD areas, industry work, and movements in free software.

182 comments

[ 3.3 ms ] story [ 233 ms ] thread
Computer Vision.
Emerging for 50 years, and still going strong
For computer vision without context (2D images standing alone), we have some nice solutions already, but I think that as long as we keep using the same methods, it will be insufficient for many purposes. Because the truth is that projection of images to a square, 2D grid, and given the complexity of lighting, put us at a situation where we have insufficient information.

And we are already seeing this being heavily developed in autonomous driving systems and others, but I feel like the biggest computer vision applications will require much more information than a 2d image can offer. Instead, recognising objects when you have 3d information seems much more reasonable to me.

I think the core disciplines are the same, sometimes just some "updates" are happening. Like AI or CV in the last years.

The big changes are happening in engineering (software and hardware).

Many things that were known for decades are now accessible for a broader audience.

Functional correctness, formal verification and automated bug fixing.
AI, machine learning, and neural networks are, of courwe, booming, but I consider them to be hyped.

I consider type theory and formal verification to be more promising (but more academic). Distributed systems and everything having to do with parallel and/or high-performance systems is a good midway between what the industry likes and what's interesting from an academic point of view.

Funny, distributed systems supervisors often warn their students that there is a huge disconnect between theory and practice and if they really want to be in the field.
I was amazed when I took a distributed systems class what exists or is known about but is almost never used. Still, an expert there is probably pretty industry friendly, and someone somewhere must have a distributed objects/CORBA system that can't be dismantled.
Haha.

Formal verification has been around for 40/50 years and we can't say it is a wide success from a industrial point of view. It has some achievements in terms of results/methods and projects checked, but on a daily basis, pretty much no one uses it. We are ages away of having every programmer understanding formal verification and having all programs verified/proved.

Type theory is in a similar situation. Many issues in code could be solved with basic typing algorithms but people and companies favor languages with poor/no typing (python, Javascript).

Not so long ago the same could be said about AI.
And perpetual energy! Guess we, as humans, just aren't great at predicting the future, regardless of what the last 50 years looked like.
Rust looks like a step towards practical formal verification just because of its design philosophy. I think what we're doing is making engineering languages more and more verifiable as research languages become more and more expressive. Eventually they'll meet in the middle and we'll have formal verification in "real life."
No progress in language theory can fix the fundamental problem of software verification: you need a formal specification to have anything to verify. Who wants to write not only a detailed spec for their code, but a spec that has well defined semantics in some kind of logic? Nobody, that's who. There are very few properties that you care about that are both sufficiently easy to encode in a formal specification and not provided automatically by a safe language.
In the logical extreme that can't be the case, because a fully debugged program plus a machine to run it on actually satisfy the definition of a formal specification. Deciding what you want your program to do is the eternal burden of programming, but maybe there's a way to make formal specification at least as easy as regular programming.
But then you already have a perfect implementation that you somehow made without the use of formal verification. But you want to introduce formal verification because translating real-world requirements into a formal language is hard enough that you can't be sure of correctness...
Even more, software development now involves an assumption of the average manager or customer that some extra feature can be added halfway through.

Is the customer going to be happy with "we've billed $X for a formal spec and that means that we can't make the change that you want, that seems simple without $Y dollars for changes to it and the code." Notice that software methodologies have gone the opposite direction here, with Extreme Programming basically aiming to make all of the programmer's activities revolve around exactly what and only what the customer has actually requested.

But the features are not arbitrary. The vast majority of features are common among many applications, and a template formal spec can be built to satisfy those features. Once formal spec of the building blocks is created, there will only be the small portion of unique code that needs a unique formal spec.
One example of something you'd always like to verify is, "this code does not have undefined behavior". This could be the key to obtaining C speed without C's lack of safety. In fact, in some possibly-formalizable sense, it's probably the ONLY way to do that.
The biggest barrier to adoption of formal verification that I have seen as someone just starting in the field (working through Software Foundations and have a number of projects planned with SPARK, Frama-C, and LiquidHaskell) is the lack of groundwork. Verifying just your own code is complex enough as it is but working with libraries without any clear specification of their interfaces and behaviours makes this so much harder.

I think there is real value in having verified libraries or at least libraries with well defined specs so that interfacing with other code wasn't so tedious. I think this issue is starting to be overcome with regard to the usage of strong type systems. Truly strongly typed languages are finally getting the libraries and communities built up so that they don't seem quite as daunting.

(comment deleted)
To me, personally, the biggest barrier was lack of a proper introduction with a lot of examples.

I try to break this barrier a bit with my upcoming book: Gentle Introduction to Dependent Types with Idris.

I am very interested in this area but it is impossible for newcomers to get a grasp of it without too much digging. Logical Foundations was OK but I was still missing the theoretical explanation ("why does this tactic work? it is magic!").

So with accumulated knowledge from IRC, forums I hope to address this.

Ooh I'll check this book out once I get through the pile of stuff I have right now.

And as you noted there definitely is a lot of "magic" when it comes to the inner workings of theorem proving tactics. I'm slowly figuring all of that out but like you said it definitely takes time and digging at the moment.

> Formal verification has been around for 40/50 years and we can't say it is a wide success from a industrial point of view. It has some achievements in terms of results/methods and projects checked, but on a daily basis, pretty much no one uses it.

Formal verification is an essential part of mission critical applications. Therefore, even though they might be few in number - their impact is pretty significant and "wide".

That’s interesting you say that. I’ve known two engineers who worked at JPL and they said that no teams did anything close to formal verification. It’s an incredibly difficult bar to meet
She/He is right and I was a bit cynical in my answer. There are some real industrial projects that used formal methods. I have in mind Airbus with ASTREEE, the Meteor subway system (Paris' subway line 14), Windows' drivers with the SLAM analyzer...

Also, JPL released its model-checker Java PathFinder and hosts every year the Nasa Formal Method conference so I'm pretty confident that at least someone at NASA is interested in formal methods =)

We're definitely moving in the direction. Someone already mentioned Rust, and Typescript is gaining traction in web dev. Banks like Barclays and Standard Chartered already have Haskell teams, and I've noticed more and more Haskell jobs popping up over the years (in London). Scala is already realtively popular.

Formal verification is used in some niche areas (BAE, Galois). Proof Engineer is a real role some companies are looking to fill.

Machine learning has been around with no success from an industrial point of view until very recently. Until fairly recently, nobody cared and few understood big O notation.

Recent prog languages have added syntax to avoid issues such as "off by on error" (generator etc...), TDD is slowly becoming a standard everywhere. The next step to improve quality in software is formal verification IMO. There is quite a bit of research in that domain and even some academic program languages integrating it within their syntax.

> but on a daily basis, pretty much no one uses it.

Maybe not for software but certainly in the hardware world formal verification is common place with mature tools available from multiple vendors.

You're absolutely right, and that's exactly why I am enthusiastic about these fields. I think there is a ton of potential, and that these fields will be booming once the industry discovers this.

Of course, the point is not to prove every program correct. But it should be feasible to prove security-critical parts correct, especially for large companies.

The biggest problem is that formal verification is about as un-sexy as it gets, since it has no applications an sich.

Quantum computing?
Yes. Once we build a scale-able quantum computer it will revolutionize so many fields. Simulating chemistry suddenly would become practical. We could broaden our understanding of biochemistry and materials science without designing fickle experiments, just by simulating things. This would be a real game changer and will probably lead to a bunch of breakthroughs on the way to protein-based nanotechnology.
Fully Homomorphic Encryption
Computer Networks
This Internet thing is going to be huge-- but it's going to tear us apart. Mark my words.
Blockchain, though no one on hn really understands it. :D
Why do you think so? The math behind blockchain is pretty easy and well explained.
Math is a very small part in what is so good about the blockchain. people don't understand the significance of decentralization.
It's an unfortunate characteristic of many in the cryptocurrency community, that they think anyone who doesn't support crypto simply doesn't understand it. And by extension, as soon as they do understand it they will become supporters.

No. There are those who do understand blockchain and still don't support it. A great example is professor Jorge Stolfi. He is one of the more prominent detractors, and yet he routinely displays a very thorough understanding of the technology.

I tried looking up the arguments of Jorge Stolfi, however my Spanish is insufficient.

I don't claim to contradict that he is against the concept of cryptocurrencies or blockchain in general, but I fail to find evidence that he is against the technology in general.

I do find evidence he is opposed to Bitcoin in specific, or at least warns against it.

Could you point me to English writings where he argues against blockchain/cryptocurrency in general?

Perhaps the reason why your Spanish was insufficient for his writings is that his writings are in Portuguese ;)

Here's his primary English writing on Bitcoin and cryptocurrency in general (not necessarily blockchain), sent to the SEC: https://www.sec.gov/comments/sr-batsbzx-2016-30/batsbzx20163...

Thanks for pointing out it's Portugese!

This critique of Bitcoin is quite short, and seems directed at Bitcoin in particular, in no way do I conclude that he is against the concepts of blockchain (say non-currency), or perhaps even cryptocurrencies that do not take on some of the Ponzi aspects.

After reading this I can perfectly imagine (but do not claim so) that he might support certain other forms of blockchains and/or cryptocurrency...

This is his reddit account:

https://www.reddit.com/user/jstolfi

He primarily posts in buttcoin, a sub that exists to mock bitcoiners. It's pretty fair to say he thinks all coins are crap, not just bitcoin.

Also, please include me in the "Understands cryptocurrencies and yet doesn't support it" bucket please :)

It's an unfortunate characteristic of many that conflate cryptocurrency and blockchain as one and the same inseparable idea. Cryptocurrency is only one application of one type of blockchain.
The thing is, 99% of readers here think bitcoin is shit, because of the go to arfuments, that bitcoin is too slow and only used by criminal and by extension, they don't like the blockchain either even though the weaknesses of Bitcoin have already been solved by many blockchains.

But they don't know that, so they keep bashing the blockchain without having any knowledge of other good platforms.

Process Mining [1]. When I programmed a rather complex logistics simulator at work I told my coworkers 'whoever comes up with a way of instantiating a simulator from data will be praised forever'. Turned out process discovery is a thing (well, one of _the_ things in PM). And there's so much cool stuff to do and being done. I'm now on the last stretch of my doctorate researching the mining of typical plans in non-competitive environments.

[1] https://en.wikipedia.org/wiki/Process_mining

Have you ever had a look into analyzing processes with a graph database like e.g. ArangoDB. Wonder if that would make sense for your needs. You can traverse along the processes, find patterns or use distributed graph processing with Pregel analyze from different angels. edit:typo
I haven't, no, but I know there are initiatives in Process Mining that closely relate to knowledge graphs, etc. and wouldn't be surprised if there are groups working on that.

I'm particularly working with the mining of plans (as in Automated Planning) in declarative process models. If I have a chance I'll look into it, thanks for the heads up

It is not about the big scale of processes that make process mining interesting. But also the tooling that comes with the field, look for example at the tool Disco: https://www.youtube.com/watch?v=pmXZQhFSv10

It provides automatic visualisation of graphs, analysing of bottlenecks, and lots of analytics. While you only need system logs linked to an id.

Low power sensor and associated networks.

Its hard to do and has lots of real world applications.

I think most interesting computer science fields are actually application of CS in other domains.

Science changed a lot in the last decades, moving from a genius in a room looking at the data and coming up with grand theory to have vast amounts of data that no single human can make sense of. The work of the computer scientist is to quickly understand problems from various fields then solve it using tailor-made algorithm that leverage the prior knowledge, the data structure.

One of such interesting fields (which I'm working on), is computational biology. We're working on leveraging sparse experimental data for protein structure prediction. To do that, we end up using algorithms and ideas from different various CS fields, from machine learning, to robotics, to distributed systems. Other people are working on exciting fields like computation protein design, studying drug protein interaction in silico..

> We're working on leveraging sparse experimental data for protein structure prediction. To do that, we end up using algorithms and ideas from different various CS fields, from machine learning, to robotics, to distributed systems. Other people are working on exciting fields like computation protein design, studying drug protein interaction in silico..

Are there particular methods you use to deal with little and sparse data?

We're basically merging the sparse experimental data we get with other priors we have (the energy landscape, residue-residue contacts predicted from evolutionary data) in a Expectation Maximization kind of algorithm, where each step you get better predictions (in the sense of they satisfy the experimental data while agreeing with the priors from the problem (low energy, nice fold..).
Yes! I studied law before CS and now I learn all these algorithms which deal with questions about how to do something efficiently – and these algorithms are unkown by all these people thinking about important questions in this field.

And I think this also applies to other fields. I gave the book "Algorithms To Live By" (which is basically an overview of CS algorithms) to a medicine student and he was immediately inspiried and came up with ideas on how to apply these ideas on his research. CS algorithms are just so basically true that I think they should be more universally known.

Slightly off-topic but I wanted to ask why and when did you start studying CS after law.

I recently graduated from law school and now am an intern at a law firm. I have a strong interest for CS, and it bothered me for a long time that I went to law school instead of CS.

I'v overcome those feelings over the years and dedicated myself to become a lawyer. But your post caught my interest.

I'd be glad if you could share some of the story behind you studying cs after getting your law degree.

After my law degree I worked for a year in a big international law firm (I didn't yet had my license, so I was a kind of trainee – similar to you position right now). I realised that there is a huge interest in technical solutions to make the work more efficient (often labeled as "Legal Tech"). But there was very little actual understanding of technologie, which I think is one of the reasons why there aren't yet many real world application which are really making a difference. That was when I decided to go back to university for a CS degree.

Some learnings so far: 1) I get great feedback for my decision from other lawyers, who are genereally very interested but not well versed in tech. 2) Legal Tech feels a bit overhyped right now, but eventually it will change the field drastically. Law firms need lawyers who have technical skills. And that doesn't necessarily mean a whole CS degree, some programming skills etc. will already do it.

I personally love tech that much that I don't want to go back to a law firm to practise law, but rather actually develop technology. But for you, if you want to become a lawyer, I can promise you that you will find a fertil ground for your interest. It soon will be one of the most sought after skills for law firms. So if you learn some programming (maybe you already know some), take some online courses (there are great resources for CS online), then the next time your law firm gets offered a (as magic advertised) ML tool or needs to implement a new tech solution which really influcences the workflow, you will be the star of the firm for being a critical but competent colleague. Or if you're starting your own law firm, I think there is great potential for a more automated workflow. In your position, I would be very glad for you CS interest – you in the right field and it is the right time for it!:)

If you don't mind me asking - whereabouts (geographically) are you based? I'm hoping to get into law after a couple of years working in technology but I haven't been able to find that much information online about the meeting point of law and technology and my searches haven't found me any communities for law similar to HN for technology.
Germany. If you look up Legal Tech meetups (often hosted by law firms) you will find some law students/lawyers interested in tech. But it's still a small community. And for real techies in law, that's an even smaller pool of people.
Cool, what you said about going to do another degree gave me the impression you were probably based in Europe! I'm in the UK myself. Yeah I think that's probably the way to go, thanks for the advice.
I would love to work with you or bounce off some ideas on how to changeup the somewhat legacy legal tech
Thanks a lot for your detailed and motivating answer. Actually I know quite a bit about programming. But generally try to hide that I'm highly interested in computers. Because if anyone notices, I get asked why I chose to study law in the first place. Over the years I learned not to look like a computer nerd and how to look and behave like a lawyer. I also had some problems with interpersonal communication, but through trial and error I've become socially adept and now I can get things done.

It is really nice to hear that my skills and interest in computers won't go wasted in practicing law. I hope my firm also gets offered an ML tool where I can show my skills. For now I can navigate the document management systems with ease, use some word add-ins (contract companion etc.), I guess that'll change in time and I'll have access to more sophisticated tools.

I'm gonna go one step further with the off-topicness. Do you get much of an opportunity working within law to focus on technology?

I'm about to go back to University to study law but I would love to be able to combine Law with technology. Seems like an interesting area.

Possible jobs include:

- Working as a lawyer in a law firm and being the expert/contact person for any tech stuff.

- Working as project mananger for Legal Tech in a law firm (Magic Circle law firms are already having these jobs)

- Being a lawyer specialised in IT/tech/IP laws, which require a domain understanding.

- Working for or founding a Legal Tech start-up.

- Owning a law firm that is having an automated workflow which is specifically engineered.

Right now, there aren't too many jobs on the market. But they will become more. And I can promise you, for most of all people tech is a black box (which is also bothering people), and with it being more and more integraded in our workflows, being tech savy will become more important in virtually any job (including government etc.).

It's good to hear that there are plenty of technology focused opportunities in the legal profession. The only one I had thought about prior to your comment was specialising in IP and technology, so I will definitely look into those other avenues.
I worked for Legalzoom in the United States for about 5 years, there is a lot of opportunity for disruption, and at last count there were re 500 something startups in the US. A combo of law and tech would be awesome, that's what one of our co-founders who was a developer did. He went back to school and got a law degree.
I also did law at University instead of CS as I had originally planned. Completed a conversion MSc into computing last year and now work as a developer.

I'm intrigued at what you are referring to by the important questions in law, as they relate to CS algorithms?

In Germany computer science is called 'Informatik'. I think this is a better name for what we are doing. It is the science of information and how to efficiently store, process and transform it. The computer is just a tool for it but the methods and algorithms can also be applied in smaller scale and even analog in different areas.
Agreed. CS is the study of translating human needs into formal systems. In a way, it's "applied philosophy".

I think taking CS and "bouncing it off" of other disciplines is where the real magic happens.

Fully agree with this. I'm amazed that even in universities and similar organisations, nobody from Dept X wanders into Dept Y and simply asks "I'm working on this problem, anybody got any ideas?"

It happens, but far too rarely.

Universities understand silos. Supervisors get nervous when a student wants or needs to work with another department. There are reasons for this: supervision and grading become hard, and funding applications become complex. But this simply uncovers the depth of the silo effect.

Arts departments are at the vanguard here. You'll be far more likely to find a fashion PhD working with a biologist than you would to find a comp sci PhD working with a lawyer. Perhaps medicine gets it too, but even then it's largely the lab-based stuff like image processing. The clinical and public health worlds are only starting to gain exposure.

That's my experience anyway, hopefully others have counter experiences.

Nothing in your example is being "leveraged". "Use" is the word you're looking for.
leverage: use (something) to maximum advantage. "the organization needs to leverage its key resources"
One field where CS might be put to interesting use is history.

Utilizing machine learning to process and analyze historical texts could shine a light on patterns that have gone unnoticed thus far.

I was looking for a MS in CS (looked in EU; as that's where I want to go for my MS) that would've help me with application of CS in liberal arts. I am specifically interested in fields like literature, history, and archaeology. Couldn't find anything.

I would want something where it doesn't just enabled me use CS tools and algo to apply to works in those fields (a crude example would be: use of some ML also on Shakespeare's works) but also lets me study both that field and CS.

You should look into the digital humanities. Basically, its a big basket, at least on the US side of the pond, where all that stuff goes. The downside is that you are probably not going to get your MS in CS through it.
Since you mentioned movements in free software, "open core" has been emerging in the last 4 years as a viable way to do business while allowing other individuals and companies to build onto your core platform while still being able to monetize your work. For example, if you launch a startup specializing in building foo, you can maintain a library called libfoo and sell a larger foo application or foo plugins or foo services using the open-source library you created.
Homomorphic encryption is a mind-blower. But I fear that we may never see it in it's fullest glory. It's going to be computationally too expensive or too impractical for reason or another. One can still hope.
Aren't ring confidential transactions (RingCT), used in some cryptocurrencies a form of homomorphic encryption which is being applied now?
Monero uses ring confidential transactions as of now and zCash's zkSNARKs take advantage of some form of homomorphic encryption.

There are probably more but those are the ones off the top of my head.

Quantum computation gives your homomorphic encryption for free so there is some hope in a quantum-inspired algorithm.
(comment deleted)
Various field of Deep Learning. Right now - Reinforcement Learning.

See: https://www.forbes.com/sites/louiscolumbus/2018/01/12/10-cha... or in general any other marker like NIPS submissions or arXiv preprints on DL.

Of course focus changes, and maybe in the next 2 years it will be on something different than RL. But still, even in Computer Vision it is still a very vibrant field, since its breakthrough in late 2012 (https://www.eff.org/ai/metrics). The majority of more traditional disciplines of CS had their breakthroughs a few decades ago.

Almost all of the answers on this list are not fields that are "emerging" but fields that "have already emerged".

The ideal emerging field is one that's so obscure we haven't heard of it yet, but so important that we will. If there are widely disseminated books on Amazon about your field, it's not emerging. If there are hundreds of professionals cranking out papers about your field, it's also not emerging.

Emerging fields are underrated and under-recognized. What are they?

Perhaps I should have asked for the most obscure :) I wonder how many truly emerging fields still exist within computer science. I feel that resiros [1] may be correct in suggesting applications in other areas of science are most interesting / obscure (in the context of that discipline, at least).

[1] https://news.ycombinator.com/item?id=17696498

On the philosophical side, I recently published a paper which could potentially lead to a whole new genre: making actual scientific (=falsifiable) progress on the previously-ineffable question, "Do we live in a simulation?"

"A type of simulation which some experimental evidence suggests we don't live in" https://philpapers.org/archive/ALEATO-6.pdf

The x - ˆx property is very easy to avoid when building a simulator. Most server-grade computers already use error correcting codes for their memory. Or, the simulator could just abort and restart at a recent checkpoint if an error is detected. It's possible to detect errors with arbitrarily low false-negative rate for a small additional cost of computing and storing checksums.

Nevertheless, it's an interesting observation that we can now easily do experiments that demonstrate correct behavior of logic to the 10^-15 level. If Descartes were looking for evidence of the fallibility of a daemon creating his sense data, it would have been hard to demonstrate better than 10^-3 or 10^-4.

You're right of course. Nevertheless there's a difference between saying "the simulating computer probably uses error-correcting codes or something" (speculation) vs. saying "an experiment suggests (same thing)" (science).

To borrow from Nick Bostrom: suppose we run two types of simulations. Important simulations and un-important simulations. For the important sims, we use error-correcting codes, we save checkpoint images, etc. For the unimportant sims, we don't do those things, in order to save money. This allows us to run far more unimportant sims than important sims. Thus, if someone is incarnated randomly in one of the sims, it's probably one of the cheap ones (just because there are more cheap sims than important sims, by basic economics). The point is just to show that it is possible for a philosopher to argue against error-correcting codes etc. Indeed, if we leave it to philosophers, we'll probably never make progress.

We need to appeal to the muse of science, that harsh mistress who serves us cold hard facts, every single one of which throws 50% of philosophers out into the darkness where there is wailing and gnashing of teeth :)

I disagree. It depends on where you draw the line and that is entirely subjective. For you, its when no textbooks are written, but for the purposes of this discussion I think it would be more useful to talk about fields that are not so mainstream yet but that we have enough material to discuss.

Its just a catch phrase, there is no real objective boundary

Anarcho-Nihilism based open source.

Arguably Cody Wilson is doing some of this sort of stuff.

Basically 4Chan but far more organised.

Where's my open source, open data, license plate tracking?

I see several responses that are of truly emerging fields. The one I decided to mention, amorphous computing, has been around for a few years but hasn't gained much traction. It's hard to drive discussions around tech that by definition not many know about or understand or have much input on...
Zero knowledge proofs.

Secure execution environments.

Internet of Things. It is still in development and there are lots of stuff to work on.
Currently there are a lot of noise in the field, but this is practically how data driven approach is applied to real world with all the sensor data collected. It is ripe for a lot of innovation.
Just another hype. Sensors and internet are here for decades. Internet is ok, but “things” are way too expensive and not reliable yet.
IMO the best IoT is the DIY IoT, the kind that isn't really IoT but rather "I put Wifi on a raspi and connected it to a PCB".

Thankfully the online resources around electronics are plentiful and PCBs can be had for under 10$ incl. S&H.

That way I can make all my lighting IoT without having to deal with the garbage of the IoT industry.

Yes, IoT is great when you can DIY. But when you need to send a technician 2-4 times a year for each node... it’s a problem, not a business.
It's a business for repair technicians :)
Swarm Computing. The hardware and networking to make it practical and useful exist now, but the field is still in its infancy. There‘s some discussion about its use in autonomous driving, construction, warfare.
What makes swarm computing different from distributed computing?
Swarm computing is about moving, cooperating devices with sensors, possibly AI features. Distributed computing is just a minor aspect of it.
Just as an angle to answering the question (I don't have answers of my own)....

What was the most interesting CS field(s) in 2008, 98, 88, etc?

88 (taking a stab here as I was pretty young):

DTP

OO

RISC CPUs

'graphics' (as in render farms)

98:

Linux, Apache, Mozilla, OSS in general

Perceptual audio compression : MP3 (layer3.org, MP3 vs TwinVQ, codecs created during the period before Fraunhofer announced the source code it uploaded to ISO without a license and that people had been working on for free, in fact had a license and everyone owed them 10 grand).

2008:

Cloud

mobile (location in particular). Think Foursquare vs Gowalla vs Burbn, Grindr, other early mobile location-aware apps. App stores for popularised by Apple that same year.

AJAX, Rails

blogging.

88

OSI network stacks. They were going to replace the 'old' Internet protocols.

Relational Databases, SQL and two phase commit.

Formal methods and verification.

> Formal methods and verification.

Still emerging.

Out-of-order execution and caches are once again emerging fields, unfortunately.
Emerging as in not leaking through side channels emerging?
Yup, that's what I was referring to.
Not so much science in this list, more personal and practical view:

As a web developer: WebAssembly

As a DevOp: Kubernetes

As a backend engineer: headless (CMS) API systems like Strapi or Wagtail

"Drive mobile and Javascript front ends from wagtail's API"

What is the meaning of headless anyway ?

It's essentially a back-end only content management system that makes content accessible via a RESTful API.

According to wikipedia, the term "headless" comes from the concept of chopping the "head" (the front-end, i.e. the website) off the "body" (the back-end, i.e. the content repository).

There are currently huge opportunities in applied computing for people who can break out of the status quo. There has never been such a big gap between what technology can do and what technology culture can't. Of course it isn't easy. As there also never been easier to waste time in technology.
direct acyclic graphs for blockchain use. homomorphic cryptography.
I am certain there will be an emerging field in AI for engineering. Suspension that 'learns' how to keep the car flat; buildings that start shuffling warm air from a to b before it's needed ... things like that. Programming is going to change from "explain how to do it" to "show it what you want", and this has got to be a big deal.
I think you mean "Programming by Example".
I'm not convinced: are you an engineer? To your first example, the Bose suspension doesn't use AI and is already as good as it can get. HVAC already works well and 90% of the time the air is kept at the same temperature +/- a few degrees.
https://en.wikipedia.org/wiki/Self-levelling_suspension

https://www.youtube.com/watch?v=eSi6J-QK1lw

You don't need AI to keep your car's body level. The technology has been around in various forms for over 60 years.

So much of what people believe we need AI for is amenable to classical engineering techniques.

Indeed, couldn't agree more. But quite possibly AI will prove simpler than classical techniques, and more adaptable to i.e. changes in tyre pressure.