Emerging Ideas on New Programming Paradigms
Original Post on Medium: Emerging Ideas on New Programming Paradigms | by Sam Bobo | Medium
Artificial Intelligence recently entered an inflection point, now mainstream within society, the ability for artificial intelligence to generate content, spanning videos, images, and even code. This AI-based technology, formally dubbed Generative AI, is catalyzed by the intersection computing at scale, increased processing power, and the sheer wealth of knowledge generated and aggregated by humankind on the internet. Furthermore, Generative AI systems are built using natural language processing (“NLP”) which fundamentally requires systems to understand meaning behind spoken and written word and form associations with other mediums using transformer technology. Barring the underlying fact that a new set of knowledge will be required to optimize for Generative AI engines, namely prompt engineering, nonetheless, the ability of Artificial Intelligence to remove yet another lower-level function of a particular job is shifting humanity forward and creating more efficiencies at scale.
This level of abstraction can be examined within the world of programming. At the primitive age of programming, low-level programming languages such as assembly and machine code, required intricate knowledge of the switches within bare metal servers. Layered on top of low-level programming came mid-level, including languages such as C that abstracted some of the intricacies of, say, machine code but still allowed for freedom for experts to continue with some fine, lower level control. The pattern continued upward into high-level programming which is more pronounced among the general Populus — JavaScript, Python, Ruby, etc. — striking that delicate balance between fine control and abstraction. Higher level programming languages allowed for the creation of user-defined functions, object oriented programming, and more. Over time, collective efforts built libraries of functions, developer kits containing an aggregate of libraries, and even application programming interfaces (“APIs”) which simply allowed developers to perform complex processes such as speech-to-text (“STT”) processing with a few lines of code.
APIs and SDKs paved the way for democratization of programming (to an extent) in the form of simplistic, yet highly powerful, visual tooling interfaces, part of the low-no code movement. Low-no code solutions abstract away programmatic tooling APIs and SDKs in the form of visual, drag-and-drop interfaces. Take, for example, building a semantic model for natural language understanding. Through the use of low-code tooling, interested parties can write sentences, visually tag entities, and map those entities to parts of a dialog for interface with a chatbot or voice assistant. The aforementioned scenario has fueled the Conversational AI market and proliferation of assistant-based technologies across all facets of industry.
The rational for highlighting the three aforementioned topics: (1) Artificial Intelligence, specifically Generative AI (2) Programming and (3) Low-No Code is that a new framework for development and co-creation are emerging, democratizing innovation and accelerating the path of creation within society.
Let me delve in further…
Collaboration:?The first intersection resides between programming and low-code tools. Low-no code systems are designed to span three primary personas: (1) An individual with no programming experience, (2) A “Citizen” developer or one whom is self-taught enough to write basic code and (3) An experienced programmer. Spanning the array of expertise opens the gateway for collaboration and innovation amongst all parties. Noting that low-no code systems abstract further the low-level granularity that code provides, all parties can begin on a low-code system to expedite proof of concepts, then export and handoff to a developer for fine-tuning, with iterative cycles until completion (and thereafter). This cyclical development fosters immense collaboration and fine-tuning to grow innovation, cut development cycles, and reduce time-to-market.
领英推荐
Code Generation:?The second intersection, as part of this analysis, is the intersection between programming and artificial intelligence. Utilizing Generative AI and the OpenCodex from OpenAI, Microsoft released?GitHub CoPiliot, a new functionality within GitHub that allows programmers to simply write a prompt, in the form of comments, for the type of code they are about to write, and Copilot will generate the lines of code required to complete that prompt in the form of AI-based suggestions, similar to autocomplete whilst writing an email. Most code, with the exception of scripting, is a compiled language and thus has a distinct answer to train via supervised machine learning for large language models; even scripting langauges needs to run and generate a specific output. While probabilistic in nature and prone to error, this further expedites the development process for engineers and reduces the time to write standardized and more routine code, allowing developers to shift focus to more cusotm and unique coding.
Ambient Abstraction: The last intersection as part of this analysis arrives at a term I am dubbing “ambient abstraction.” Imagine a scenario whereby Generative AI is applied within a low-code / no-code platform with a dedicated training corpus layered per tenant (presuming a large organization or team). This large language model contains similar training to that of Copilot but continues to learn based on the code applied by developers within an IDE within the tool. Code that is written and compiled or deployed acts as feedback within the system, training it further. With enough data, the system then becomes ambient, listening in the background and starting to generate recommendations of code blocks to abstract into the low-code platform as drag and drop UI objects unique to the tenant.
What I am ultimately proposing and foreseeing is a new paradigm of development that spans programming know-how AND user (human to AI) in a harmonious and symbiotic collaboration whereby:
At the time of this writing, I am not privy to any low-code platforms that employ ambient abstraction, but I yield to the broader tech ecosystem as one of the use cases for generative artificial intelligence and large language models that might derive from it’s popularity. Humans, alongside AI, continue to push the upper bounds of innovation and I am excited to see the next wave of paradigm shifts occur.