Здравствуйте, gid_vvp, Вы писали:
_>Hi All
_>перечислите, на ваш взгляд, основные минусы STL _>принимаются только ответы с аргументацией
Да минусов дофига, и один из них — то, что ей, а вернее, С++, до сих пор пользуются. Честно скажу сразу — я не крутой спец, повидавший и написавший горы кода. Но, сдается мне (с), что в конце конце концов (и не так уж долго это будет продолжаться, несмотря на горы софта, написанные на С/С++) сойдет на нет С++ — ый энтузиазм, и .NET или что там после нее более высокоуровневое (хоть многие и хаят и воспринимают как смехотворную эту мысль на сегодняшний день, но вполне возможно, что через N лет будут составлять программы совсем не программисты, а обычный подкованный в типа-UMLноподобной среде менеджер или вроде того и поддержка всего этого будет уделом узкого круга спецов). ПО эволюционирует, микрокоды, asm, ЯВУ, развитый фреймворк, интересно услышать мнеия от ув. ALL, что дальше?
Здравствуйте, Аноним, Вы писали:
А>Да минусов дофига, и один из них — то, что ей, а вернее, С++, до сих пор пользуются. Честно скажу сразу — я не крутой спец, повидавший и написавший горы кода. Но, сдается мне (с), что в конце конце концов (и не так уж долго это будет продолжаться, несмотря на горы софта, написанные на С/С++) сойдет на нет С++ — ый энтузиазм, и .NET или что там после нее более высокоуровневое (хоть многие и хаят и воспринимают как смехотворную эту мысль на сегодняшний день, но вполне возможно, что через N лет будут составлять программы совсем не программисты, а обычный подкованный в типа-UMLноподобной среде менеджер или вроде того и поддержка всего этого будет уделом узкого круга спецов). ПО эволюционирует, микрокоды, asm, ЯВУ, развитый фреймворк, интересно услышать мнеия от ув. ALL, что дальше?
Здравствуйте, Аноним, Вы писали:
А>Да минусов дофига, и один из них — то, что ей, а вернее, С++, до сих пор пользуются. Честно скажу сразу — я не крутой спец, повидавший и написавший горы кода. Но, сдается мне (с), что в конце конце концов (и не так уж долго это будет продолжаться, несмотря на горы софта, написанные на С/С++) сойдет на нет С++ — ый энтузиазм, и .NET или что там после нее более высокоуровневое (хоть многие и хаят и воспринимают как смехотворную эту мысль на сегодняшний день, но вполне возможно, что через N лет будут составлять программы совсем не программисты, а обычный подкованный в типа-UMLноподобной среде менеджер или вроде того и поддержка всего этого будет уделом узкого круга спецов). ПО эволюционирует, микрокоды, asm, ЯВУ, развитый фреймворк, интересно услышать мнеия от ув. ALL, что дальше?
Давайте опять воплотим в жизнь идею, что каждая домохозяйка может программировать,
как уже было в начале 90-х в Америке...
С уважением, Александр
Re: сойдет на нет С++ — ый энтузиазм, и .NET или что там бол
Аноним wrote:
> подкованный в типа-UMLноподобной среде менеджер или вроде того и
Как показала практика, программирование в GUI — только для типичных, массовых вещей, притом так, что один раз написал и
забыл, т.е. фактически не для профессиональных программистов.
Если и возродится это направление для профессионального программирования, то только на основе каких-то новых веяний
построения GUI-взаимодействия, а что это будет и будет ли вообще — гадать не имеет смысла. А пока — текстовые файлы.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, <Аноним>, Вы писали: А>Да минусов дофига, и один из них — то, что ей, а вернее, С++, до сих пор пользуются. Честно скажу сразу — я не крутой спец, повидавший и написавший горы кода. Но, сдается мне (с), что в конце конце концов (и не так уж долго это будет продолжаться, несмотря на горы софта, написанные на С/С++) сойдет на нет С++ — ый энтузиазм, и .NET или что там после нее более высокоуровневое (хоть многие и хаят и воспринимают как смехотворную эту мысль на сегодняшний день, но вполне возможно, что через N лет будут составлять программы совсем не программисты, а обычный подкованный в типа-UMLноподобной среде менеджер или вроде того и поддержка всего этого будет уделом узкого круга спецов). ПО эволюционирует, микрокоды, asm, ЯВУ, развитый фреймворк, интересно услышать мнеия от ув. ALL, что дальше?
Ребята, ничего никуда не сойдет. Программирование — это не знание языков/технологий/библиотек. От этого, конечно, можно избавиться.
Нельзя избавиться (и еще очень долго будет нельзя) от умения формализовывать задачу.
Практика показывает, что среднестатистическая домохозяйка или менеджер не обладают достаточными навыками по формулировке своих требований в достаточно строгом для компьютера виде.
В некоторых узких задачах удается построить инструменты, которые позволяют обойтись без специальных знаний, хотя даже поиск в Гугле не всем дается одинаково легко.
В общем же случае проблема остается неразрешимой. Рисование прямоугольников ничуть не лучше написания операторов — это всего лишь еще один язык, который нужно изучать.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Sinclair wrote:
> В общем же случае проблема остается неразрешимой. Рисование > прямоугольников ничуть не лучше написания операторов — это всего лишь > еще один язык, который нужно изучать.
Не уверен. Много ли ты знаешь графических языков программирования? А реально используемых?
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, kan, Вы писали:
kan>Аноним wrote:
>> подкованный в типа-UMLноподобной среде менеджер или вроде того и kan>Как показала практика, программирование в GUI — только для типичных, массовых вещей, притом так, что один раз написал и kan>забыл, т.е. фактически не для профессиональных программистов.
kan>Если и возродится это направление для профессионального программирования, то только на основе каких-то новых веяний kan>построения GUI-взаимодействия, а что это будет и будет ли вообще — гадать не имеет смысла. А пока — текстовые файлы.
Не согласная я Ну что за убожество эти текстовые файлы. Понятно что 40 лет назад, когда всё это начиналось, они были вполне приемлимы. Но нынешние-то вычислительные возможности позволяют представить программу куда как более эффективно. Ну вот вспомните когда вы последний раз читали с листа хоть сколько-либо большое в плане обьёма? Ведь компилятор разрывается каждый раз строя зависимости между этими несчастными файлами, компилируя кучу раз одно и то же и т.п. Да, я знаю что всё это обходится — precompiled headers, т.д. и т.п. — но согласитесь что это именно решение проблемы путём подставления подпорок.
Лично я думаю что программа должна быть представлена в виде набора файлов — но в каждом из них должен быть не только текст, но и уже откомпилированные куски, browse info, возможно — информация для Version Control System (поскольку ей самой очень тяжело разобраться в специфике вносимых изменений, а вот IDE могло бы ей и подсказать что к чему).
Ну и конечно же IDE должно предоставлять возможность просмотреть и отредактировать эту информацию самыми различными способами.
Вообщем, размечтался я
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Left2 wrote:
>> > подкованный в типа-UMLноподобной среде менеджер или вроде того и > kan>Как показала практика, программирование в GUI — только для типичных, > массовых вещей, притом так, что один раз написал и > kan>забыл, т.е. фактически не для профессиональных программистов. > > kan>Если и возродится это направление для профессионального > программирования, то только на основе каких-то новых веяний > kan>построения GUI-взаимодействия, а что это будет и будет ли вообще — > гадать не имеет смысла. А пока — текстовые файлы. > > Не согласная я Ну что за убожество эти текстовые файлы. Понятно что 40 > лет назад, когда всё это начиналось, они были вполне приемлимы. Но > нынешние-то вычислительные возможности позволяют представить программу > куда как более эффективно. Ну вот вспомните когда вы последний раз > читали с листа хоть сколько-либо большое в плане обьёма? Ведь компилятор
В смысле с листа? С бумажного имеешь в виду?
> разрывается каждый раз строя зависимости между этими несчастными > файлами, компилируя кучу раз одно и то же и т.п. Да, я знаю что всё это
Это из-за нынешних вычислительных возможностей?
> обходится — precompiled headers, т.д. и т.п. — но согласитесь что это > именно решение проблемы путём подставления подпорок.
Это на самом деле больше особенности конкретных языков, С/С++.
> Лично я думаю что программа должна быть представлена в виде набора > файлов — но в каждом из них должен быть не только текст, но и уже > откомпилированные куски, browse info, возможно — информация для Version
Ну как бы оно так и есть сейчас, просто это временные файлы, "невидимые" для программиста. А в систему контроля версий
это не имеет смысла пихать и уж тем более редактировать. Зачем хранить то, что можно сгенерить автоматически?
> Control System (поскольку ей самой очень тяжело разобраться в специфике > вносимых изменений, а вот IDE могло бы ей и подсказать что к чему). > Ну и конечно же IDE должно предоставлять возможность просмотреть и > отредактировать эту информацию самыми различными способами.
Эм... Как сказать... Порой в процессе правки/отладки я так изменяю исходники, что IDE лучше забыть про этот ужас и
запустить банальный diff в конце, во время commit.
Тут достаточно делать diff по типу содержимомого файла, для C++ один алгоритм, для Java другой, для XML вообще совсем
всё по-другому. К тому же, svn это уже легко прикручивается без проблем, афаир. Так что тут не о чем мечтать, всё уже
работает.
> Вообщем, размечтался я
Вредно не мечтать.
Всё-таки, программирование — описание задачи на формальном языке, а значит ноги растут из математики. А в математике
тоже не особо принято графическое представление, оно лишь необходимо для объяснения материала, сделать наглядным. Но в
большинстве случаев при доказательстве чего-то нового — голые формулы.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, Left2, Вы писали:
L>Да, я знаю что всё это обходится — precompiled headers, т.д. и т.п. — но согласитесь что это именно решение проблемы путём подставления подпорок.
Это решается нормальными языками. Не нужно все по С++ мерять.
L>Лично я думаю что программа должна быть представлена в виде набора файлов — L>но в каждом из них должен быть не только текст,
Зачем? Что это нам дает кроме гемороя в случае сбоев? L>но и уже откомпилированные куски,
Нафиг не упало. Пусть они лежат гдето в локальном кеше. Ибо нефиг хранить то что и так можно сгенерировать.
А если еще вспомнить о ключах компиляции L>browse info,
В локальный кешь ибо на раз пересчитывается. L>возможно — информация для Version Control System (поскольку ей самой очень тяжело разобраться в специфике вносимых изменений, а вот IDE могло бы ей и подсказать что к чему).
Вот уж чего не нужно версионнику так это разбиратся в специфики изменений. Задача версионника хранить версии, а не разбираться в специфики каких то левых бинарников.
ИМХО идеальный версионник это SVN. Ничего лишнего только и умеет что хранить блобы но делает это хорошо.
А сливать изменения в случаи конфликтов могут скольугодно навороченные инструменты. От версионника требуется только представить 3 версии файла до изменений, после изменений и версию из репозитория. L>Ну и конечно же IDE должно предоставлять возможность просмотреть и отредактировать эту информацию самыми различными способами.
Переходи на нормальные языки. Например для C# и Java доступны замечательные IDE типа VS + ReSharper и IDEA. Когда используешь такие инструменты текстовые файлы кажутся уже не такими уж и текстовыми.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, WolfHound, Вы писали:
WH>Вот уж чего не нужно версионнику так это разбиратся в специфики изменений. Задача версионника хранить версии, а не разбираться в специфики каких то левых бинарников. WH>ИМХО идеальный версионник это SVN. Ничего лишнего только и умеет что хранить блобы но делает это хорошо. WH>А сливать изменения в случаи конфликтов могут скольугодно навороченные инструменты. От версионника требуется только представить 3 версии файла до изменений, после изменений и версию из репозитория.
Это слишком простая модель, не работающая в случае повторных слияний (при такой модели изменения каждый раз придется сливать заново). В более сложную модель (Perforce, BitKeeper) как раз включается информация об истории предыдущих слияний и правок.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re: сойдет на нет С++ — ый энтузиазм, и .NET или что там бол
Здравствуйте, Аноним, Вы писали:
А>(хоть многие и хаят и воспринимают как смехотворную эту мысль на сегодняшний день, но вполне возможно, что через N лет будут составлять программы совсем не программисты, а обычный подкованный в типа-UMLноподобной среде менеджер или вроде того и поддержка всего этого будет уделом узкого круга спецов). ПО эволюционирует, микрокоды, asm, ЯВУ, развитый фреймворк, интересно услышать мнеия от ув. ALL, что дальше?
По-моему, я один раз здесь уже это писал, но скажу еще раз.
В середине 80-х я читал книжку, название уже не помню, подзаголовок был "...или Программирование без программистов". Это был перевод книги, изданной на западе в конце 70-х. Основная идея, думаю, понятна и без пересказа: чем более высокого уровня средства программирования используются, тем легче с ними работать и тем меньшая подготовка нужна для делания одних и тех же вещей, что в пределе позволяет обойтись вообще без программистов. В качестве основной иллюстрации там использовалась только что появившаяся система Query by Example — очень мощное средство, позволявшее найти, например, всех сотрудников мужского пола с зарплатой выше 2к и стажем меньше 3 лет, просто заполнив пару колонок таблицы, без необходимости (как это было до того) составить техзадание на написание модуля поиска таких сотрудников, согласовать это задание, ждать, пока у отдела программирования дойдут до него руки и т.д.
С момента написания книги прошло около 30 лет, радикальные изменения технологий программирования за это время происходили раз пять, и каждый раз это приводило только к увеличению потребности в программистах.
Почему Вы думаете, что нынешний этап чем-то отличается от предыдущих?
Re[5]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Это слишком простая модель, не работающая в случае повторных слияний (при такой модели изменения каждый раз придется сливать заново). В более сложную модель (Perforce, BitKeeper) как раз включается информация об истории предыдущих слияний и правок.
Ты имеешь ввиду, что каждая последующая версия автоматом заново мержится? Просто интересно, как это выглядит.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Это слишком простая модель, не работающая в случае повторных слияний (при такой модели изменения каждый раз придется сливать заново). В более сложную модель (Perforce, BitKeeper) как раз включается информация об истории предыдущих слияний и правок.
Откровенно говоря по жизни VSN-а за глаза хватает. Ну, да и Perforce тоже с текстом работает. Так что по сути Вольфхаунд прав. Бинарные данные сюда прелетать не стоит.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Здравствуйте, Геннадий Васильев, Вы писали:
ПК>> В более сложную модель (Perforce, BitKeeper) как раз включается информация об истории предыдущих слияний и правок.
ГВ>Ты имеешь ввиду, что каждая последующая версия автоматом заново мержится? Просто интересно, как это выглядит.
картинку, и обратим внимание на следующие действия: отпочковывание Feature A и Feature B, заливка Feature A -> HEAD, merge HEAD -> Feature B, обратный merge Feature B -> HEAD.
Допустим, во время merge HEAD -> Feature B было разрешено много конфликтов, вызванных параллельными изменениями в Feature A и Feature B.
Теперь, после стабилизации Feature B, её нужно обратно заливать в HEAD.
Если изменения, пришедшие из Feature B рассматривать как полностью новые, то всё разрешение конфликтов придется делать заново.
Если хотя бы была сохранена история того, для каких версий конфликты уже были разрешены, и "в какую сторону", то при заливке Feature B -> HEAD нужно будет разрешать только новые конфликты, а файлы, которые в HEAD после merge HEAD -> Feature B не менялись, заново разрешать будет не нужно.
На кусочки HEAD -> Feature C -> C-merge и периодическую заливку Patches for release AB -> HEAD без сохранения истории слияний смотреть просто страшно.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[7]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
картинку, и обратим внимание на следующие действия: отпочковывание Feature A и Feature B, заливка Feature A -> HEAD, merge HEAD -> Feature B, обратный merge Feature B -> HEAD. ПК> Допустим, во время merge HEAD -> Feature B было разрешено много конфликтов, вызванных параллельными изменениями в Feature A и Feature B. ПК> Теперь, после стабилизации Feature B, её нужно обратно заливать в HEAD. ПК> Если изменения, пришедшие из Feature B рассматривать как полностью новые, то всё разрешение конфликтов придется делать заново. ПК> Если хотя бы была сохранена история того, для каких версий конфликты уже были разрешены, и "в какую сторону", то при заливке Feature B -> HEAD нужно будет разрешать только новые конфликты, а файлы, которые в HEAD после merge HEAD -> Feature B не менялись, заново разрешать будет не нужно.
Или я чего-то не понимаю, или же у SVN с таким сценарием проблем не видно.
В SVN подобная штука делается таким образом:
начальная ревизия N;
отпочковывается ветка branches/A, отпочковывается ветка branches/B.
на ревизии (N+A) изменения из branches/A нужно поместить в trunk, выполняется команда:
cd ~/prj/trunk
svn merge -r N:N+A svn://repo/branches/A .
если теперь на (N+A+1) нужно взять эти же изменения из trunk в branches/B, то просто делаем:
cd ~/prj/branches/B
svn merge -r N:N+A+1 svn://repo/trunk .
дальше фигачатся изменения в branches/B.
на ревизии (N+B) (которая после N+A+1) нужно вернуть изменения из branches/B в trunk:
cd ~/prj/trunk
svn merge -r N+A+1:N+B svn://repo/branches/B .
если на момент времени (N+A2) (который после N+B) нужно в trunk залить изменения из branches/A, которые были сделаны после (N+A), то:
cd ~/prj/trunk
svn merge -r N+A:N+A2 svn://repo/branches/A .
таким образом получаем в trunk изменения из branches/B после N и изменения из branches/A.
если нужно взять изменения из trunk в branches/B, то делаем:
cd ~/prj/branches/B
svn merge -r N+A+1:HEAD svn://repo/trunk .
т.е. забираем из trunk все изменения, после того, как мы заливали в trunk из B в последний раз (в том числе и изменения из branches/A между ревизиями (N+A) и (N+A2)).
если нужно из branches/B опять залить в trunk (т.е. наступил момент N+B2), то:
cd ~/prj/trunk
svn merge -r N+B:HEAD svn://repo/branches/B
Естественно, здесь подразумевалось, что после каждого merge будет исправление конфликтов и последующий checkin.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Павел Кузнецов wrote: > Это слишком простая модель, не работающая в случае повторных слияний > (при такой модели изменения каждый раз придется сливать заново). В более > сложную модель (Perforce, BitKeeper) как раз включается информация об > истории предыдущих слияний и правок.
Для SVN есть SVK и svnmerge
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[4]: сойдет на нет С++ — ый энтузиазм, и .NET или что там
Ага, именно. Впрочем, можно ещё больше обобщить — имеется в виду чтение исходников не из "родной" IDE.
>> разрывается каждый раз строя зависимости между этими несчастными >> файлами, компилируя кучу раз одно и то же и т.п. Да, я знаю что всё это kan>Это из-за нынешних вычислительных возможностей?
А нафига по 100 раз делать одно и то же? Вычислительные возможности никогда лишними не бывают.
>> обходится — precompiled headers, т.д. и т.п. — но согласитесь что это >> именно решение проблемы путём подставления подпорок. kan>Это на самом деле больше особенности конкретных языков, С/С++.
Ну, в чём-то согласен, да.
>> Лично я думаю что программа должна быть представлена в виде набора >> файлов — но в каждом из них должен быть не только текст, но и уже >> откомпилированные куски, browse info, возможно — информация для Version kan>Ну как бы оно так и есть сейчас, просто это временные файлы, "невидимые" для программиста. А в систему контроля версий kan>это не имеет смысла пихать и уж тем более редактировать. kan>Зачем хранить то, что можно сгенерить автоматически?
Затем чтобы не генерировать это по нескольку раз Хотя грань тут тонкая что стоит хранить и что не стоит.
kan>Эм... Как сказать... Порой в процессе правки/отладки я так изменяю исходники, что IDE лучше забыть про этот ужас и kan>запустить банальный diff в конце, во время commit. kan>Тут достаточно делать diff по типу содержимомого файла, для C++ один алгоритм, для Java другой, для XML вообще совсем kan>всё по-другому. К тому же, svn это уже легко прикручивается без проблем, афаир. Так что тут не о чем мечтать, всё уже kan>работает.
Э, нет — позвольте не согласиться. Неужто одного меня не устраивают текущие возможности даже того же SVN? Неужто только у меня возникает желание по конкретному куску кода (заметьте — не файлу, а именно куску кода, причём это может быть функция, класс или просто кусок кода внутри той же функции) — посмотреть откуда у него "растут ноги" — кто его написал, кто и как его менял, какие рефакторинги к нему применялись, как он переползал из файла в файл и т.п.? Очень сомневаюсь что такое можно вшить на уровне SVN. ИМХО, тут без поддержки IDE (с его "пониманием" языка) никак не справиться.
>> Вообщем, размечтался я kan>Вредно не мечтать.
kan>Всё-таки, программирование — описание задачи на формальном языке, а значит ноги растут из математики. А в математике kan>тоже не особо принято графическое представление, оно лишь необходимо для объяснения материала, сделать наглядным. Но в kan>большинстве случаев при доказательстве чего-то нового — голые формулы.
Тоже согласен не в полной мере. Во-1 — программирование не чистая математика. Зачастую (я бы даже сказал — в большинстве случаев) оно ближе к инженерному делу, а уж там рисунки — в полный рост. Ну и во-2 — раньше просто не было возможности сделать удобно и красиво, те же CAD-системы радикально повысили производительность инженерного труда.