Здравствуйте, bobos, Вы писали:
B>Давно интересует вопрос, почему в предложении работы пишут "требуется программист С/С++". Только из-за того, что С++ создан на основе С? Это же совершенно разные подходы к программированию! Гораздо более здраво звучит "требуется программист Java/C++" или "программист С/Pascal/Fortran", а еще лучше "требуется программист ООП(объе-ориент.прогр)" или "требуется процедурный программист".
B>Какие будут комментарии?
Когда-то, еще в 20 веке, требование "C/C++" действительно отражало свой смысл — в виду того что много программистов писавших на Сях переходило/перешло на Плюсы и стали требоваться умения жонглировать обеими технологиями чтобы разобрать написанное ранее и успевать поспевать новое.
В данный момент (намеренно исключаю минимальный шанс когда действительно может потребовать знание Сей и это требование без искажений ляжет на текст в объявлении) — "C/C++" это — клише + такое же устойчивое выражение как VC++/MFC, COM/ATL, .NET/C#, C#/.NET, ASP.NET/MSSQL, Чип и Дейл, и.т.д, порожденное технологией Forward-CopyPaste (CopyPaste v.2.0)
Здравствуйте, Awaken, Вы писали:
A>странно знать C++ и не знать C. это же подмножество. A>чистый C широко востребован в системном и низкоуровневом программировании
В UI С тоже востребован. Посмотри на Gnome (GTK/GLib).
Не понятна мне подоплека всего этого, зачем на чистом C ваять ООП?
О, на асме писать, следуя ООП, это круто! Видел в одной книжке примеры реализации, попробовал и плюнул — ну его нафиг объекты и vmt вручную создавать Весь труд уходит на реализации ООП, а не на полезный код
А где можно про это почитать в частности про реализацию ООП на си? Можешь кинуть ссылочки?
Здравствуйте, chum, Вы писали: C>Ага, или на ассемблере!
Есть такая фирма Borland, и у нее был макроассемблер под названием tasm(Turbo Assembler), короче вот:
.code
memory_system_advanced STRUC memory_system METHOD \
init:mptr=memory_system_advanced_init,\
virtual show:mptr=memory_system_advanced_show
diskhandle dw ?
memory_system_advanced ends
memory_system_advanced_show proc
...
call +@Table_memory_system|show
...
memory_system_advanced_show endp
MAKE_VMT ; это макрос понятное дело
.code
...
; Set ES to point to the virtual tables!
LoadVMTSeg ES ; это тоже макрос
call [si] method memory_system:init
call [si] method memory_system:show
Все присутствует: инкапсуляция, наследование, полиформизм. Там где помечно — там макросы да, а все остальное синтаксис. Модель IDEAL если мне память
не изменяет. Так что не Delphi единым, хороший асм был кстати.
Здравствуйте, marat321, Вы писали:
M>В UI С тоже востребован. Посмотри на Gnome (GTK/GLib). M>Не понятна мне подоплека всего этого, зачем на чистом C ваять ООП?
Затем, что чистый Си гораздо проще забиндить в другой, нормальный язык, чем всякие там извращенческие кривенькие C++.
Здравствуйте, Андрей Хропов, Вы писали:
L>>Я к примеру знаю С++ на довольно крепком уровне, но абсолютно не знаю С. АХ>Это невозможно.
Знать язык, это только не знать синтаксис, это владение определенными техниками. У C-программистов есть свои наработки и шаблоны по работе с динамическими массивами, списками, управлению памятью и передаче владения над структурами в куче. Чтобы что-то большое написать, надо их знать.
АХ> С — это подмножество C++ (да, да, я знаю, есть мелкие различия, например из-за того что ввели новые ключевые слова, но по сути так). С99 конечно кое-что новое добавил, но сути не изменил.
Здравствуйте, Valery A. Boronin, Вы писали:
VAB>ядро НТ написано на С следуя ОО подходу, факт
Да хотя бы посмотреть на DEVICE_OBJECT.MajorFunction[] — чем не таблица виртуальных методов?
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Demiurg, Вы писали:
D> О, на асме писать, следуя ООП, это круто!
Это может быть даже проще, чем на С, правда придётся написать кучу макросов. И это никому не нужно.
D>Видел в одной книжке примеры реализации, попробовал и плюнул — ну его нафиг объекты и vmt вручную создавать Весь труд уходит на реализации ООП, а не на полезный код
Это проблема (автора) книжки, а не ассемблера.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth