Ask HN: What's the next big thing in computing / programming?
I managed to surf some of the software hype waves, some like "AI" have not really benefitted me in a major way and some, like crypto I deliberately ignore by now.
What do you think is the next big thing in programming or computers/Internet in general?
I'm thinking low-code or no-code tools that are actually composable by programmers perhaps?
How about something in the physical space - are we going to see more types of wearables, for example?
Basically I'm looking for ideas on what to focus my learning on in 2022.
170 comments
[ 0.32 ms ] story [ 243 ms ] threadThat doesn't mean we won't be getting laser retinal projection in the next 10-20 years.
/s
VR will never be a thing outside of gaming, porn and education.
So many PC type interactions we do in 2D today will be both more functional and more lovely to use when mapped into 3D space.
If we are not choosing to go there, physics will teach us the hard way (it already begun).
Basically any region/country that is able to do the same, with less hardware, less energy will have a big advantage over the other regions/countries in the upcoming years.
When's the last time you heard someone's conversation in the car beside you? Or even just their normal volume music?
This is true even in nice, mild climates.
This example is the same with homes to a degree too. People are addicted to the new, inefficient way of doing things. But I doubt we'll actually go backwards. There will be a kind of morality trend pushing us backwards but nothing much else.
Hardware has massively improved in the power/watt and computation/joule categories. The increased power consumption is because of rebound effect. If we really only used cellphones for telephone calls and SMS, we could build them to last for months on a single charge. Yet we have to charge them every day because they are built to do not just telephony, but also maps, reservations, banking, 3D games, and so on and so forth.
While I agree with you here, I feel like people don't try to optimize an already working base. For example, I recently updated the clock app on my android phone. There is no difference in functionality in the new app, but it has the android 12 design. This time could have been spent optimizing the app in a way or another. I do the same thing on my phone as I did 5/6 years ago: read a lot online, sometimes listen to music, sometimes look at maps, sometimes use apps, telephony. My battery lasts longer these days, but not as much because my phone also has to show sweet animations and be able to run high-performance stuff (I made the error of buying a flagship phone).
WebGPU is a different story.
(2) Once Microsoft work enough of the bugs out, which I'm guessing will take another 2-3 years, I suspect Windows on ARM will be the Next Big Thing, or at least one of the Big Next-ish Things. ARM supplanting Intel will be a general Thing.
If all of reality is able to be piped into Unity (structure of static environment, motion of sensors, dynamic object poses) you can build Reality Apps the same as you can build video games.
You can give people spidey-senses or "the force". Everything will have a UX.
There are a few trends that are tiptoeing on the edges here:
- tools for thought / creative tools (Muse, Nodes.io, Mem, etc)
- end-user programming (people trying everything from visual PL's to simpler / more constrained programming interfaces)
- local-first software (https://www.inkandswitch.com/local-first/)
- web3 - I'm biased here and a bit skeptical of the fervor here, but matches some of the ethos / philosophy
- more customizable / hackable personal computing hardware (https://frame.work/)
- spatial + tactile computing so the body can participate in the thinking process (instead of only the 'head'): https://dynamicland.org/
- explorables, games / interactive viz to quickly transfer rich context: https://explorabl.es/
- video games, often indie ones, are exploring deep ideas: see Zachtronics games, Jonathan Blow's games, some of Annapurna Interactive funded games, etc. So many!
- open data: better end-user data tools so anyone can understand the systems around them
End-user programming comes close, but I don't think it's the real notion. It makes primary the programmability, which is, imo, an unncessary ego-centrism. Software simply making what it does visible, making it observable, and inviting in the potential for interaction, for manipulation, change, alteration: that, to me, is where we must go. I'm delighted and quite surprised to see this comment having risen mightily in the rankings, to the #2 spot, but permit me to cite the #1 comment in reflection here:
> "We’ve known for a long time that software will eat the world — the comings and going’s of everyday life, once they are expressed as code, become infinitely easier to patch and improve using only a keyboard and display."
To me, it's less about home-cooked & home-grown & indie, and more about software that has a basic fair shake. Software is either societal in nature: it participates in, shapes/can be shaped, discusses itself, engages in the democratic processes of the world. Or it is a closed, dark entity. I see little ways to regard most software as anything other than alien and hostile, as invasive & anti-communicative: a blackbox, with us trapped inside.
The way through though is incremental. Finding new ways to let the software we have expose itself, to make itself visible & explicit & introspectable & orchestrateable & controllable & malleable. I believe software high & low will better serve the world, be better able to do it's job, when there is a general systems fabric & when it can keep us in the loop.
Yeah, I kinda see this as the exact opposite. The fact that symbolic code, keyboards, and displays are all tied together is no accident. It's a limitation that prevents computation / simulation from being used in situations that aren't oriented around text-input.
There's so many situations like this! We're a bit blind to it, because we're used to pulling out our phone, and it's hard to predict what we'd all use computers for if we escaped the trappings of mouse-keyboard-text-code. It's just like how cheap paper / the push for literacy helped make paper receipts at coffee shops a thing, but nobody could have predicted cheap-paper-receipts in the 1600's when books were so insanely laborious to create (forget even read!).
- Have restaurants in my local town started to close earlier because of worker shortages, COVID, and the chaos of the last 2 years? - Which nearby public parks are both free, open right now, and not too busy? And also will it rain soon?
The state of the art for this is probably CSV's & Excel / spreadsheet, with lots of limitations. Most datasets are hidden behind obscure API's, available only to programmers.
And then let's say you want to have this type of computational conversation while sitting around the dinner table? Forget about it
- 'Authorship Environments: In search of the “personal” in personal computing' Strangeloop talk (https://www.youtube.com/watch?v=5U6MkU5fLJw)
If we are to make computing personal, as any medium of thought needs to be, we'll need a new framework, a new way to think about computing, We'll need to shed the ingrained assumptions. We'll need a new language: no more "users" and "programmers." I've never heard a good definition of either but these terms are too loaded and too corrosive today.*
I am not claiming this is the next big thing, but if we are to move to the sort of goals described in a number of the projects in the list, something like this will have to happen.
* Best one I know is of programming: blindly manipulating symbols in hope of an outcome.
2032? Hard to say, but it is quite possible that software and the web will actually look quite similar to what we have now. I found the concepts in this presentation quite intriguing [1]. Some stuff like airplanes haven't changed THAT much in the last 50 years, because they are good enough for their purpose.
[1]: https://idlewords.com/talks/web_design_first_100_years.htm
I do think it has a place, and is a promising emerging market. Which is why I've been interested in learning development in that area.
I credit much of Web2 kicking off with AJAX, HTML5, and CSS3. Though many others would say it was lead by mobile.
My general thoughts, it isn't one thing, or just one technology. Even Web1 was a combination of TCP/IP, HTML, HTTP, and Mosaic/Netscape.
I'm possibly lacking vision, so I'm wondering if anyone could share interesting examples of that (old) new wave of technology?
Projects like Zig I think are the first signs that we are getting fed up with what we have.
Security is to me the number 1 reason to reduce bloat in any application. By limiting the number of external dependencies, and maybe even the number of features, you end up with a more secure product.
It something that didn't matter as much a decade ago, but is now very relevant.
Then there's all the other reasons, like responsiveness, download size, developer experience etc, but they haven't been the priority of most businesses
The big investment in your career will be ideas that stand the test of time. Relational Databases, data structures, programming paradigms, math, etc. Even in machine learning, just knowing core statistics and regression is more important than HottestNewArchitecture :TM:.
Learn the ideas underneath these ideas, and you'll really grow and be able to better evaluate / learn new ideas.
This is spot on in my experience.
As I grow in my career as a software engineer, it's funny how much more often I notice that the things that set one apart in the field is a level-headed understanding of the fundamentals and a calm resolve to take into consideration what's worked in the past, much more than one's ability to "chase the shiny".
Honorable mention of the Lindy Effect [1] here - one of my favorite ideas from Antifragile [2].
[1] https://en.wikipedia.org/wiki/Lindy_effect [2] https://www.amazon.com/Antifragile-Things-That-Disorder-Ince...
(a) Important stepwise changes in a domain are actually rarer than we think. Transformers & deep learning being one good example.
(b) Focusing on the background information prepares you for that stepwise change, and recognize the stepwise change when it happens
Instead of trying to suss out from the tech literatti every new thing and chase that, I'd rather spend my time on "old things" and be better prepared for the right stepwise changes.
There's a lot of 'revolutionary' and 'big ideas' that in reality are marketing and/or repackaging old ideas.
Agreed! In my earlies as a data scientist, I was always looking forward to implementing deep learning and new fancy algorithms.
For some real use cases, the explainability provided by a simple regression is better than a more complex algorithm that provides the best metric.
- Architecture/patterns. Managing complexity, now and in future, is the primary thing that differentiates a "senior" from a junior IMO. Making complex stuff simple is extremely difficult.
- CI/CD. Improving "shippability" and "shipfriendlyness" helps efficiency and allows getting your software to customers faster.
- TDD/BDD/DDD. Ability to distill features and value from vague customer-feedback and domain-expert. Committing that in specifications, and turning that into automated, and measurable setups. the #1 skill to building software that helps your users, IMO.
While there will remain a shortage of developers in near future, the absolute amount of people producing software will grow significant. The amount of software produced will grow significant while existing software will continue to be there too.
The only way to stand out is to provide real value. To provide that fast. To continue providing that. And to remain able to react to the market quickly.
I therefore believe that skills and techniques that allow you to move faster, be more efficient today and in future, is far more important than learning about web3, kafka, rust, go, kotlin, no-code, or the latest JS framework.
A LOT of the old things were ahead of the time and forgotten. Also, a lot are still in their infancy (I think RDBMs are still too immature!).
Is likely that marrying that old things with (1, at most 2) new things is the way to go.
1. Prices are down(yes, lower down your guns). I'm not talking about CPUs or GPUs but embedded products. It's absolutely mind blowing that you can get the computational power of a mid-90's computer with the size of a coin for just a few bucks. Same goes for sensors, transceivers, motors and communication modules.
2. 3D printing has come a long way, also dirt cheap and easily accessible to people and is yet another game changer for prototyping. Essentially you can have a functional part in your hands in a day.
3. With works towards lowering carbon footprint(further amplified by inflation), smart devices with low footprint will become more popular-anything which will lower costs. It may sound counter intuitive at first glance but you can imagine how a smart home/office/factory/store/restaurant/anything could be more efficient if power consumption is managed in the most efficient way possible and likely far better than you ever could.
4. Open firmware and hardware is going to be a game changer in another area which seemed completely out of reach just a few years ago - space exploration. Even there, the prices have dropped massively. And there's one more thing when it comes to space exploration: I know that people are really on both extremes when it comes to opinions on Elon Musk but here are my thoughts: ignore what he says and pay attention to what he does. I'm not entirely sure that he's right on electric cars and I suspect that he might not be on the winning side if synthetic fuels become widely available. The one thing which makes me sway towards them are the billions Porsche is pouring into research in that area and credit where it's due: they have been right throughout the entirety of the automotive history.
5. Industrial purposes. Again looking at what Elon Musk is doing - I think he is giving us a glimpse of what Industrial revolution 2.0 might look like. And again something which was further fueled by the pandemic.
The one thing that I see truly missing in the picture is cheap, fast and easy way to make PCB prototypes - that is still an expensive and complicated endeavor. Or at least I am not aware of a cheap and efficient way to do this. I've personally gone as far as trying to figure out a way to use conductive paint for that purpose. With 0 success so far I'm afraid.
I don't think it ever picked up: It was trying to solve a problem which didn't exist at the time. In the mid 2010's when they started popping up, the economy was growing and most of climate change, lowering carbon footprints and all that was seen as "Greta Thunberg's pretentious and delusional world" to working class citizens. And for the most part that still would have been the case if it wasn't for covid and the accompanying inflation. I don't think average Joe has learned a lesson from it or realizing how fragile our economy is. Almost like enforced necessity: "hey my electric bill is 4 times what it used to be" opens a new market. The ecosystem however was(and sadly still is) appalling: You get a hama wifi enabled light bulb, you need to download their app to set it up. You buy a Phillips one a few months later and you need to download yet another app to set it up. Not to mention the absolute hell that are both google home and alexa. Worst of all is that there are no efforts to open source alternatives(home assistant technically relies on either google or amazon). Privacy aside, their interfacing options are equally annoying. I do have a few wifi enabled light bulbs and I turn them on for my dog when I'm not at home through google and it is just as messy as it was on day one.
I’m hoping for a small revolution in 3rd party libs and a locking down on the supply chain as a start.
Personal bias talking, but I'd expect to see modest uptick in Nix[os] interest
Kubernetes will transition from new and exciting to a mature platform. Expect less new big features and more minor improvements
Just about everything in a NixOS is configured in a declarative way, but that only really scratches the surface. It's the first Linux OS I've used that configuration is done at a wholistic level
Say for example you have a RHEL/Debian Linux server and you want to see how it’s configured. This sounds easy, but can be quite time consuming. You can see what packages are installed but then you’d need to examine all the /etc files. Try and see which ones are modified. Look at all services, look for further configuration that may exist in /opt or /usr. When you get to a certain scale tools like Chef, Puppet or Salt tend to help with managing configuration. Over time to meet compliance and monitoring requirements configuration can grow. And that’s not getting into any filesystem permissions you may set.
If you're using `yum install` or `apt-get` to install packages out of the system repos, you'll get the latest package in that repo. Run that command at different times, you can get a different package version
In NixOS the system and packages are versioned together; makes for very reproducible systems. The downside/upside (depending on your needs) is, updating your kernel will update your packages in lockstep
With NixOS, you can configure a complete system with a single file making Chef, Puppet or Salt obsolete. Once you get over that first hurdle of using NixOS and moving your workloads to it, it tends to be easier to maintain
The major downside I run into is that most of the world does not use Nix[OS]. So if you need something not provided by Nix[OS], you’ll need to learn how to make your own package (derivation)
There are many caveats to everything I said above, but its the general idea
This is likely to be a business change as much as a technological one, but it’s definitely going to have an effect.
I bet that:
autonomous cars will still suck.
CPU will just get lower and lower, but nothing fancy except maybe weird shapes concepts.
web (browsers) will still introduce some weird not privacy friendly stuff.
FP-ish languages ain't gonna be mainstream, probably nothing cool enough for purists and good enough for mainstream will appear.
decreasing energy usage seems to be irrelevant cuz people will use that energy in other way anyway.
quant computer still just fancy thing in lab.
__________________
or I've found one that I hope will be big! air purifier's cost and efficency improvements! shit's so expensive, yet so important
A small bit of confirmation for this in my mind is the increase in companies switching to a business model that is aware of this. "We will host it for you for a fee, but we fully support self-hosting too." ala Gitlab and Ghost (https://ghost.org/docs/hosting/)
* Better GPU API on web and native with WebGPU
* Use of compute shaders to interface with trained NN models or to "replace" css.
* Easy reactive programming using immediate mode UI powered by GPU instead of CPU
* Data driven design ala ECS where your ECS lives in the cloud.
Not just for 3D AR/VR but also business/productivity apps in 2D.