Здравствуйте, VladGalkin, Вы писали:
VG>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>А что, Boost создан и поддерживается исключительно выходцами из СССР? Хотя вот, Алекс Степанов (один из создателей STL) вроде как имеет некое отношение к СССР. VG>Читайте повнимательнее, пожалуйста: VG>
VG>росту касты "плюсеров", занимающихся
Ну извини. Показалось, что ты зачислил в разработчики Boost исключительно выходцев из СССР.
ГВ>>Насколько я помню, это он говорил в контексте рассуждения о том, что не нужно пытаться превращать программы на C++ в подобие программ на Smalltalk, а напротив, нужно извлекать выгоды из свойств, присущих C++. То есть, речь шла не о кодировании идиом, а о подходе в целом. VG>В моем источнике это фигурирует как цитата из рассуждений о кодировании идиом из динамических языков.
Возможно, я ошибаюсь. Посмотрю в D&E. Если можно, кинь ссылку на свой источник.
ГВ>>Это отнюдь не "советский", а "стадный" образ мышления. Не стоит путать. И он в не меньшей, а то и в большей степени распространён сейчас (Все ДОЛЖНЫ писать под .Net, потому что все УЖЕ перешли на .Net). На самом деле, на территории бывшего СССР Pascal пользовался не меньшей популярностью, чем C++. Скорее даже большей. VG>Хм, вот про то, что все должны писать под .NET не утверждалось, а вот о том что: С++ это очень круто и он рулит во многих приложениях, в отличии от всякого другого, в данной ветке уже не раз писалось.
1. Написаное мной в скобках — сугубо иллюстрация к сильно распространённому у нас приёму полемики, называемому апелляцией к коллективу.
2. По поводу выделенного: чувствуешь противоречие? Действительно, C++ может быть применён практически в любых приложениях. И также во многих приложениях он "рулит". И действительно, призывов писать всё без исключения на .Net вроде бы не было. В чём противоречие?
VG>Кстати, почему господа молчат по поводу самолёта
А что нужно по этому поводу сказать? Ну выбрали и выбрали. Значит, db4o удовлетворила предъявляемым требованиям. Очень хорошо. А теперь вопросы:
— Какой характер носит разработка, не является ли она экспериментальной?
— В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.
— Так db4o/Java или db4o/.Net?
Сможешь на них ответить?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladGalkin, Вы писали:
ГВ>>Насколько я помню, это он говорил в контексте рассуждения о том, что не нужно пытаться превращать программы на C++ в подобие программ на Smalltalk, а напротив, нужно извлекать выгоды из свойств, присущих C++. То есть, речь шла не о кодировании идиом, а о подходе в целом. VG>В моем источнике это фигурирует как цитата из рассуждений о кодировании идиом из динамических языков.
Страх перед новизной, непригодный здесь опыт работы на других
языках, в других системах или областях приложения, бедные средства
проектирования — все это приводит к неоптимальному использованию С++.
Следует отметить три момента, когда разработчику не удается
извлечь выгоду из возможностей С++ и учесть ограничения языка:
[1] Игнорирование классов и составление проекта таким образом, что
программистам приходится ограничиваться только С.
[2] Игнорирование производных классов и виртуальных функций,
использование только подмножества абстрактных данных. [3] Игнорирование статического контроля типов и составление проекта
таким образом, что программисты вынуждены применять динамические
проверки типов.
Обычно указанные моменты возникают у разработчиков, связанных с:
[1] C, или традиционной системой CASE или методами структурного
проектирования;
[2] Адой или методами проектирования с помощью абстракции данных; [3] языками, близкими Smalltalk или Lisp.
В каждом случае следует решить: неправильно выбран язык
реализации (считая, что метод проектирования выбран верно), или
разработчику не удалось приспособиться и оценить язык (считая, что
язык реализации выбран верно).
Следует сказать, что нет ничего необычного или позорного в
таком расхождении. Просто это расхождение, которое приведет к
неоптимальному проекту, возложит дополнительную работу на
программистов, а в случае, когда структура понятий проекта
значительно беднее структуры языка С++, то и на самих разработчиков.
Отметим, что необязательно все программы должны
структурироваться опираясь на понятия классов и (или) иерархий классов,
и необязательно всякая программа должна использовать все средства,
предоставляемые С++. Как раз наоборот, для успеха проекта необходимо,
чтобы людям не навязывали использование языковых средств, с которыми
они только познакомились. Цель последующего изложения не в том,
чтобы навязать догматичное использование классов, иерархий и
строго типизированных интерфейсов, а в том, чтобы показать
возможности их использования всюду, где позволяет область
приложения, ограничения С++ и опыт исполнителей. В $$12.1.4 будут
рассмотрены подходы к различному использованию С++ в проекте
под заголовком "Проект-гибрид".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, WolfHound, Вы писали:
WH>А мне надо доказывать что я знаю С++?
А давай свернём дискуссию по этому поводу? А то сие правилам форума противоречит.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>- Какой характер носит разработка, не является ли она экспериментальной?
Нет. Видно один я тут фанат авиации, что почитал об этом самолете :
Вот цитата из обзора P8-A:
The U.S. Navy plans to purchase 108 MMAs to replace its fleet of P-3 aircraft.
Эскпериментальную авиатехнику ВВС США практически не закупают, тем более не ставят её на вооружение. Она относится либо к NASA, либо к компании-производителю. ГВ>- В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.
Хм, "модуль хранения сообщений от диспетчера входит в так называемый черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки. здесь ГВ>- Так db4o/Java или db4o/.Net?
Уж чего не знаю, так не знаю, пост про самолет относился к применению платформ типа Java и .NET вообще.
Пардон, читать следует так:
"модуль хранения сообщений от диспетчера" входит в так называемый "черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки или же пленки.
Этот здесь линк вообще отношения не имеет, после редактирования остался.
Здравствуйте, Cyberax, Вы писали:
C>А можно сделать так, чтобы потом этот код работал нормальной Windows и Unix?
под нормальной виндой код работал, хотя пришлось использовать препроцессор в гуёвых частях. Задача совместимости с юнихом у нас не стояла.
C>А вы можете их перечислить?
http://mono-project.com/Supported_Platforms
только не надо мне заливать про крутизну кросс-платформенности С++, и о том насколько она кроссплатформеннее, чем у Моно.
я сам не один раз занимался портированием между платформами, и прекрасно представляю себе реальный объем работ. А не тот, который "в теории".
C>В GCC мне нужно описать модель процессора на специальном языке (md — C>Machine Description), остальное сделает сам gcc (ну еще придется C>написать несколько утилитных функций). Например, для m68k это файлик в C>200Кб, а для pdp11 — в 50Кб.
одного только кодогенератора будет все равно недостаточно для нормальной работы, даже если ты и ухитришься сделать его за месяц.
>> ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают? C>Ну да, легко и непринужденно за пару месяцев.
не нравится — используй другие тулкиты.
А вообще, к теме это всё не имеет отношения. Ты ведь не забыл, о чем изначально шел спор, правда?
Здравствуйте, Cyberax, Вы писали:
C>Он серверно-клиентский. Практически один и тот же код работает как на C>сервере, так и на клиентах (в том числе и на PPC).
меня терзают смутные сомнения, что это — разумный подход. К серверному и клиентскому коду обычно предъявляются совершенно разные требования, в том числе и по политике расхода памяти.
Здравствуйте, alexeiz, Вы писали:
A>Т.е. ты считаешь язык, в котором есть и высокоуровневые возможности и низкоуровневые, низкоуровневым?
Нельзя сделать инструмент, который позволяет одинаково хорошо и гвозди забивать, и микробов разглядывать. То есть сделать то конечно можно, но это будет не "одинаково хорошо", а "одинаково плохо". Что мы и получаем в случае С++.
Намного разумнее использовать для разных задач разные инструменты. Для низкого уровня — С, для высокого — Немерле, например Остатется только проблема интеграции, но C++/CLI эту задачу неплохо решает.
Здравствуйте, VladD2, Вы писали:
VD>Боюсь, что это им может оказаться не позубам. Хотя вопрос сожный. Тут без серьезного анализа ничего толком сказать нельзя.
я видел статью с готовым кодом, в которой прикручиваются мультиметоды к Смоллтоку. Вероятно, в Немерле можно сделать по тому же принципу — макросы рулят . Жаль только, сейчас нет времени попробовать.
И еще, кстати говоря. У них уже есть минимально функциональный плагин для VS2005, а исходники не публиковали, т.к. были заморочки с лицензией. Но сейчас проблемы уже порешали и обещают скоро выложить исходники в публичный доступ.
O'K, на первый вопрос, будем считать, ответ получен.
ГВ>>- В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера. VG>Хм, "модуль хранения сообщений от диспетчера входит в так называемый черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки. VG>здесь
Не уходи от ответа! Впрочем, ладно. Подозреваю, что ни тебе ни мне ничего об этом не скажут. И правильно сделают.
ГВ>>- Так db4o/Java или db4o/.Net? VG>Уж чего не знаю, так не знаю, пост про самолет относился к применению платформ типа Java и .NET вообще.
Так невозможно спорить с тем, что "вообще" Java/.Net можно сунуть практически куда угодно. Точно также, как и Lisp, Smalltalk и нужное-вписать. Вопрос, это — где именно, как именно и с какими именно последствиями использована та или иная технология. Не имея конкретного ответа на такой вопрос нельзя делать и каких-то однозначных выводов, пригодных для сравнения применяемых технологий. А если нет возможности сделать конкретные выводы на основании каких-то данных, то и данные сии есть балласт.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, eao197, Вы писали:
E>Для меня очевидно, что для многих задач C++ менее пригоден, чем C# или Java. Что из многих областей managed языки C++ вытеснят совсем. Вероятно ты и Дарней как раз в таких областях и работаете, поэтому почувствовали разницу после перехода с C++ на C#. Вот и здорово. Но это одна сторона медали.
На самом деле, я намеренно искал себе работу в такой области. Потому что С++ я уже сыт по горло.
Дарней wrote: > C>Он серверно-клиентский. Практически один и тот же код работает как на > C>сервере, так и на клиентах (в том числе и на PPC). > меня терзают смутные сомнения, что это — разумный подход. К серверному и > клиентскому коду обычно предъявляются совершенно разные требования, в > том числе и по политике расхода памяти.
Нормально все. На самом деле, Outlook хранит письма в неком подобии
реляционной базы, над которой можно делать запросы, создавать виды и т.п.
То есть "сервер" базы данных все равно нужно писать, так что вполне
логично сделать еще один шаг и сделать этот сервер независимым от того
работает ли он на клиенте или на выделенном компе.
Одна из важнейших платформ, кстати. А есть еще и достаточно
распространенный m68k.
И вообще, Mono использует Boehm GC, что часто дает слишком большой oверхед.
> только не надо мне заливать про крутизну кросс-платформенности С++, и о > том насколько она кроссплатформеннее, чем у Моно. > я сам не один раз занимался портированием между платформами, и прекрасно > представляю себе реальный объем работ. А не тот, который "в теории".
Просто надо сразу писать портируемый код — и проблем не будет.
> C>В GCC мне нужно описать модель процессора на специальном языке (md — > C>Machine Description), остальное сделает сам gcc (ну еще придется > C>написать несколько утилитных функций). Например, для m68k это файлик в > C>200Кб, а для pdp11 — в 50Кб. > одного только кодогенератора будет все равно недостаточно для нормальной > работы, даже если ты и ухитришься сделать его за месяц.
А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно
больше работы. Тем более, что я могу использовать С-шный runtime в С++
без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...
>> > ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают? > C>Ну да, легко и непринужденно за пару месяцев. > не нравится — используй другие тулкиты.
У нас такой большой выбор...
> А вообще, к теме это всё не имеет отношения. Ты ведь не забыл, о чем > изначально шел спор, правда?
Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых
приложений.
Здравствуйте, Cyberax, Вы писали:
C>Одна из важнейших платформ, кстати. А есть еще и достаточно C>распространенный m68k.
если окажется, что действительно "одна из важнейших платформ" — сделают и JIT
C>И вообще, Mono использует Boehm GC, что часто дает слишком большой oверхед.
GC собираются заменить, и вроде как над этим уже работают.
C>Просто надо сразу писать портируемый код — и проблем не будет.
просто — это в теории. А на практике я такого еще не видел ни для одной сложной программы.
C>А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно C>больше работы. Тем более, что я могу использовать С-шный runtime в С++ C>без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...
а как же wxWindows?
C>Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых C>приложений.
нет. О том, что С++ — простой и удобный язык высокого уровня.
Дарней wrote: > C>Одна из важнейших платформ, кстати. А есть еще и достаточно > C>распространенный m68k. > если окажется, что действительно "одна из важнейших платформ" — сделают > и JIT
Но ведь еще не сделали?
> C>И вообще, Mono использует Boehm GC, что часто дает слишком большой > oверхед. > GC собираются заменить, и вроде как над этим уже работают.
Они его собираются заменить уже года три. А воз и ныне там — у них
слишком много заточено под консервативную сборку.
> C>А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно > C>больше работы. Тем более, что я могу использовать С-шный runtime в С++ > C>без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а... > а как же wxWindows?
На контроллере без компилятора gcc и нормального runtime'а?? Ну в
крайнем случае можно портировать wxWidgets Universal — он сам рисует все
виджеты и требует фактически только канвас для рисования.
> C>Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых > C>приложений. > нет. О том, что С++ — простой и удобный язык высокого уровня.
Он простой и удобный. Для определенных целей.
Здравствуйте, Дарней, Вы писали:
Д>Намного разумнее использовать для разных задач разные инструменты. Для низкого уровня — С, для высокого — Немерле, например
Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Cyberax, Вы писали:
C>Но ведь еще не сделали?
а тебя так сильно беспокоит HP-UX? Ты хочешь об этом поговорить?
Я уверен, что Аутлука там совершенно точно нет
C>Они его собираются заменить уже года три. А воз и ныне там — у них C>слишком много заточено под консервативную сборку.
читал где-то у них в ньюсах, что это уже практически закончено
C>На контроллере без компилятора gcc и нормального runtime'а?? Ну в C>крайнем случае можно портировать wxWidgets Universal — он сам рисует все C>виджеты и требует фактически только канвас для рисования.
бог с ними, контроллерами.
C>Он простой и удобный. Для определенных целей.
Вот-вот. Главное — не пытаться доказывать, что он рулит еще и как язык для прототипирования
Здравствуйте, Дарней, Вы писали:
E>>Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?
Д>что-то мне подсказывает, что абстракция — это совсем не низкий уровень, а вполне даже высокий.
Абстракция -- вполне даже. Но я спрашивал про реализацию абстракции.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.