Admit it. We all love exciting and sexy technology. That’s why we stand up and take notice when someone talks about AI-controlled bots or quantum computing. Futuristic, sci-fi topics like these grab our attention and fuel our imagination. Unfortunately, this article is about none of those. Not everything exciting is useful (remember Google Glass?), especially for developers. Getting caught up in the new and shiny can actually distract from the topics and trends that we most need to know about.
So, what follows are some rather boring, mundane and generally workmanlike developer topics for 2018. Ignore the blinking lights in the other direction because these are important to pay attention to.
Everyone is getting on the microservices bandwagon. That’s not a bad thing. Creating applications from pre-built and purchased bits of code is a time-honored tradition. It speeds up development and reduces effort. Microservices, especially, allow application features to evolve at their own pace. Customers can realize the value of new features quickly rather than waiting for massive code releases that only happen occasionally.
Along with microservices though, comes many APIs. Too many to track and manage manually. Add in APIs from cloud services and soon developers are overwhelmed. An API management strategy is a necessary part of modern architectures. Unfortunately, like documentation, it’s often an afterthought.
Get with the API management program before a carefully thought out microservices architecture becomes the 21st century equivalent of spaghetti code. A number of tools are available from mainline vendors such as Informatica, IBM, and Microsoft for managing APIs. API management tools help to catalog, document and secure available APIs, so there are no excuses.
Automated Container and Kubernetes Setup and Management
Containers are a great technology. They provide a good balance between isolation, portability and resource capacity utilization. The downside to containers, including the more popular forms such as Docker, is the definition and instantiation of large numbers of them. Similarly, Kubernetes has emerged as the dominant way to instantiate and manage large networks of containers, but setup from the command line is a pain.
Thankfully, a number of graphical tools are emerging that facilitate container definition, setup and management. Even more important are tools to automate container deployments. No one wants to waste time hand configuring individual containers even when there is a GUI to help. Automation is the key to large scale container-oriented applications.
At present, many automated and GUI tools are tailored for cloud services. These are a boon to developers and operations people new to containers or whose applications require many containers. It is believed that more of these tools will emerge for both cloud and on-premises deployments. The upshot is containers will become much easier and less scary in 2018.
Artificial Intelligence Coding
The everyday job of coding has become much more complicated over the past decade. With so many services, frameworks, and platforms to contend with, developers can hardly be expected to be know every single line of code out of their head or a rifle through documentation.
Pretty much all Integrated Development Environments, or IDEs, have code completion features. These help a developer to properly code statements, especially functions, thereby reducing the number of coding errors. In addition, IDEs have the ability to build code elements such as database access code, GUIs or web forms from templates. This helps to jumpstart tedious programming tasks while insuring they are properly formed.
The latest generation of coding aids is taking this a step further with artificial intelligence (AI) assistants. Using AI assistants, more complex code can be built by the development environment. This will remove some of the complexity of advanced coding tasks such as AI and data analysis while reducing mistakes that slow down projects.
Building Blocks as a Service
It seems that everything is available as a service. Infrastructure, database, platforms/stacks and whole applications are offered as a service. For developers, these cloud services free them from mundane tasks to allow them to work on their value-add.
Cloud vendors are taking this even further and are expected to add even more functionality to cloud services. At the end of 2017 we saw a number of major announcements from Oracle, Amazon, Microsoft and others outlining blockchain, data analytics, data management, mobile computing, machine learning and AI, and serverless function services in the cloud. These will all be fully available in 2018 and vendors are expected to expand these kinds of offerings.
Extending services, handling mundane management tasks, and providing coding aids are not the kind of news that makes developers jump up and down in glee. Instead, they simply help to get the job down more quickly and easily with fewer bugs. It’s not glamorous — it’s useful. These are the types of services that will really make life easier while getting projects done on time.