Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.26;
Скачать: CL | DM;

Вниз

Чем вам лично не нравится CPP?   Найти похожие ветки 

 
Alkid ©   (2008-08-29 15:22) [80]


> Mystic ©   (29.08.08 14:58) [75]


> 1) Количество таких переменных плодится и размножается,
> в результате вся выгода от многопоточности теряется: потоки
> последовательно ждут когда прочитается эта переменная.

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


 
Tricky   (2008-08-29 15:25) [81]


> По сравнению с Delphi - сильно проигрывает в синтаксисе,
>  если Delphi читаешь без напряга - как текст, то здесь иногда
> приходится приостанавливаться и делать микро паузы (сам
> синтаксис не логика работы).


А вобще наверное возьму пример с Владимира Кладова, и переквалифицируюсь на Delphi - удобнее он просто. :)


 
Mystic ©   (2008-08-29 15:37) [82]

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

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


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


Имхо, тут лучше с самого начала думать о том, как лучше всего синхронизировать доступ, как организовать вычисления. Начнем с того, что предложенная схема, имхо, проблем синхронизации почти не решает. Более ощутимый прирост даст эскалация блокировок, объединение совместно используемых переменных в одну критическую секцию и вообще минимализация вызовов EnterCriticalSection. Это уже вопросы более высокого порядка.


 
@!!ex ©   (2008-08-29 15:43) [83]

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

Насколько я помню - точку нельзя перегружать.
За то, что разжевали - спасибо! Есть над чем подумать.


 
@!!ex ©   (2008-08-29 15:47) [84]

Вообще у нас этот шаблон применяется в точках, где главное, чтобы переменная не ломалась.
Тоесть два потока:
ОДин только на чтение, второй - работа с переменной полная.
Соответственно надо дать гарантию, что первый прочитает не поломанную переменную. Что приведенный шаблон вполне себе сносно реализует... А вот что-то сложнее... Хорошо что здесь привел код... НЕ напорюсь, когда усложнять будем. :)


 
Mystic ©   (2008-08-29 16:37) [85]

Да, точку перегрузить нельзя. Можно перегрузить ->, но эта перегрузка только вернут некий объект, для которого будет вызвано еще раз ->. Поскольку возможности выполнить некоторое действия после возврата значения нет, то этот метод также неприменим. Более того, я пришел к выводу, что я абсолютно не представляю во во что развернется

static syncproperty<int>  i;
++i;


 
Eraser ©   (2008-08-29 16:45) [86]

> [74] @!!ex ©   (29.08.08 14:52)

в данном случае Interlocked* функции рулят, например InterlockedExchange, InterlockedIncrement и т.д.


 
Mystic ©   (2008-08-29 16:52) [87]


> в данном случае Interlocked* функции рулят, например InterlockedExchange,
>  InterlockedIncrement и т.д.


Ну хочется же через шаблоны. И чтобы любой тип...


 
@!!ex ©   (2008-08-29 16:53) [88]

> [87] Mystic ©   (29.08.08 16:52)

Ну так ничего не мешает приделать эти функции к шаблонам.


 
ketmar ©   (2008-08-29 18:04) [89]

Удалено модератором
Примечание: Не ругайся


 
Mystic ©   (2008-08-29 18:24) [90]


> >[82] Mystic © (2008-08-29 15:37:00)
> >можно ли нужным образом перегрузить операцию точка.
> нет. только ->


Значит скоро выйдет новый стандарт и будет всем счастье


 
ketmar ©   (2008-08-29 18:28) [91]

>[90] Mystic © (2008-08-29 18:24:00)
угу. счастье ловить баги в реализациях стандарта разными компиляторами.

вообще, давно пора писать в резюме не «знаю C++», а «знаю m$ C++», «знаю borland C++», «знаю gnu C++», etc.

---
Do what thou wilt shall be the whole of the Law.


 
@!!ex ©   (2008-08-29 19:47) [92]

> [91] ketmar ©   (29.08.08 18:28)

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


 
Alkid   (2008-08-29 20:10) [93]


> ketmar ©   (29.08.08 18:28) [91]

Ты преувеличиваешь.
Я на работе пишу код который должен собираться 5-6 разными компиляторами.
Так что о состоянии дел с совместимостью компиляторов я знаю. Совместимость между production quality решениями хорошая.


 
ketmar ©   (2008-08-30 04:06) [94]

>[92] @!!ex © (2008-08-29 19:47:00)
>[93] Alkid (2008-08-29 20:10:00)
угу. пока не выходишь за subset, реализованый везде.

я уж молчу о том кайфе, который добавляют разные оптимизаторы — это занятная игра «что, где, когда» получается.

---
Understanding is not required. Only obedience.


 
Marser ©   (2008-08-30 13:58) [95]

А мне C# нравится :-)


 
KilkennyCat ©   (2008-08-30 14:02) [96]

А мне - девушки :)


 
Asteroid ©   (2008-08-30 14:02) [97]

> Alkid   (28.08.08 22:42) [37]
> typedef  void (A::*ClassAFuncPtr)() ; // тип указатель на функцию-член класса A
И имеем мы жесткую привязку к классу. Сойдет, но не всегда.

> XentaAbsenta ©   (29.08.08 13:20) [64]
> хз..., а насчёт редактора кода - посмотри на VCPP + VisualAssist
Глянем, спасибо.

> ketmar ©   (30.08.08 04:06) [94]
> угу. пока не выходишь за subset, реализованый везде.
Часто приходится? :)


 
Tricky   (2008-08-30 14:57) [98]


> KilkennyCat ©   (30.08.08 14:02) [96]
>
> А мне - девушки :)


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


 
Alkid   (2008-08-30 15:04) [99]


> ketmar ©   (30.08.08 04:06) [94]

Опять преувеличиваешь.
Мы на работе весьма полно используем С++ с его шаблонными наворотами и проч. Проблем не было. Самая большая проблема - разные варнинги на разных компиляторах.


> Asteroid ©   (30.08.08 14:02) [97]



> И имеем мы жесткую привязку к классу. Сойдет, но не всегда.

Это не большая проблема. А вообще - шаблоны, мой друг :)


 
savyhinst ©   (2008-08-30 19:23) [100]

ЧУВАКИ! вы просто жесть забыли сказать... В C++ нет слова with!!!
пример
C++
coolobject.items[i].childrens[j].method1;
coolobject.items[i].childrens[j].method2;
coolobject.items[i].childrens[j].method3;
coolobject.items[i].childrens[j].method4;
coolobject.items[i].childrens[j].val=i*k;
Object Pascal
with coolobject.items[i].childrens[j] do
begin
 method1;
 method2;
 method3;
 method4;
 val:=i*k
end;


 
ketmar ©   (2008-08-30 20:01) [101]

>[99] Alkid (2008-08-30 15:04:00)
>Самая большая проблема - разные варнинги на разных компиляторах.

везёт, значит. или разработчики компиляторов, наконец, сумели кое-как договориться. %-)

>[100] savyhinst © (2008-08-30 19:23:00)
>ЧУВАКИ! вы просто жесть забыли сказать... В C++ нет слова with!!!

а-а-а-а! голактеко опасносте!!!111 мы все умрём!111111

---
All Your Base Are Belong to Us


 
Virgo_Style ©   (2008-08-30 20:09) [102]

Но, в общем-то, никто не мешает объявить на месте короткообозванную переменную и присвоить ей coolobject.items[i].childrens[j]


 
hinst   (2008-08-30 20:19) [103]

согласен. А вообще, лично мне в сиплюсплюс не нравятся: шаблоны и то, что там вообще слишком много всяких конструкций, сложностей, и синтаксических элементов. а также заголовочные файлы. В настоящем языке программирования синтаксис должен быть не многословен. А в си много лишнего


 
ketmar ©   (2008-08-30 20:20) [104]

>[103] hinst (2008-08-30 20:19:00)
складывается впечатление, что ты откуда-то из параллельного мира, где какой-то совсем не такой цпп, как тут у нас.

---
All Your Base Are Belong to Us


 
oxffff ©   (2008-08-30 23:22) [105]


> А в си много лишнего


"Огласите пожалуйста весь список". Copyright. Все знают от куда.


 
Alkid   (2008-08-31 23:31) [106]


> ketmar ©   (30.08.08 20:01) [101]
> везёт, значит. или разработчики компиляторов, наконец, сумели
> кое-как договориться. %-)

Видимо сумели :)


> savyhinst ©   (30.08.08 19:23) [100]

Жжошь напалмом.


 
ketmar ©   (2008-08-31 23:35) [107]

>[106] Alkid (2008-08-31 23:31:00)
>Видимо сумели :)

ненадолго. вот выйдет новый стандарт — и опять будет обычный разброд с шатаением. %-)

---
All Your Base Are Belong to Us


 
MemoryLeak   (2008-09-01 03:15) [108]

У Си++ на порядок лучше коммерческая поддержка, это и есть основное преимущество. Поддержка производителей железа и маштабная интеграция.
А у Delphi лучше общественная оценка в России, не факт что это плюс. Я бы не назвал её объективной.
...
Отступление...
Собирается совещание по поводу реализации предстоящего проекта: трудозатраты, бюджетирование, менеджмент.
Вариант выбирается - аутсорсинг, приглашаются представители фирмы и тех. консультанты.
Первое что слышно от Delphi-аутсорсеров:
1."Придётся переписать менеджер памяти. Лицензировать коммерческие версии комопнентов, чтобы не тратить время на разработку. :(( "
2. "Нет. Интеграция CVS это дополнительные расходы. Source Safe надо прикручивать, SVN и FreeVCS бесплатное говно и вообще чтобы было совместимо с MicroSoft надо немного поработать".
3."Что? Вы рассматриваете C# как альтернативу, ни в коем случае это страшный ужас."
4. "На какие задачи ориантирована ваша команда ? Любые системы, не предусматривающие real-time модели. Базы данных и клиент-серверные парадигмы - наш конёк".
5. "Почему не использовать 1C? реализация на освнове этого продукта обойдётся нам дешевле. В ответ обычно: ... ничего."
...
Резюме:
Когда вопрос касается денег, качества и сроков - всегда появляются сложности, которые не поддаются односложной оценке: "С++ лучше Delphi, давайте на нём делать".
А сравнение яызков - это не коммерческий подход, а любительский.


 
Eraser ©   (2008-09-01 03:40) [109]

> [108] MemoryLeak   (01.09.08 03:15)


> У Си++ на порядок лучше коммерческая поддержка

у C++ лучше вся поддержка. любая технология, старая или новая, в первую очередь описана на C/C++.

> А у Delphi лучше общественная оценка в России

это еще с каких пор? "программистов на делфи" не очень то жалуют, мягко говоря. само словосочетание звучит как ругательство )

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


 
MemoryLeak   (2008-09-01 04:07) [110]

Eraser ©   (01.09.08 03:40) [109]

> это еще с каких пор? "программистов на делфи" не очень то
> жалуют, мягко говоря. само словосочетание звучит как ругательство
> )

Заграницей в большенстве случаев вообще не подозревают о существовании сего продукта :)
Я привёл статистический пример.
Проблема не в том, что Delphi лучше или хуже. Разработчики зачастую просто не могут обосновать почему им надо доверить проект. А у конкурентов очень веская аргументация в пользу тендера.
У Delphi есть своя ниша в России - это очень маленькие проекты программистов-одиночек. Своебразный инструмент "фриланса".

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


Говорить Си++ программисту, что его профильный язык сложен, синтаксис неразборчив - это сравни тому, как сказать японцу, что у него очень сложный язык, а русский на порядок понятней.:)
Думаю, что это не очень весомый агрумент. Моё мнение.


 
Alkid   (2008-09-01 10:46) [111]


> ketmar ©   (31.08.08 23:35) [107]
> ненадолго. вот выйдет новый стандарт — и опять будет обычный
> разброд с шатаением. %-)

Да, сие возможно вполне.


> Eraser ©   (01.09.08 03:40) [109]

Грамотные библиотки прекрасно совмещаются в рамках одной программы.
И никого извращаться С++ не провоцирует. Просто как инструмент, предоставляющий большой спектр возможностей, он предоставляет так же и большое поле для того, что бы накосячить. Это, безусловно, повышает ответственность программиста и требования к его квалификации.


 
Alkid ©   (2008-09-01 11:17) [112]

2 ketmar.

Кстати, почитал я про D.
Проект интересный, но уже кое-чем не нравится. На кой ляд отказываться от невиртуальных методов в классе?


 
Mystic ©   (2008-09-01 12:11) [113]


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


Насколько я видел реализации, там где очень критичны несколько тактов, там обычно не используется никакого ООП. А если нет требования к производительности, то проще все унифицировать, имхо.


 
Alkid   (2008-09-01 12:44) [114]


> Mystic ©   (01.09.08 12:11) [113]
> Насколько я видел реализации, там где очень критичны несколько
> тактов, там обычно не используется никакого ООП. А если
> нет требования к производительности, то проще все унифицировать,
>  имхо.

Не, тут дело не в оптимизации. Я сам хочу решать, какие функции должны быть переопределяемы в наследниках, а каике - нет.

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


 
ketmar ©   (2008-09-01 23:40) [115]

>[112] Alkid © (2008-09-01 11:17:00)
я тоже не в восторге. но от цпп я ещё менее в восторге. %-)

---
Do what thou wilt shall be the whole of the Law.


 
Alkid   (2008-09-02 11:01) [116]


> ketmar ©   (01.09.08 23:40) [115]

Фиг его знает.
Цели у D хорошие, только, ИМХО, они куда-то не туда пошли. (см. 114).
И ещё нюанс: пока всё же С++ выигрывает у D как минимум в одном - он уже реально используемый инструмент.

ЗюЫю: А вообще язык моей мечты (какой точно, я не знаю ещё :)) похож на Пролог :)


 
ketmar ©   (2008-09-02 11:43) [117]

>[116] Alkid (2008-09-02 11:01:00)
ну, игрушки на D уже пишут. у меня вот куча bullet hell"ов на нём. %-)

а у меня язык мечты ещё проще: русский. %-)

---
Do what thou wilt shall be the whole of the Law.


 
Virgo_Style ©   (2008-09-02 12:00) [118]

ketmar ©   (02.09.08 11:43) [117]
русский


...руководящий


 
Alkid   (2008-09-02 12:51) [119]


> ketmar ©   (02.09.08 11:43) [117]


> Virgo_Style ©   (02.09.08 12:00) [118]

+1
Ещё лучше, что бы компьютер после пары неопределённых артиклей сам догадывался, что от него хотят и бежал за пивом :)


 
ketmar ©   (2008-09-02 20:37) [120]

>[119] Alkid (2008-09-02 12:51:00)
ну тогда уже доведём до идеала — чтобы догадывалось ещё до того, как скажешь. даже до того, как чётко мысль оформишь. только собрался о чём-то подумать, а это уже сделано (на всякий случай: гусары, тс-с-с-с! %-)

---
Understanding is not required. Only obedience.



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2008.10.26;
Скачать: CL | DM;

Наверх




Память: 0.71 MB
Время: 0.017 c
4-1198653645
Rav
2007-12-26 10:20
2008.10.26
Как опеределить язык GUI Windows!!! Не GetSystemDefaultLCID!!!


2-1218448786
tomkat
2008-08-11 13:59
2008.10.26
Web приложение


2-1221664079
Dr. Genius
2008-09-17 19:07
2008.10.26
Гарантированное выключение ПК


15-1220190358
Синий Дракон
2008-08-31 17:45
2008.10.26
Логическая задача


15-1220406185
Tricky
2008-09-03 05:43
2008.10.26
Тест Роршаха