avatarMaxime Topolov

Summary

The evolution of coding has led to the rise of AI prompting as the future of communication between humans and machines.

Abstract

The article discusses the history of coding, starting from the first binary adder circuit created by George Stibitz in 1937, to the development of the first programmable, electronic, general-purpose digital computer, ENIAC, in the 1940s. It then moves on to the evolution of developer's work, from programming with chips to the rise of AI and prompting. The article highlights the limitations of traditional programming and the potential of AI prompting, which involves providing GPT-3 with an input text to generate results. The article also mentions the challenges and importance of crafting the right prompt, as well as the growing demand for people who can interact with AI through prompting.

Bullet points

  • The first binary adder circuit was created by George Stibitz in 1937.
  • ENIAC, the first programmable, electronic, general-purpose digital computer, was developed in the 1940s.
  • The evolution of developer's work led to the rise of AI and prompting.
  • Traditional programming has limitations, such as requiring strict rules and being predictable.
  • AI prompting involves providing GPT-3 with an input text to generate results.
  • Crafting the right prompt is important and requires training, trials, and error.
  • The demand for people who can interact with AI through prompting is growing.

Coding is outdated, learn AI prompts

Code is only a transient way of communication between humans and machines in computer history, the future of coding is AI prompting, let’s see why.

But before jumping right to the AI Prompt engineering, follow me in a passionate story of computers and coding, starting right before World War II…

When coding meant welding

Sitting at his kitchen table during a cold November of 1937, a young mathematician from Bells Labs had a brilliant idea, paving the path to modern computers and the world as we know it today.

George Stibitz understood that boolean logic could work with simple electric components at his disposal. Staying late at night, assembling old relays, wires, and tin strips he created the first binary adder circuit. A very simple, electromechanical circuit capable of binary addition. He named it Model K — K for the kitchen, where it was assembled.

Model K — 1937

Plugs and wires developers

5 years later, the World War II was raging in Europe, and a young Jewish professor, Herman Goldstine, discovering the atrocities of the Nazis, decides to leave his job at the University of Michigan and joins the US Army, as a lieutenant.

Brilliant mathematician, he was tasked by his superiors with calculating firing tables at the Ballistic Research Laboratory. The firing tables were used in battle to find the appropriate elevation and azimuth for aiming artillery, which had a range of several miles.

Each firing table was a unique combination of 3.000 trajectories, and there was a firing table for each combination of wind, gun, topology, location, and shell.

Firing Tables for Artillery

The firing table calculations were accomplished by about one hundred women operating mechanical desk calculators. It took this “human computer” at least 7 hours to calculate one trajectory based on 750 calculations.

Herman Goldstine, looking for a way to optimise this tremendously laborious process, tried to make some adjustments to the mechanical differential analyzer from the Moore’s School, a tool used to slightly speed up the calculation process.

Moore School Mechanical Differential Analyzer in action

During one of his visits, he bumped into Joseph Chapline, who suggested Goldstine to talk to John Mauchly, who recently wrote a memorandum saying that he could do the calculation thousands time faster with an electronic computer using vacuum tubes.

Vacuum Tubes, the building material of first computers

Mauchly and Goldstine wrote a proposal for the US Army in March 1943.

Goldstine made his case to a committee headed by the mathematician Oswald Veblen. Veblen brought his chair forward with a crash, got up, and said to Col. Leslie E. Simon, director of the Army’s Ballistics Laboratory:

“Simon, give Goldstine the money.”

The construction contract was signed on June 5, 1943; work on the computer began in secret the following month, under the code name “Project PX”, but will be famous in the IT history as the Electronic Numerical Integrator and Computer or ENIAC — the first programmable, electronic, general-purpose digital computer.

Blue prints of the declassified Project PX

It was built in 30 months requiring 200,000 man hours and around 6.000.000$ in modern monies. The ENIAC was huge, measuring 30 by 60 feet and weighing 30 tons. It was packed with 18,000 vacuum tubes, 1.500 relays, 70.000 resistors, 10.000 capacitors but could only store 20 numbers and took days to “program”.

Two women “programming’ ENIAC by plugging cables into switches.

ENIAC could be programmed to perform complex sequences of operations, including loops, branches, and subroutines by a combination of plugboard wiring and three portable function tables (containing 1,200 ten-way switches each).

The “MVP”, as we would say today, of each new program was first drafted on paper then, women-gurus, with deep understanding of internal architecture of ENIAC manipulated switches and cables for days.

Fun fact: the most common word in developer’s lives: bug, comes from a moth trapped in a relay of one of these giant machiens. Since then, poor ants are being hold responsible for human’s stupidity and errors.

Picture of the very first bug in computer industry

Next evolution of developer’s work: giving instructions to a chip

Fastforward in the late 60's, the world is now dominated by mainframe computers, large, air-cooled grand-children of ENIAC, with more computing-power, transistors and even storage units, but still costing hundrends of thousands of dollars, and requiring a crew of engineers to operate them.

In 1968, Busicom, a small Japanese company that builds calculators is struggling financially as the market competition is harsh, and pressure on releasing new products is very high.

One of their young engineers, Masatoshi Shima proposes a revolutionary design of a calculator based on a programmed approach rather than integrated circuits boards.

He promises, that this would allow easy changes to be applied to alter the specification of the calculator, but more importantly a universal hardware that can be used in different products of the company, like cash desks.

Masatoshi Shima

Busicom contacted Intel Corporation, who initially was reluctant to work on R&D of this new yet complicated design and small batch Busicom could afford. Yet the project continued and resulted in the design of a chipset, based on 4 different chips:

  • 4001, 2048-bit metal-mask-programmable read-only memory (ROM) with a 4-bit programmable I/O port. This ROM was only mask programmable during manufacture, and was organised as 256 x 8-bit words.
  • 4002, 320-bit random-access memory (RAM) and 4-bit output port.
  • 4003, 10-bit shift register
  • 4004, 4-bit central processing unit (CPU) (the microprocessor) with a maximum clock speed of 750 kHz.
Busicom 141-PF Calculator OEMed inside NCR

Busicom, was still experiencing financial difficulties due to the decreasing prices of electronic calculators as more companies started to produce them.

In order to reduce costs, Busicom began negotiating with Intel for a reduced price on the chipset that they had designed together.

Intel agreed to this on the condition that Busicom waive their exclusive rights to the chipset. The chipset was given the name MCS-4 (Micro-Computer System 4-bit). Although the chip set had potential applications in both computers and smaller electronic machines, neither Busicom nor Intel were very enthusiastic about it. However, Frederico Faggin, the designer of the 4004, created a production tester for the 4004 which demonstrated that it could be used for more than just calculators…

Federico Faggin left Intel in 1974 to start up Zilog where he designed the Z80 microprocessor, an improvement on the Intel 8080, and one of the world’s highest-selling microprocessors.

Microprocessors, took over the world opening the path for massive adoption and continuous demand for people creating programs for those machines: modern developers. Working on programs using languages like C, Fortran, Cobol or writing direct instructions to the CPU with assembler.

For the 50th anniversary of ENIAC, some students created a chip replicated the entire ENIAC

There were no major breakthroughs in the way people programmed computers since then. For sure, many new languages were created, simplifying the work of developers:

  • First interpreted languages in the ’90s offered a real cross-platform set of languages that may run on any hardware (Java, PHP, Visual Basic, …)
  • Browser-executed languages (Javascript)
  • An extensive set of libraries to interact with graphic cards, generating 3D, and sending information in the network, databases, or printer.
  • Parallel and distributed programming
  • Event-driven and serverless programming
  • APIs and Frameworks
  • CMS, ERPs, PIMs, DAMs, CRMs, ….

But all those simplifications either providing out-of-the-box complex features or reducing the time to production of new features, still demanded from developers to write code.

Programming is still today about telling a computer (or a cloud-based platform) what to do and how to do it. It involves breaking down tasks into smaller steps, and repeating this process until the computer doesn’t need to be told what to do anymore. Problem-solving is an essential part of programming, as it involves thinking of all the different steps a user could take and considering all the different things that could go wrong. Once you’ve thought of all the potential problems a user may encounter, you have to find solutions before you code anything.

Even the recent and very popular No-code movement still requires you to precisely instruct the No-Code platform what to do, in a very deterministic way. You still do code, in a visual way.

The Raise of AI and prompting

A few months ago, I got access to OpenAI’s GPT-3. It’s an amazingly large neural network cracking many natural language problems, like AI-assisted writing, code generation, translation, question answering, and much more.

The way you interact with the system in the most common way is by providing GPT-3 a prompt. An input text, that will go through the 175 billion parameters and provide you with a result. That’s it. No welding, wiring, coding, or designing anything complex. Plain English text.

Crafting the right prompt requires a lot of training, trials and error. The large neural network is not coded by a language with strict rules. It is therefore not predictable in terms of results. You can’t simply learn a grammar or set of rules to obtain repeatable results. For each problem, you’ll be facing you need to learn how to talk to the AI.

A few months later DALL-E and Midjourney Text-To-Image AIs flooded Twitter with beautiful images generated from… prompts.

There are now 90 slides tutorials on how create prompts for DALL-E and event websites specifically created to generate proper prompts for Midjourney AI.

As the pervasive presence of large neural networks in IT will continue to grow, there will be more and more chances that you might be required to interact with an AI through prompting. Learning how to do so in an efficient way is a rare and valuable skill to learn.

But let’s dig into some craziest prompts for GPT-3 to give you an insight of how diverse and interesting this absolutely new discipline is:

Prompt writing code
GPT-3 Playing Chess

Imagine you’ve been asked to create a program that automatically summarizes books into short texts of a few paragraphs long. How would you do?

Knowing the limits and capabilities of AI is also key. You might consider GPT-3 for many applications if you know how to prompt and fine-tune it:

  • Automatic generation of regexp based on plain English
  • Titles generation integrated into popular CMS through AI-based plugins and modules
  • Code debugging

I bet that in a near future some No-Code platform will integrate large neural networks like GPT-3 to create apps with prompts. The guys who will master those prompts will be the kings of that world.

AI
Developer
Future Technology
No Code
Coding
Recommended from ReadMedium