Pull to refresh

Программированию конец?

Level of difficultyMedium
Reading time27 min
Views70K
Original author: Мэтт Вулфи / Matt Wolfe

Данная статья является переводом видеоролика с канала Мэтта Вулфи, который в основном посвящен теме искусственного интеллекта.

Я обратился к автору видео в комментариях (не нашел прямых контактных данных в описании канала) с просьбой официально разрешить мне сделать перевод на русский, однако, в силу того, что по состоянию на 04.03.2024 г. реакции не последовало, я делаю перевод в текстовом формате, прежде всего, чтобы избежать проблем с авторскими правами при публикации переводного видео на YouTube.

Моё видение в части вопроса, рассматриваемого ниже, совпадает с мнением автора видео, с небольшим примечанием, которое заключается в том, что последний раз я программировал на Pascal в институте около 20 лет назад (курсовая работа — часовой циферблат с тремя идущими стрелками).

Целью публикации статьи не является хайп, глумление или вызов резонанса, скорее это поиск ответа и желание предупредить аудиторию о том, что грядут серьёзные изменения, которые могут привести к необходимости переоценки или даже смены приоритетов.

Таймкоды можно было расставить чаще, однако данная статья предназначена для читателей, а не актёров озвучивания, вследствие чего она разделена таймкодами на логические блоки, а не на отдельные предложения или реплики. При переводе я пользовался прежде всего нейросетью DeepL.com, а также онлайн словарем multitran.com, контекстным онлайн‑словарем Reverso и онлайн‑словарем синонимов. Для простоты понимания, пришлось допустить в переводе некоторые англицизмы, в частности слова чатбот и промпт. Также прошу учесть разговорный стиль изложения Мэтта, со множеством повторений, использованием сленга и выражений‑профессионализмов.

Диалоги (и монолог Дженсена Хуанга) оформлены в соответствии со сценарными правилами, а также выделены курсивом. Речь непосредственного автора видео, Мэтта Вулфи, не выделена.

Насколько я понимаю, подобный формат размещения переводного материала (в виде двуязычной таблицы) на Хабре используется впервые. Таким образом, это своего рода эксперимент, так что прошу вас, не судите строго!

P. S. Если вы прочитали первые строчки — набившую оскомину новость о мнении Дженсена Хуанга, Главного исполнительного директора NVIDIA в части того, что с помощью ИИ каждый сможет стать программистом — и подумали, что в статье уже не будет ничего нового, пожалуйста, не торопитесь её закрывать. Поверьте, там изложено много интересного (и даже капелька теории).

Приятного прочтения!

00:05

Jensen Huang:

I want to say something and it”s, it”s gonna sound completely opposite of what people feel. Over the course of the last 10 years, 15 years almost everybody, who sits on the stage like this would tell you, it is vital that your children learn computer science. Everybody should learn how to program.

And in fact it”s almost exactly the opposite. It is our job to create computer technology such that nobody has to program and that the program language is human. Everybody in the world is now a programmer. This is the miracle of artificial intelligence.

The countries, the people that understand how to solve a domain problem in digital biology or in education of young people or in manufacturing or in farming, those people who understand domain expertise. Now can utilize technology that is readily available to you. You now have a computer that will do what you tell it to do.

It is vital that we upskill everyone and the upskilling process, I believe, will be delightful, surprising.

Дженсен Хуанг:

Я хочу сказать кое‑что, и моя мысль пойдет совершенно вразрез мнению людей. Почти все, кто выступал с большой сцены за последние 10, 15 лет, сказали бы вам: жизненно важно, чтобы ваши дети изучали информатику. Все должны научиться программировать.

В действительности же дела обстоят почти с точностью до наоборот. Наша задача — создать такую компьютерную технологию, чтобы никому не приходилось программировать и чтобы язык, на котором общаются люди, и был языком программирования. Теперь все в мире программисты. В этом и заключается чудо искусственного интеллекта.

Страны, люди, которые понимают, как решить проблему в области цифровой биологии или образования молодежи, или производства, или сельского хозяйства, — те люди, которые обладают знанием предметной области. Теперь они могут использовать технологию, которая доступна по первому требованию. Теперь у вас есть компьютер, который будет делать то, что вы ему скажете.

Крайне важно, чтобы мы повысили квалификацию каждого, и процесс повышения квалификации, я полагаю, будет упоительным и удивительным.

01:03

Emad Mostaque, the CEO of Stability AI also has similar thoughts on this:

— There are no programmers in 5 yeas!

— No programmers in 5 years. So those of you with kids, who you”re having, you know, with python lessons and so forth, maybe it”s instead helping them to understand how to ask great questions or give great directions or prompts?

— I think we always have to look at unchanging versus the inevitable, so an inevitable is 41% if all code on GitHub right now is AI generated. ChatGPT can pass Level 3 programmer exam (Link) and it will run pretty much on MacBook or…

— That”s this year?

This year, right now!

Эмад Мостак, Главный исполнительный директор компании Stability AI, придерживается аналогичных взглядов:

Э.М.: Программистов через 5 лет не будет!

Ведущий: Программистов через 5 лет не будет. Так что, те из вас, у кого есть дети, изучающие, к примеру Python и прочие языки, возможно, вместо этого вам нужно помочь детям разобраться в том, как задавать правильные вопросы или выбирать нужное направление деятельности или писать промпты?

Э.М.: Я думаю, мы должны уметь четко оценивать, что неизменно, а что неизбежно, так вот неизбежность ситуации заключается в том, что на текущий момент 41% всего кода, размещенного на GitHub, сгенерирован искусственным интеллектом. ChatGPT может сдать экзамен на программиста 3-го уровня квалификации (ссылка), и он будет легко работать на MacBook или...

Ведущий: Это в этом году?

Э.М.: В этом году, уже сейчас!

01:32

At some degree, I personally agree with these guys.

I don”t necessarily agree with the fact that people should stop learning how to program, I think there is still value, there is still merit to that and I will get to that a
little bit later in this video, but I do believe in the future, probably even sooner that the 5 years that Emad is talking about here, probably within the next year or two, most code will be written with AI and not by a human typing it. Not only do I think that humans won”t need to write in the future, I also believe that this was inevitable and was the direction coding was heading in.
Throughout the history of programming languages, every new language, that came along was designed to make it easier, and easier, and easier for people to create code.

В какой‑то степени лично я согласен с ними.

Я не совсем согласен с тем, что люди должны перестать учиться программировать, я думаю, что в этом
есть своя ценность, свои достоинства, и я вернусь к этой теме немного позже, но я действительно считаю, что в будущем, возможно, даже раньше, чем через 5 лет, о которых говорит Эмад, возможно, через год или два, основной объем кода будет писаться ИИ, а не человеком. Я не только полагаю, что в будущем людям не нужно будет писать код, но и считаю, что это было неизбежно и именно в этом направлении развивалось программирование. На протяжении всей истории языков программирования каждый новый язык создавался для того, чтобы людям было все проще и проще писать код.

Хронология языков программирования
Хронология языков программирования

02:18

If you look back in the 1950s, we had COBOL, Fortran, Lisp. These were very, very complex programming languages, that were a very, very specialized skill in order to create code with this.

In the 1960s there was ALGOL 60 and BASIC, which made programming a little bit easier. Now, I”m not personally a programmer myself, I”ve learned a little bit of code. The first coding language I ever learned to play around with was the BASIC programming language and I was actually able to figure out little bits of it and code a little bit myself with it, where I was not able to code when I messed with around with COBOL or Fortran.

Then in the 1970s we got SQL, we got C, we got Pascal and we got Smalltalk, one that I”m not familiar with, but these three right here all made what came before it even easier to use and you can kinda see the lineage here on this graph of how both C and Pascal both came from ALGOL 60, and BASIC eventually led to Perl and there”s sort of trackable lineage.

But then in the 1980s we got objective C and C++ and Perl, which simplified these programming languages even more, making it even easier for larger amount of people to get involved in creating code.

And then in the 1990s we got an explosion of new programming languages as more and more people were starting to use internet, but these languages were also slightly easier to use than the models, that came before. We got JavaScript, Java, Ruby, Python, PHP and these were all so much easier to code with, than the languages before it.

I”ve actually taught myself a little bit of PHP, I know a little bit of Python, I know a teeny bit of JavaScript and without ever taking any coding classes I can do some fairly basic level things with these languages.

And then in the 2000s
we got Scala, C#, Go, and in the 2010s Swift, TypeScript, Dart and Rust. And
again, each one of these languages were sort of simplified versions of the
languages that came before it.

Если вернуться в 1950-е годы, то код писали на таких языках как COBOL, Fortran, Lisp. Это были очень, очень сложные языки программирования, для написания кода на которых требовались очень, очень узкоспециальные навыки.

В 1960-х годах появились ALGOL 60 и BASIC, которые немного упростили программирование. На текущий момент, я не программист, но немного учился писать код. Первым языком программирования, с которым я научился работать, был BASIC, и я действительно смог разобраться в нём и немного программировать на BASIC, чего я не мог сделать, когда возился с COBOL или Fortran.

Затем в 1970-х годах появились SQL, C, Pascal и Smalltalk (с последним я не знаком), а три указанных языка упростили то, что было до них, и вы можете увидеть на представленной схеме, что C и Pascal произошли от ALGOL 60, а BASIC в конечном итоге привел к появлению Perl, и здесь прослеживается определённая преемственность.

Однако, затем в 1980-х годах появились C, C++ и Perl, которые ещё больше упростили рассмотренные выше языки программирования, что позволило большему количеству людей войти в процесс написания кода.

А в 1990-х годах мы наблюдали скачкообразное развитие новых языков программирования, поскольку всё больше и больше людей начинали пользоваться Интернетом, при этом, новые языки также были немного проще в использовании, чем модели, которые возникли до этого. Появились JavaScript, Java, Ruby, Python, PHP, и все они были намного проще в использовании, чем более ранние языки.

Собственно говоря, я самостоятельно чуть‑чуть изучил PHP, чуть‑чуть Python, чуть‑чуть JavaScript и, даже не посещая курсов по программированию, с помощью этих языков я могу делать некоторые вещи на довольно базовом уровне.

Затем в 2000-х годах появились Scala, C#, Go, а в 2010-х — Swift, TypeScript, Dart и Rust. И опять же, каждый из них был своего рода упрощённой версией языков, которые возникли ранее.

04:17

Programming languages over the years have been designed to get easier and easier and easier so that more people can actually code with them and it takes more and more complexities away, further democratizing the coding so more and more people are able to do it.

С течением времени, языки программирования становились всё проще и проще, что позволяло всё большему количеству людей писать код, и это устраняло все больше сложностей, ещё сильнее снижая порог вхождения в процесс, и всё больше людей смогли заниматься этим.

2020-е годы, возникновение ИИ-помощников по написанию программного кода
2020-е годы, возникновение ИИ‑помощников по написанию программного кода

04:32

Here we are in the 2020s and now we”re getting AI code assistance, which is essentially the next natural progression of all of this.

А сейчас идут 2020-е, и у нас есть в распоряжении ИИ‑помощники по написанию кода, что, по сути, является следующим естественным этапом развития процесса.

04:41

It”s just a simpler way that further democratizes coding so that more and more people are able to code.

По сути, это простой способ ещё больше снизить порог вхождения в программирование, что позволяет всё большему количеству людей писать код.

04:47

But the we also have the concept of layers of abstraction.

Кроме того, существует концепция уровней абстракции.

Иерархия уровней абстракции
Иерархия уровней абстракции

04:50

This is what layers of abstraction look like in computers.

You”ve got your hardware layer and your software layer. So down here you”ve got your physics, devices (transistors), gates/registers, microarchitecture, instruction set architecture, this is all of the stuff inside your computer, this is the hardware in your that is doing little things, making your computer operate.

Now the software, that is telling the hardware what to do is called machine code or machine language. This is often binary, represented by zeros and ones or hexadecimal. Just numbers and letters that if you just try to look at it, it pretty much makes no sense to the human brain, but it is what is telling the hardware underneath what to do.

We then have a layer on top of machine code called Assembly language. This is still a very complex language, but it tell the machine code what to do. It”s another layer of abstraction on top.

Then you have the programming language. These are the things we just got done talking about. Your C++, your JavaScript, C#, Rust, etc., these are all the programming languages, that sit on top of the Assembly Language, so when you”re writing lake a C++ code, the C++ code is basically telling the Assembly Language what to do, the Assembly Language is telling the machine code what to do, machine code is then basically telling the hardware what to do and I”m really really oversimplifying this, but this is the layers of abstraction.

Every layer, that sit on top of the previous layer is designed to sort hide and eliminate the complexities of the layer below it.

Именно так выглядят уровни абстракции с точки зрения компьютерных технологий.

Есть аппаратный уровень и программный уровень. Итак, нижняя часть иерархии — это физические процессы, устройства (транзисторы), логические элементы/регистры, микро‑архитектура, архитектура набора команд — т. е. всё, что находится внутри компьютера, это аппаратное обеспечение, которое делает простые вещи, заставляя компьютер работать.

Программное обеспечение, которое указывает аппаратуре, что делать, называется машинным кодом или машинным языком. Зачастую это двоичный код, представленный нулями и единицами, или шестнадцатеричный. Цифры и буквы, которые, если просто посмотреть на них, не имеют никакого смысла для человеческого мозга, но именно они указывают аппаратному обеспечению, что делать.

Поверх машинного кода есть уровень, называемый языком ассемблера. Это по‑прежнему очень сложный язык, однако он указывает машинному коду, что нужно делать. Это ещё один уровень абстракции.

Затем идут языки программирования. Это те вещи, о которых мы только что закончили говорить. C++, JavaScript, C#, Rust и т. д. — это всё языки программирования, которые находятся на уровень выше языка ассемблера, поэтому, когда вы пишете код на C++, код на C++, по сути, говорит языку ассемблера, что делать, язык ассемблера говорит машинному коду, что делать, машинный код затем, по сути, говорит аппаратуре, что делать, и я очень сильно упрощаю, но это и есть уровни абстракции.

Каждый новый уровень, который располагается выше предыдущего, призван скрыть и устранить сложности
нижележащего слоя.

06:22

Over time computers have built up layer after layer after layer after layer to make it easier for humans to explain what he wants to computer to do.

Со временем в компьютерных технологиях уровень надстраивался на уровень, в результате чего человеку становилось всё проще объяснять компьютеру, что он должен сделать.

06:30

So if we”re looking at this from the angle of layers of abstraction, AI coding assistant is essentially another layer of abstraction on top of the programming language.

Так что, если смотреть на вопрос с точки зрения концепции уровней абстракции, то ИИ‑помощники по написанию кода — это, по сути, ещё один уровень абстракции, который располагается выше уровня языков программирования.

Ии-помощник по написанию кода как следующий слой в концепции уровней абстракции
Ии‑помощник по написанию кода как следующий слой в концепции уровней абстракции

06:40

In the future, I don”t even think we”re gonna be using AI code assistants, I think we”re basically going to be telling the computer with voice or a simple prompt what we actually want a piece of software to do. And then the AI is going to ask questions about the software to make sure it understands and then just go and write the code.

So it is just another layer of abstraction on top of what we already got. Hence why I believe this is where it was always headed, throughout history we always added new layers of abstraction on top of the sort of more complicated thing below it to make it easier and easier for users to actually work with.

В будущем, я думаю, мы не будем использовать даже ИИ‑помощники по написанию кода, мы будем сообщать компьютеру голосом или простым промптом, что именно должна делать та или иная программа. После чего ИИ будет задавать вопросы о программе, чтобы убедиться в том, что ему понятна суть программы, а затем он будет просто писать код.

Таким образом, попросту появится ещё один уровень абстракции поверх того, что есть сейчас. Поэтому я считаю, что к этому всё и шло: на протяжении всей истории мы всегда надстраивали
новые уровни абстракции над более сложными, что упрощало работу пользователей с ними.

07:16

In fact here”s a quick clip from McKay Wrigley, who basically built a bot. He can explain in words what he wants and then the AI underneath goes and just does it.

Вот небольшой ролик от Маккея Ригли, который, по сути, создал бота. Боту можно поставить задачу с помощью голосового ввода, а затем искусственный интеллект просто выполнит задачу.

07:26

˗ Run Jarvis

˗ Yes.

˗ I need next app with Tailwind

˗ You want me to create a new next.js app with Tailwind CSS?

˗ Yes

˗ One moment. What would you like the app to do?

˗ This time I want a basic social networking app and it needs to have 3 things. It needs to have a profile creation form, it needs to have profile viewer and I also want a way to see all the users on the network.

˗ You want a basic social networking app that includes profile creation page, a profile viewer and a list of all the users. What would you like the profiles to have?

˗ Lets skip it. Kind of simple let”s just do a name, an e‑mail and a username

˗ I”ll add those fields to profile schema. What else can I do?

˗ I want you to optimize the site so that it works with mobile and desktop devices and I also want you to stile it in like a dark mode

˗ OK, I”ll optimize it for both mobile and desktop and style it in dark mode. Anything else?

˗ Start building

˗ OK, I”ll start working. I created new repo called basic social network.
Continuing…
I initialize the app, continuing... I also optimize some speed things. I”m creating a profiles table in your database, continuing. The app is building correctly. Would you like me to deploy it?

˗ Oh, yeah

˗ OK, deploying to Versal, continuing. I deployed your project to versal on OK personal, continuing. I”m all done. Wasn”t that fast? You should give me a raise!

˗ Ahahaha… BOOM! Dark
mode. Let”s see if it”s responsive. OK. That looks fine, it shows the profile.
You see we have an all profiles list, let”s click that. This is showing us the
profiles, now let”s go… Let”s make sure this is responsive… It is, it is and if
we go to our database… It is in our DB, the game has changed, everyone!

М.Р.: Запусти Jarvis.

ИИ: Да.

М.Р.: Мне нужно создать приложение на Tailwind

ИИ: Вы хотите, чтобы я создала новое приложение next.js в Tailwind CSS?

М.Р.: Да

ИИ: Один момент. Что должно делать данное приложение?

М.Р.: В этот раз мне нужно базовое приложение для социальных сетей, и в нем должны быть 3 вещи. В нем должна быть форма создания профиля, средство просмотра профиля и способ просмотра всех пользователей в сети.

ИИ: Вам нужно базовое приложение для социальной сети, которое включает в себя страницу создания профиля, средство просмотра профиля и список всех пользователей. Что должно быть указано в профиле?

М.Р.: Давай пропустим этот этап. Просто остановимся на имени человека, электронной почте и имени пользователя.

ИИ: Я добавлю эти поля в схему профиля. Что ещё нужно сделать?

М.Р.: Я хочу, чтобы ты оптимизировала сайт так, чтобы он работал на мобильных и настольных устройствах, и ещё я хочу, чтобы ты сделала его в тёмном режиме.

ИИ: Хорошо, я оптимизирую сайт для работы на мобильных и настольных устройствах и оформлю его в тёмном режиме. Что‑нибудь ещё?

М.Р.: Начинай разработку

ИИ: Хорошо, я начну работать. Я создала новое репо (репозиторий) под названием Базовое приложение для социальной сети. Продолжаю... Я запускаю приложение, продолжаю... Я также оптимизирую некоторые вещи для скорости. Я создаю таблицу профилей в вашей базе данных, продолжаю... Приложение создаётся правильно. Хотите, чтобы я запустила его?

М.Р.: О, да!

ИИ: OK, запускаю приложение на Versal, продолжаю. Я развернула ваш проект на Versal на OK Personal, продолжаю... Я закончила. Разве не быстро? Вы должны повысить мне зарплату!

М.Р.: Ахахаха... БУМ! Тёмный режим. Посмотрим, как оно реагирует на мои действия. ХОРОШО. Выглядит нормально, показывает профиль.
Видите, есть список всех профилей, давайте нажмём на него. Просматриваем профили, теперь давайте... Давайте убедимся, что оно реагирует на действия... Так и есть, так и есть, и если мы перейдем в нашу базу данных… Оно в нашей базе
данных, люди, отныне всё изменилось!

09:18

Now I did speed up a little bit, I cut out some of the gaps, it did take a little bit of time from the time he gave it a prompt to the time it responded so just to keep the video flowing I cut some of that out, but he was able to use a Voice Assistant that he created to create code without ever actually typing a line of code.

Я немного ускорил видео, вырезал несущественные места, поскольку с того момента, как он поставил задачу посредствоми промпта, до ответа ИИ, прошло некоторое время, и поэтому, чтобы видео не затянулось, я опустил часть, но суть в том, что он смог использовать созданного им голосового помощника для создания кода, не печатая самостоятельно ни строчки.

09:34

The same person, McKay Wrigley, shared this video over on X, is pretty crazy, he actually got Gemini to debug his code by recording videos of bugs, so he would use a tool, screen capture of his computer of the bugs that were popping up while he was using the tool, feed the video into Gemini and the Gemini would fix the bugs for him.

Now, I”m not going to
play this whole video, it”s another 3 minute video, but I will link it up in
the description, if you want to see him go though this process.

Тот же человек, Маккей Ригли, поделился вот этим видео на своей странице на X (*запрещена на территории РФ). И оно довольно резонансное. Он заставил Gemini устранить программные ошибки в коде, записав их на видео. Он запускал программу, делал запись видео с экрана, где показывались ошибки, которые появлялись во время использования программны, скармливал видео Gemini, а затем ИИ Gemini исправлял ошибки за него.

Я не буду воспроизводить это видео целиком, оно длится 3 минуты, но я дам ссылку на него в описании, если вы хотите посмотреть, как проходит процесс.

10:04

There are also more and more AI coding assistants popping up every day and it seems like with almost every single new AI coding assistant is getting better and better at creating and debugging code for people.

С каждым днем появляется всё больше и больше ИИ‑помощников по написанию программного кода, и кажется, что почти каждый новый ИИ‑помощник становится лучше своих предшественников с точки зрения качества разработки и отладки кода.

10:13

We”ve got tool like GitHub Copilot, which has the original AI code assistant and to this day probably the best AI code assistant

Есть такой инструмент, как GitHub Copilot, в который изначально встроен ИИ‑помощник по написанию программного кода и на сегодняшний день, он, вероятно, лучше всего справляется с выполнением данной функции.

10:23

Amazon has entered the game with their Amazon Code Whisperer, you”ve got Tab9, you”ve got Cody from Sourcegraph, you”ve Codium, of course you”ve got Gemini, you”ve ChatGPT and all of these are really really good at coding and there”s more popping up constantly and if you check futuretools.io and select the generative code tab, there are hundred different tools that help you in your coding and more being added all of the time.

В эту нишу также зашел Amazon со своим инструментом Amazon Code Whisperer, также в нашем распоряжении есть Tab9, есть Cody от Sourcegraph, есть Codium, и, конечно, есть Gemini и ChatGPT. Все они действительно очень хороши в написании программного кода, и их постоянно появляется всё больше и больше, а если вы заглянете на сайт futuretools.io и выберете вкладку генераторы кода, то увидите там сотни различных инструментов, которые помогут вам в его написании, кроме того, всё время добавляются новые.

10:48

Actually I came across this video here from Connor Ardman, I”ll link it up in the description if you want to watch the whole thing, but he did a breakdown comparison of a handful of the tools, put GitHub Copilot as the essentially S‑tier in the chart here.

ChatGPT and Gemini would be, I guess, A‑tier or actually useful, as he calls it. He put Tab9 in decent, Amazon Code Whisperer in acceptable, and Cody in acceptable.

Собственно говоря, я наткнулся на одно видео от Коннора Ардмана, я дам ссылку на него в описании, если вы захотите посмотреть видео целиком. Он сделал сравнение нескольких инструментов, выделив GitHub Copilot как, по сути, наивысший уровень качества на представленной диаграмме (см. изображение ниже).

ChatGPT и Gemini, надо полагать, рассматривались им как высокий уровень или действительно полезные, как он их называет. Tab9 он отнес к достойным, Amazon Code Whisperer и Cody — к приемлемым.

11:14

Now don”t get me wrong, there are still a lot of issues with AI coding. I still obviously think that coders are necessary right now, I actually still think coders will be necessary in the future as well. We do run into a lot of issues when it comes to writing code with Ai. Being somebody who is not very proficient or very good coder myself, I run into a lot of issues trying to generate code using AI.

For instance, when I try to have something like ChatGPT write code for me, it”s usually pretty buggy on the first try. I will tell ChatGPT what the bug is, ChatGPT will try to fix that bug and oftentimes breaks something else in the process and if you continue to code more and more and more, a lot of these tools sort of loose the memory of the things that you talked about earlier in your chat, so if you”re going back and forth trying to code something up, some of that early conversation of what you wanted the code to do might actually get lost and ChatGPT or whatever code assistant you”re using will start to kind of accidentally remove features that it originally put in.

As of right now, it”s still not great. You also have the issue of context windows. Most of these chatbots have context windows that aren”t suitable for very very large chunks of code. You can upload large document with code in it, and if it”s beyond the context window of the chatbot, it”s not going to be able to read a large chunk of that code.

You also have the
issues of stuff getting lost in the middle of the code. A lot of times these chatbots, when you feed them long documents, they”re really good at reading what”s in the beginning of the document and the end of the document, but stuff in the middle tends to get lost for some reason, which isn”t great for code, cuz you need you need it to use all of that code for context.

Не поймите меня неправильно, с написанием программного кода с помощью ИИ всё ещё есть много проблем. Я по‑прежнему считаю, что сейчас не обойтись без программистов, кроме того, я думаю, что они будут необходимы и в будущем. Мы в действительности сталкиваемся с большим количеством проблем, когда дело доходит до написания кода с помощью ИИ. Будучи человеком, который сам не очень хорошо разбирается в программировании, я испытываю множество трудностей, пытаясь написать код с помощью ИИ.

К примеру, когда я пытаюсь сделать так, чтобы какой‑нибудь инструмент вроде ChatGPT написал код за меня, то после первой итерации код обычно оказывается довольно глючным. Я объясняю ChatGPT, в чём ошибка, ChatGPT пытается её исправить и часто в ходе этого процесса появляется ошибка в другом месте, и если тело программы увеличивается, многие из этих ИИ‑инструментов как‑бы забывают о первоначальных задачах, так что после нескольких итераций процесса написания и корректировки кода, задачи, поставленные первоначально, могут быть забыты, и ChatGPT или любой другой ИИ‑помощник по написанию кода, который вы используете, начнёт как бы случайно удалять функции, которые он ввёл первоначально.

На данный момент, всё работает не очень хорошо. Кроме того, существует проблема контекстных окон. Контекстные окна у большинство чат‑ботов не очень подходят для работы с большими кусками кода. Загрузить большой документ с кодом можно, но если он выходит за пределы контекстного окна, то чатбота будет не в состоянии прочитать бОльшую часть такого кода.

Кроме того, есть проблемы, связанные с тем, что в середине документа код может потеряться. Когда вы скармливаете чатботам длинные документы, зачастую они очень хорошо
распознают то, что находится в начале и в конце документа, но то, что в середине, по какой‑то причине теряется, а это не очень хорошо с точки зрения
компиляции кода, поскольку для полного понимания контекста необходим весь код.

12:57

However things like that are getting even better with things like Gemini 1.5 coming out, which is capable of working with 1.000.000 tokens or 750,000 words, making it more and more likely that you”re going to be able to plug in huge chunks of code and have it read it all. They also did what”s called a needle in a haystack test (for LLM) inside of Gemini, where they gave it a huge amount of text and somewhere in the middle gave it a little sentence and then asked it a question about that sentence to see if it would find that sentence located in this huge massive amount of text and it performed at 99%. It was able to find the embedded text 99% of the time, which means that issue of thing getting lost in the middle is going to be a thing of the past pretty soon.

Однако, ситуация постепенно меняется в лучшую сторону с выходом таких инструментов как Gemini 1.5, который способен работать с 1.000.000 токенов или 750.000 слов, а это делает всё более вероятным то, что вы сможете загрузить огромные куски кода и заставить ИИ учитывать всё. Специалисты также провели с Gemini так называемый тест «Иголка в стоге сена» (NIAH / «Needle In A Haystack» для больших языковых моделей), в рамках которого в ИИ загрузили огромный объём текста и где‑то в середине спрятали короткое предложение, а затем задали ИИ вопрос об этом предложении, чтобы проверить, найдет ли ИИ его в огромном массиве текста, и он справился на 99%. Он смог найти встроенный текст в 99% случаев, а это значит, что проблема потери данных в середине текстов скоро уйдёт в прошлое.

13:41

Where we stand today? AI is a great coding assistant. It”s going to help you write a lot better code, it”s going to help you debug you code, it”s going to help write a lot of monotonous code that”s been written over and over and over again, that can be found on places like GitHub and Stack Overflow. But it”s not really great at creating a huge piece of software from scratch for you yet, but I do think it”s going to there, and it”s going to get there a lot sooner than most people realize.

Now, does that mean I think nobody should learn coding ever? Absolutely not! I have a 9-year‑old son. He actually is in coding classes right now and I”ve been pushing him to continue to learn code and he really loves it in the similar way that if you love art and you love painting or drawing, you shouldn”t give up painting or drawing because AI art can do it as well. I think a lot of people learn to code because it is enjoyable to understand what is going on underneath and to feel like they built something using their own brains as opposed to AI”s brain. I think we”re going to get to a point where AI is really damn good at coding and it”s going to be able to code the majority of a piece of software for you, but I still think there”s probably going to need to be humans in the loop to help debug code. You know, if you”re a game developer, you still need humans to create a fun game loop. If you want a good user interface and user experience, I still think humans are going to be the best at determining what a good user interface and good user experience is.

My view of the future of coding is yes, I do believe AI is going to do the majority of the coding work, but I think humans still need to have the ideas for what to code, I think
humans are still going to need to help problem solve and help guide the AI to
fix issues with the code. I think humans are still going to steer the UI, the
user experience of the code and I think there”s going to be almost like a craft
element to it as well. I think people are going to value things that humans
coded versus AI coded in the same way that seems to be playing out in AI art.
People are more impressed by an amazing piece of work that was created by a human, than they are an amazing piece of art that was created by AI. I think
coding will be the same.

Какова же ситуация на сегодняшний день? ИИ является отличным помощником в написании кода. Он поможет вам написать гораздо более качественный код, отладить его, написать большой объем однообразного кода, который приходится писать раз за разом, (его выкладывают на таких сайтах, как GitHub и Stack Overflow). Однако, с точки зрения разработки сложного программного обеспечения с нуля ИИ пока не очень хорош, но я думаю, что ситуация изменится, и произойдёт гораздо раньше, чем многие думают.

Значит ли это, что я считаю, будто никому не следует учиться программированию? Ни в коем случае! У меня 9-летний сын. Он ходит на занятия по программированию, и я направляю его в русло дальнейшего изучения кода, и ему это очень нравится, по аналогии с тем, как если вы любите искусство и вам нравится рисовать или чертить, вы не должны бросать живопись или черчение, потому что искусственный интеллект может делать это не хуже вас. Я думаю, многие люди учатся программировать, потому что им нравится разбираться в сути этого процесса, и осознавать, что они создают нечто с помощью своего разума, а не посредством искусственного интеллекта. Я думаю, что мы достигнем того момента, когда ИИ станет действительно хорош в разработке программного кода и сможет создавать большую часть программного обеспечения за нас, тем не менее, я по‑прежнему считаю, что по всей вероятности потребуется участие людей, которые помогут отладить код. Знаете, если вы разработчик игр, вам всё равно не обойтись без людей, если вы хотите сделать игру увлекательной. Кроме того, я по‑прежнему считаю, что только люди смогут определить, как должно выглядеть игровое окно пользователя и чем определяются приятные впечатления от игрового процесса.

На мой взгляд, в будущем программирования есть место для ИИ, я действительно считаю, что ИИ будет
выполнять большую часть работы по написанию кода, однако, я думаю, что в первую очередь люди должны определять на какую тему писать код, кроме того, я считаю, что люди всё равно должны помогать решать проблемы и направлять ИИ в части устранения проблем в коде. Я думаю, что люди по‑прежнему должны определять облик окна пользователя, то какими должны быть впечатления пользователя от взаимодействия с
приложением, и я думаю, что в этом также будет присутствовать элемент ремесла. Я думаю, что люди будут в большей степени ценить код, написанный людьми, в отличие от того, что было создано с помощью ИИ, по аналогии с тем, как это происходит
в искусстве. Людей больше впечатляет удивительное произведение искусства,
созданное человеком, нежели чем то, что было получено с помощью ИИ. Думаю, в программировании будет то же самое.

15:53

When Jensen Huang made his quote about how he thinks people should stop learning coding, John Carmack, the creator of ID Software, a programmer himself and one of the creators of the Oculus had this to say about it and think he nails it, I think this is a spot‑on representation of where I think coding is heading.

Когда Дженсен Хуанг высказался о том, что, по его мнению, люди должны перестать изучать программирование, Джон Кармак, создатель ID Software, сам программист и один из создателей Oculus, сказал по этому поводу следующее:

«Я думаю, это максимально точное представление того, в каком направлении, по моему мнению, развивается программирование».

16:11

He says:

“Coding” was never the source of value, and people should never get overly attached to it. Problem solving is the core skill. The discipline and precision demanded by traditional programming will remain valuable transferable attributes, but they won”t be a barrier to entry anymore.

Many times over the years I have thought about a great programmer I knew that loved assembly language to the point of not wanting to move to C. I have to fight some similar feelings of my own around using existing massive codebases and inefficient languages, but I pushed through.

I had somewhat resigned myself to the fact that I might be missing out on the “final abstraction”, where you realize that managing people is more powerful than any personal tool. I just don”t like it, and I can live with the limitations that puts on me.

I suspect that I will enjoy managing AIs more, even if they wind up being better programmers than I am.

Он сказал:

«Программирование как процесс написания кода» никогда не было источником благ, и люди не должны чрезмерно от него зависеть. Ключевым навыком является способность решать проблемы. Дисциплина и точность, которых требует традиционное программирование, останутся ценными навыками, которым можно научиться, но они больше не будут барьером для входа в профессию.

На протяжении многих лет я не раз вспоминал одного знакомого программиста, который любил язык ассемблера до такой степени, что не хотел переходить на C. Мне приходилось бороться с похожими чувствами в части использования огромных баз исходного кода и неэффективных языков, но я выдержал.

Я уже смирился с тем фактом, что, вероятно, упускаю «последний уровень абстракции», поскольку осознаю, что управление людьми мощнее любого ПО для ПК. Мне просто не нравится этот факт, и я в состоянии жить с теми ограничениями, которые он на меня накладывает.

Мне представляется, что управление ИИ будет доставлять мне больше удовольствия, даже если он окажется лучшим программистом, чем я.»

16:59

So, when he”s referring to that “final abstraction”, he”s talking about what”s that next layer on top of code, cuz over the history, we”ve always added new layers to make think easier and easier and easier.

Поэтому, когда он говорит о «последнем уровне абстракции», он имеет в виду то, что находится в иерархии выше уровня кода, поскольку на протяжении всей истории вопроса, мы постоянно добавляли уровень за уровнем, что делало процесс реализации идей всё проще.

And all the people that are super resistant to letting AI help them with code or letting AI write that code for them are essentially saying that yes, there”s a new layer of abstraction that makes it easier, but I”m going to ignore that and stay at the layer before it. And that”s my thoughts on AI coding, that”s where coding is going. I think it”s the next layer of abstraction for coding I think it”s always kind of been headed in that direction.

If it wasn”t AI that added that next layer of abstraction to make it easier for humans to write code, something else would have been that next layer of abstraction and people would have been just as frustrated and upset and resistant to whatever that was as well. But again, not a coder myself, this is just the perspective of somebody, who pays very close attention to AI and has some of that foundational knowledge of how computers and operating systems and software work. I just feel like this was the direction things were headed.

И все, кто сильно противятся тому, чтобы ИИ помогал нам в написании кода или не хотят, чтобы ИИ писал код за них, по сути, говорят, мол, да, есть новый уровень абстракции, который упрощает процесс, но я его проигнорирую и буду оставаться на предыдущем уровне. Вот, что я думаю о программировании на базе ИИ, и о том, куда движется процесс в целом. Я думаю, что это и есть следующий уровень абстракции с точки зрения программирования, и я думаю, что оно всегда шло в этом направлении.

Если бы не ИИ стал причиной появления следующего уровня абстракции, который позволил людям упростить процесс написания кода, то им стало бы нечто другое, и люди были бы так же обозлены, расстроены и сопротивлялись бы этому, чем бы оно ни было. Однако, необходимо напомнить вам, что я не программист, и изложенное выше является мнением человека, который уделяет очень пристальное внимание ИИ и обладает некоторыми фундаментальными знаниями о том, как работают компьютеры, операционные системы
и программное обеспечение. Мне просто кажется, что всё шло именно в этом направлении.

18:09

What do you think? Let me know in the comments. I know this is a very hotly debated topic, there”s a lot of negativity, there”s a lot of fear, but O do want to know your opinion, where do you think the coding is heading and what is the timeline you think.

I actually believe we”re going to get to the point where Ai is really proficient at writing good code within the next 18 months, possibly even sooner.

That”s where I stand, what are your thoughts? Thanks for tuning in! I”ll see you in the next video.

А что думаете вы? Дайте мне знать в комментариях. Я знаю, что это очень горячо обсуждаемая тема, в которой присутствует много негатива, много страха, но мне важно знать ваше мнение в части того, в каком направлении, по вашему мнению, развивается программирование и каковы временные рамки событий в будущем.

Я считаю, что мы придем к тому, что уже через полтора года, а, возможно, даже раньше ИИ сможет писать качественный код.

Это то, что думаю я, а как считаете вы? Спасибо за внимание! Увидимся в следующем видео.

Спасибо за прочтение!

Tags:
Hubs:
Total votes 91: ↑24 and ↓67-39
Comments544

Articles