Здравствуйте, Хон Гиль Дон, Вы писали:
PML>>2. Для большинства компаний неозвучивание сумм публично — это стандартно, нравится вам это или нет: Яндекс, Abbyy, Касперский.
ХГД>Ну так они и не жалуются, что не могут толковых спецов найти
Здравствуйте, -n1l-, Вы писали:
N>Согласен. Когда нет озвученной ветки, это разговор ни о чем. N>Причем яндекс и всякие лабы озвучивают минимум и максимум.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, -n1l-, Вы писали:
CC>>>Ну он про С++ писал типичное для ниасиливших. N>>Что например? CC>google linus c++ rant
CC>>>На С — банально много гемору. N>>Какого? CC>Рукопашка везде и во всём. Boilerplating. Принципиальная невозможность писать safe код.
как везде и во всем? А как же GTK?
Небезопасны там только указатели. Там в принципе больше ничего особого и нет, так что тоже голословно.
Re[6]: Достаточно ли знать С без знания С++ для устройства на работу?
Здравствуйте, DarkEld3r, Вы писали:
N>>Кто-то даже говорит что единственная. Так что неудивительно... DE>Eсть какое-то подтверждение? Потому что (со стороны) ситуация выглядит несколько другой. Скажем, поддержку нового стандарта они до сих пор, кажется, не доделали. При этом конкуренты (clang, gcc) ещё не принятый С++14 внедряют. Помню ещё читал про какие-то фичи (кажется, про аттрибуты) они заявляли, что-то типа "у нас уже реализовано другим способом и переделывать не будем". Опять же, дотнетом несколько уменьшили роль С++.
Честно говоря мне это сказал тех. рук. на собеседовании в одной питерской конторе.
Я принял на веру. Хотя после ваших слов мне он кажется не очень компетентным.
Здравствуйте, PMLife, Вы писали:
PML>Здравствуйте, -n1l-, Вы писали:
N>>Согласен. Когда нет озвученной ветки, это разговор ни о чем. N>>Причем яндекс и всякие лабы озвучивают минимум и максимум.
PML>Публично или лично вам на собеседовании?
Ну сейчас вижу, что у разработчиков перестали писать, но раньше на хх видел веточки.
Вот у всяких рекламщиков есть:
Здравствуйте, CreatorCray, Вы писали:
S>>Похоже, Вы драйверы под линукс не то что не писали, но и уже написанные не видели. CC>Я пишу код в linux-based ядре. Нихрена там нет, спагетти и говнокод.
А можно назвать область ядра в которой заняты, и назвать хоть одну структуру,
которую по Вашему мнению можно заменить, и вообще, работу с которой можно реализовать
через С++ класс.
Re[9]: Достаточно ли знать С без знания С++ для устройства на работу?
Здравствуйте, -n1l-, Вы писали:
CC>>Рукопашка везде и во всём. Boilerplating. Принципиальная невозможность писать safe код. N>как везде и во всем? А как же GTK?
А что с ним?
N>Небезопасны там только указатели. Там в принципе больше ничего особого и нет, так что тоже голословно.
Ну например сделай мне на С безопасный printf. Чтобы такая вот очепятка:
char *foo;
int bar;
printf ("%s %i", bar, foo);
не приводила к крашу.
На С++ вариадики такое разруливают на раз-два, работает даже быстрее varargs имплементации.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Достаточно ли знать С без знания С++ для устройства на работу?
Здравствуйте, smeeld, Вы писали:
S>>>Похоже, Вы драйверы под линукс не то что не писали, но и уже написанные не видели. CC>>Я пишу код в linux-based ядре. Нихрена там нет, спагетти и говнокод.
S>А можно назвать область ядра в которой заняты
Storage virtualization
S> и назвать хоть одну структуру, которую по Вашему мнению можно заменить, и вообще, работу с которой можно реализовать через С++ класс.
Все.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Достаточно ли знать С без знания С++ для устройства на работу?
Здравствуйте, -n1l-, Вы писали:
CC>>Рукопашка везде и во всём. Boilerplating. Принципиальная невозможность писать safe код. N>как везде и во всем? А как же GTK?
Вот GTK как раз — прекрасный пример. Множество проектов (LXDE, Wireshark, ...) переключаются с GTK на QT из-за того, что их авторы поняли, что они много лет ели кактус.
Sapienti sat!
Re[17]: Достаточно ли знать С без знания С++ для устройства
Здравствуйте, eskimo82, Вы писали:
C>>А перед этим появилась первая бактерия. E>Несомненно. Но поддержка атомиков появилась в С раньше чем в С++.
В виде intrinsinc'ов — ровно наоборот, если речь идёт о gcc.
C>>>>Бредишь. Это возможно чуть ли не с K&R C, точно было в C89. Классика жанра — возвращение структуры POINT в WinAPI. E>>>1. Что я неприпоминаю, что там за функция в Win32 API возвращает POINT. Можеш напомнить ? E>Итак, какая функция в WinAPI возвращает POINT ?
Лень искать.
C>>В общем, я считаю, что ламеризм (воинствующее незнание) надо наказывать долларом. Так что предлагаю поспорить на $100, что в С89 есть возврат структур, аналогичный побайтному копированию. E>Вот и начни с себя. Потрать доллары на своё образование.
Ну так готов спорить?
C>>ЩИТО? В Java все объекты — это reference-типы. Если бы в Java были value-типы, то тоже всё было бы как в С++. E>Если у бабушки был бы член, она была бы дедушкой. Но в обоих случаях осталась бы престарелым человеком. Так и в случае с агрегатными обьектами.
Что такое "агрегатный обьект"?
E>1. Глобальная переменная в С и С++ инициализируется нулем. Балбес.
Это автоматическая переменная. За глобальные переменные вообще расстрел сразу.
E>2. Этот код также не упадет.
Да, всего лишь молчаливо даст доступ к файлу. Тут если посмотреть, то в CVE от uninitialized access примерно процентов так 10% багов.
C>>В Java пишется так: E>А в С++ пишется по другому. И в обоих языках можно элементарно выстрелить себе в ногу.
Ну так тут кто-то утверждает, что в Java всякие странные проблемы с вызовом super. В чём в Java проблемы с вызовом super?
C>>А потом ищутся баги с неинициализированным next. E>ЛОЛ, Что ?
Ну вот видишь.
C>>"Методы" add_to... будут в каждом используемом файле инстанцироваться отдельно, за счёт static'а. Если static убрать, то получим конфликты времени связывания и/или неоптимальный код из-за отсутствия inlining'а. E>Теперь напиши пример в templates и сравни как будут инстанцироваться методы.
Нормально будут.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, -n1l-, Вы писали:
CC>>>Рукопашка везде и во всём. Boilerplating. Принципиальная невозможность писать safe код. N>>как везде и во всем? А как же GTK? C>Вот GTK как раз — прекрасный пример. Множество проектов (LXDE, Wireshark, ...) переключаются с GTK на QT из-за того, что их авторы поняли, что они много лет ели кактус.
Скорее всего убегут обратно. С ктютом совладать смог только сьюз.
Re[11]: Достаточно ли знать С без знания С++ для устройства на работу?
Здравствуйте, -n1l-, Вы писали:
C>>Вот GTK как раз — прекрасный пример. Множество проектов (LXDE, Wireshark, ...) переключаются с GTK на QT из-за того, что их авторы поняли, что они много лет ели кактус. N>Скорее всего убегут обратно. С ктютом совладать смог только сьюз.
То есть?
Здравствуйте, -n1l-, Вы писали:
N>Здравствуйте, PMLife, Вы писали:
PML>>Здравствуйте, -n1l-, Вы писали:
N>>>Согласен. Когда нет озвученной ветки, это разговор ни о чем. N>>>Причем яндекс и всякие лабы озвучивают минимум и максимум.
PML>>Публично или лично вам на собеседовании?
N>Ну сейчас вижу, что у разработчиков перестали писать, но раньше на хх видел веточки. N>Вот у всяких рекламщиков есть:
N>http://omsk.hh.ru/vacancy/11538451?query=%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81
Вилка от 70 до 250 — это все равно, что ничего не написано
Здравствуйте, ramar, Вы писали:
R>А можно ли быть программистом-системщиком, но знать только С, без С++? Вообще, насколько важно знать С++ или достаточно только С? Не только в России, но за бугром тоже. В Америке, я знаю, именно С больше в почете.
Достаточно. Более того, там, где находятся центры разработки железа, знание C намного востребованнее знания плюсов.
Скажем, когда я ходил по собеседованиям в Тайване, в 3 конторах из пяти мне сказали что плюсы — это, конечно, хорошо, но может я согласен пересесть на C?
Re[18]: Достаточно ли знать С без знания С++ для устройства
C>>>>>Оно скомпилируется и будет падать. E>>>>Как мы видим, здесь указатель, а не int. Какой неприкрытый фейл... C>>>Можно и int, не вопрос: C>>>
C>>>int mode;
C>>>chmod("/some/file", mode); //Are you feeling lucky today?
C>>>
E>>1. Глобальная переменная в С и С++ инициализируется нулем. Балбес. CC>А с чего ты взял что это глобальная переменная?
А с чего бы ей не быть глобальной переменной ?
Re: Достаточно ли знать С без знания С++ для устройства на работу?
C>>>А перед этим появилась первая бактерия. E>>Несомненно. Но поддержка атомиков появилась в С раньше чем в С++. C>В виде intrinsinc'ов — ровно наоборот, если речь идёт о gcc.
Вот и напиши здесь даты появления стандарта C11 и дату появления __sync_xxx функций в gcc.
C>>>>>Бредишь. Это возможно чуть ли не с K&R C, точно было в C89. Классика жанра — возвращение структуры POINT в WinAPI. E>>>>1. Что я неприпоминаю, что там за функция в Win32 API возвращает POINT. Можеш напомнить ? E>>Итак, какая функция в WinAPI возвращает POINT ? C>Лень искать.
Поищи и приведи ссылку, иначе твоё заевление не соответсвует действительности.
C>>>В общем, я считаю, что ламеризм (воинствующее незнание) надо наказывать долларом. Так что предлагаю поспорить на $100, что в С89 есть возврат структур, аналогичный побайтному копированию. E>>Вот и начни с себя. Потрать доллары на своё образование. C>Ну так готов спорить?
Лень спорить с балбесом.
C>>>ЩИТО? В Java все объекты — это reference-типы. Если бы в Java были value-типы, то тоже всё было бы как в С++. E>>Если у бабушки был бы член, она была бы дедушкой. Но в обоих случаях осталась бы престарелым человеком. Так и в случае с агрегатными обьектами. C>Что такое "агрегатный обьект"?
Ты не знаеш принципы ООП ?
E>>1. Глобальная переменная в С и С++ инициализируется нулем. Балбес. C>Это автоматическая переменная.
Кто сказал ?
C>За глобальные переменные вообще расстрел сразу.
Это категогричное заявление сразу выдает дилетанта наслушавшегося страшилок про глобальные переменные.
Глобальные переменные могут быть очень полезны, а могут нести вред — это зависит от того как и для чего они используются.
Ты ведь не будеш тут брызгать слюной по поводу синглетонов ?, а ведь их реализация строится как раз на основе глобальных переменных, может и обьявленых как локально статические, но сути это не меняет.
E>>2. Этот код также не упадет. C>Да, всего лишь молчаливо даст доступ к файлу. Тут если посмотреть, то в CVE от uninitialized access примерно процентов так 10% багов.
Или не даст доступ к файлу.
C>>>В Java пишется так: E>>А в С++ пишется по другому. И в обоих языках можно элементарно выстрелить себе в ногу. C>Ну так тут кто-то утверждает, что в Java всякие странные проблемы с вызовом super. В чём в Java проблемы с вызовом super?
В Java вообще возникает много странных проблем по сравнению с C++.
C>>>А потом ищутся баги с неинициализированным next. E>>ЛОЛ, Что ? C>Ну вот видишь.
Что тут видеть, если человек вообще не написал конструктор ? Согласись — это разные немного вещи: 1. не написать конструктор вообще, 2. в процесе модификации обьекта добавить коллекцию и забыть написать её создание в конструкторе. Второй случай как раз однозначно соответсвует потенциальным Сишным самострелам. В этом варианте С++, в отличии от Java, оказывается языком где нету такого замечательного шанса пострелять себе в ноги. Так что о том что Java — это безопасный язык ты можеш лечить молодых школьников.
C>>>"Методы" add_to... будут в каждом используемом файле инстанцироваться отдельно, за счёт static'а. Если static убрать, то получим конфликты времени связывания и/или неоптимальный код из-за отсутствия inlining'а. E>>Теперь напиши пример в templates и сравни как будут инстанцироваться методы. C>Нормально будут. C>
C>Не надо указывать явный static.
А теперь ответь на следующие вопросы:
1. Как будут инстанцироваться методы add_to_list ?
2. Сколько копий их будет ?
3. Есть ли разница в количестве копий с Сишным вариантом ?
Re[10]: Достаточно ли знать С без знания С++ для устройства н
CC>Куда более серьёзная проблема в том, что на С нет никаких способов писать безопасный код.
Как показал мой пример, на Java есть способы писать опасный код.
Некоторые глупцы еще пытаются найти серебряную пулю в виде языка не дающего писать безопасный код. Таких языков нет, безопасен код или нет зависит целиком и полностью от его автора.
Re[24]: Достаточно ли знать С без знания С++ для устройства
IID>Для чистого Си это тоже актуально, странно что ты не в курсе. Статики-то надо инитить, и в _atexit напиханные функции вызывать.
Простые статики уже лежат проиниченые, а в_atexit функции надо сначала понапихать.