Re[11]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 00:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>В смысле? В Москве намного хуже?


В штатах маки — это помойки.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 00:47
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:

AF> То же самое и здесь.с локами. Брать новичка, который не имеет представления об ОСНОВАХ языка ...


Но кое что разумное в этом есть. Например, новом шарпе конструкции обязанные ограничивать свое действие областью видимости специально спроектировали, так чтобы нельзя было допустить визуальных ошибок. Так usung и lock наспространяют свое действие на вложенный блок:
using (StreamReader reader = new StreamReader("file.txt"))
    str = reader.ReadToEnd();


или
lock (obj)
{
    // используем obj
}
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 00:47
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Честно говоря, хорошие exceptions в OLE Automation. Код ошибки и строка. И все. Хватит. На кой черт нужны _классы_ exceptions?


Кстати, в КОМ ошибки как раз классы. Их можно подменять и дополнять информацияю.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 01:10
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>>>Единственный адекватный способ создать такой язык это проектирование его с нуля и при этом забив на обратную совместимость с С/С++.

AVK>>Ну как бы R# уже сейчас показывает что это не обязательно.
WH>Или кто-то из нас не понял что сказал... Или R# может С++ компилировать?

Я думаю, АВК имел в виду, что на С++ свет клином не сошелся. И словосочетание "с нуля" не означает автоматот не наследуясь от С++.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 01:10
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

MSS>>Абстракции там получаются очень крупноблочные, скорее как в COMе, а не как в классических ОО языках типа Дельфей, Джавы и Шарпа.


AVK>Компонентная модель дотнета в разы более абстрактна нежели СОМ


А что такое компонентная модель КОМ?
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 01:10
Оценка:
Здравствуйте, alexkro, Вы писали:

A>Кроме "throw()", который достаточно важен, так как указывает на то, что функция не порождает исключений.


И как без нее в дотнете живут?
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.06.04 01:10
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>То, что там везде будут скины, как в ВинАмпе — слышал. Но чтоб все трехмерное?


Велкам ту рил ворлд. Будет Аэро с тремя вариантами антерфейса: 3D для хайэнд-карт и железа, 3D для середнячков и 2D для нищих.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Применим ли Си++ в серьезном коде?
От: Шахтер Интернет  
Дата: 16.06.04 01:43
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, Maxim S. Shatskih, Вы писали:


MSS>>Да прям при любом шаге пятерка была неудачная версия, в шестерке я не чаще раза в год такое вижу. В том компиляторе, что с XP DDK дают — тоже.


Д>Может быть

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

Сильно ошибаетесь. По грамматике генерируется только парсер -- и это далеко не самая главная часть кода компилятора.

MSS>>Насчет MSBlaster — ну ОК, перейди на юниксы, которые якобы более надежны — там тоже большая часть софта на Си написана.


Д>Ну это как раз — "исторические причины" в чистом виде. и "якобы более надежны" — это аргумент совсем не в пользу Си
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[23]: Применим ли Си++ в серьезном коде?
От: Шахтер Интернет  
Дата: 16.06.04 02:03
Оценка:
Здравствуйте, vstrogov, Вы писали:

V>Здравствуйте, postmaster, Вы писали:



P>>Ещё один плюс: в моём случае можно посадить за работу программиста без глубоких знаний NDIS.

P>>Он и стОить будет дешевле.
P>>А пользуясь этими классами он и работу сделает, и много дров не наломает.


V>Это аргумент?


V>Наверное будет невредно почитать раздел Philosophy на www.balder.com (очень хорошо соотв. данной рубрике RSDN)



V>А именно: "The three most important aspects of kernel mode code are quality, quality, and quality."


А для крипографических работ это ещё более важно. Потому что ошибки в криптографии приводят к тому, что система просто не работает. Zero error tolerance. И никакой отладчик причину ошибки вам не раскроет -- в одной из магических констант описались. Вот почему C++ здесь очень помогает -- он открывает такие возможности для верификации кода, которые на чистом C просто невозможны (впрочем, ни на одном другом существующем языке тоже).
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[16]: Применим ли Си++ в серьезном коде?
От: IT Россия linq2db.com
Дата: 16.06.04 02:42
Оценка: +1
Здравствуйте, bwowa, Вы писали:

B>Мужики, так вы вообще противники исключений!


Мы сторонники правильных исключенией. А ISupportErrorInfo — это не исключения, это слёзы. Единственно, кто их умеет нормально эмулировать как C++ исключения — это #import.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Применим ли Си++ в серьезном коде?
От: Дарней Россия  
Дата: 16.06.04 03:03
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Сильно ошибаетесь. По грамматике генерируется только парсер -- и это далеко не самая главная часть кода компилятора.


а где можно почитать, не подскажете?
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Применим ли Си++ в серьезном коде?
От: Шахтер Интернет  
Дата: 16.06.04 03:46
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, Шахтер, Вы писали:


Ш>>Сильно ошибаетесь. По грамматике генерируется только парсер -- и это далеко не самая главная часть кода компилятора.


Д>а где можно почитать, не подскажете?


По компиляторам? На русском языке есть Ахо, Сети, Ульман. Компиляторы. Принципы, технологии, инструменты. Но предупреждаю сразу -- книга на редкость мутная.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re: Не могу не поделиться своей "радостью".
От: Шахтер Интернет  
Дата: 16.06.04 05:03
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

...



Типа, .Net rulezzzzzzzzzzzzzzzdox. Где-то тут была дуракоустойчивость...
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[7]: Применим ли Си++ в серьезном коде?
От: AndreyFedotov Россия  
Дата: 16.06.04 06:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, AndreyFedotov, Вы писали:


AF>> Только тем, что половина драйверистов — едва услышав о такой идее закатывают глаза и начинают выть про "святотатство"... В подобных условиях не возможно работать...


VD>Т.е. дело в традициях и малость (а может и не малость) неадекватного к ним отношению? Ну, что же это объяснение очень похоже на правду.


А то! Есть хорошая традиция разделяемая почти всеми программистами: услышав заклинание "Visual Basic" дружно орать: "Фу! Остой!", трясти бубном и совершать другие ритаульно-оскорбительные действия в отношении VB. Причём что меня удивило больше всего, эта традиция распространена и среди самих программистов на VB...
Всё в комплексе напоминает обряды "укрощения плоти" или "очищения от грехов"...
Забавно, но многие начинают думать (из тех кто вообще начинают) лишь после исполнения обрядовой части...

AF>> А если серьёзно — то C++ прекрасно можно использовать для драйверов. Главное при написании драйверов это смотреть — какие средства языка используются и каковы будут затраты ресурсов при их использовании.


VD>Согласен на все 100.


AF>>Например exceptions в драйверах явно не стоит использовать.


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


Не экономично. В драйвере гораздо проще этого добиться например так:
*( ( DWORD* ) 0x0000000C ) = 0;
Re[12]: Применим ли Си++ в серьезном коде?
От: desperado_gmbh http://www.livejournal.com/users/tolstopuz
Дата: 16.06.04 07:15
Оценка: 12 (1)
Здравствуйте, VladD2, Вы писали:

VD>Хочеш сказать, что 0 таки приводится к этуму автоматом?


C# Language Specification

6.1.3 Implicit enumeration conversions
An implicit enumeration conversion permits the decimal-integer-literal 0 to be converted to any enum-type.


VD>Нда, это грабли. Зачем они разрешили это совершенно не ясно. Видимо из-за инициализации нулем. Козлы, могли бы запретить хотя бы присваение литералов.


Из-за флаговых enums. Любой здравомыслящий человек при работе с флагами в случае, если ни один из флагов не установлен, захочет передавать литеральный 0, вместо того чтобы явно приводить его или заводить Default = 0, как, скажем, в CommandBehavior. А грабли из-за того, что создателям компилятора было лень проверять FlagsAttribute (он проверяется только в рантайме — Enum.ToString), и все эти 0, |, &, ^, ~ работают даже с нефлаговыми enums.
Re[2]: Не могу не поделиться своей "радостью".
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.06.04 07:55
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Типа, .Net rulezzzzzzzzzzzzzzzdox. Где-то тут была дуракоустойчивость...


В янусе очень много unmanaged кода.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[10]: Применим ли Си++ в серьезном коде?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.06.04 08:31
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Это как с авиацией. Боингу-747 уже 30 лет. F-16 — тоже 30 лет. И ничего, летают, первый с незначительными изменениями, второй — почти как есть.


Серьезно что ли?
F-16 теперешний очень сильно отличается от F-16 тогдашнего. Новые движки, новая электроника, эффективность выше в разы. По сути неизменным остался только планер.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[12]: Применим ли Си++ в серьезном коде?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.06.04 08:31
Оценка:
Здравствуйте, WolfHound, Вы писали:

AVK>>Ну как бы R# уже сейчас показывает что это не обязательно.

WH>Или кто-то из нас не понял что сказал... Или R# может С++ компилировать?

Нет. Я к тому что никто не мешает создать аналог R# для С++.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[17]: Применим ли Си++ в серьезном коде?
От: bwowa Украина  
Дата: 16.06.04 08:37
Оценка: :)
Здравствуйте, IT, Вы писали:

IT>Мы сторонники правильных исключенией. А ISupportErrorInfo — это не исключения, это слёзы. Единственно, кто их умеет нормально эмулировать как C++ исключения — это #import.

(сторонникам *NIX не читать!)
Зря вы так про ISupportErrorInfo, очень даже мощный подход. Хочешь бери GUID в качестве ошибки, хочешь — читай COM объект дла расширенной информации. Да к тому же это ещё и независимый от языка подход.


Правльное исключение выглядит так: (ну на фига нам всякие COM )
К стати это реальный код, одной из моих программ.
;begin protected block
    mov eax,fs:[0]            ;fs:[0] - address of first exception handle
    mov mem_fs0,eax

    push OFFSET exception   ;write the own exception handle (next_handle:DWORD; may_handle:DWORD )
    push dword ptr fs:[0]
    mov fs:[0],esp
    
       ;... protected code
    
    mov ebp,mem_ebp            ;no exception 
  mov esp,mem_esp
    mov eax,mem_fs0
    mov fs:[0],eax
    jmp short @@end_protected_block
  exception_catch:                
    invoke Er,OFFSET msgOSnot
    mov ebp,mem_ebp
    mov esp,mem_esp
      mov eax,mem_fs0
      mov fs:[0],eax
... << RSDN@Home 1.1.3 stable >>
Re[21]: Применим ли Си++ в серьезном коде?
От: postmaster  
Дата: 16.06.04 08:58
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Все тоже самое можно и на голых С-ях:

VD>
VD>Buffer buffer;
VD>InitBuffer(buffer, BufferPoolHandle, lpBuffer, nBufferSize);

VD>Packet packet(PacketPoolHandle);
VD>InitPacket(packet, PacketPoolHandle);

VD>if (AddBufferToPacket(packet, buffer))
VD>    miniport.send(packet);
VD>

VD>Несколько длиннее, но по сути тоже саме. В сравнении с голым АПИ-шным прмером просто легко читаемый код.

Не забудь про деструкторы, в которых разрушаются PNDIS_PACKET и PNDIS_BUFFER.
Именно в них огромнейшее преимущество C++ перед plain C в данном случае.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.