Возняковский Apple II таки тащил всю контору во времена, когда было всякое - и успехи, и мощные провалы, стабильно пользуясь спросом и принося прибыль, а Джобс был двиглом проекта. Так что, получается, на старте они удачно друг-друга дополняли - друзья заклятые.
На Афтешоке была статья - на западе уже увольняют составителей текстов и переводчиков переходя на этот ИИ. Народ в панике, работали годами, получали десятки долларов за час труда, а теперь им пишут, "спасибо, вы классные, только вот работа программы обходится в 1.1доллара за час, а не 50 как вам платили, а мы не можем игнорировать такие перекосы в упущенной выгоде, так что хорошего настроения и прощайте"(с).
Не будет никакой сингулярности. Всегда так было. Просто рождается новая система. Старая (это мы) либо деградирует, либо будет слабо развивается. В книге Генриха Альтшуллера «Найти идею» есть об этом. Он говорил о том, что биологические и технические системы развиваются одинаково. Сначала (как предполагается) были РНК-организмы, потом одноклеточные, потом многоклеточные, потом у этих многоклеточных появился интеллект, достаточный для изучения себя и окружающей среды, потом общество. Заметьте, что никакой сингулярности не произошло. Это фантазии футурологов. Просто это новое существо будет смотреть на нас, как мы смотрим на муравьёв.
Да. Ещё в конце десятых я предлагал в чатиках построить институт церкви ИИ. Потом меня повеселила новость о том, что какой-то известный американский программист предлагает то же самое. Человечество явно что-то предчувствует…
> Не будет никакой сингулярности. Всегда так было. Просто рождается новая система.
похоже ты никогда не пытался отдебажить приложение написанное с использованием кучи абстракций и запущенное в кубернетисе
а раз так, то расскажу, что мало кто понимает чего там под капотом крутится. И это все постоянно обрастает новыми сервисами призванными упростить жизнь, а по факту создают еще слои абстракции и по факту только усложняют жизнь всех. Кроме манагеров
а эти приложения были где: на локалхосте запущены или в кубе? Если на локалхосте, то я про другое говорил
> Сейчас только VBA нужен.
может кому-то только vba и надо. Но есть масса разного бизнеса поднятого в кубернетисах с дикими обвесами. И вот там уже без поллитры и не разбирешься где у тебя проблема: в сети, в сети между подами, в днс, баг какого-то компонента кубера, баг приложения, баг в ОС, или особенность поведения cri-o и т.д.
> "Робот програмировать научится, но не общаться с коллегами"
>
> А зачем роботу коллеги если он всему научится и всё может сделать сам, да ещё и быстрее чем все коллеги вместе взятые?
Потому что проекты неоднородные, заказы неоднородные, это не как в шахматах или го - определённые правила и алгоритмы и дальше иди по правилам и перебирай возможное.
В проектах пищутся куски разными людьми, часто в разных фреймворках для разных целей. Всё вместе собрать надо и согласовать.
Так вот я про это и говорю. Зачем тебе например фронтэнд, бэкэнд, дизайнер, тестировщик и другие люди, если робот всё это умеет? Зачем тебе что-то согласовывать друг с другом?
По факту тебе нужен один единственный человек, который может грамотно поставить задачу роботу.
Может не сейчас, но в будущем мне видится это более логичным, чем пытаться научить робота организаторской работе, согласованием и общению с коллективом. Просто потому что роботу этот коллектив не сильно нужен
Отличная беседа) Особенно с 1:31:15 Все ждал упоминания про фотографов в свете, того что крышка профессии) Но вот - вселили надежду и даже комплементов не пожалели. Но если серьезно - мое мнение, что и художники и фотографы, да и писатели еще поработают. Конечно, на первом этапе кто-то потеряет работу, но верю, что развитие новых технологий не убивает предыдущие. Театр не убило кино, кино не убило телевидение, фотокамера не убила художников - наоборот старые технологии внедряют элементы новых. По крайне мере до тех пор пока мы можем отличать реальные воспоминания от воображаемых.
> оптимизировать компиляторы и трансляторы.
> Отрасль, на которую, похоже, положили болт.
Ради интереса сравни выхлоп какого-нибудь msvc времен 6 студии и современного clang или gcc последних версий, ну, что бы наглядно убедиться что никакого забивания болта нет и компиляторы выросли за 20 лет многократно.
По поводу выискивания проблем в коде: статический и динамический анализ кода существует давно. Вопрос, что его надо применять на практике и исправлять ошибки, а с этим не всегда хорошо. Несколько лет назад люди из Google (причём наши) придумали скрестить генерацию случайного входа (fuzzing), анализ путей в коде (coverage) и инструментацию (sanitizers) - всё в целом пытается найти входные данные, которые заставляют программу проходить по новым путям и сломаться, а потом использовать все такие найденные данные для последующего автоматического тестирования. Применение данной методики к проектам с открытым кодом: https://github.com/google/oss-fuzz.
Про изобретения - многое зависит от размеров организации. В больших это делать гораздо сложнее, так как бюрократия не дремлет (очень советую прочитать "китайские" сказки Дорошевича - ничего в мире не меняется). В маленьких всё зависит от понимания решаемых задач работниками. Если оно есть - что-то новое будет делаться. Поэтому большой конторе гораздо проще проглотить добившуюся чего-нибудь маленькую, чем сделать своё. За примерами далеко ходить не надо - те же Intel, IBM, Google и многие другие громкие имена. Сначала много нового, а потом всё сводится к поддержке старого и поглощению "мелочи".
> По факту тебе нужен один единственный человек, который может грамотно поставить задачу роботу.
Всю свою практику работы программистом (больше 20 лет) я сталкиваюсь с тем, что не существует такого понятия, как законченное ТЗ, не говоря уже про грамотное. Больше того, хорошо, когда ТЗ вообще есть, часто приходится его писать самим программистам. Даже допуская, что есть компании, где с этим получше, я сильно сомневаюсь, что один человек может грамотно поставить задачу на выполнение проекта сложнее, чем "Косынка".
Помню одного бизнесаналитика: "да что там в этом интерфейсе разрабатывать, я сам приеду на выходных и все напишу!"
Но на выходные он не пришел, ... и пришлось нам делать интерфейс на протяжении трёх месяцев...
Я это вообще сразу писал, как-только перевод у ЯБ стал более-менее связным, а тексты что выдавала сетка перестали быть сюрреалистичными как раньше. Собственно, можно просто посмотреть как устроена простейшая сетка какая-нибудь для распознавания цифр или еще какой-то задачи и сразу станет ясно, что мозг работает достаточно просто в своей основе, никаких там нет невообразимых загадок.
> Театр не убило кино, кино не убило телевидение, фотокамера не убила художников - наоборот старые технологии внедряют элементы новых. По крайне мере до тех пор пока мы можем отличать реальные воспоминания от воображаемых.
Ну, в целом о театрах помнят только небольшое количество людей из крупных городов. Кино ходили смотреть только до тех пор, пока оно было гораздо больше маленького экранчика дома, а сейчас это развлечение для подростков, которые сами и попкорн едят и обсуждают на весь зал происходящее и их самих это все не раздражает. То есть массово, можно сказать, в театры не ходят, а скоро и в кино взрослый точно не пойдет(если только с детьми) и с остальным перемоганием тоже самое.
Да, ТЗ чаще всего нету. Так я и не про ТЗ.
Как происходит сейчас? "Мы хотим чтоб так так и вот так".
А Через неделю мы хотим ещё и вот так.
А через месяц мы решили что нам это не нужно, а заместо этого мы хотим вот так.
Ну и начинаются костыли и награмождения, потому что переделать весь проект нету ни времени ни ресурсов.
У робота такой проблемы нет. Ты ставишь ему задачу - получаешь результат. Не нравится? Корректируешь задачу и снова получаешь результат. С нуля результат, по той задаче которую ты поставил, без награмождения костылей и попыток впихнуть не впихуемое в прошлую итерацию. Итерации повторять до тех пор пока не получится +- то что надо (ну как собсно сейчас с картинками делают).
Вот как раз и нужен человек который будет этим заниматся. Много ли надо будет итераций? Я уверен, очень много. Но чем умнее будет робот и чем больше данных соберёт, тем таких итераций нужно будет меньше.
Такой подход на мой взгляд более реалистичный, нежели "роботу не заменить прорамиста, потому что програмирование только 40% работы, а остальное работа с коллегами". Роботу не нужны коллеги.
> Ну, в целом о театрах помнят только небольшое количество людей из крупных городов.
Нашел статистику за 2021 год)В 2021 году российские театры, подведомственные Минкульту, посетило 25 млн зрителей.
В лидерах здесь Санкт-Петербург: на 100 жителей приходится 54 похода в театр. Это, скорее всего, связано с большим количеством туристов. На втором месте — Чувашия: 30 зрителей на 100 жителей. На третьем — Москва: 29 походов в театр на 100 человек.
То есть сходило 16% страны - из них надо вычесть еще туристов, плюс масса тех, кто наверняка ходит постоянно, а остальные не ходят вообще и не собираются. Зато остальные 84% когда-то ходили в кино скорей всего, а сейчас вообще никуда не ходят, а смотрят все дома или вообще с экрана телефона.
Ну и точно так же лет 15 назад все бегали покупать зеркалки и чего-то там фоткать, а сейчас это максимум телефон и себячка - вот такое влияние НТП и меняющихся реалий.
> Зато остальные 84% когда-то ходили в кино скорей всего, а сейчас вообще никуда не ходят, а смотрят все дома или вообще с экрана телефона.
Сейчас 43" телевизор копейки стоит да и на 60+ даже с маленькой зарплаты накопить за несколько месяцев не вопрос, подписка на онлайн кинотеатр на год и покупка/cборка NAS для того, чтобы из интернета BD рипов натаскать стоят вместе столько же, сколько 25 разовых походов в кинотеатр. При этом в кинотеатре еще и проектор может оказаться не очень сфокусированным. Поэтому идти смысл есть исключительно на фильмы, которые стоит смотреть на ОГРОМНОМ экране. Их и так мало было, а сейчас еще меньше. Ну или уж когда что-то выходит такое, что просто огого, а релиз в цифре через полгода-год. И кстати о проекторах. Их сейчас полно. И проектор за килобакс обеспечивает картинку лучше, чем раньше в маленьком зале кинотеатра была.
Театр - другая история, там живые актёры играют. А если что-то музыкальное, то еще и живой оркестр.
>Ну и точно так же лет 15 назад все бегали покупать зеркалки и чего-то там фоткать, а сейчас это максимум телефон и себячка - вот такое влияние НТП и меняющихся реалий.
Да ладно. Те люди, которые телефонами снимают, раньше снимали дешевыми мыльницами. А зеркалки или крутые беззеркалки - это уже для продвинутых фотолюбителей или профессионалов. Там даже если сама камера не очень дорогая, то приличный комплект оптики как новый бюджетный автомобиль стоит. А вот дешевые портретники и в сочетании с зеркалкой начального уровня вообще смысл потеряли, потому, что телефон за 12-20 тысяч в хорошем освещении портреты делает не хуже. Дорогие и камеры другого уровня - это уже отдельная история и для очень продвинутых фотографов. Есть правда категория, которым зеркалка начального уровня с приличным штативом и телевиком за 20000р или телескопом будет просто необходима. Любителям фотографировать диких животных и во втором случае - любителям астрофотографии.
Там уже телефон не может вообще ничего. До сих пор очень дорогим телефоном за 250000р нельзя просто нормально Луну снять. Или здорового орла со 150 метров. За те же деньги покупаются зеркалка и отличный телеобъектив для птичек и пугливых оленей или бюджетный, но качественный телескоп, которым и Юпитер со спутниками снять можно отлично, если не Нептун.
> У робота такой проблемы нет. Ты ставишь ему задачу - получаешь результат. Не нравится? Корректируешь задачу и снова получаешь результат. С нуля результат, по той задаче которую ты поставил, без награмождения костылей и попыток впихнуть не впихуемое в прошлую итерацию. Итерации повторять до тех пор пока не получится +- то что надо (ну как собсно сейчас с картинками делают).
Дело в том, что программа - это не картинка. Программа должна взаимодействовать с другими программами, с какими-то устройствами по каким-то интерфейсам и протоколам обмена, использовать какие-то библиотеки, системные функции, удовлетворять неким требованиям по производительности и задействованным ресурсам. Да, можно и это всё объяснить электронному болвану, но это работа не для одного человека на пару дней. Нужно полное понимание того, что сделать и КАК сделать. Фактически, для того, чтобы объяснить электронному болвану, какая программа от него требуется, надо написать алгоритм, т.е. (ха-ха!) программу.
> У робота такой проблемы нет. Ты ставишь ему задачу - получаешь результат. Не нравится? Корректируешь задачу и снова получаешь результат.
Сейчас этот робот называется компилятором.
> Вот как раз и нужен человек который будет этим заниматся. Много ли надо будет итераций? Я уверен, очень много. Но чем умнее будет робот и чем больше данных соберёт, тем таких итераций нужно будет меньше.
> Всю свою практику работы программистом (больше 20 лет) я сталкиваюсь с тем, что не существует такого понятия, как законченное ТЗ, не говоря уже про грамотное. Больше того, хорошо, когда ТЗ вообще есть, часто приходится его писать самим программистам.
Вот это полное законченное ТЗ называется "программа". И ваша работа как раз и заключается в уточнении и формализации этого ТЗ до такого уровня, когда "настоящую программу" по этому ТЗ может сделать компилятор. Люди ведь практически не пишут "настоящие программы, которые выполняются компьютером" уже лет 70, с момента изобретения даже не ассемблера, а автокода. А "настоящие программы для железа" сейчас пишутся либо AOT компилятором, либо JIT.
Поэтому, фактически, программирование - это и есть создание "законченного ТЗ", то есть полного, непротиворечивого и относительно быстро исполняемого, написанного на формальном языке. И тут очень важно, что это ТЗ непротиворечиво и полно, поэтому для него используется формальный язык, который, кстати, может быть предметно-ориентированным (DSL).
> Достоинство формальных текстов заключается в том, что для разумного обращения с ними достаточно следовать нескольким простым правилам; если подумать, это удивительно эффективный инструмент по избавлению от всевозможной ерунды, которой практически не избежать при общении на родном языке.
Отмечу, что типичный микропроцессор выполняет 1E9 инструкций в секунду, если среди них будет хоть одна ошибочная, в лучшем случае будет SIGSEGV, в худшем - компьютер зависнет, как во времена MSDOS. Т.о. программу, которую выполняет компьютер, нужно писать с чудовищной точностью - мы же не можем работать с программами, вылетающими раз в секунду (понятно, что не одна ошибка на 1E9 инструкций, но далеко не одна на сотню). Поэтому от формальных языков не уйти - достаточно оставить мелкую чепуху, и электронный болван её повторит за секунду миллион раз.
Поэтому программирование может умереть только если мы деградируем до 19 века, когда программы станут не нужны, или же практически все люди научатся читать и писать на формальных языках (это планировал ак. Ершов). То есть, как сейчас не нужны писцы.
> Фактически, для того, чтобы объяснить электронному болвану, какая программа от него требуется, надо написать алгоритм, т.е. (ха-ха!) программу.
Не совсем так. Компилятор не может в "понимание" и "обучение". Ты не можешь ему условно написать "открой дверь". Ему надо определить объект "дверь", описать его. Опеределить действие "открыть", описать его. Ну и так далее.
Нейронка же действует по принципиально другому принципу. И да, сначало ей надо будет подробно всё объяснять (не факт что самому, многому она научится сама пожирая гитхаб). Может через 1000, может через 1 000 000 итераций, а может и больше, но рано или поздно она научится и пользователю достаточно будет просто написать ему "открой дверь" и она откроет.
> Не совсем так. Компилятор не может в "понимание" и "обучение".
> Нейронка же действует по принципиально другому принципу. И да, сначало ей надо будет подробно всё объяснять
Камрад выше всё правильно объяснил. Объяснять нейронке требования придётся через формальные правила, чтобы она могла работать с более чем одним пользователем. Эти формальные правила называются языком программирования.
> Отмечу, что типичный микропроцессор выполняет 1E9 инструкций в секунду, если среди них будет хоть одна ошибочная, в лучшем случае будет SIGSEGV, в худшем - компьютер зависнет, как во времена MSDOS. Т.о. программу, которую выполняет компьютер, нужно писать с чудовищной точностью - мы же не можем работать с программами, вылетающими раз в секунду (понятно, что не одна ошибка на 1E9 инструкций, но далеко не одна на сотню). Поэтому от формальных языков не уйти - достаточно оставить мелкую чепуху, и электронный болван её повторит за секунду миллион раз.
Есть еще другой вариант - инструкции все правильные, но код такой, что программа работает без формальных ошибок но выдает мусор. Классика жанра - разные калькуляторы, которые на простых вычислениях с числами до десятка миллиардов выдают нормальные значения, а на больших и сложных уже выдают результат далекий от того, что должен быть.
Ну и еще один момент - выпадение в осадок заметно на чем-то однозадачном, в случае с сложным софтом, состоящим их кучи модулей оно может вообще незаметно пройти. Вызывая баги во всяких модулях уже скоро 20 лет, как ломают защиту во всяких игровых приставках. Получая через, например, переполнение буфера в браузере или смотрелке картинок доступ к запуску неподписанного кода. Оставшаяся важная часть ОС как работала, так и работает.
> Не совсем так. Компилятор не может в "понимание" и "обучение". Ты не можешь ему условно написать "открой дверь". Ему надо определить объект "дверь", описать его. Опеределить действие "открыть", описать его. Ну и так далее.
Да. Мы используем формальный язык с чётко определёнными сущностями.
> Может через 1000, может через 1 000 000 итераций, а может и больше, но рано или поздно она научится и пользователю достаточно будет просто написать ему "открой дверь" и она откроет.
Тут мы напарываемся на то, что программирование бывает очень разным. И легко в пылу спора забыть про всё многообразие систем.
Есть ситуации, когда мы будем вполне удовлетворены частично неправильным результатом программы (пример - скачаем весь сайт oper.ru, а потом будем искать ваши реплики grep'ом по нику JlEC. Да, будут какие-то ложные срабатывания - ничего, мы их потом отфильтруем. Для таких ситуаций даже формальный язык не слишком обязателен, хотя ошибки тоже не должны превышать некоего порога, поэтому тут нейросети подойдут прекрасно.
А есть обратные ситуации - программы со сложнейшей бизнес-логикой внутри, не имеющие права на ошибку, например компиляторы. В таком случае не обойтись без формального языка и формальных правил преобразования этого языка в язык машины (машкоды). И тут, конечно, люди, когда им позволяют условия, используют высочайшие достижения в формальных языках - популярнейшим языком для компиляторов является, к примеру OCaml, код которого, кстати, можно генерировать из Coq.
Если говорить про аналогии с дверью, то в одном случае просьба открыть дверь произносится с дивана в почти пустой комнате (дверей немного, одна выделенная). А в другом случае это когда мы стоим посередине Леруа Мерлен и просим открыть дверь.
Кстати, с учётом того, что в идеале любая программа, которая решает какую-либо практическу задачу, должна быть написана ровно один раз, большой базы этих программ на GH не будет. Скажем, компиляторов Idris2 есть одна штука. Да, есть разные составляющие, которые повторяются, но их разумно оформлять в виде библиотек.
> А потом чат джЫ пи ти будет сидеть на стак оверфлоу и справшивать "а вот у меня кусочек кода есть - чо делать то??"
Тем не менее, есть соображения у достаточно опытных людей по-поводу полезности этого. Правда эти опытные люди умеют управлять начинающими специалистами.
> В-четвертых, контекст. ЖПТ это такой Александр Друзь с антероградной амнезией. В 2021 году впал в кому, его клонировали, и клон такой выходит из комы, он не понимает где он что с ним, но помнит всё что было до 2021 года
> И тут мы вплотную подошли к декомпозиции больших задач на маленькие self-contained. Хотите чтобы он написал рассказ? Большой документ? Поработал над кодом? Бейте на маленькие независимые куски, обмазанные интерфейсами, пресловутый high cohesion low coupling, но на новом уровне. Бюджет 2048 токенов на вопрос+ответ+контекст. Какая может быть функция? Ну если надо её не только читать но и писать, и контекст уложится в 248 токенов - то 900, 2048 = 900 * 2 + 248. Если только читать, то больше. Если контекст большой -- то меньше. Вот!
> Что это если не парадигма высокоуровневого дизайна? Притом не только кода.
То есть, chatGPT - это ещё один инструмент, которым, правда, надо научиться пользоваться. И, конечно, в связи с вышесказанным, есть вопрос - применим ли он в этой конкретной подобласти програзма.
Скажем, у меня часто возникают задачи, в которых время, затрачиваемое на кодирование настолько неважно, что мне без разницы: подскажет IDE, Google или я сам пойду в библиотеку за бумажной документацией. А у кого-то, работающего в другой области, без подсказок от IDE производительность падает катастрофически.
P.S.
Страшно не хватает текстовой версии беседы. Как-нибудь знает, можно ли получить автоматическую текстовую расшифровку?
Я прекрасно знаю как всё это работает. Разница с теми же картинками только в сложности и количестве контекста. Он там не соизмеримо больше. И сколько потребуется времени чтобы создать такую сеть, которая будет справляться с такими задачами, непонятно. Может 10 лет, может 100 лет, а может 1000. Но из тех книг что я прочитал, мне не кажется что это принципиально не возможно.
Вы меня так сильно убеждаете, как будто я говорю что это просто или что мы увидим это вот прям в ближайшем будущем.
Я лишь говорю что не согласен с тезисом про "60% общение внутри коллектива", что на мой субъективный взгляд ИИ коллектив не нужен и нужно двигаться совсем не в эту сторону.
> У робота такой проблемы нет. Ты ставишь ему задачу - получаешь результат. Не нравится?
Это все ровно до того момента, как выяснится, что роботов пилят одни люди, используют из для производства продукта - другие, а пользуются продуктом - третьи. И тут внезапно всплывает, что одни задачи робот вообще решать не умеет, а на других выдает фигню, и ему (о ужас!) нельзя выдать книжку и сказать - выучить от сих до сих, приду проверю. Потому что, как уже сказано, пилят робота совсем другие люди.