Не знаю кто что учил, но во время учебы мы учили закон, который твердит, что пока нельзя написать программу, которая смогла бы писать ВСЕ/ЛЮБУЮ программу, так что друзья, это немного проблемотично
если такое слу4ится то можно всех людей на свалку отправить ...никто не будет нужен....не только програмисты...никому это не выгодно...поетому я с4итаю 4то это не слу4ится.или же будут другие ценности.
Если внимательно посмотреть на просходящее, то на самом деле люди все время усовершенствуют библиотеки языков, что бы поставленные задачи можно было решить более легко. Но предугадать всё разнообразие задач не возможно, поэтому вывод такой, что нужно писать программу, которая сможет написать лубую другую программу(заложенный любой алгоритм). Согласитесь - это не легко и на данный момент не возможно,а именно:
Допустим что есть такая прогамма. Тогда с помощью ее можно написать Вирус, для которого не будет Антивируса. Но с другой стороны, если эта программа универсальна, то с ее помошью можно написать Антивирус для этого вируса. О! А это уже противоречие Вируса(для него нет антивируса).
Не знаю, как в будующем, но как мне кажется на современном этапе есть тенденция к упрощению синтаксиса и увеличение мощности языков.
Например. Rubi, Scala, Groovy и так далее...
То есть высокоуровневые языки становятся все более "высокоуровневыми". При этом на скорость вычислений внимание обращается все меньше и меньше. Это в области прикладного программирования.
Что же касается нейронный сетей, то хотя и в 80-е годы возобновились работы в этом направлении (после того, как научились преодолевать проблему линейной разделимости), но достаточно мощной теории почему это работает и как строить такие сети еще не смогли придумать. Просто берут задачи и строят соответствующие сети опытным путем... Так что пока это все напоминает "черную магию"
Не вижу связи между: написанием драйвера и необходимостью в низкоуровневом языке (например С или С++).
История и развитие компьютеров как раз таки ведет в сторону высокоуровневости ЯП и даже железа! Имею ввиду даже не то о чем писАл Марк -- в прикладном программировании уже давно используются высокоуровневые ЯП (ВЯП). Я же говорю, что даже системное ПО можно (и это делается уже давно) и будет разрабатываться также на ВЯП.
Только благодаря инертности индустрии (и зависимости образования от индустрии) такой хлам как С и С++ все еще используется для написания системного ПО. Будущее же за виртуальными машинами и ВЯП.
Другой момент это распределенные вычисления. ВЯП будущего должен позволять легко строить масштабируемое (от количества процессоров) ПО.
И третий момент -- это встроенные системы, т.е. ВЯП, компилятор с него и виртуальная машина должны быть достаточно компактны. Рынок встоенныех систем уже вовсю догоняет (а может уже и перегнал) рынок персональных компов.
Короче програмить нам под виртуальныю распределенную встроенную систему на ВЯП.
Использовать же С (или С++) -- это как стрелять себе в ногу.
А мне кажется, что Слава во многом прав, хотя я бы не говорил так категорично. Вопрос в том, почему эти вещи написаны на С или на С++? То что эти языки стал в свое время промышленными стандартами в силу отсуствия альтернатив и во многом благодаря тому что unix переписали на С. Так и пошло, как снежный ком, что все больше и больше кода стали писать на С, потом на С++ не потому что этот язык хороший, а потому что стало модным ООП а код на С было удобно подогнать.Но время не стоит на месте и появляются новые, более мощные и удобные языки.
Как объектно-ориентированный язык, С++ как раз намного менее стройный и логичный чем та же Java или С# и даже не только из-за наличия в последних виртуальной машины.
Иногда случается что "стандартом" становятся не самые лучшие языки
или системы, а те которые оказались в нужное время в нужном месте
Как мне кажется, вопрос нужно ставить по-другому. Будь у Вас сейчас
выбор написать систему "с нуля", а не расширить существующую систему, которую начали писать, скажем, 10 лет назад, выбрали бы вы С/С++? Или
воспользовались более новым языком программирования?
Дарогая моя молодежь. Я, конечно, динозавр, работающий в области написания низкоуровневых драйверов. И у меня ноги уже дырявые, т.к. пишу на С а иногда даже опускаюсь до ассемблера. И, возможно, вы намного умнее и знаете больше, но будьте так добры, пришлите мне ссылочку на пример инитиализационного кода для к примеру ARM или MIPS написанного на одном из этих высокоуровневых языков о которых я дже не слышал. И пока вы этого не сделаете я, уж не обессудьте, буду считать вас ... ну, скажем, людьми, не совсем четко понимающими, о чем они говорят.
Геннадий, обратите пожалуйста внимание на тему топика
Мы же обсуждаем то что будет в будущем, а не то что есть сейчас.
Вы совершенно правы, что сейчас С очень распространен, и пока что другой альтернативы в той области, в которой вы работаете, которая смогла бы выдержать испытание временем просто нет.
Но этому языку уже 40 лет практически... И вполне закономерно что в такой динамически развивающейся отрасли как ПО эти альтернативы рано или поздно появятся.
На сегодня мы имеем тенденцию появления огромного количества новых языков, которые просто более удобные чем С. И во многом эти удобства обязанны той самой "высокоуровневости". Все больше и больше новых проектов отказываются от С и С++ в сторону более современных языков. той же Java или платформы .NET
Что же касается ассемблера - это конечно отдельный разговор, но,
уверен, вы лучше меня знаете, что программы на ассемблере не переносимы
на другие платформы. А многих клиентов очень интересует вопрос
переносимости.
Основными критериями выбора ассемблера в качестве языка программирования были скорость работы и низкоуровневость.
Я просто считаю, что со временем будут появляться все более высокоуровневые API так что доля кода ассемблерного кода будет уменьшаться. Конечно ассемблер, был есть, и останется основным инструментом системного программиста, просто круг задач который стоит решать именно этими средствами, на мой взгляд, уменьшится.
Марк. Обьясните мне популярно что такое "высокоуровневый АПИ", где, как и чем или на чем он исполняется? И как высокоуровневый АПИ будет обрабатывать аппаратные прерывания?
Марк Брамник - полностью согласна с Вашей точкой зрения
Нейросети - классная придумка, не более... пока... Может в далееееком-далееееком будущем что-то срастется...
Я думаю, будущее за развитием Human Interfaces - способов ввода информации. Т.е. как в Матрице - разъем к нервной системе - скорость программирования приближается к скорости света. А на чем писать при таком раскладе - будет не важно. Ведь все усовершенствования языков призваны ускорить процесс программирования. [Ну, вроде "сколько времени возьмет написать конопочку SAVE на ассемблере? А на VB?"] А так проблема снимется, и будет пофигу, на каком языке В КОНЦЕ будет сформирован код.
Мы используем cookie-файлы, чтобы улучшить сервисы для вас. Если ваш возраст менее 13 лет, настроить cookie-файлы должен ваш законный представитель. Больше информации
Комментарии 26
Это уже похоже на научныю фантастику!
Когда-же по вашему мнению это будет?
Не знаю кто что учил, но во время учебы мы учили закон, который твердит, что пока нельзя написать программу, которая смогла бы писать ВСЕ/ЛЮБУЮ программу, так что друзья, это немного проблемотично
если такое слу4ится то можно всех людей на свалку отправить ...никто не будет нужен....не только програмисты...никому это не выгодно...поетому я с4итаю 4то это не слу4ится.или же будут другие ценности.
Если внимательно посмотреть на просходящее, то на самом деле люди все время усовершенствуют библиотеки языков, что бы поставленные задачи можно было решить более легко. Но предугадать всё разнообразие задач не возможно, поэтому вывод такой, что нужно писать программу, которая сможет написать лубую другую программу(заложенный любой алгоритм). Согласитесь - это не легко и на данный момент не возможно,а именно:
Допустим что есть такая прогамма. Тогда с помощью ее можно написать Вирус, для которого не будет Антивируса. Но с другой стороны, если эта программа универсальна, то с ее помошью можно написать Антивирус для этого вируса. О! А это уже противоречие Вируса(для него нет антивируса).
Вот такие дела
Не знаю, как в будующем, но как мне кажется на современном этапе есть тенденция к упрощению синтаксиса и увеличение мощности языков.
Например. Rubi, Scala, Groovy и так далее...
То есть высокоуровневые языки становятся все более "высокоуровневыми". При этом на скорость вычислений внимание обращается все меньше и меньше. Это в области прикладного программирования.
Что же касается нейронный сетей, то хотя и в 80-е годы возобновились работы в этом направлении (после того, как научились преодолевать проблему линейной разделимости), но достаточно мощной теории почему это работает и как строить такие сети еще не смогли придумать. Просто берут задачи и строят соответствующие сети опытным путем... Так что пока это все напоминает "черную магию"
Пока есть драйвера будет жить С,
пока есть банки будет жить Коболь
То Давид: прям за упокой какой то.
Не вижу связи между: написанием драйвера и необходимостью в низкоуровневом языке (например С или С++).
История и развитие компьютеров как раз таки ведет в сторону высокоуровневости ЯП и даже железа!
Имею ввиду даже не то о чем писАл Марк -- в прикладном программировании уже давно используются высокоуровневые ЯП (ВЯП).
Я же говорю, что даже системное ПО можно (и это делается уже давно) и будет разрабатываться также на ВЯП.
Только благодаря инертности индустрии (и зависимости образования от индустрии) такой хлам как С и С++ все еще используется для написания системного ПО.
Будущее же за виртуальными машинами и ВЯП.
Другой момент это распределенные вычисления.
ВЯП будущего должен позволять легко строить масштабируемое (от количества процессоров) ПО.
И третий момент -- это встроенные системы, т.е. ВЯП, компилятор с него и виртуальная машина должны быть достаточно компактны.
Рынок встоенныех систем уже вовсю догоняет (а может уже и перегнал) рынок персональных компов.
Короче програмить нам под виртуальныю распределенную встроенную систему на ВЯП.
Использовать же С (или С++) -- это как стрелять себе в ногу.
Удачи
Интересно. Приходит этакий знаток все и вся и заявляет, что целая отрасль занимается "самострелом".
мне как то неудобно спорить с таким профи как Слава
но я работаю как раз в области VM, за которыми будущее по его же словам. И могну шепнуть по секрету что написаны VM на С и С++.
а к железу это всё привязано на С или асембли соответствующем.
и низкоуровневый протокол на карточке я тоже на С писал.
Не хочу говорить что Слава просто не понимает о чём говорит, но как то напрашивается.
ну а вообще я предполагаю что каждый язык хорош для определённой области.
вот и будет использоваться С на уровне железа и там всякие высокоуровневые языки на уровне аппликаций,
наверно ...
А мне кажется, что Слава во многом прав, хотя я бы не говорил так категорично. Вопрос в том, почему эти вещи написаны на С или на С++? То что эти языки стал в свое время промышленными стандартами в силу отсуствия альтернатив и во многом благодаря тому что unix переписали на С. Так и пошло, как снежный ком, что все больше и больше кода стали писать на С, потом на С++ не потому что этот язык хороший, а потому что стало модным ООП а код на С было удобно подогнать.Но время не стоит на месте и появляются новые, более мощные и удобные языки.
Как объектно-ориентированный язык, С++ как раз намного менее стройный и логичный чем та же Java или С# и даже не только из-за наличия в последних виртуальной машины.
Иногда случается что "стандартом" становятся не самые лучшие языки
или системы, а те которые оказались в нужное время в нужном месте
выбор написать систему "с нуля", а не расширить существующую систему, которую начали писать, скажем, 10 лет назад, выбрали бы вы С/С++? Или
воспользовались более новым языком программирования?
Думаю, что во многих случаях ответ был бы нет...
Дарогая моя молодежь. Я, конечно, динозавр, работающий в области написания низкоуровневых драйверов. И у меня ноги уже дырявые, т.к. пишу на С а иногда даже опускаюсь до ассемблера. И, возможно, вы намного умнее и знаете больше, но будьте так добры, пришлите мне ссылочку на пример инитиализационного кода для к примеру ARM или MIPS написанного на одном из этих высокоуровневых языков о которых я дже не слышал. И пока вы этого не сделаете я, уж не обессудьте, буду считать вас ... ну, скажем, людьми, не совсем четко понимающими, о чем они говорят.
Геннадий, обратите пожалуйста внимание на тему топика
Мы же обсуждаем то что будет в будущем, а не то что есть сейчас.
Вы совершенно правы, что сейчас С очень распространен, и пока что другой альтернативы в той области, в которой вы работаете, которая смогла бы выдержать испытание временем просто нет.
Но этому языку уже 40 лет практически... И вполне закономерно что в такой динамически развивающейся отрасли как ПО эти альтернативы рано или поздно появятся.
На сегодня мы имеем тенденцию появления огромного количества новых языков, которые просто более удобные чем С. И во многом эти удобства обязанны той самой "высокоуровневости". Все больше и больше новых проектов отказываются от С и С++ в сторону более современных языков. той же Java или платформы .NET
Что же касается ассемблера - это конечно отдельный разговор, но,
уверен, вы лучше меня знаете, что программы на ассемблере не переносимы
на другие платформы. А многих клиентов очень интересует вопрос
переносимости.
Основными критериями выбора ассемблера в качестве языка программирования были скорость работы и низкоуровневость.
Я просто считаю, что со временем будут появляться все более высокоуровневые API так что доля кода ассемблерного кода будет уменьшаться. Конечно ассемблер, был есть, и останется основным инструментом системного программиста, просто круг задач который стоит решать именно этими средствами, на мой взгляд, уменьшится.
Марк. Обьясните мне популярно что такое "высокоуровневый АПИ", где, как и чем или на чем он исполняется? И как высокоуровневый АПИ будет обрабатывать аппаратные прерывания?
Ой, мальчики, вы все тут такие умные!
Можно я пять копеек вставлю?
Геннадий Берман -
Slava Chernoy -
Марк Брамник - полностью согласна с Вашей точкой зрения
Нейросети - классная придумка, не более... пока... Может в далееееком-далееееком будущем что-то срастется...
Я думаю, будущее за развитием Human Interfaces - способов ввода информации. Т.е. как в Матрице - разъем к нервной системе - скорость программирования приближается к скорости света. А на чем писать при таком раскладе - будет не важно. Ведь все усовершенствования языков призваны ускорить процесс программирования. [Ну, вроде "сколько времени возьмет написать конопочку SAVE на ассемблере? А на VB?"] А так проблема снимется, и будет пофигу, на каком языке В КОНЦЕ будет сформирован код.
Высокоуровневый АПИ - это интерфейс доступа к какому-либо ресурсу, определяющий набор операций, которые могут производиться с этим интерфейсом...
Конечно я понимаю, что аппаратные прерывания на языке работающем на основании виртуальной машины не обработаешь _сейчас_.
Ну а если говорить о будующем... То права Оксана.
И весь этот ввод и обработка будут написаны на ассемблере, да, Геннадий?
Оксана, ты ж знаешь, после пары стаканов... Что угодно на любом языке... Даже незнакомом...
я не вижу как в будущем будут писать драйвера на высокоуровневом языке.
я как то завернул чипсет в Java, то есть я писал на С и привязал это к Java API. все остальные писали на Java.
но когда чипсет поменялся, пришлось кое что переписывать разумеется.
с другой стороны сегодня никто не будет писать например UI на С