IBM Code Patterns and the Future of AI
IBM Code Patterns and the Future of AI
A big push in 2018 is around conversations, reusable conversations, chats, and chatbots. And in 2018, we’ll see these AI use cases reach even higher.
Join the DZone community and get the full member experience.Join For Free
Insight for I&O leaders on deploying AIOps platforms to enhance performance monitoring today. Read the Guide.
Thanks to Angel Diaz, Vice President, Developer Technology and Advocacy at IBM, for sharing information about IBM Code Patterns, the new way IBM is packaging code for developers around chatbots, AI, and various use cases.
Q: Tell us about the rise of design “patterns” for developers.
A: When you’re classically trained in computer science courses, you learn early on about the Gang of Four and theory around object-oriented programming and software design patterns. We’re in a different world now. That book was created in the 1980s. Gang of Four still applies and is a very useful teaching instrument — but the concept of design patterns has really evolved.
What’s starting to emerge now is what I call the “modern-day design pattern.” Because of the level of abstraction that you get with the cloud, the level of abstraction you get with AI, and the level of abstraction you get with data — there’s less stuff you need to know as a developer. There are fewer O’Reilly books you have to read. You don’t have to build or even install a speech-to-text engine — you just use the API. You don’t have to provision your infrastructure — you use a container inside of Kubernetes. What’s emerging is a new set of computer design patterns that are higher levels of abstraction, and that accelerate developers’ productivity.
I think 2018 will be the year of design patterns. Why is that important? If you look back at developer abstractions, they’ve led to quantum leaps in developer productivity. They allow writing more code and better code because they’re not rewriting low-level code. With design patterns in 2018, developers will be able to pull design patterns, take code they can fork, and innovate around the application logic that they want to build. And that’s going to be huge as applications continue to take advantage of cloud, data, and AI.
Q: What do you think has changed in recent years where there’s such a strong need for patterns with developers?
A: It’s obviously an amazing time to be a developer — we’re living in a technology-driven business renaissance where technology has gone horizontal across every industry and whoever can deliver the best software wins.
Developers own this age of innovation. And equally exciting, there are so many choices at every layer — from programming languages to frameworks to deployment models. It’s truly a buyer’s market, and the developers are the most important buyers.
But trends in cloud, data, and AI are causing so many major shifts in technology that developers basically have multi-layered, unlimited canvasses to build upon. They have access to as much compute, storage, and network as they need. They have PaaS; they have containers; they can build 12-factor applications, microservices, or event-driven/serverless. There is so much choice, and so many implementation details, that the real trick is picking the right layers of abstraction so that developers are focusing on writing their own applications and systems on top of the things that should be abstracted rather than worrying about all of the underlying details.
Q: Tell us more about the IBM Code patterns that you recently launched.
A: To simplify the development process and streamline the search for free, open-source code, IBM has released more than 120 Code Patterns. These patterns do the dirty work for the developer. They are curated packages of code, one-click GitHub repos, documentation, and resources that address some of the most popular areas of development, including AI, blockchain, containers, and IoT. These patterns will help developers get right to the task at hand, giving them more time to innovate and build.
For example, how do you create a chatbot for any industry that has a Slack front-end and a transactional back end? That is a very common design pattern today. There’s an IBM Code Pattern for that, so you can start at the point of a Slack front end and a transactional back end and focus on your application — and not what it takes to stand it up and make it work. The Star Trek/Ubisoft work that IBM did to basically voice-control the enterprise — we made that into a design pattern so that anyone that works with speech-to-text and wants to connect to the Unity game engine can connect that. That’s another design pattern.
Q: As IBM keeps growing the list of Code Patterns, tell us how you see this effort evolving?
You’ll see many more IBM patterns around data, AI, and industry and deployment models. We realize that you combine these patterns together into composites for larger applications — and we can even put them in the context of someone in retail or healthcare, for example. There are industry-specific patterns based on common use cases that we think are extensible to developers who want to share and reuse that type of institutional knowledge to further accelerate their development efforts. Every developer wants to create new value. No one gets rewarded for solving problems that have already been solved, so we see the broader impact of IBM Code Patterns as raising that level of abstraction to give every developer the best starting point for building what they actually want to build.
Q: You have an interesting take on Maslow’s Hierarchy applied to the progression of AI use cases.
A: In human psychology, Maslow said humans need food and warmth and shelter at bottom of the triangle. At the top is a really nice car, a great house, wealth, power, etc. In Maslow’s view of the world, as the needs on the bottom get fulfilled, humans move to the next tier of the triangle — because people always want more.
It’s sort of an interesting way to look at where developers are today with AI. When you look the modern application — the modern app built for cloud, data, and AI — there’s a symbiotic tie between the three, and especially between data and AI. Data gives you the insight but AI allows you to infer from the insight and act. On the Maslow Hierarchy of Needs for developers around AI, the focus is shifting towards taking action on insight or recommending action on insight.
At the bottom of the hierarchy are things like speech-to-text, annotating text, image recognition — the types of raw AI capabilities that the developer world has been playing with. But in 2017, we started to tackle more ambitious AI use cases. The next layer up for AI developers in 2018 is the notion of interactive chats (chatbots and interactive conversation). There are communities popping up all over the world that are saying that the ability to understand modalities is great, but now, what about augmenting interaction and then reusing those interactions?
A big push in 2018 is around the arena of conversations, reusable conversations, chats, and chatbots — and we think we’re approaching a point where developers will consider human interaction as a key use case for all new applications, leveraging conversation frameworks and libraries. That’s where the next generation of the crank will go with AI. And in 2018, I think we’ll see these AI use cases reach even higher, using deep learning, machine learning, TensorFlow, and Apache Spark use cases evolving as the building blocks.
Opinions expressed by DZone contributors are their own.