With the start of a New Year and new decade, it’s a good time to reflect on the important shifts we've seen in software development and consider what they mean for you in 2020.
We've curated the insights from this year into our End of Year Review, sharing the trends we’ve seen, the key tech talks you might have missed, and debate the year in a special edition of the InfoQ Podcast.
The insights come from our editorial team, all of whom are software engineers, who push the barrier of innovation in their professional lives. Read and reflect on their insights to inspire your tech visions and roadmap for 2020.
Our 2019 InfoQ Trends Report takes the key highlights from all our reports published this year and captures them into a single report to support your mid to long-term planning. Topics covered include:
InfoQ editors share their best of 2019 tech talks you should watch. Start with these 3 essential talks to inspire you:
Wesley Reisz, Conference Chair for our 2019 London, New York, and San Francisco QCon’s shares his favorite, must-watch conference talks. If you missed these, set time aside to enjoy them, and consider attending one of our QCon software development conferences in 2020.
InfoQ Editors share the key technologies and developments they expect to see in 2020.
Next year in the platform/operations space I'm looking forward to seeing service meshes become more integrated with the underlying orchestration frameworks (e.g. Kubernetes). I'm also hopeful that the developer workflow for interacting with service meshes becomes more integrated with current workflows, technologies, and pipelines.
Ultimately, I believe developers should be able to control deploy, release, and debugging via the same continuous/progressive delivery pipeline. For example, using a "GitOps" style pipeline to deploy a service by configuring k8s YAML (or some higher-level abstraction), controlling the release of the new functionality using techniques like canarying or shadowing via the configuration of some traffic management k8s custom resource definition (CRD) YAML, and enabling additional logging or debug tooling via some additional CRD config. Maybe there's too much YAML here, but hopefully, you get the idea!
In regard to architecture, next year will hopefully be the year of "managing complexity". Architectural patterns such as microservices and functions (as-a-service) have enabled developers to better separate concerns, implement variable rates of change via independent isolated deployments, and ultimately work more effectively at scale. However, our ability to comprehend the complex distributed systems we are now building—along with the availability of related tooling—has not kept pace with these developments. I'm looking forward to seeing what the open-source community and vendors are working on in the understandability, observability, and debuggability space.
The web is making rapid strides toward improving developer ergonomics and continuing its trends toward being the universal application engine.
WICG Features: The Web Incubator CG (WICG, pronounced Why-sea-gee) has been rapidly filling in gaps in the web platform, from an accessibility object model to WebUSB, Web Speech, Native File System access and so much more.
WebXR: The combined Virtual Reality and Augmented Reality standard is getting closer to completion, and initial portions are now available in the latest version of Chromium-based browsers.
WASI: Bringing Web Assembly beyond the browser and web, to become a standard set of interfaces around native capabilities.
I believe 2020 will be a fascinating year for the .NET community. We should see an increase in the adoption of .NET Core 3, and Blazor WebAssembly already promises to be a game-changer for .NET web developers. I am particularly interested in .NET 5 and the evolution of Mono: Java interoperability will undoubtedly have an impact on the ecosystem, and I am also curious to see how the new release will reflect on Mobile, Gaming, IoT, and AI.
So much to look forward to! I like the maturation of next-generation foundational technologies (e.g. Kubernetes, service meshes, function-as-a-service, Apache Kafka), while also seeing architectural patterns like microservices and event-stream processing become mainstream. At the same time, I'm thinking more and more about simplicity, and how we mask all the complexity we're absorbing into our systems. I'll be focused on technologies and practices that deliver usability and value, without introducing (too much) accidental complexity.
Technologies to Look For in 2020 - Data Science Perspective
I am looking forward to 2020 to see how AI/ML technologies will enrich the user experience, and for all the innovations in AI-driven autonomous capabilities, VR/AR, computer vision, speech, and natural language.
It will also be interesting to see how the "Citizen Data Scientist" role evolves in corporations.
More specifically, I expect to see significant developments in the following areas:
AutoML: Automated Machine Learning (AutoML) technologies will become more mainstream. AutoML solutions use their own algorithms to create data pipelines and automate end-to-end data analytics process. Technologies like Databricks' AutoML toolkit, DataRobot, H2O's AutoML, and Salesforce's TransmogrifAI will help accelerate this adoption.
Model Ops: DevOps practices adoption in AI/ML area, called ModelOps, will help with end-to-end model management and deployment and monitoring of models.
Edge Computing: Technologies like Edge Computing and Fog Computing will play a big role, especially in manufacturing organizations as part of the Industry 4.0 revolution.
Containerization, Service mesh, and Serverless: Other innovations like containers (e.g Spark or Tensorflow running on Kubernetes), service mesh, and serverless will enhance the data pipelines, machine learning, AI and IoT applications in the areas of agility, scalability, and performance.
Join Charles Humble, Daniel Bryant, Shane Hastie, and Wes Reisz in a special InfoQ Podcast, as they recap the year and share their views on what to expect in 2020.Listen now