LINUX.ORG.RU

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

 ,


2

0

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

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

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

anonymous

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

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

По смыслу возражения есть? Думаю такого школника бессмыслено спрашивать, видил ли он Лисповые макры...

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

Слив засчитан.

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

>тролль детектед.

детектор тролей - быдло с 2ча детектед.

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

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

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

> Уж лучше они будут плохо знать Java, нежели плохо знать C++, согласитесь?

Полностью согласен.

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

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

Слабо как-то, слабо.

>это как с++ откусывает от ниши си, да?


ОткусыВАЛ, нынче уже не откусывает. Всё менее опраданным становится его сложность. Сейчас выбирают либо Си, либо что-то другое: Java, PHP, Python, Shell, с библиотеками на Си.

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


Не судите по себе всех. В мобильных телефонах, например, минимум C или C++, там сейчас больше жабы. На жабе написан этот сайт, как и многие другие. Для остальных применений C++ тоже найдутся языки: для разработки ядер ОС, драйверов, системного софта - Си, для веба и общесистемных утилит - Perl, для веба - PHP, для встроенных систем - Си и Java и т.д. У C++ узкая ниша и она со временем становится ещё уже.

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

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

Это не простая вещь, поскольку в многотредовой среде operator=() у такого смарт-указателя делает InterlockedIncrement, а деструктор - InterlockedDecrement, и код надо разбивать по каким-то тредовым доменам. Кроме того, при инициализации аллокируется отдельный чанк со счетчиком ссылок, что уменьшению фрагментации динамической памяти не способствует. Я не говорю уже о том что в каждом С++-фреймворке почитают за честь завести свой смарт-указатель из-за чего на границах модулей надо иметь перефасовочный код, который не делает ничего полезного.

Absurd ★★★
()

ЛОЛ, школьники и ананимусы объединились в борьбе со здравым смыслом.

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

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

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

Кстати названные недостатки C++ характерны и для Perl.

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

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

При этом интерфейс должен реально существовать, а не выдумываться потому, что вам не хватило множественного наследования. Лучще уж жирные интерфейсы, чем выдуманные.

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

>> На жабе написан этот сайт

>Почему-то это не спасает от ошибок. Если я игнорю сидриана, игнорится и абсурд ;)

Он отрезает все бранчи дискуссии, которые породил отигноренный пользователь.

Absurd ★★★
()

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

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

>Слабо как-то, слабо.

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

>ОткусыВАЛ, нынче уже не откусывает. Всё менее опраданным становится его сложность.

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

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

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

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

А с какого бодуна вы сравниваете _просто_ С++ с j2ee-фреймворками а не с "голой" java? Они равнозначны? =)

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

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

Не стоит, в тех областях где этого можно было ожидать, оно уже свершилось. В остальных - вряд ли.

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


Вы бы сделали, а кто бы в вашем коде потом разбирался? Вы бы стали в чужом коде разбираться. Я это к тому, что у каждого программиста на С++ своё рабочее подмножество языка, поэтому разобраться в чужом коде тяжеловато. Именно поэтому выбирают более ортогональные языки.

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


Не нужно думать, что я люблю Java. Мне такое положение дел тоже не нравится, это то, к чему приводит психология потреблядства. Сейчас всё чаще важно не качество продукции, а частота и скорость выпуска, торговые марки. Нужно постоянно выпускать на рынок очередное говно, чтобы его побыстрее купило быдло и хвалилось перед коллегами и друзьями фактом владения этим дерьмом.

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

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

> возможно, стоит посмотреть в сторону Reflection/RTTI & C++ interpreter

btw, и "весит" 2Мб - подходит к встраиваемым системам не_хуже, чем tcl

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

>возможно, стоит посмотреть в сторону Reflection/RTTI & C++ interpreter
>http://root.cern.ch/twiki/bin/view/ROOT/CINT

>который позволяет иметь многое из того, о чем пишет автор.

>Например:

>http://root.cern.ch/root/html/HIST_HIST_Index.html


Спасибо, меня больше интересуют мнения почему вообще это нужно? Не говорит ли это о неочевидности, сложности языка C++?

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

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

>В свою очередь прошу пруфлинк на определение "компьютере простого пользователя"

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

>потом приведите пруфлинк на _количество_ программ на этом компьютере, написанных на C++ и соотношению с остальными программами

как уже говорилось - ответь на первый запрос

>Или поступите проще - идите на йух сразу.

это как бы намек о цене твоих аргументов?

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

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

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

У него денех не хватает на подстричься

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

Я сравнил не языки, а некое множество, нужное, чтобы можно было бы зарабатывать этим деньги :) Если я хорошо знаю С++ и STL, то в принципе могу начинать работать. Если я знаю джаву, то никому не нужен нах - нужно знать вышеперечисленное. Это помимо общих знаний или знаний в области, в которой собираюсь работать.

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

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

На попытки тупого троллинга а-ля "развести на слабо" не реагирую.

>это как бы намек о цене твоих аргументов?


Это какбэ намёк на вашу толстую попытку троллинга.

>ну на это я тебе отвечу вне очереди: который сидит дома, смотрит видео, слушает музыку, листает фотографии, читает новости, пишет письма, играет в игры, rомпьютер у него - PC среднего уровня.


Это я?

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

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

Это следствие плюсовой ксенофобии по отношению к чужому коду, о чем я писал выше.

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

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

1) C++?, в отличие от Objective C не полностью совместис с С.

2) Биндинги к С++ намного тяжелее сделать, чем к С.

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

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

Эмбеддщики часто на Форте сидят. Или на Plain C. Или на асме. С++ не во всякие контроллеры влезет.

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

Ну и что, что сделаны в одном стиле (не всегда, кстати)? Структура и организация сайтов каждый раз разная. Это никого не останавливает.

А в жабе, или в ТУИ, что, не так? Кого-то иной вид сильно смущает?

Причем тут то, на чем написано гуи?

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

>Считается, что знать C++, писать на нём программы - это круто.

Считается, что иметь McLarenF1 и ездить на нем - это круто. Будешь спорить?

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

>Считается, что иметь McLarenF1 и ездить на нем - это круто. Будешь спорить?

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

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

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

Ибо ты глуп, а с++ не нужен.

>Сейчас вдруг дошло

Это тебе показалось.

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

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

Ладно, перечисли те области, где С++ сейчас незаслуженно находится (судя по ходу твоих мыслей)

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

>Ладно, перечисли те области, где С++ сейчас незаслуженно находится (судя по ходу твоих мыслей)

Он находится сейчас там, где ему место. А где ему не место, там его нет, несмотря на желания отдельных товарищей использовать его везде.

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

>Он находится сейчас там, где ему место. А где ему не место, там его нет, несмотря на желания отдельных товарищей использовать его везде.

Еще раз процитирую тебя же

>более достойные и пригодные для написания программ в определённых областях

И еще раз попрошу перечислить "определённые области", т.к. это по сути есть претензия к применимости С++, только непонятно где.

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

>Ну так может перепишешь его на крестах, раз такой умный?

Температуришь? Хоть отдаленно представляешь объем работы? Если в линуксе сидишь, то лазать по /usr/src/linux до просветления.

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

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

Слив засчитан.

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

>И еще раз попрошу перечислить "определённые области", т.к. это по сути есть претензия к применимости С++, только непонятно где.

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

Определённый области я уже перечислил, почитай тред.

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

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

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

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

>Ладно, перечисли те области, где С++ сейчас незаслуженно находится (судя по ходу твоих мыслей)

В коммерческих пропиеритарных разработках экспериментировать боятся и берут глобальный и надежный MSVC++. Это намного хуже красноглазия с Хаскелями.

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

> И еще раз попрошу перечислить "определённые области"

не годится:
1) Как портабельный ассемблер - из-за системы типов и из-за того, что не с каждыс процессором будет работать.
2) Как язык предметной области.
3) Как язык, который легко забиндить.
4) Для обучения программированию.

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

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

масло масляное

>Определённый области я уже перечислил, почитай тред.

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

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

>1) Как портабельный ассемблер - из-за системы типов и из-за того, что не с каждыс процессором будет работать.

бред, генерируемое gcc SSA-tree для всех процессоров одинаковое, учи матчасть

>2) Как язык предметной области.

Какой?

>3) Как язык, который легко забиндить.

Программы пишут, чтобы решать поставленные задачи, а не заниматься этой фигней

>4) Для обучения программированию.

>>более достойные и пригодные для написания программ в определённых областях

научить читать предыдущие посты перед тем, как отвечать на знакомые слова

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

"коммреческие проприетарные разработки" - это типа область применения языка программировани? Сильно. И при чем здесь MSVC++, если я везде подразумеваю GCC? Тебя опять водит?

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

>При чем здесь этот мусоровоз?

Ты правда считаешь кресты МакЛареном языков программирования или просто решил потролить?

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

>"коммреческие проприетарные разработки" - это типа область применения языка программировани? Сильно.

Ну да такие комбайны для Винды все-в-одном.

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