Как написали первую программу без программы для написания программ?
Если коротко, то новые языки программирования и другие инструменты создаются на основе уже существующих. Полная аналогия с другими областями техники, где новые станки и материалы позволяют создавать всё более совершенные станки и материалы. Как все станки начались с палки-копалки и кремниевого рубила, так и языки программирования начались с перфокарт и нечитаемого двоичного кода.
Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL» записывается так:
0000 0100 0000 0101
Здесь 0000 0100 — код операции «прибавить число к регистру AL», а 0000 0101 — двоичное представление числа 5.
На заре индустрии для ввода программы в компьютер нужно было либо перещёлкнуть сотни тумблеров на специальной панели (тумблер ВЫКЛ — нолик, тумблер ВКЛ — единичка), либо пробить дырочки в специальной перфокарте. Ошиблись в одной ячейке из тысячи — программа будет работать неправильно, будьте добры сами найти ошибку методом пристального взгляда.
Ясно, что такой способ программирования жутко неудобен и подвержен ошибкам. Чтобы не тратить время на это занудство, ленивые программисты начали думать, как переложить неблагодарную работу на машину.
Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL» записывается на языке ассемблера x86 так:
Думаю, вы согласитесь, что это всё-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя бы понятно, что речь идёт о сложении (ADD) и числе 5. Теперь уже дело ассемблера преобразовать эту строчку в 0000 0100 0000 0101. На языке ассемблера сложно писать большие программы, процессоры разных производителей могут требовать разных ассемблеров, но всё равно это был большой шаг вперёд.
Дальше инженерную мысль было не остановить. Нужно один раз помучиться, чтобы написать на ассемблере компилятор языка программирования, например Фортрана. Потом ещё немного помучиться, чтобы написать на Фортране компилятор Алгола. Затем передохнуть, помучиться и написать на Алголе компилятор языка CPL. Ещё немного мучений, и можно на основе CPL написать компилятор языка C. Дальше можно уже не мучиться и в свое удовольствие писать на C компиляторы C++, Java, C# и других современных языков. Впрочем, никто не запретит использовать Java чтобы написать ассемблер x86 и замкнуть рекурсию.
Как написали первую программу без программы для написания программ?
программист, Deutsche Bank
Если коротко, то новые языки программирования и другие инструменты создаются на основе уже существующих. Полная аналогия с другими областями техники, где новые станки и материалы позволяют создавать все более совершенные станки и материалы. Как все станки начались с палки-копалки и кремневого рубила, так и языки программирования начались с перфокарт и нечитаемого двоичного кода.
Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL», записывается так: 0000 0100 0000 0101
Здесь 0000 0100 – код операции «прибавить число к регистру AL», а 0000 0101 – двоичное представление числа 5.
На заре индустрии для ввода программы в компьютер нужно было либо перещелкнуть сотни тумблеров на специальной панели (тумблер ВЫКЛ. – нолик, тумблер ВКЛ. – единичка), либо пробить дырочки в специальной перфокарте. Ошиблись в одной ячейке из тысячи – программа будет работать неправильно, будьте добры сами найти ошибку методом пристального взгляда.
Ясно, что такой способ программирования жутко неудобен и подвержен ошибкам. Чтобы не тратить время на это занудство, ленивые программисты начали думать, как переложить неблагодарную работу на машину.
Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL», записывается на языке ассемблера x86 так:
Думаю, вы согласитесь, что это все-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя бы понятно, что речь идет о сложении (ADD) и числе 5. Теперь уже дело ассемблера преобразовать эту строчку в 0000 0100 0000 0101. На языке ассемблера сложно писать большие программы, процессоры разных производителей могут требовать разных ассемблеров, но все равно это был большой шаг вперед.
Дальше инженерную мысль было не остановить. Нужно один раз помучиться, чтобы написать на ассемблере компилятор языка программирования, например Фортрана. Потом еще немного помучиться, чтобы написать на Фортране компилятор Алгола. Затем передохнуть, помучиться и написать на Алголе компилятор языка CPL. Еще немного мучений – и можно на основе CPL написать компилятор языка C. Дальше можно уже не мучиться и в свое удовольствие писать на C компиляторы C++, Java, C# и других современных языков. Впрочем, никто не запретит использовать Java, чтобы написать ассемблер x86 и замкнуть рекурсию.
Как создали программы для программирования без программ для программирования?
Если коротко, то новые языки программирования и другие инструменты создаются на основе уже существующих. Полная аналогия с другими областями техники, где новые станки и материалы позволяют создавать всё более совершенные станки и материалы. Как все станки начались с палки-копалки и кремниевого рубила, так и языки программирования начались с перфокарт и нечитаемого двоичного кода.
Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL» записывается так:
0000 0100 0000 0101
Здесь 0000 0100 — код операции «прибавить число к регистру AL», а 0000 0101 — двоичное представление числа 5.
На заре индустрии для ввода программы в компьютер нужно было либо перещёлкнуть сотни тумблеров на специальной панели (тумблер ВЫКЛ — нолик, тумблер ВКЛ — единичка), либо пробить дырочки в специальной перфокарте. Ошиблись в одной ячейке из тысячи — программа будет работать неправильно, будьте добры сами найти ошибку методом пристального взгляда.
Ясно, что такой способ программирования жутко неудобен и подвержен ошибкам. Чтобы не тратить время на это занудство, ленивые программисты начали думать, как переложить неблагодарную работу на машину.
Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL» записывается на языке ассемблера x86 так:
Думаю, вы согласитесь, что это всё-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя бы понятно, что речь идёт о сложении (ADD) и числе 5. Теперь уже дело ассемблера преобразовать эту строчку в 0000 0100 0000 0101. На языке ассемблера сложно писать большие программы, процессоры разных производителей могут требовать разных ассемблеров, но всё равно это был большой шаг вперёд.
Дальше инженерную мысль было не остановить. Нужно один раз помучиться, чтобы написать на ассемблере компилятор языка программирования, например Фортрана. Потом ещё немного помучиться, чтобы написать на Фортране компилятор Алгола. Затем передохнуть, помучиться и написать на Алголе компилятор языка CPL. Ещё немного мучений, и можно на основе CPL написать компилятор языка C. Дальше можно уже не мучиться и в свое удовольствие писать на C компиляторы C++, Java, C# и других современных языков. Впрочем, никто не запретит использовать Java чтобы написать ассемблер x86 и замкнуть рекурсию.
Российский искусственный интеллект нацелился оставить программистов без работы. Он впервые написал программу самостоятельно
Нейросеть ruGPT-3, обученная специалистами дочерней компании Сбербанка Sber AI, самостоятельно написала компьютерную программу на С++ и Java. Это первое зарегистрированное в России ПО, написанное искусственным интеллектом.
Искусственный интеллект выучился на программиста
В России зарегистрирована первая компьютерная программа, с нуля написанная искусственным интеллектом. Как сообщили CNews представители Сбербанка, за ее разработкой стоит команда Sber AI, дочерней компании банка.
На момент публикации материала Artificial Vision была зарегистрирована в Роспатенте. Дополнительно она внесена в Реестр программ для ЭВМ – ей присвоен номер 2021661571.
Тренировкой нейросети, написавшей программу, занимались сотрудники Sber AI. Именно они указаны в протоколе о регистрации в графе «Авторы». По информации представителей Сбербанка, над программой работала нейросеть ruGPT-3.
Для написания программы использовались языки С++ и Java, каждый из которых, наряду с Python, С и C#, входит в топ-5 самых популярных языков программирования в мире по версии Tiobe. Скомпилированная программа весит 1,7 МБ.
Что делает программа
Созданная искусственным интеллектом программа Artificial Vision умеет имитировать зрение человека. ПО позволяет сопоставлять пиксели изображения нейронам «сетчатки» искусственного глаза.
Один из вариантов использования Artificial Vision – это создание модели искусственного интеллект со способностью к существованию в виртуальной среде и обучению восприятию визуальных сцен. Другими словами, программа обеспечивает распознавание визуальных образов.
Перспективы нейросетей как разработчиков ПО
Нейросеть ruGPT-3, написавшая Artificial Vision, была обучена нескольким языкам программирования. Как сообщили «Ведомостям» представители Сбербанка, в дальнейшем она сможет взять на себя ряд рутинных задач, выполняемых программистами.
Sber AI планирует и дальше совершенствовать нейросеть и развивать в ней навыки написания программ. «Не исключено, что «Сбер» начнет предоставлять технологию как коммерческую услугу, когда она станет более совершенной», – сообщили изданию представители Сбербанка.
Стоит ли разработчикам бояться конкуренции
Представители портала HeadHunter называют программистов «дефицитным и капиталоемким кадровым ресурсом», подчеркивая, что свободных специалистов в этой отрасли, готовых откликнуться на открытую вакансию, пока довольно мало. Это влечет за собой и рост зарплат, который в первом полугодии 2021 г. составил 9% год к году.
Программисты действительно могут получать сотни тысяч рублей. Как сообщал CNews, хорошей зарплатой обеспечены как минимум разработчики, пишущие на Python и C#.
Однако внедрение искусственного интеллекта, способного писать программы, позволит компаниям резко сократить свои расходы – в пределах 6 млн руб. в год, и это еще на самых простых проектах, над которыми трудятся два-три программиста. Если же над той или иной программой трудятся до 10 человек, их замена на искусственный интеллект позволит сэкономить до 30 млн руб., рассказали «Ведомостям» представители HeadHunter.
Более оптимистично смотрит на внедрение искусственного интеллекта в среду программирования основатель и гендиректор группы vvCube Вадим Ткаченко. «С развитием технологии программистов, с одной стороны, будет требоваться меньше, с другой – за искусственным интеллектом нужно будет кому-то следить, а для этого нужны программисты более высокого уровня», – сообщил он изданию.
Мировая практика
Искусственный интеллект дополняет и постепенно заменяет программистов не только в России. В июне 2020 г. CNews писал, что компания Amazon запустила сервис Honeycode для создания приложений без необходимости написания программного кода. Проект полностью бесплатный, и использовать его могут как обычные потребители, так и крупные компании. К примеру, Slack, разработчик одноименного мессенджера, уже заявил о готовности к использованию Honeycode в своей работе.
В конце июня 2021 г. корпорация Microsoft запустила сервис Copilot, представляющий собой виртуального помощника программиста на базе искусственного интеллекта.
Распространяется Copilot на бесплатной основе. Он изучает код и комментарии к нему и предлагает разработчику функции и целые строки для добавления в этот код. Такой подход ускоряет процесс написания программ и дает возможность полностью отказаться от поиска решений в интернете. В процессе работы Copilot обучается и с каждым разом становится все умнее.
За месяц до запуска Copilot Microsoft создала инструмент для написания ПО без развитых навыков программирования. Проект получил название Microsoft Power Apps, и он пригодится тем, кто пишет на языке Power Fx. С его помощью пользователи могут разрабатывать программы в формате диалога с компьютером. Например, при разработке приложения в сфере электронной коммерции можно будет описать в диалоге желаемую цель на естественном английском языке, после чего Power Apps задействует алгоритмы искусственного интеллекта и предложит варианты преобразования этого запроса в формулу Microsoft Power Fx.
Есть идея, но нет знаний: создаем приложение от идеи до релиза, с нулевым знанием кода
А теперь немного отмотаем время назад, и вернемся ко 2-му лицу, то есть ко мне.
Так уж вышло, что помимо серверов, десктопов и прочих офисных штук в моей жизни не малую часть занимает хобби в виде диагностики и ремонта автомобилей. Занимаюсь конечно от случая к случаю, но в конечном итоге, большую часть времени все равно приходится тратить на общение с людьми, которые волей-неволей попали в автосервис и почти всегда звучат практически одни и те же вопросы. Систематизируя все эти вопросы, предварительно исключая из них матерные слова и двусмысленности, в конечном итоге можно получить не очень то и большой список самых распространенных проблем, которые настигают автовладельцев в самые неподходящие моменты.
Естественно два разных человека, зная о терзаниях друг друга не могли это оставить просто так. С поправкой на то, что мои знания в программировании ограниченны мелкими скриптами на bash, парой строк php или perl кода, для проверки, так сказать очередного веб-сервера и совсем далекой молодости языка С.
Никаких html5, css, flash, Objective-C — только хардкор!
Что в итоге, получен первичный опыт разработки от идеи, до макета. Оказывается, 50кб структурированного текста, написанного, как мне кажется, максимально доступным языком автомобильной направленности для непосвященного обывателя, задача невероятной сложности. Ведь перед Вами казалось бы, совсем простая цель: взять на заметку список неисправностей, и кратко, почти в формате твита, написать краткое пособие, или скорее не пособие, а указание, что делать дальше. Но сделать это нужно так, чтобы Ваш текст был понятен всем: начиная от тех, кто первый день за рулем, и заканчивая теми, кто уже и без вашей то помощи, может поставить точный диагноз.
Вот примерно так, слово за словом, рождался текст-описание и текст-расшифровка для приложения. Без преувеличения — более 2-х месяцев кропотливой перестановки, замены, снова перестановки, переосмысления, написанных тобою слов.
А далее чистой воды рутина: все конструктором собрать, подготовить картинки. И нырнуть в пучину требований google.play и AppStore.
Правда пока удалось только нырнуть в «корпорацию добра». «Корпорация зла» пока нас не приняла.