Developer predictions for 2024
Posted on 2023-12-31, by Racum.
New platforms, new technologies and new risks! Here are my predictions for 2024 in relation to development. Nothing in this article is guaranteed to happen, but I rank them as very likely.
The raise of RISC-V
In 2023 lots of RISC-V SBCs (single board computers) reached the market, like the VisionFive 2 and Milk-V boards, also, many compilers and other developer tools reached maturity on the platform. We are reaching a point of critical mass where enough developers are getting familiar with it, and the first consumer electronics powered by RISC-V are about to appear.
Try get a RISC-V SBC in your hands, use it, try to build your programs on it; if something fails, ask for help; if a requirement failed to build, report to the developer, or contribute with a fix.
Alternatively, you can run an emulated container via Docker, there are some official RISC-V images available. Of course, if you are running it on a x86 or ARM computer, the container will be emulated via QEMU behind the scenes instead of using a fast native virtualization, but this is the easiest path to try it without spending money; just run this:
docker run -it riscv64/ubuntu (or other available distro image).
Windows on ARM
Over the last 3 years, Apple had a huge market success with their Apple Silicon line of processors, with advances in CPU power and battery life compared with x86 competitors. And Linux also have been ARM-compatible for a long time, specially with SBCs (like the Raspberry Pi), Android, Chromebooks and ARM servers. The only big OS player lagging behind is Windows! …although you can technically buy an ARM-powered Windows laptop today, they rely on old processors, and the software compatibility today is not at the same level as macOS or Linux.
The exclusivity deal between Microsoft and Qualcomm ends in 2024, and during the Snapdragon Summit 2023, Qualcomm announced the Snapdragon X Elite processor, and, unlike current ARM Windows laptops, this is not a smartphone processor up-cycled into a laptop, but a fully qualified desktop CPU, ready to handle heavy workflows. This is clearly Qualcomm getting ready to compete with newcomers now that the exclusivity deal is about to expire.
On the Microsoft side, they released the Windows Dev Kit 2023, (a.k.a Project Volterra) an ARM-powered computer with ARM-native developer tools, like Visual Studio and .NET.
Try to buy the Windows Dev Kit 2023, unfortunately this is not available everywhere; alternatively you try to get an existing ARM laptop, like the Surface Pro X or the ThinkPad X13s, they are not fast options for developers, but they can help while the “good ones” are not in the market yet. After you get your hardware, you know the drill: try to build your application, check dependencies, etc.
LLMs (large language models) dominated the tech news in 2023; it is hard to believe that ChatGPT was just released at the end of 2022, and throughout the year all big companies scramble to release their own LLMs, in a gold-hush that we haven’t seen in a while! But the hurried approach was noticeable: prompts got hacked, sandboxes got broken, private data leaked, copyrighted content got injected by mistake, etc; and even with all those flaws, many projects powered by LLMs got developed by people without a solid understanding of the technology. It was a mess!
The environment is still messy, but now developers got a full year of hindsight and lessons learned; LLM integrations are now more mature (well… “less immature”) and some good-practices are emerging. The main new consideration is about “control”, developers are now aware that just relying on APIs from OpenAI, Google or Facebook means hand-over the control of their data; hence the proliferation of many open-source LLMs in the last few months.
Alternatives like Llama 2, BLOOM, Mistral 7B and others are growing exponentially in number of users, and this is creating its own critical-mass, with more new tools and pre-cooked models getting released.
If you are totally new to LLMs, the best place to start is Ollama, this is a desktop tool that manages and runs many open-source models locally, and allows you to customize them, like creating “system prompts” or load your own data.
If you have the basic knowledge and want to go deeper, try to study vector databases, and their LLMs implementations, those databases work as the “memory” for the LLMs beyond their base models.
Over the last 6 years, WebAssembly has been a source of innovation on web applications, allowing near parity with desktop apps and games; it has been canonized as part of the web stack, with wide support on both desktop and mobile browsers, but unfortunately still not popular on the server-side.
What we already have: the WASI (WebAssembly System Interface) standard, this specifies a runtime, and we already have many implementations of it, and projects powered by WASI, like:
WASI is just the system runtime, for a full support we also need a standard to handle HTTP, and the project for this is called WASI HTTP, currently in “Phase 3” (of 5) and hopefully it will be ratified in 2024. While WASI HTTP is not ready, an interesting project to keep an eye is NGINX Unit; it currently uses non-standard WASI integrations (hence the “Technology Preview” status), but the goal is to support WASI HTTP as soon as it gets ratified.
Learn WebAssembly, and a language that can compile into it (I recommend Rust). Play with WASI implementations, try to compile an existing app and see what happens. Keep an eye on WASI HTTP and NGINX Unit throughout the year.
Apple will release the Vision Pro in 2024, and despite the hype and the steep price, we shouldn’t ignore the impact a product like this can have. The only success VR headsets got so far are in relation to games, and the non-gaming-oriented HoloLens from Microsoft has a very narrow niche of the market.
Even if the first generation flops, enough developers will have contact with it, showing new possible experiences and seeding ideas for future apps, that could arrive in time for new generations of the Vision Pro, that will probably be cheaper, lighter and overall more accessible. And if Apple gets it right, others will follow; probably not in 2024, but eventually.
Watch the videos from WWDC 2023 (start with this one). Download the Xcode beta with visionOS support, try the Simulator and see how the system apps behave. If you want to explore full-immersion, study some 3D game-engine like Unity.
First, don’t worry! …quantum computing will not be widely available in 2024; but advances in the area are always happening, and even if we can’t walk into a store to buy a quantum computer in the next decade, our current data protection need to be resilient for when this day arrives.
To be clear: not all cryptography is vulnerable, only asymmetric public-key algorithms that rely on factorization, elliptic-curve or similar can be exploited by quantum computers. While symmetric cryptography (like the one encrypting your hard-drive) or hash-functions (like the ones hiding passwords) are not vulnerable.
Although “data at rest” and passwords are immune, most “data in transit” operations are done via asymmetric algorithms. The danger here is someone storing large volumes of encrypted communication for years, waiting for the day that it could finally be broken by quantum programs.
However, there are asymmetric algorithms both developed and being developed to resist quantum decryption, they don’t rely on the known quantum-vulnerable methods. My prediction is that during 2024 the interest for those kind of algorithms and their implementations will grow, and we will see an expanding list of projects supporting them.
Start studying the liboqs (Open Quantum Safe library), and consider integrating it in your projects. Keep an eye on new liboqs integrations, maybe the developers of your cryptographic framework are already considering using it. Pay attention on future guidelines and regulations, it is possible that quantum-resistant algorithms could be mandatory for some cases eventually.
Lawmakers in general are not tech-savvy, and even if they are, given the increasing complexity of our systems and protocols, the changes for unforeseen consequences when writing a law rises. It is a matter of time that some “bad law” passes, forcing developers to hurry for compliance.
This can happen anywhere, but since I live in the EU, here are some european examples:
- Article 45 of European Digital Identity (eIDAS 2.0): the goal of eIDAS 2.0 is to modernize the identities and contracts within the EU, it is a mostly good idea, the issue is in the article 45, that, if approved, would enforce the addition of a root CA (Certificate Authority) per EU country on every browser used in the region. Status: under discussion.
- Software liability law: this law defines liability for software and digital features of products, in its first draft it didn’t make distinction between commercial or open-source software; fortunately the latest agreement excludes open-source from liability. Status: agreement reached, voting pending.
- Client-side CSAM scanning: regulates the scan for child sexual abuse material (“CSAM”) on the client-side (in the browser or apps), breaking many levels of cryptography. Status: fortunately dead! …but similar laws are constantly being proposed.
Watch the news, pay attention on the politics segment; try to keep up with what is being proposed; learn how to reach your representative; and please-please-please: stop electing old people!
Again: nothing here is guaranteed to happen! But I promise to compare what I got right in an year when I’ll write the predictions for 2025. In the meanwhile, please contact me if you see any of my predictions being fulfilled (or dying).
Happy New Year! 🎉