Menu
in

Exclusive interview with Steven Pemberton on AI and programming. #CentennialPerspective

GOSIM Foundation

Summarise this content to 300 words

As an alumnus of the same university as Stephen Hawking, with a university mentor who invented the first transistor computer, and as a direct disciple of “the father of artificial intelligence,” Alan Turing, Steven Pemberton from CWI boasts numerous illustrious titles.

As the keynote speaker for the European leg of GOSIM 2024, Steven Pemberton, a direct disciple of Alan Turing, gave an exclusive interview to Open AGI Forum, a subsidiary of GOSIM.

In the interview, Steven shared his career journey and unique insights:

1. Currently, what we call AI speech isn’t actually intelligent — there’s no “I” in “AI.” In the future, general artificial intelligence will have self-awareness and be thousands of times smarter than human intelligence.

2. Previously, compared to the cost of computing devices, programmers were almost free; now, compared to the cost of human programmers, computing is almost free. This shift necessitates a significant redesign of programming languages.

3. Open source is crucial, and its achievements are ubiquitous in our daily lives.

4. In the future web, we need to return to a more sustainable path of information rather than programming.

5. Programmers should think less at the low execution level and engage in more abstract thinking.

Here is the interview summary:

A Career Driven by Interest and Luck, Not Fame

GOSIM: Hello everyone, welcome to Open AGI Forum. I am Echo Tang from CSDN. We are honored to have Steven Pemberton, a researcher from CWI (the Netherlands’ national research institute for mathematics and computer science), with us at the GOSIM Conference Europe. Welcome, Steven.

(Note: CWI, also known as Centrum Wiskunde & Informatica in Dutch, is the national research center for mathematics and computer science in the Netherlands. Founded in 1946, it is part of the NWO-I research organization. Located at the Amsterdam Science Park, it has close international ties and is renowned for its innovative research. CWI is also famous as the birthplace of the Python programming language.)

GOSIM: To begin, how did you get started with computers and programming? What motivated you to pursue a career in computing? Could you share your journey in the field of technology?

Steven: I studied electronics at university. At that time, electronics was an exciting field — computers existed but hadn’t yet entered homes and were still industrial products.

I attended a university with a mentorship system. Fortunately, my tutor, Richard Grimsdale, was the person who built the world’s first transistor computer. I didn’t realize its significance back then. His tutor was Alan Turing, known as the father of British computing and artificial intelligence.

During my courses there, I learned programming. After graduating, I sought a programming job. Initially, I had a very minor job entering data for research institutions, but since I knew programming, I was also given programming tasks, which I enjoyed immensely. After three months, the company hired me as a full-time programmer.

It was a fantastic environment, providing me with plenty of freedom to learn. I was programming for research projects, which was inherently interesting. I was passionate about learning new things in the field of computing.

I was in the UK at the time, where I grew up. Coincidentally, one of my sources of information at work was this research institute in the Netherlands, where I now work. I became aware of CWI early on and found their work very exciting. It took many years, but I eventually joined CWI.

GOSIM: Looking back, how do you view your early technical work and its subsequent impact?

Steven: I worked as a programmer at the research center for two years. I was very fond of a new programming language called ALGOL 68. I saw an advertisement for a programming job on a new ALGOL 68 system, a compiler, in Manchester. To me, it seemed like an ideal job. I applied, got the job, and moved to Manchester.

Interestingly, it was Alan Turing’s old department. By coincidence, getting this job had nothing to do with my mentor’s previous work there.

In that department, I researched computing. This was known as the MU5 project, the fifth computer in the series started by Turing. This involvement allowed me to participate in real research. Previously, my work was just supporting research. Now, I was part of a research project developing software, which was a great learning experience.

After that project ended, I returned to Brighton, where I lived, and became a university lecturer. I continued to research programming languages and wrote a book about Pascal compilers.

(Note: The book “Pascal Implementation: The P4 Compiler and Interpreter” was published in 1982, authored by Steven Pemberton and Martin Daniels.)

After five years as a lecturer, I took a year’s sabbatical, then joined a research institute in Amsterdam, which truly marked the beginning of my career.

GOSIM: You are often introduced as a student of Richard Grimsdale and having an academic lineage tracing back to Turing. Did such a reputation impact you when you were younger?

Steven: At that time, I was very young and still a student. Everything was new to me, and I was learning everything. In fact, my mentor building the first computer was an inspiration. It sparked my interest in computing rather than directly inspiring me with his work. On the other hand, I’ve always followed Turing, read his works, and knew about his achievements. These became a fertile ground for my learning, but it wasn’t until much later that they significantly inspired my direction.

GOSIM: You have encountered many geniuses in the fields of computing and science. What valuable traits have you observed in them, and who has influenced you the most?

Steven: When I first started as a programmer, two people significantly influenced me.

One was Edsger Wybe Dijkstra, a highly influential computer scientist who greatly impacted the entire field. His writings greatly influenced me early on and helped me understand computer science. Many people today still don’t fully understand the discipline of computer science. Due to the high demand for programmers, many come from different fields without the necessary computer science background. I think computer science lacks academic rigor in many areas. The current stage is like the Wild West, where many things are developed haphazardly. Dijkstra’s academic writings greatly influenced my systematic understanding of computer science.

Another person was Ad van Wijngaarden, the director of CWI at the time. He influenced me in many ways through the ALGOL 68 programming language. I find it interesting because, to me, it was the first language designed for programmers rather than computers. The design of ALGOL 68 was very consistent, something many programming languages lack. It was elegant and forward-thinking, though many didn’t see it that way due to its highly mathematical definition. The language itself was extremely elegant and influential, although people didn’t realize it. For example, the term “dereference” used by everyone today comes from this programming language. Most people don’t know that “dereference” was invented in ALGOL 68. These early influences were significant to me.

Fortunately, both of these people were from Amsterdam, and I was drawn to Amsterdam, so I came here.

Current AI is Just Machine Learning; Future AI Might Be Frightening

GOSIM: I noticed you have given some talks about AI and experimented with ChatGPT. How do you view today’s AI? What are your thoughts on general artificial intelligence?

Steven: Every year, I teach an introductory AI course at Oxford University in the UK, where I use ChatGPT’s chat functions to demonstrate how it works. I think the most important thing for people to understand is, as I titled one of my talks — “There’s no I in AI” — meaning it’s not intelligent. We call it artificial intelligence, but that’s incorrect. It’s not yet intelligent; current AI is just machine learning.

(Note: Steven’s talk on “There’s no I in AI” can be found [here](https://homepages.cwi.nl/~steven/Talks/2024/01-12-ai/).)

We think it’s intelligent because we can’t imagine something that can generate answers to our text input. If that thing isn’t intelligent, it wouldn’t produce such responses. So we interpret it as “intelligent,” while in reality, it’s parroting. It’s just rephrasing what it has learned from other sources, without deep understanding. This is why AI programs always make mistakes. People are always surprised by the huge mistakes AI makes. The reason is it isn’t intelligent.

I believe society is not yet mature enough to fully understand the difference between machine learning and artificial intelligence. What we call artificial intelligence hasn’t yet achieved true intelligence. We should realize that what these programs convey is a rephrasing of other learned material. Therefore, you shouldn’t take it at face value; you should interpret it. You can use it to help generate your content, but you shouldn’t accept it literally.

The second issue concerns general intelligence. I’m worried it’s a huge danger. Once computers become truly intelligent, as smart as we are, it means a new entity suddenly appears on Earth. If these entities have self-awareness, then they’re like us. Current human laws would then apply to these computers. Why not? Because they would be a self-aware intelligence. It might not have the ability to act, but it is an intelligence.

For example, if we develop a way to upload our brain memories to these general intelligences, allowing us to continue existing after death as part of the general intelligence, then shutting down that machine would be morally questionable. These are issues that need to be addressed.

The next question to consider is, once these machines become as smart as we are, there is no reason they wouldn’t start doubling their intelligence, becoming twice as smart, four times as smart, or even a thousand times smarter than us, and then more capable of detecting more issues in the world. The question is, will these new intelligences be our friends? There are three possibilities — it could be completely neutral; it could be very selfish, only caring about protecting itself; or it could become our friend. We don’t really know the stance of general intelligence because we haven’t really understood how AI works yet. When it finally becomes fully intelligent, we really don’t know. I expect we won’t understand how these things operate, they will become intelligent. We have already created a mechanism, but we don’t know what makes them make certain decisions. So the question is, will it side with us?

If we look at ourselves and the lower-intelligence beings on this planet, how do we treat them? I think we are actually not very good at treating species with lower intelligence. For animals that are useful to us, we might feed them for a while and then kill them and use them. Harmless and useless animals, we don’t really care if they live or die. For animals we don’t like, we are happy to kill them, like a mosquito or a wasp, we kill these animals without hesitation. So the question is, will AI see us the same way we see lower-intelligence species? They might think it’s okay to let humans with lower intelligence live, which is the middling situation.

The worst-case scenario is — they find out there is a climate crisis, and we humans are the root cause of the climate crisis, then they might think the solution to the climate crisis is to let 90% of humans die. They will all be connected to the internet, be smarter than us, and even be able to break into every factory in the world that manufactures or produces. I am sure they will have the authority to shut down these devices for two weeks until many people die. So, I mean, this is not a very beautiful future. This is not impossible. I don’t know how we can prevent this from happening unless ensuring AI is never connected to the internet.

GOSIM: For all developers, we have been discussing the possibility of AI replacing programmers, what do you think about this?

Steven: It’s very likely. On one hand, AI is a huge opportunity to improve people’s lives. Some programmers like to sit in front of the computer and write programs for 16 hours a day, that’s their real life. But many people prefer to spend time with their families. So, if we can replace these jobs with computers and robots, that’s great. But currently, there is no indication that society will use these technologies to improve people’s lives. I think that’s terrible. I mean, there is such an opportunity to make people’s lives better, if we could reduce working hours to four hours a day, that would be fantastic. If we could use robots and AI to do that, that would be great.

I don’t think this will happen, because controllers will think it’s not in their favor, that’s just my guess. I am a bit pessimistic about this. But undeniably, AI has a great opportunity to improve humanity.

GOSIM: Do you have any advice for developers?

Steven: I am not interested in the quality of the generated code. The reason I am not impressed is that AI, machine learning, has learned to program from examples on the internet. Frankly, most programmers are not that good. It’s like in the sports world, there are a few who are absolutely outstanding athletes, and then the rest, some are pretty good, and the rest are average. In any field of life, some people are really very, very good, and some are very bad, and then the majority is in the middle. So a lot of the generated code, the quality from which machine learning learns is fairly average or even poor. So, what it produces won’t be that good either. And you need better, higher-quality AI to generate higher-quality code.

Currently, you can’t trust the code it generates, you have to check it. You can’t say, write this program for me, and then run it. You have to say, write this program for me, and then you have to check if it really does that, and still test it. Because the generated code, like what human programmers write, may have errors.

GOSIM: What role do you think open source plays in all of this?

Steven: I think open source is absolutely necessary. I am a staunch supporter of open source. I contribute to the open-source community myself, and I have always used it. I think it’s a wonderful movement, and absolutely necessary. A lot of the infrastructure we use today is open source. For example, Linux, you use Linux ten times a day without knowing it, it’s in your phone, in your router, in your laptop. Open source is a good thing, it makes the world a better place.

HTML Has Gone Astray, Declarative Programming Languages Are the Right Path

GOSIM: With the evolution of HTML to its current state, what do you think its next step might be?

Steven: I have very strong opinions about this. I suggest anyone watching this to check out my talk The 100 Year Web, where you will get my complete answer to this question.

[Note: “The 100 Year Web”

– Video link: [YouTube](https://www.youtube.com/watch?v=jl4fnY4BjEY

– Article link: [ACM](https://dl.acm.org/doi/pdf/10.1145/3543873.3585578]

However, HTML has recently gone in the wrong direction. It used to be a format that was easy to write, suitable for those who were not necessarily computer professionals, who could write useful things. But in the past few years, it has turned into a programming environment where, first, you have to be very good at programming to work comfortably.

Secondly, you now have many so-called frameworks to build websites, and HTML itself is no longer fully applicable. You have to use HTML with frameworks, of which there are 25, meaning you now have 25 different types of HTML. This is terrible because there used to be only one HTML, and now there are 25. This is the opposite of what most users want, as people need standards to learn one thing and create from it. I think the current designers of HTML are not doing a good job. They say, “If you need something new, you can implement it in programming.” That’s because they themselves are programmers, not thinking about what people really need and translating it into a language that supports people’s real needs.

So, I think HTML has become terrible because it is based on programming. I also think it means it is harming the long-term sustainability of the web. Most of our knowledge and information can now only be accessed through the web, and many books have disappeared, especially reference books.

People hope this information will remain on the web for the next 100, 200 years as part of our historical process. You don’t want to lose historical records, so you hope these records stay on the internet. But I can’t imagine a website created today still running in 100 years using JavaScript that is 100 years old, with frameworks that have not been supported for 75 years, which may not be applicable to browsers anymore.

So, I think they have taken a completely wrong direction with HTML, which is the first problem to be solved. Really, in the future of the web, we need to return to a more sustainable path of information rather than programming. Programming is the wrong way to handle information. Then the ABC language we defined was initially intended to replace BASIC. Later, inspired by ABC, Python exhibited this simplicity and became popular globally.

[Note: ABC language was developed by Leo Guerts, Lambert Meertens, and Steven Pemberton at CWI as an interactive, structured, high-level language. It was designed for non-professional programmers, aiming to replace languages like BASIC and Pascal for teaching and prototyping software design.]

GOSIM: It seems we are entering a year of natural language programming. Over many years of evolution, programming languages have shown a trend of simplification. What do you think about this trend? How do you see the future of programming with natural language?

Steven: In fact, I was invited to Amsterdam to help develop a programming language that eventually became known as ABC. I think it is a historically interesting language because it was the first programming language built using user interface principles. ALGOL 68 was designed for programmers, and we went a step further.

We did as the programmers asked and tried to meet their needs first without worrying about whether it could be implemented. We designed this language and then tried to implement it, which was interesting in itself, requiring us to explore new methods for implementing programming languages. Although the language is not large in scale, it is very powerful.

[Note: The designers of the ABC language claim that its code is typically one-quarter the size of programs written in Pascal or C and has better readability. Its main features include: only five basic data types; no need for variable declarations (dynamic variables); explicit support for top-down programming; nested statements indicated by indentation; and unlimited precision, lists, and strings.]

So, I compare it to the difference between automatic gears and manual gears in cars. Automatic gears are easier to use, but their underlying implementation may be more difficult. But if you can make it easier for users, it should be difficult for the manufacturers. So, ABC is a very easy-to-use programming language. I still use it every day. In fact, it is very powerful. We discovered a principle behind programming languages, that most are designed at a low level, providing low-level tools to build high-level tools.

We found that every programmer needs many high-level tools. If you build these into the language, you don’t have to create them yourself and can use them immediately. Things like sorting and searching are basics in the language, rather than needing to build a programming language to achieve them. So, it makes those things very fast but also makes the language very quick and easy to use. So, it was a very good lesson for us.

Although ABC itself did not become a globally used language, it became the basis for Python, which I believe is now the number one language in use, because Guido van Rossum (the creator of Python) was also involved in that project. He turned to an operating system project that needed a lower-level language and built it based on what he learned from ABC. This is part of my answer.

[Note: Guido van Rossum is the creator of Python. He worked on the ABC system in the 1980s and was inspired by the ABC language to start writing Python during Christmas 1989, aiming to create a readable, simple, and extensible programming language.]

The second part of my answer is an observation. When programming languages were first designed in the 1950s, we mainly talked about COBOL, LISP, ALGOL, and FORTRAN. There was an economic relationship between programmers and computers — at that time, a computer was very, very expensive, say a million dollars, while compared to the cost of a computer, programmers were almost free. This meant that people wanted to save as much computer time as possible and didn’t care if it took a long time to write a program. Therefore, programming languages were designed with this economic relationship in mind. So that meant that you wanted to save the computer’s time as much as possible, and you didn’t care whether it took a long time to write a program.

This relationship was broken in the 1980s. Since then, the prices of computers and programmers started to be roughly the same. Nowadays, compared to the cost of programmers, computers are almost free. But we are still programming in languages clearly derived from the 1950s. We haven’t made the mental shift — “Oh, now the expensive thing is the programmer, not the computer.” We should now design languages considering the needs of programmers without worrying about computer support. This is what my research on programming languages is about now. This is called declarative programming. In declarative programming, you describe the solution, and then let the computer figure out how to find the solution, not necessarily using AI.

[Note: In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. This contrasts with imperative programming, which specifies explicit steps to achieve an algorithm. Common declarative languages include database query languages (e.g., SQL, XQuery), regular expressions, logic programming, functional programming, and configuration management systems.]

In fact, we did this without AI, although in the future you could use AI to achieve this. An example of declarative programming that everyone has already seen is the spreadsheet, which is a very small field of problem-solving. Then, whenever a value changes, the whole thing changes again. But you haven’t programmed for this, just specified the data relationships.

So, in the declarative programming language we are designing, XForms, we do just that. We describe the relationships between the data, and then let the computer resolve it, in fact. We found that this reduces the cost of programming time. The time you need to write a program becomes at least one-tenth of what it was before, and in some cases, even one-hundredth of the necessary time. So, it’s faster, more powerful, and lets you get the job done in relatively short order. So, I think this is the direction programming languages should take in the future. And I believe, once project managers realize they can cut resources down to one percent, the shift to declarative programming will happen.

Message to Developers: Au Fait, Abstract Thinking

GOSIM: For many programmers, new waves of technology bring anxiety and panic. In your opinion, what skills or mindsets are important to develop at different stages of a programmer’s career?

Steven: I believe it is important for most programmers not to live in a single cultural bubble. While your daily work will certainly involve using a particular language, you should au fait. You should not only be familiar with multiple languages but also with different types of languages.

Programmers shouldn’t just program procedurally; they should know how to program in object-oriented, functional, or declarative languages. This helps programmers think about problems in different ways. I’ve found it a fascinating evolution for me, learning how to program declaratively, because what I’ve discovered is that I look at problems in a completely different way, and I feel that that’s very advantageous.

Another important thing for programmers is not to think at too low a level. Many programmers think from the perspective of how computers work, which greatly influences the way you think about problems. Before you start trying to solve problems, you should try to learn to think more abstractly and understand the abstractions involved.

GOSIM: This has been a wonderful conversation, thank you, Steven.

Source link

Source link: https://medium.com/@gosimfoundation/discussing-ai-and-programming-with-a-centennial-perspective-gosims-exclusive-interview-with-586f706a1a95?source=rss——ai-5

Leave a Reply

Exit mobile version