Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, FR, Вы писали:
FR>>А лисп и форт системы не чистые?
СГ>А вот пускай лисперы и фортисты это и расскажут. Я за них их работу делать не буду.
Они бы расказали, если бы ты расказал что понимаешь под словом "чистые"
Здравствуйте, konsoletyper, Вы писали:
E>>Но, как я понял, проекты в миллионы строк в компании с низкоквалифицированными программистами на C++ вам вести не приходилось. Так откуда же такая нелюбовь ожесточенная? Что же в нем такого отталкивающего?
K>ИМХО, язык жутковатый. Я уже приводил здесь конструкцию, необходимую для обеспечения модульности (чтобы один и тот же файл не инклюдился два раза). Есть много маленьких мелочей. Например, почему я должен к статическому члену класса обращаться через "::", а не через "."? Зачем дважды дублировать сигнатуру метода в .h и .cpp файлах? Почему чтобы сделать вложенный неймспейс, я не могу использовать точечную нотацию, а должен вкладывать друг в друга несколько блоков? Почему существуют три различных способа приведения типа?
Эти вопросы из той же серии, что и "Почему французы говорят на французком, а англичане -- на английском". Исторически так сложилось и ничего здесь уже не сделаешь. Тем более, что сила привычки здесь играет решающую роль. Мне, например, было не понятно, почему в Java статический метод класса вызывается через ".", а не через "::". Или почему в большинстве языков используется специальные соглашения для атрибутов класса (вроде префикса m_, суффикса _ или записи this.something), когда есть хороший способ в Ruby -- префикс @ -- и имя автоматически считается именем класса.
Так что здесь уместно применить фразу "Чего ржете? Вы еще остальных не видели" (не помню откуда она)
K>Почему метапрограммные навороты выглядят так жутко?
Потому что язык на них не расчитывался. А тем, кто начал их применять вовремя руки не поотрывали.
K>Почему нет нормального способа прикрутить человеческий GC, свойства, события и т.д.
По поводу GC: Страуструп создавал C++ имея опыт работы на языке с автоматической сборкой мусора. Поэтому он принципиально сделал C++ без таковой. И все последствия именно из этого.
По поводу событий: как разработчик одного из событийно-ориентированных фреймоворков я рад, что в языке нет "стандартных" событий. Из-за этого для различных семейств различных задач можно делать различные способы реагирования на события.
K>Наконец, почему, чтобы понять C++, нужно от и до внимательно прочитать Страуструпа, а потом ещё Липпмана?
Вы думаете этого достаточно?
Я сильно сомневаюсь. C++ -- он, имхо, как любой иностранный язык -- можно учить всю жизнь.
K>Но вот беда: есть языки, к которым подобных вопросов не задаётся.
Но, во-первых, вот и славно. Затем же в C++ камнями кидаться. Тем более, что как я понял, C++ вообще лежит далеко в стороне от ваших профессиональных задач и интересов.
И, во-вторых, оставте нам, старикам, нашу любимую игрушку. Ну нравится нам наша музыка, хотя для вас, молодежи, это просто ретро. И мы хотим ее играть, сами себе, в своем доме престарелых. А вы к нам через пару лет присоединитесь со своей музыкой, которую уже кто-то другой будет считать ретро
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
J>>С++ вполне соответствовал состоянию индустрии на момент его создания.
E>Вот в этом и вся суть!
Ну хоть один человек меня понял Теперь можно и умереть
(Кстати, обещанные фотки, только не мои и трехлетней давности: http://www.pbase.com/pcm/movingin, но принципиально, ясно дело, ничего не поменялось)
J>>Это сейчас все во всех областях приложения программирования рванули в сторону функциональных языков и метапрограммирования.
E>Да ладно тебе! Это здесь, на RSDN такой мощный поток диферамбов в сторону функциональщины и метапрограммирования, а в "обычной жизни" все по другому. Например, вокруг меня люди заняты обычной работой с использованием самой обычной Java и самого обычного C++. E>А высокий уровень интереса (и, соответственно, шума) на RSDN вокруг ФП и МП обуславливается тем, что пишут сюда, как мне кажется, весьма деятельные программисты/студенты/аспиранты, которые легко осваивают материал и стремяться к изучению нового.
Ну ты преувеличиваешь (или преуменьшаешь). Не зря же народ делает всякие бусты, да и в СТЛ в каком-то виде функциональщина есть. Да в шарпе всякие делегаты. Так что, имхо, все это витает в воздухе.
J>>Раз, как вы утверждаете, был большой запрос на это дело со стороны индустрии и это считалось "базовой вещью"?
E>Я не утверждаю, что высокий спрос на метапрограммирование был. Просто для восстановления, скажем так, исторической справедливости говорю, что метапрограммирование сущестовало задолго до появления C++.
Да я ж не спорю, что существовало. Я спорю с тем, что это было базовой вещью.
Здравствуйте, jazzer, Вы писали:
J>>>С++ вполне соответствовал состоянию индустрии на момент его создания.
E>>Вот в этом и вся суть! J>Ну хоть один человек меня понял Теперь можно и умереть
Не, давай просто спокойно жить, работать и не обращать внимания на разные buzzword-ы!
J>(Кстати, обещанные фотки, только не мои и трехлетней давности: http://www.pbase.com/pcm/movingin, но принципиально, ясно дело, ничего не поменялось)
Спасибо!
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, AVC, Вы писали:
AVC>>Здравствуйте, Plague, Вы писали:
P>>>Хех, как Вы хитро сюда к разговору Вирта прикрутили, это намек на Оберон? Его простота в отсутствии "Синтаксического оверхеда"?
AVC>>Просто там вот это AVC>>http://www.rsdn.ru/Forum/Message.aspx?mid=707886&only=1
AVC>>не нужно. AVC>>Впрочем, это, наверное, так интересно...
J>Демагогия чистой воды.
Где? Конкретному человеку на конкретном примере (его собственном — исключительно для доходчивости) показываю, в чем простота Оберона (раз уж ему стало интересно; не я ведь Оберон помянул): в отсутствии самой потребности писать подобный код.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Hello, jazzer!
You wrote on Mon, 29 Jan 2007 16:59:04 GMT:
dmz>> На Java был бы валидный код — о памяти позаботился бы GC
j> Вот как раз с GC и была проблема. j> Он банально не успевал чистить память, в результате все корилось j> из-за нехватки памяти.
А какой конкретно механизм сборки мусора там использовался?
И не происходило ли это во времена когда еще не было HotSpot?
Здравствуйте, Yuri Khomic, Вы писали:
dmz>>> На Java был бы валидный код — о памяти позаботился бы GC
j>> Вот как раз с GC и была проблема. j>> Он банально не успевал чистить память, в результате все корилось j>> из-за нехватки памяти.
YK>А какой конкретно механизм сборки мусора там использовался?
Понятия не имею, я не джавист.
YK>И не происходило ли это во времена когда еще не было HotSpot?
Нет, это было в прошлом году.
Здравствуйте, dmz, Вы писали:
dmz>Попробуй с его помощью разобрать SQL-запрос в виде строки и добавить в класс поля, dmz>соответствующие его колонкам.
А в чем собственно проблема, кроме сложности написания парсера SQL запроса?! Макрос в Немерле по сути полноценная программа, доступно все, что доступно обычной программе, а в ней хоть к гуглю обращайся за помощью
Здравствуйте, AVC, Вы писали:
AVC>Конкретному человеку на конкретном примере (его собственном — исключительно для доходчивости) показываю, в чем простота Оберона (раз уж ему стало интересно; не я ведь Оберон помянул): в отсутствии самой потребности писать подобный код.
Странно, мне и на С++ нет ни малейшей потребности писать подобный код. Что я делаю не так?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Hello, jazzer!
You wrote on Wed, 31 Jan 2007 09:46:54 GMT:
dmz>>>> На Java был бы валидный код — о памяти позаботился бы GC
j>>> Вот как раз с GC и была проблема. j>>> Он банально не успевал чистить память, в результате все j>>> корилось из-за нехватки памяти.
YK>> А какой конкретно механизм сборки мусора там использовался? j> Понятия не имею, я не джавист.
Здравствуйте, CreatorCray, Вы писали:
CC>Открою тебе страшную тайну: микрософт думает только о том, как продать свои творения и подсадить на них еще больше народу.
Открою тебе еще более страшную тайну: любая корпорация, борющаяся за место на рынке, думает о том, как продать свои творения и подсадить на них больше народу.
Здравствуйте, AndreiF, Вы писали:
AF>И усилению самомнения программиста, который продравшись через горы проблем и заморочек, добирается наконец до решения задачи AF>Никакой другой язык не дает такого удовлетворения — там слишком просто всё делается
Ошибаешься, Лисп на много больше усиливает самомнение
На своем горьком опыте знаю, каждая законченная программа вызывает такой мощный поток эндорфинов, что С++ рядом не валялся
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Здравствуйте, CreatorCray, Вы писали:
AVC>>Конкретному человеку на конкретном примере (его собственном — исключительно для доходчивости) показываю, в чем простота Оберона (раз уж ему стало интересно; не я ведь Оберон помянул): в отсутствии самой потребности писать подобный код. CC>Странно, мне и на С++ нет ни малейшей потребности писать подобный код. Что я делаю не так?
Фразу о конкретности адресата, наверное, Вы не заметили.
По поводу указанной потребности — можете обсудить это с Plague.
Впрочем, еще проще считать, что конструкцию if(const==var) злые оберонщики придумали.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Yuri Khomic, Вы писали:
YK>Hello, jazzer! YK>You wrote on Wed, 31 Jan 2007 09:46:54 GMT:
dmz>>>>> На Java был бы валидный код — о памяти позаботился бы GC
j>>>> Вот как раз с GC и была проблема. j>>>> Он банально не успевал чистить память, в результате все j>>>> корилось из-за нехватки памяти.
YK>>> А какой конкретно механизм сборки мусора там использовался? j>> Понятия не имею, я не джавист.
YK>Сложно тогда о чем-то разговаривать
Сложно, а как же
Но я исхожу из того, что люди там в команде были достаточно квалифицированные и знали, что делают. И они наверняка знали и про хот спот, и про механизм (я даже не знал, что в JVM им можно управлять, а оно вот как, оказывается).
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, jazzer, Вы писали:
J>>Опять не пойму, с чем ты споришь. Ты меня хочешь в какой-то флейм втянуть, что ли?
VD>Re[6]: Сложный язык для сложных срограмм.
А, ну так ты споришь со словами, вырванными из контекста. Прочитай выше. Если все равно будет непонятно, о чем я говорил — прочитай мой разговор с eao197 — он в результате смог понять, что я имел в виду
Yuri Khomic wrote: > А какой конкретно механизм сборки мусора там использовался? > И не происходило ли это во времена когда еще не было HotSpot?
Есть такая особенность у Java-вского GC, он может бросать OOM, если
память слишком быстро распределяется (особенно это классно, когда размер
кучи в пару-тройку гигабайт). Лечится тюнингом опций.
Здравствуйте, Cyberax, Вы писали:
C>Gajdalager wrote: >> В теории .Нет кроссплатформенный, а моноплатформенность .Нета происходит >> не от каких-либо просчетов в архитектуре или спецификации, а из-за >> политики МС. C>Вообще-то, я уже как-то флеймил, что из-за некоторых предположений в C>модели памяти .NET — его будет сложно портировать на nccNUMA-машины C>(когда они появятся ).
А чего это за машины? что-то Гугл не слышал... дайте ссылку плиз.
Plague wrote: > C>Вообще-то, я уже как-то флеймил, что из-за некоторых предположений в > C>модели памяти .NET — его будет сложно портировать на nccNUMA-машины > C>(когда они появятся ). > А чего это за машины? что-то Гугл не слышал... дайте ссылку плиз.
non-cache-coherent Non-Uniform-Memory-Access (ищется по "ncc NUMA" — с
пробелом). В частности, это некоторые Альфы и Cell в PS3.