Re[56]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 12:34
Оценка:
Здравствуйте, 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>Кстати, почему господа молчат по поводу самолёта
Автор: VladGalkin
Дата: 12.02.06
?


А что нужно по этому поводу сказать? Ну выбрали и выбрали. Значит, db4o удовлетворила предъявляемым требованиям. Очень хорошо. А теперь вопросы:
— Какой характер носит разработка, не является ли она экспериментальной?
— В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.
— Так db4o/Java или db4o/.Net?
Сможешь на них ответить?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[56]: Smalltalk
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 12:50
Оценка:
Здравствуйте, VladGalkin, Вы писали:

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

VG>В моем источнике это фигурирует как цитата из рассуждений о кодировании идиом из динамических языков.

Нашёл здесь, извини за длинную цитату:

Страх перед новизной, непригодный здесь опыт работы на других
языках, в других системах или областях приложения, бедные средства
проектирования — все это приводит к неоптимальному использованию С++.
Следует отметить три момента, когда разработчику не удается
извлечь выгоду из возможностей С++ и учесть ограничения языка:
[1] Игнорирование классов и составление проекта таким образом, что
программистам приходится ограничиваться только С.
[2] Игнорирование производных классов и виртуальных функций,
использование только подмножества абстрактных данных.
[3] Игнорирование статического контроля типов и составление проекта
таким образом, что программисты вынуждены применять динамические
проверки типов.

Обычно указанные моменты возникают у разработчиков, связанных с:
[1] C, или традиционной системой CASE или методами структурного
проектирования;
[2] Адой или методами проектирования с помощью абстракции данных;
[3] языками, близкими Smalltalk или Lisp.
В каждом случае следует решить: неправильно выбран язык
реализации (считая, что метод проектирования выбран верно), или
разработчику не удалось приспособиться и оценить язык (считая, что
язык реализации выбран верно).
Следует сказать, что нет ничего необычного или позорного в
таком расхождении. Просто это расхождение, которое приведет к
неоптимальному проекту, возложит дополнительную работу на
программистов, а в случае, когда структура понятий проекта
значительно беднее структуры языка С++, то и на самих разработчиков.
Отметим, что необязательно все программы должны
структурироваться опираясь на понятия классов и (или) иерархий классов,
и необязательно всякая программа должна использовать все средства,
предоставляемые С++. Как раз наоборот, для успеха проекта необходимо,
чтобы людям не навязывали использование языковых средств, с которыми
они только познакомились. Цель последующего изложения не в том,
чтобы навязать догматичное использование классов, иерархий и
строго типизированных интерфейсов, а в том, чтобы показать
возможности их использования всюду, где позволяет область
приложения, ограничения С++ и опыт исполнителей. В $$12.1.4 будут
рассмотрены подходы к различному использованию С++ в проекте
под заголовком "Проект-гибрид".

Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[44]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 12:54
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>А мне надо доказывать что я знаю С++?


А давай свернём дискуссию по этому поводу? А то сие правилам форума противоречит.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[57]: C+ vs C#
От: VladGalkin Украина  
Дата: 12.02.06 16:12
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>- Какой характер носит разработка, не является ли она экспериментальной?

Нет. Видно один я тут фанат авиации, что почитал об этом самолете :
Вот цитата из обзора 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 вообще.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[58]: C+ vs C#
От: VladGalkin Украина  
Дата: 12.02.06 19:07
Оценка:
Пардон, читать следует так:
"модуль хранения сообщений от диспетчера" входит в так называемый "черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки или же пленки.

Этот здесь линк вообще отношения не имеет, после редактирования остался.
ДЭ!
Re[42]: C+ vs C#
От: IT Россия linq2db.com
Дата: 12.02.06 20:59
Оценка: :))
Здравствуйте, VladD2, Вы писали:

VD>Вот чего действительно нет в этом языке, так это взаимствований из С++. Забавное совпадение, не правда ли?


Если в нём реализовать макрос template, то будет
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[57]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 02:39
Оценка:
Здравствуйте, 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>Ну да, легко и непринужденно за пару месяцев.

не нравится — используй другие тулкиты.


А вообще, к теме это всё не имеет отношения. Ты ведь не забыл, о чем изначально шел спор, правда?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[60]: Еще раз об управляемых ОС
От: Дарней Россия  
Дата: 13.02.06 02:48
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Он серверно-клиентский. Практически один и тот же код работает как на

C>сервере, так и на клиентах (в том числе и на PPC).

меня терзают смутные сомнения, что это — разумный подход. К серверному и клиентскому коду обычно предъявляются совершенно разные требования, в том числе и по политике расхода памяти.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[52]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 03:13
Оценка: :)
Здравствуйте, alexeiz, Вы писали:

A>Т.е. ты считаешь язык, в котором есть и высокоуровневые возможности и низкоуровневые, низкоуровневым?


Нельзя сделать инструмент, который позволяет одинаково хорошо и гвозди забивать, и микробов разглядывать. То есть сделать то конечно можно, но это будет не "одинаково хорошо", а "одинаково плохо". Что мы и получаем в случае С++.
Намного разумнее использовать для разных задач разные инструменты. Для низкого уровня — С, для высокого — Немерле, например Остатется только проблема интеграции, но C++/CLI эту задачу неплохо решает.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[63]: Еще раз об управляемых ОС
От: Дарней Россия  
Дата: 13.02.06 03:32
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Боюсь, что это им может оказаться не позубам. Хотя вопрос сожный. Тут без серьезного анализа ничего толком сказать нельзя.


я видел статью с готовым кодом, в которой прикручиваются мультиметоды к Смоллтоку. Вероятно, в Немерле можно сделать по тому же принципу — макросы рулят . Жаль только, сейчас нет времени попробовать.
И еще, кстати говоря. У них уже есть минимально функциональный плагин для VS2005, а исходники не публиковали, т.к. были заморочки с лицензией. Но сейчас проблемы уже порешали и обещают скоро выложить исходники в публичный доступ.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 13.02.06 03:39
Оценка: +1
Здравствуйте, VladGalkin, Вы писали:

O'K, на первый вопрос, будем считать, ответ получен.

ГВ>>- В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.

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

Не уходи от ответа! Впрочем, ладно. Подозреваю, что ни тебе ни мне ничего об этом не скажут. И правильно сделают.

ГВ>>- Так db4o/Java или db4o/.Net?

VG>Уж чего не знаю, так не знаю, пост про самолет относился к применению платформ типа Java и .NET вообще.

Так невозможно спорить с тем, что "вообще" Java/.Net можно сунуть практически куда угодно. Точно также, как и Lisp, Smalltalk и нужное-вписать. Вопрос, это — где именно, как именно и с какими именно последствиями использована та или иная технология. Не имея конкретного ответа на такой вопрос нельзя делать и каких-то однозначных выводов, пригодных для сравнения применяемых технологий. А если нет возможности сделать конкретные выводы на основании каких-то данных, то и данные сии есть балласт.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[53]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 03:46
Оценка:
Здравствуйте, eao197, Вы писали:

E>Для меня очевидно, что для многих задач C++ менее пригоден, чем C# или Java. Что из многих областей managed языки C++ вытеснят совсем. Вероятно ты и Дарней как раз в таких областях и работаете, поэтому почувствовали разницу после перехода с C++ на C#. Вот и здорово. Но это одна сторона медали.


На самом деле, я намеренно искал себе работу в такой области. Потому что С++ я уже сыт по горло.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[61]: Еще раз об управляемых ОС
От: Cyberax Марс  
Дата: 13.02.06 05:45
Оценка:
Дарней wrote:
> C>Он серверно-клиентский. Практически один и тот же код работает как на
> C>сервере, так и на клиентах (в том числе и на PPC).
> меня терзают смутные сомнения, что это — разумный подход. К серверному и
> клиентскому коду обычно предъявляются совершенно разные требования, в
> том числе и по политике расхода памяти.
Нормально все. На самом деле, Outlook хранит письма в неком подобии
реляционной базы, над которой можно делать запросы, создавать виды и т.п.

То есть "сервер" базы данных все равно нужно писать, так что вполне
логично сделать еще один шаг и сделать этот сервер независимым от того
работает ли он на клиенте или на выделенном компе.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[58]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 05:56
Оценка:
Дарней wrote:
> C>А вы можете их перечислить?
> http://mono-project.com/Supported_Platforms

HP-PA Interpreter HP-UX

Одна из важнейших платформ, кстати. А есть еще и достаточно
распространенный m68k.

И вообще, Mono использует Boehm GC, что часто дает слишком большой oверхед.

> только не надо мне заливать про крутизну кросс-платформенности С++, и о

> том насколько она кроссплатформеннее, чем у Моно.
> я сам не один раз занимался портированием между платформами, и прекрасно
> представляю себе реальный объем работ. А не тот, который "в теории".
Просто надо сразу писать портируемый код — и проблем не будет.

> C>В GCC мне нужно описать модель процессора на специальном языке (md —

> C>Machine Description), остальное сделает сам gcc (ну еще придется
> C>написать несколько утилитных функций). Например, для m68k это файлик в
> C>200Кб, а для pdp11 — в 50Кб.
> одного только кодогенератора будет все равно недостаточно для нормальной
> работы, даже если ты и ухитришься сделать его за месяц.
А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно
больше работы. Тем более, что я могу использовать С-шный runtime в С++
без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...

>> > ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают?

> C>Ну да, легко и непринужденно за пару месяцев.
> не нравится — используй другие тулкиты.
У нас такой большой выбор...

> А вообще, к теме это всё не имеет отношения. Ты ведь не забыл, о чем

> изначально шел спор, правда?
Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых
приложений.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[59]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 07:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Одна из важнейших платформ, кстати. А есть еще и достаточно

C>распространенный m68k.

если окажется, что действительно "одна из важнейших платформ" — сделают и JIT

C>И вообще, Mono использует Boehm GC, что часто дает слишком большой oверхед.


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

C>Просто надо сразу писать портируемый код — и проблем не будет.


просто — это в теории. А на практике я такого еще не видел ни для одной сложной программы.

C>А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно

C>больше работы. Тем более, что я могу использовать С-шный runtime в С++
C>без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...

а как же wxWindows?

C>Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых

C>приложений.

нет. О том, что С++ — простой и удобный язык высокого уровня.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[60]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 07:45
Оценка: 1 (1)
Дарней wrote:
> C>Одна из важнейших платформ, кстати. А есть еще и достаточно
> C>распространенный m68k.
> если окажется, что действительно "одна из важнейших платформ" — сделают
> и JIT
Но ведь еще не сделали?

> C>И вообще, Mono использует Boehm GC, что часто дает слишком большой

> oверхед.
> GC собираются заменить, и вроде как над этим уже работают.
Они его собираются заменить уже года три. А воз и ныне там — у них
слишком много заточено под консервативную сборку.

> C>А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно

> C>больше работы. Тем более, что я могу использовать С-шный runtime в С++
> C>без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...
> а как же wxWindows?
На контроллере без компилятора gcc и нормального runtime'а?? Ну в
крайнем случае можно портировать wxWidgets Universal — он сам рисует все
виджеты и требует фактически только канвас для рисования.

> C>Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых

> C>приложений.
> нет. О том, что С++ — простой и удобный язык высокого уровня.
Он простой и удобный. Для определенных целей.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[53]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.02.06 07:53
Оценка:
Здравствуйте, Дарней, Вы писали:

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


Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[54]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 08:20
Оценка:
Здравствуйте, eao197, Вы писали:

E>Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?


что-то мне подсказывает, что абстракция — это совсем не низкий уровень, а вполне даже высокий.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[61]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 08:39
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>Но ведь еще не сделали?


а тебя так сильно беспокоит HP-UX? Ты хочешь об этом поговорить?
Я уверен, что Аутлука там совершенно точно нет

C>Они его собираются заменить уже года три. А воз и ныне там — у них

C>слишком много заточено под консервативную сборку.

читал где-то у них в ньюсах, что это уже практически закончено

C>На контроллере без компилятора gcc и нормального runtime'а?? Ну в

C>крайнем случае можно портировать wxWidgets Universal — он сам рисует все
C>виджеты и требует фактически только канвас для рисования.

бог с ними, контроллерами.

C>Он простой и удобный. Для определенных целей.


Вот-вот. Главное — не пытаться доказывать, что он рулит еще и как язык для прототипирования
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[55]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.02.06 08:49
Оценка:
Здравствуйте, Дарней, Вы писали:

E>>Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?


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


Абстракция -- вполне даже. Но я спрашивал про реализацию абстракции.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.