LINUX.ORG.RU

Страуструп о будущем семантических средств разработки с комментариями

 ,


2

0

У Страуструпа имеется книжка о развитии и о будущем средств разработки для языка C++, "Дизайн и эволюция языка C++", в частности о поддержке семантического программирования. Интерес представляют комментарии к книге данные Евгением Зуевым, одним из известных советских программистов и разработчика компилятора C++.

Отредактировано anonymous_incognito

>>> Подробности

anonymous

Проверено: anonymous_incognito ()
Ответ на: комментарий от anonymous

> не любят питон наверное потому что половина программы на питоне - это с/с++ и биндинги к питону. ну и работает поэтому быстро - это всех раздражает.

Еще раз. И медленней пожалуйста.

cab ★★★★
()
Ответ на: комментарий от A-234

>А вообще на плюсах писалось и пишется более 90% всех игрушек.

А не на J2ME?

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

>пруфлинк по _количеству_ в студию или идите на йух, уважаемый аналитик

В свою очередь прошу пруфлинк на определение "компьютере простого пользователя", потом приведите пруфлинк на _количество_ программ на этом компьютере, написанных на C++ и соотношению с остальными программами. Или поступите проще - идите на йух сразу.

Мне вот интересно всегда было кто это такой - простой пользователь и какой у него компьютер?

morbo
()
Ответ на: комментарий от anonymous

не сидели бы. Потребность в ГУИ, и соответствующие реализации, возникли до появления С++ или жабы. А привычный вид программы тоже дело десятое. Главное функциональность и удобство для глаз. У жабы с этим, действительно, были проблемы. Но ГУИ только С++ и жабой не ограничивается.

cab ★★★★
()
Ответ на: комментарий от cab

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

anonymous
()

Друзья, открываем Абельсона 194 стр. и читаем прим. "...Основная разница между той путаницей, которая была десять лет назад, и той, которая есть сейчас, состоит в том, что теперь множество неадекватных отнотологических теорий оказалось воплощено в массе соотвественно неадекватных языков программирования. Например, львиная доля сложности объектно ориентированных языков программирования - и мелких невразумительных различий между сорвеменными объектно-ориентированными языками, - состредоточена в том, как рассматриваются обобщенные операции над взаимосвязанными типами... Читатели заметят что нам есть что сказать в главе 3 о локальном состоянии , но мы ни разу не упоминаем классы и наследование. Мы подозреваем что на самом деле эти проблемы нельзя рассматривать только в терминах проектирования языков программирования, без обращения к работам по представлению знаний и автоматическому логическому выводу"

kristall ★★
()
Ответ на: комментарий от anonymous

>что же жабка не пополнила свои ряды за счёт кодеров на с++?

Да, пополнила, о том и речь. Даже если сейчас жаба вдруг устареет, её будут использовать большие серьёзные фирмы просто по инерции, как это сейчас и обстоит с C++. Ну и что это доказывает, кроме здорового консерватизма девелоперов? Ничего другого, в частности о качестве языка тоже судить по этим признакам нельзя.

>почему же пользователи предпочитают приложения на с++ и так неохотно не пополняют ряды жаба-пользователей


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

>я открою срашную корпоративную тайну


Это глупость.

>предлагаю самостоятельно додумать почему додиез


Если C++ меня хоть как-то интересует, то C# меня он вообще не интересует. Поскольку как раз не переносим фактически.

morbo
()
Ответ на: комментарий от anonymous

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

И как он, бедный, по сайтам лазит? Какждый, поди, разный. И с мобилками - тоже

cab ★★★★
()
Ответ на: комментарий от morbo

Самое коммерчески успешное семейство программ написано на С++; Сfмые распространённые (от винды до mail.ru через фотошоп) - тоже.

anonymous
()
Ответ на: комментарий от cab

первый нормальный ОО язык - это тот, который на ура приняли как в университетнской, так и промышленной среде.

Угадай какой? Java!

В 96 году бесплатный компилятор с бесплатной ВМЕНЯМОЙ библиотекой и бесплатным ВМЕНЯЕМЫМ GUI.

На Западе тогда это была сенсация!

Собственно поэтому Java - стандарт де-факто.

А теперь попробуй выбрать тоже самое для крестов в 96 году.

ПС. С другой стороны тогда бешенной популярностью пользовался Visual Basic.

Он первый предложил доступную IDE с доступной библиотекой и доступным GUI по доступной цене (в т.ч. и бесплатно).

Причем сделал именно ПЕРВЫМ - в 91 году.
Visual Basic for DOS до сих пор остается ЕДИНСТВЕННЫМ RAD для DOS.

anonymous
()
Ответ на: комментарий от cab

да? а у меня на всех сайтах все элементы управления (кнопки, комбобоксы, етс) родные. и корпорация мозилла специально прикладывала усилия, чтобы было именно так. вот дураки, да?

anonymous
()
Ответ на: комментарий от anonymous

> Самое коммерчески успешное семейство программ написано на С++;

Распространенность это не аргумент. Иначе придется считать Виндовс самой лучшей ОС ;)

cab ★★★★
()
Ответ на: комментарий от anonymous

Не в элементах управления дело. А в том, что дизайн каждого сайта - индивидуален. Однако все находят то, что им нужно.

cab ★★★★
()
Ответ на: комментарий от morbo

>Да, пополнила, о том и речь.

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

ну и сама концепция ограничения программиста "безопасностью" оруэловщину и новояз не напоминает?

>Заметьте - пользователи предпочитают, а не программисты. Предпочитают по простой причины - много памяти кушает.

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

>Это глупость.

ну разумеется глупость. наслаждайтесь вашей глобальностью и надёжностью.

anonymous
()
Ответ на: комментарий от cab

>дизайн каждого сайта - индивидуален

полистайте вы эти сайты дальше домашней страницы. там все страницы разные наверное. или всё-таки сделаны в одном стиле? вёрстка сайтов - это вообще отдельная тема. на некоторых сайтах приходится поискам искать строку "search".

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

anonymous
()
Ответ на: комментарий от anonymous

>Вообще для меня всегда было загадкой, почему Си++ здесь встречает такую нетерпимую реакцию.

Под *nix просто нет желания писать кучу инфраструктурного кода, поскольку уже есть замечательная инфраструктура - *nix. И пишут для себя а не для дяди, так что финансовые и человеческие ресурсы ограничены для того чтобы городить иерархии абстракций в каждой примитивной проге.

Absurd ★★★
()
Ответ на: комментарий от anonymous

>Вообще для меня всегда было загадкой, почему Си++ здесь встречает такую нетерпимую реакцию. Сейчас вдруг дошло - большинство лоровцев его элементарно осилить не могут. Ну а если баба не дала, то она понятное дело и лядь и дура и т д.

Вы ещё скажите, что большинство ЛОРовцев не освоили винду, и поэтому они так нетерпимо к ней относятся.

"C++ - стройная система костылей и подпорок" (c)

Потому и не любят.

morbo
()
Ответ на: комментарий от iZEN

>Первым ООП-языком был Simula-67. Похоже, и единственно-вменяемым для изучения и понимания.

Из википедии: "В современной терминологии Simula 67 можно охарактеризовать как объектное расширение Algol 60."

То есть расширение, но не язык в целом. Я считаю этот язык языком с абстрактными типами данных, но не ООЯ в полном понимании этих слов.

morbo
()
Ответ на: комментарий от morbo

плачут, колются, но продолжают жрать кактус? предложите замену. пока что только питон и с/с++ библиотеки с биндингами для питона. как вариант, что-то из функциональных языков с такими же биндингами. но я лично предпочитаю языки которые не ограничивают меня какой-то там парадигмой, которую неизвестный мне дядя считает подходящей для языка программирования.

anonymous
()
Ответ на: комментарий от anonymous

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

Ну и что в этом плохого? Неужели нужно продираться сквозь искусственную сложность языка?

>т.е. удешевление разработки и отладки приложений написанных неквалифицированными программистами.


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

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


То есть автор языка C++ заведомо создал проблемы разработчикам, потому что ему так было проще придумать язык? См. на пример с C++ и уход программистов на конкурентные языки.

>ну разумеется глупость. наслаждайтесь вашей глобальностью и надёжностью.


Я не наслаждаюсь глобальностью и надёжностью, это похоже вы ею наслаждаетесь. "C++ - это глобально и надёжно", пытаетесь убедить меня Вы. А я считаю, что есть место и asm, и c, и java, и python и ...

morbo
()
Ответ на: комментарий от morbo

>Неужели нужно продираться сквозь искусственную сложность языка?

в каком месте сложность искуственная?

>Людям делом нужно заниматься, программы писать, а не язык изучать.

пусть пишут свои программки на бумаге если не хотят язык изучать. вот смотрите: "сделай мне вебсервер". круто? и язык не надо изучать.

>См. на пример с C++ и уход программистов на конкурентные языки.

программисты ушли, пользователи остались. даже если они не представляют на чём написана программа, они предпочтут "тоже самое, но не тормозит".

>я считаю, что есть место и asm, и c, и java, и python и ...

есть конечно. только это не убер-языки, с++ киллеры, как нас пытаются убедить отдельно взятые товарищи открывшие для себя сборщик мусора (30 лет спустя, ага). и с++ никуда не денется, потому что замены ещё не придумали.

anonymous
()
Ответ на: комментарий от anonymous

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

Дело скорее в использовании third-party кода. Одно дело отыскивать мемори лик или memory corruption в одной из двадцати third-party библиотек, другое дело иметь гарантии что как минимум мемори ликов & сегфолтов там нет. Это одна из причин ксенофобии С++ программистов к чужому коду - каждый предпочитает пасти свои велосипеды.

Absurd ★★★
()
Ответ на: комментарий от anonymous

>в каком месте сложность искуственная?

Во многих местах, в треде кидали ссылки на статью разработчика компилятора C++.

Искусственно напрмер то, что это не целостный язык, а костыльно-подпорочное расширение C. К примеру, я считаю, что Objective-C был гораздо более продуман и привнёс гораздо меньше избыточности в C, по сравнению с C++.

>пусть пишут свои программки на бумаге если не хотят язык изучать. вот смотрите: "сделай мне вебсервер". круто? и язык не надо изучать.


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

Опять-таки, не нужно пытаться убедить меня в том, что "C++ - глобально и надёжно"

>программисты ушли, пользователи остались. даже если они не представляют на чём написана программа, они предпочтут "тоже самое, но не тормозит".


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

>есть конечно. только это не убер-языки, с++ киллеры, как нас пытаются убедить отдельно взятые товарищи открывшие для себя сборщик мусора (30 лет спустя, ага).


Да я вообще несеръёзно воспринимаю любых "киллеров".

>и с++ никуда не денется, потому что замены ещё не придумали.


Никуда не денется, только не стоит переоценивать его важность, со временем он будет уходить на второй план, как и Perl.

morbo
()
Ответ на: комментарий от JackyTreehorn

>Не нужно бороться. Нужно сначала научиться правильно его использовать.

Ага, тоесть ЯП нужен что-бы его годами изучать, захлебываясь слюной обсуждать на РСДН костыльную реализацию темплейтами казалось бы простых фич, которые должны быть встроены в язык напрямую и приносить в полнолуние жертвы Александреску? Ок, теперь я понял точку зрения плюсатников.

Sidrian
()
Ответ на: комментарий от skwish

>Соглашусь, что C++ убог только на условиях, что настолько же убоги лисп, питон, паскаль, джава и C#. Либо одинаково хороши.

Детский сад...

Sidrian
()
Ответ на: комментарий от A-234

>Сейчас занимаюсь системным программированием в солярке. Да ядро написано на чистом си, по историческим причинам, никаких препятствий использовать вместо него плюсы нету.

Ну так может перепишешь его на крестах, раз такой умный? Глядишь и автомат получишь по информатике за такое упорство.

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

Какие-то у тебя неправельный знакомые эмбедщики. В этой области на чистом Ц пишется значительно больше.

>Хммм, может просвятишь про этот список, а то столько слов вместо того чтобы хотя бы парочку перечислить.

Деточка, я же сказал, что это будет твоим домашним заданием.

>не путай множественное наследование классов с множественным наследованием интерфейсов, это две большие разницы

Это только школьники вроде тебя могут перепутать.

Sidrian
()
Ответ на: комментарий от anonymous

>предложите замену. пока что только питон и с/с++ библиотеки с биндингами для питона. как вариант, что-то из функциональных языков с такими же биндингами. но я лично предпочитаю языки которые не ограничивают меня какой-то там парадигмой, которую неизвестный мне дядя считает подходящей для языка программирования.

Умник, назови хоть один неакадемический чистый ФЯП(помимо Хаскела). Скажу тебе по секрету , что на CL при жедании писать императивный код значительно легче и приятнее чем на крестах.

Sidrian
()
Ответ на: комментарий от Sidrian

>Скажу тебе по секрету , что на CL при жедании писать императивный код значительно легче и приятнее чем на крестах.

Как я был поражён, когда увидел в C-исходниках Quake 2 настоящее объектно-ориентированное программирование! На C! Объекты! Меня не переклинило, Кармак действительно мыслил в объектах, но писал на императивном языке!

С тех пор я довольно подозрительно отношусь к преимуществам C++ перед C. Хороший программист легко обойдется без наворотов C++.

morbo
()
Ответ на: комментарий от anonymous

>расскажи про объекты в функциональных языках

Это к ВСЛ, он любит быдло на шару просвещать. А пока отправляйся в ВИКИ прозревать OCaml и CLOS. Ну или продолжай веселить местную публику своей тупостью. Неудивительно, что ты зарегиться боишься...

Sidrian
()
Ответ на: комментарий от morbo

>Искусственно напрмер то, что это не целостный язык, а костыльно-подпорочное расширение C.

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

жабка кстати тем же страдает. только она не совместима, а "я хочу быть как с++, но не могу".

>Такой хернёй большинство заниматься не будет

я не о том, кто чем будет заниматься. впрочем не важно.

>Во многих случаях пользователи предпочтут то решение, которое работает, а не то, которое не тормозит, но и не работает.

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

>Никуда не денется, только не стоит переоценивать его важность, со временем он будет уходить на второй план, как и Perl.

не со временем, а когда появится адекватная замена. хотя конечно если адекватная замена появится со временем, то да, со временем будет уходить.

anonymous
()
Ответ на: комментарий от morbo

> Ну и что в этом плохого? Неужели нужно продираться сквозь искусственную сложность языка?

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

> Людям делом нужно заниматься, программы писать, а не язык изучать.

Вот так и рождаются быдлокодеры...

JackyTreehorn
()
Ответ на: комментарий от anonymous

>конечно если сделать новый язык не совместимый со старым, то да, получится красивее. с этим никто не спорит. зато взамен - полная совместимость с си

Я бы это назвал "паразитизмом на Си" или "канцерогенным образованием на Си"

Absurd ★★★
()
Ответ на: комментарий от Sidrian

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

JackyTreehorn
()
Ответ на: комментарий от anonymous

>да, именно поэтому так и любят "время до выхода на рынок". только что потом делать с разбегающимися пользователями?

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

>не со временем, а когда появится адекватная замена. хотя конечно если адекватная замена появится со временем, то да, со временем будет уходить.


Почему должна появиться именно ОДНА ЕДИНСТВЕННАЯ ЗАМЕНА? Разные языки будут откусывать по куску от ниши C++, и в конце концов от него ничего не останется. И это уже происходит.

morbo
()
Ответ на: комментарий от Sidrian

> Какие-то у тебя неправельный знакомые эмбедщики. В этой области на чистом Ц пишется значительно больше.

То-то в объявлениях о вакансиях все время пишут: "очень хорошее знание с++".

JackyTreehorn
()
Ответ на: комментарий от JackyTreehorn

>Вот так и рождаются быдлокодеры...

ЛОЛ жесть, а "небыдлокодер" - это тот, кто зубрит синтаксис и коллекцию костылей одного конкретного языка? Повеселил.

Sidrian
()
Ответ на: комментарий от JackyTreehorn

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

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

Sidrian
()
Ответ на: комментарий от JackyTreehorn

> Я говорил не о высшем пилотаже, каким является метапрограммирование,

Высший пилотаж он только на C++, на более других языках, вроде CL метапрограммирование используется легко и естественно.

anonymous
()
Ответ на: комментарий от JackyTreehorn

>То-то в объявлениях о вакансиях все время пишут: "очень хорошее знание с++".

Я в этой области работаю, а не по вакансиям с с сайтов работы выводы делаю.

Sidrian
()
Ответ на: комментарий от Sidrian

> Метапрограммирования является "высшим пилотажем" именно из-за ужасно кривой реализации оного в крестах.

Только для тех, кто ниасилил. Я уже понял, ты один из них ;)

> И не нужно мне предлагать очередной костыль для борьбы с утечками.

Для кого как. Для меня сборщик мусора - еще больший костыль.

JackyTreehorn
()
Ответ на: комментарий от JackyTreehorn

>Не надо приписывать мне свои собственные мысли, я такого не говорил.

Поздно оправдываться, ты спалился. Типичный плюсатник, который место того, что-бы СИКП или АОКП почитать дрочит на буст.

Sidrian
()
Ответ на: комментарий от morbo

>Получится неконкурентноспособная программа.

время покажет.

>Разные языки будут откусывать по куску от ниши C++

это как с++ откусывает от ниши си, да? почему-то я до сих пор нахожу применение и для си, и для с++. а жабка у меня стоит только чтобы в оекаке рисовать - замены действительно нет.

хотя см. выше. время рассудит.

anonymous
()
Ответ на: комментарий от JackyTreehorn

>Даже если допустить, что какая-то искусственная сложность есть, то что плохого в том, чтобы приложить какие-то усилия, чтобы получить более хороший результат?

При равных затратах на изучение разных языков получаем разный уровень владения языками. C++ по сравнению с другими языками осваивается тяжелее, поэтому это будет плохое знание C++. Уж лучше потратить столько же времени на более полное изучение чистого C, затем оставшиеся усилия потратить на написание хорошей программы. Дело не в том, что для изучения нужно приложить какие-то усилия, дело в том что иногда эти усилия становятся непропорциональными.

>Вот так и рождаются быдлокодеры...


Ну да, к сожалению это рынок. Кодеров нужно много, писать программы нужно быстро.

Быдлокодеры пишут на всех языках, в том числе и на С++, страдая от чувства собственного величия. Уж лучше они будут плохо знать Java, нежели плохо знать C++, согласитесь?

morbo
()
Ответ на: комментарий от Sidrian

ты кажется перевозбудился. иди прими галопередольчику.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.