Народ, не подскажите какую-нибудь программу (желательно для mac os, типа Siri?), с помощью которой можно писать код голосом (ну или хотя бы минимизировать написание кода ручками). К примеру, я говорю фразу “Фонтсайз двоеточие четырнадцать пи икс“, а она пишет “font-size: 14px”. Понимаю, что я обнаглел и вряд ли такое есть, но вдруг повезёт! :)
xmoonlight: быстрее в том плане, что не нужно исправлять ошибки распознавания, коих будет много. Можно конечно научить эту систему анализировать код и пытаться исправлять ошибки в контексте данного ЯП и данного проекта, но это долго и сложно, вряд ли кто-то за это возьмётся.
Такого нет не потому, что это невозможно сделать. А потому, что это быстро приведет к профессиональной деформации. Будете заходить в супермаркет и говорить - мне запятая пожалуйста запятая один большой пакет точка спасибо точка
Далее серьезно:
Специализированная система голосового ввода для программиста могла бы как минимум понимать в какой файл мы вводим код, а значит на каком языке. Она может понимать базовые правила синтаксиса данного языка и сама расставлять знаки, которые необязательно проговаривать, например ";" в конце выражения. IDE может делать автоформат кода. И тому подобное. Тот факт, что языки программирования используют английский язык для зарезервированных слов упрощает распознавание - не нужны локализации, и английский в настоящее время достаточно хорошо распознается разными спич-ту-текст системами. jasonOk писал про навигацию и ошибки. В вопросе навигации по файлам и внутри файла я вообще проблемы не вижу - просто набор голосовых команд, сродни горячим клавишам.
Ну и клавиатуру же никто не отменяет. Можно надиктовать большой кусок кода (тело функции или метода) и отредактить вручную, если нужно, в процессе отладки.
В общем в этом вопросе я склонен поддержать xmoonlight - сложно, перспективно. Возможно когда-нибудь появятся подобные системы.
по-моему, намного быстрее прописать fz14 и нажать Tab (не более секунды), чем произносить это вслух.
мне даже сложно представить, что может быть быстрее, чем печатать код ручками
Только если мысли считывать, но тут уже логика не будет поспевать за кодом
Денис Букреев: все равно не понятно: код и печатается под воздействием разума, в идеале он под его же воздействием и удаляется, так что все ваши мысли/идеи будут реализовываться за считанные секунды, именно в эти считанные секунды они и были придуманы.
Никто не мешает остановится и ничего не писать, "подумать", но при такой модели это не рационально: быстрее будет реализовать неправильную логику, а при осознании неправильности моментально изменить ее структуру/исправить неправильные части/полностью переписать.
все равно не понятно: код и печатается под воздействием разума, в идеале он под его же воздействием и удаляется, так что все ваши мысли/идеи будут реализовываться за считанные секунды, именно в эти считанные секунды они и были придуманы.
Программирование - это ДЕТАЛИЗАЦИЯ мыслей.
А детальную мысль ты в считанные секунды не подготовишь.
К тому времени, когда можно будет просто сказать:
"Я хочу сайт зелененький с красными буковками, с входом на форум из левого меню, с авторизацией через Фейсбук и т.п.",
а все остальноме за вас детализирует программа - к тому времени весь мир ИТ будет совсем совеме другим, а вы, боюсь, уже проростете в виде травы.
Программирование - это ДЕТАЛИЗАЦИЯ мыслей.
А детальную мысль ты в считанные секунды не подготовишь.
Я в считанные секунды могу придумать, что будет делать функция, и еще две у меня займет воспроизведение в голове нужных API, а потом мне придется потратить 5 на то, чтобы это все напечатать. А потом я пойму, что мне нужен слегка другой функционал, и мне придется потратить еще 10 на ее перепечатывание и так далее. Инструмент о котором мы говорим призван сократить время на печать, и я не вижу ничего сакрального в процессе печтанья кода, и не совсем понимаю, что сакрального в этом видите вы. Неужели не очевидно, что между последовательным набором токенов на клавиатуре и их придумыванием в голове есть прличная такая задержка?
Илья Ростопка:
Ну точно, все программисты как программисты - могут с 30 строчками кода разбираться и полдня, чтобы получить работающую программу, а вы один - супер-монстр программирования.
Гоните.
5 секунд, 10 секунд - это только для функций вида
func A(С, B)
return B+C
Для чего то сложного - минуты в лучшем случаи.
P.S.:
Если вы действительно программируете в 10 000 раз быстрее всех ваших коллег,
то даже работая простым кодером должны быть очень богатым.
Или это из серии анекдота про секретаршу:
- С какой скоростью вы печатаете на клавиатуре?
- 1200 знаков в минуту
- Оооооо
- (тихо, в сторону) Но такая фигня получается....
dinegnet: ну вот вы уже оффтопите, концентрируясь на моем утрировании, а не на моем аргументе.
Насколько долго вы бы не придумывали функцию, вы так или иначе тратите время на печать промежуточных результатов, на "набросок", на "попробовать, авось работает", и т.д. По крайней мере, я трачу.
Так почему бы не делать это со скоростью мысли, а не со скоростью набора текста на клавиатуре, которая по определнию не может быть выше онной? Почему бы не скоратить время на написание ключевых слов, блоков и прочих вещей, о которых мы даже не задумываемся, но на которые так или иначе тратим время? Зачем печатать fz14 и жать , когда можно просто подумать font-size: 14, и вот, оно уже здесь?
Насколько долго вы бы не придумывали функцию, вы так или иначе тратите время на печать промежуточных результатов, на "набросок", на "попробовать, авось работает", и т.д. По крайней мере, я трачу.
Возможности самого банального слепого десятипальцевого метода набора на клавиатуре заведомо превышают скорость мысли программиста в 99% случаев.
И - да - я считаю, что это необходимо уметь программисту также как и уметь работать с БД.
Это просто базовый навык.
dinegnet: ладно, тут я полностью вас потерял, и не понимаю о чем вы говорите вообще. Где я сказал хоть слово о своей скорости программирования? Вы как-будто с кем-то еще разговариваете, и меня это слегка пугает.
Ты можешь мгновенно подумать "создам я операционную систему, которая завоюет мир и Линукс и Винда и Андроид заменит". Тут за тобой никто не угонится, за твоей мыслью. Ты даже можешь какие-то там фенечки абстрактно придумать в этой ОС почти мгновенно.
Но то ты пишешь программу не абстрактными словами.
А ДЕТАЛИЗИРУЕШЬ.
Детализированная мыль - медленнее пальцев в 99% случаев.
Как только твои придуманные для этой ОС фенечки придет пора перекладывать в программный код - скорость мысли упадет в миллионы раз.
ну вот вы уже оффтопите, концентрируясь на моем утрировании, а не на моем аргументе.
И чем вас удивляет утрированный ответ на ваше утрированние?
Какой тут аргумент был?
Я в считанные секунды могу придумать, что будет делать функция, и еще две у меня займет воспроизведение в голове нужных API, а потом мне придется потратить 5 на то, чтобы это все напечатать. А потом я пойму, что мне нужен слегка другой функционал, и мне придется потратить еще 10 на ее перепечатывание и так далее.
То у вас была абстрактная обтекаемая мысль, не привязанная к реальным показателям
Эту мысль можно на что угодно натянуть.
Давайте конкретизируем
Я вот за программу, которой сейчас занимаюсь и занимаюсь уже очень давно, получил уже примерно 5 млн. рублей.
В ней порядка 2000 функций.
Если действительно даже вы тратите на одну функцию не 5-10-15 секунд как вы написали, а пусть 1 минуту (да, я даю вам фору примерно в 10 раз!!!!! относительно вашего примера), то на 2000 функций вы затратили бы 2000 минут = 33 часа.
Если работать со столь выскокой эффективностью вы можете хотя бы 4 часа в день, то моих 5 миллиона рублей вы заработали бы за чуть больше чем за неделю.
И это при форе которую я вам дал в 1 минуту против ваших изначальный 5-10 секунд!!!! Из расчета 4 часа в день эффективной работы.
Вот я и спрашиваю - вы действительно зарабатывайте порядка 15 миллионов рублей в месяц работая со столь потрясающей производительностью???
А без форы (исходя из ваших 10 секунд на функцию и 8-ми часового рабочего дня) получается, что вы должны зарабатывать больше 7 миллионов рублей в день!!!!
Вы же мою многомесячную работу можете сделать за 5-6 часов?
ладно, тут я полностью вас потерял, и не понимаю о чем вы говорите вообще. Где я сказал хоть слово о своей скорости программирования? Вы как-будто с кем-то еще разговариваете, и меня это слегка пугает.
Если вы в теме, то есть если вы профессиональный программист, то вам должно быть все понятно.
Как только твои придуманные для этой ОС фенечки придет пора перекладывать в программный код - скорость мысли упадет в миллионы раз.
Все равно она никогда не упадет ниже скорости печати, потому что мы сначала думаем, а потом печатаем. Даже если вы этого не замечаете/отказываетесь признавать, так оно работает у всех, и дело тут даже не в программировании совсем, даже сейчас, когда я пишу это сообщение, я вынужден тратить время на набор текста, хотя в голове я его могу составить намного быстрее, в голове я уже придумал ответы на все ваши сообщение, но теперь мне придется сделать перенос, цитировать ваше сообщение и переписать мой ответ из головы в следующий абзац и так далее.
Если вы в теме, то есть если вы профессиональный программист, то вам должно быть все понятно.
Вы уже неоднократно аппелировали к профессионализму, так обычно делают, когда кончаются аргументы (:
И чем вас удивляет утрированный ответ на ваше утрированние?
Меня не устраивает не присутствие утрирования. Он просто не в тему.
Какой тут аргумент был?
Тут была абстрактная обтекаемая мысль, не привязанная к реальным показателям
Эту мысль можно на что угодно натянуть.
Там был вполне четкий аргумент: всякий код печатается, перепечатывается и по несколькуо раз, все это может занимать N-нное количество времени, которое при реализции такой технологии можно было бы значителньо cократить.
На этом предлагаю спор закончить, он перестал быть конструктивным.
Все равно она никогда не упадет ниже скорости печати, потому что мы сначала думаем, а потом печатаем.
А говорим - не думая????????????????????
При нормально изученной слепой десятипальцевой работой с клавиатурой - нет никакой принципиальной разницы с голосом.
Там был вполне четкий аргумент: всякий код печатается, перепечатывается и по несколькуо раз, все это может занимать N-нное количество времени, которое при реализции такой технологии можно было бы значителньо cократить.
Четкий????????????????????????????????
О технологии, которой еще не существует?????????????????????????????
Можно это или, может вдруг, не можно - абсолютно обтекамый ни к чему не привязанный ответ.
Из каких таких соображений голосом будет быстрее чем на клавиатуре?
При условии, что вы освоили профессиональный уровень, что вы имеете базу - хорошо владеете слепым десятипальцевым методом.
А что, технология уже существует??????
Кто вам сказал, что вообще можно будет считывать из головы чистые мысли??????
Сегодняший уровень этого дела говорит что мы не более чем крупные жесты можем получить в будущем, когда технология достаточно разовется.
То есть считывание мыслей - это (в будущем) максимум что возможно примерно то же что и вы бы сейчас перед MS Kinetics жестами пытались бы программировать.
То есть вам все равно придется ДЕТАЛИЗИРОВАТЬ мысли.
И принципиальных способов решения этой проблемы - нет.
Вся ваша, так называемая "аргументация" о том, что, когда то будут считывать мысли из головы и тогда люди не будут пользоваться клавиатурой для программирования???
Да раньше программы сами себе писать начнут, что кстати более реально, чем считывать чистые мысли из головы, без необходимости их ДЕТАЛЬНО подумать для полноценного считывания.
dinegnet: а что, рассуждения запрещены?????? И зачем столько вопросительных знаков???????????????
Изначально речь шла об абстрактной технологии, а теперь вдруг под конец спора вы начали оспаривать ее реализацию, хотя речь то была не о реализации вовсе. Смешно.
а что, рассуждения запрещены?????? И зачем столько вопросительных знаков???????????????
Изначально речь шла об абстрактной технологии, а теперь вдруг под конец спора вы начали оспаривать ее реализацию, хотя речь то была не о реализации вовсе. Смешно.
Вы "аргументами" называете абсолютно не привязанные ни к чему фантазии.....
А так да, конечно - гипотетическая крутая реализация считывания мыслей из головы позволит писать программы быстро.
Я предлагаю даже дальше пойти - вкладывать результаты работы программы непосредственно в головы пользователей.
Тогда и компьютеры не поднадобятся.
Да и программы тоже будут не нужны.
Так и будем сидеть как в Матрице и видениями обмениваться напрямую.
всякий код печатается, перепечатывается и по несколькуо раз, все это может занимать N-нное количество времени, которое при реализции такой технологии можно было бы значителньо cократить.
Здесь нет никакхи фантазий. И никаких "предложений", как у вас, тут тоже нет. Это просто тезис, который я привел в доказательство другого суждения. И это называется аргумент, если не верите мне, загуглите определение сами, вы увидите, что оно почти полностью совпадает. То, что приводите вы, к аргументам не имеет никакого отношения.
А так да, конечно - гипотетическая крутая реализация считывания мыслей из головы позволит писать программы быстро.
Тем не менее, именно это вы пытались оспорить на протяжении всего времени спора.
Здесь нет никакхи фантазий. И никаких "предложений", как у вас, тут тоже нет. Это просто тезис, который я привел в доказательство другого суждения. И это называется аргумент, если не верите мне, загуглите определение сами, вы увидите, что оно почти полностью совпадает. То, что приводите вы, к аргументам не имеет никакого отношения.
Я утверждаю, что в программировании проблема именно ПРОДУМАТЬ.
А интерфейс ввода программного кода в компьютер меньше всего тормозит процесс.
Больше тормозит процесс сам придумывающий ДЕТАЛИ мозг программиста.
В такой формилировке - это аргумент.
А то что пишете вы - это не аргументация, а фантазия.
"Я хочу чтобы было так" - это не аргумент.
Давайте аргументировано.
Ведь вы сами написали, что проблема-то в человеке, а вовсе не в интерфейсе ввода программного кода в компьютер:
Я в считанные секунды могу придумать, что будет делать функция, и еще две у меня займет воспроизведение в голове нужных API, а потом мне придется потратить 5 на то, чтобы это все напечатать. А потом я пойму, что мне нужен слегка другой функционал, и мне придется потратить еще 10 на ее перепечатывание и так далее.
1. Так почему вы считаете, что код, переданный силой мыли, не будет переделываться по 100 раз?
2. Если у вас есть какой то рецепт избежания п. 1, например, интеллектуальная система, сразу распознающая суть задачи, позволяющая избежать переделки кода, то кто мешает ровно такую же систему ввести и в клавиатурный интерфейс?
1. Так почему вы считаете, что код, переданный силой мыли, не будет переделываться по 100 раз?
В том то и дело, он будет! Только вот время на перепечатывание уже тратить не придется, если провести аналогию с Вебом, это как вызов функции render() в React'e после смены сразу нескольких состояний вместо прохода по DOM'у и мануального изменение всех мест, где встречается это состояние.
2. Если у вас есть какой то рецепт избежания п. 1, например, интеллектуальная система, сразу распознающая суть задачи, позволяющая избежать переделки кода, то кто мешает ровно такую же систему ввести и в клавиатурный интерфейс?
О такой системе я не думал, но теоретически, ничего конечно не мешает. Только вот если мы берем абстрактную ситуацию, где мы уже можем передавать мысли напрямую и эта технология достаточно удобна, то зачем пользоваться менее удобным клавиатурным интерфейсом?
большую часть программирования занимает продумывание кода, его структуры, а ввод этого кода - берет на себя ничтожно малую часть времени.
в итоге, скорость написания программы в идеальных условиях будет одна и та же.
НО, если взять обычные условия, то ввод мыслью позволит избежать опечаток, из-за которых иногда приходится дебажить много минут (иногда и часов). Если плотно покумекать, то можно найти еще факторы, которые сократят время написания кода. Например, навигация по файлам: вы просто думаете какой файл надо открыть, а не ищите его в десятках папок и файлов.
+ руки будут свободны и можно будет кушать/попивать кофеек, какие-то другие вещи (;
Просто не с той стороны смотрели на проблемес.
Со всеми современными плюшками, сегодня вводить код можно оооочень быстро, мысль за пальчиками не успевает.
НО, если взять обычные условия, то ввод мыслью позволит избежать опечаток, из-за которых иногда приходится дебажить много минут (иногда и часов)
Каким бы интерфейсом мы не пользовались: мы и опечатываемся, мы и оговариваемся.....
Это общая проблема.
Так что сомнительно, чтобы и прямая мысль была бы безошибочной.
Прямая абстрактная мысль, которую компьютер должен сам додумать - это да, тут может и не быть ошибок.
А вот прямая конкретная мысль - конкретный файл и т.п. - будут ровно такие же ошибки. При любом способе ввода.
С другой стороны если компьютер научится понимать абстрактные мысли,
то какая разница - подумаете вы или напишите "хочу веселенький сайт в розовых тонах", если доводить до конкретизации это будет автоматика.
Если научить алгоритм распознавания голоса следить за контекстом (имена переменных, структура кода, секция и возможные значения внутри неё) - это возможно будет реализовать.
Также, сделать понимание системой распознавания вставки целых шаблонных блоков кода обработки данных с адаптацией к контексту.
Примеры: "проверить переменную email на e-mail", "найти в массиве data наименьший элемент по значению", "получить общее количество пользователей из базы" и т.д.
Т.е. всё то, что мы обычно произносим junior-ам (когда учим или просим их что-то конкретное сделать по более верхнему алгоритму), научить понимать систему распознавания и верно исполнять. Сложно ли - ДА.
Перспективно ли - даже не обсуждается!
Есть куча ПО с распознаванием текста, а профессионально для программистов нет и не будет в ближайшие лет надцать. Ошибка в 1 символе и программа работать не будет. Вы выкинете такую программу минут через 10 использования. Поэтому их не делают.
не совсем согласен: можно всегда проверять целостность как логики, так и синтаксиса и остального.
Т.е. сделать так, чтобы алгоритм распознавания в случае ошибки сам догадывался: на что это лучше исправить в соответствии с предыдущим вводом + кодом из файла + общего дерева связей кода (структур: библиотек, классов, функций и т.д.).
Но в целом - тема интересная....
xmoonlight: Для нейросети нужна производительность, запустить ее на своем планшете или ПК не получится, так что приходим к онлайн сервису, что уже будет работать не так быстро, как необходимо для данной задачи.
Так что повторюсь: завтра - может быть. На сегодняшний день не виду технической возможности воплотить это в жизнь с надлежащим качеством.
xmoonlight: Не спорю, но объем данных будет колоссальным и просеивание будет брать хоть и меньше ресурсов, но все равно цифры будут значительно превышающие возможности современных гаджетов. Вот когда в каждом планшете будет квантовый процессор - тогда да. И я так понимаю ждать не долго. Но не сегодня.
Когда-то давным давно я вот думал - как бы было классно если бы компьютер научился распознавать речь.
Не надо будет набирать текст, просто взял и сказал.
Сейчас компьютеры прекрасно неплохо умеют распознавать речь. Но напечатать гораздо быстрее и удобней, чем сказать.