Re[10]: Достаточно ли знать С без знания С++ для устройства на работу?
От: Abyx Россия  
Дата: 05.09.14 11:02
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Хотите пример? Есть такой DTrace. Посмотрите как он реализован в solaris, не где нибудь ещё, вроде freebsd,

S>а именно в солярисе. И увидите не что иное как реализацию организации модульного тестирования всего ядра,
S>на всём его протяжении. На каждом, хоть что-то значащем, его участке.

дай ссылку на код или репозиторий, а лучше на конкретные файлы с тестами,
а то я нашел пару каких-то dtrace, но юнит-тестов там не было
In Zen We Trust
Re[4]: достаточно
От: PMLife http://PMLife.ru
Дата: 05.09.14 11:15
Оценка:
Здравствуйте, -n1l-, Вы писали:

PML>>Знакомые в России не могут нанять хорошего С программиста, платить готовы хорошо, но специалистов на рынке мало.

N>Город, зарплата, небудте голословными.

Москва.
Зарплата по результатам собеседования Для редких специалистов индивидуальный подход.
Блог менеджера проектов.
Re[4]: достаточно
От: PMLife http://PMLife.ru
Дата: 05.09.14 11:16
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>>>Но в РФ за это знание платить будут мало.

PML>>Знакомые в России не могут нанять хорошего С программиста, платить готовы хорошо, но специалистов на рынке мало.
E>Все уехали.

Возможно. А может перепрофилировались на "клепателей формочек".
Блог менеджера проектов.
Re[23]: Достаточно ли знать С без знания С++ для устройства
От: Хон Гиль Дон Россия  
Дата: 05.09.14 11:23
Оценка: +1
Здравствуйте, eskimo82, Вы писали:

ХГД>>>>А какой от них в плюсах был бы прок? Анонимные объекты и так без проблем можно создавать

E>>>Какой прок ? В отсутсвии вызовов кострукторов для POD хотя бы.
E>>>
E>>>task.state = (state_t) { .priority = 10, .name="task1" };
E>>>


ХГД>>Вот именно — "в отсутствии вызовов конструкторов". С чего бы им в плюсах отсутствовать? В C++11 даже POD могут иметь кое-какие конструкторы.

E>И это очень плохо. Не всегда есть желание и даже возможность вызывать конструктор, например до старта main в статических данных

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


От записи штоле защищено? И на выяснение этого факта надо много часов с отладчиком и дизассемблером? Ужас-ужас, а дустом не пробовали? В смысле, constexpr constructor тоже почему-то не годиццо?
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[11]: Достаточно ли знать С без знания С++ для устройства на работу?
От: smeeld  
Дата: 05.09.14 11:24
Оценка:
Здравствуйте, Abyx, Вы писали:


A>дай ссылку на код или репозиторий, а лучше на конкретные файлы с тестами,

A>а то я нашел пару каких-то dtrace, но юнит-тестов там не было

Ну, скорее всего, лучше начать отсюда, и дальше по ссылкам для построения картины.
Re[5]: достаточно
От: Хон Гиль Дон Россия  
Дата: 05.09.14 11:26
Оценка: :)
Здравствуйте, PMLife, Вы писали:

PML>>>Знакомые в России не могут нанять хорошего С программиста, платить готовы хорошо, но специалистов на рынке мало.

N>>Город, зарплата, небудте голословными.

PML>Москва.

PML>Зарплата по результатам собеседования Для редких специалистов индивидуальный подход.

Если зарплату стесняются озвучить, то и ответ соискателей, наверное, обычный — "ищи дурака за 4 сольдо"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[20]: Достаточно ли знать С без знания С++ для устройства
От: student__  
Дата: 05.09.14 12:02
Оценка: -1 :)
В 2008 г. я работал в одной конторе, в которой мы писали системный софт (на уровне userspace) для промышленных контроллеров, я писал на C вместо C++. Это не были легковесные контроллеры типа PIC, на них крутился полновесный Linux. При этом JVM там была несколько неуместна, потому что кроме системы ещё выполнялась технологическая задача, которая писалась на своём DSL, и кто знает, какого размера она могла быть, а также нужно было ещё гарантировать, что JVM не будет портить время циклов в наших soft-realtimе сервисах. Для многих системных вещей, по крайней мере тех, с которыми я работал, C++ был бы удобнее, и если бы я его знал достаточно хорошо, стоило как раз на C++ всё реализовывать. Но мои коллеги всё писали на C, и поскольку вся система (userspace надстройка над Linux и всякие системные вещи типа коммуникации, диагностики) уже были написаны на C, я решил не выпендриваться с C++. В принципе, некоторые вещи в моём коде были бы лаконичнее и менее костыльны (яркий пример тому — динамические массивы, списки), в C этого нет, и приходится тащить сторонние библиотеки или прибегать к жутким макросным поделкам.

Сейчас некоторые системные вещи, которые I/O-bound, я писал бы на Rust, или чём-нибудь компилируемом под ARM и современнее C++.
Но проблема многих контор в том, что уже есть куча кода, написанная на языке X, а руководство скептически относится к смене инструмента по прихоти новых сотрудников, нужны очень веские причины, чтобы уговорить ввести в разработку новый язык Y. Связано это, очевидно, с боязнью сокращения прибыли в случае ошибок и недооценок дополнительного времени, потраченного на введение в разработку нового языка Y и его поддержки. Переписывать же грамотно спроектированную систему с X на Y, если она работает годами, требуя небольших расширений, не меняющих архитектуру, никто не будет, потому что это неоправданные затраты человеко-часов, непонятно, ради чего. Не бывает системщиков, не знакомых с C, и пока ядра ОС пишут на C, и существуют другие проверенные временем промышленные системы, написанные на C, будут востребованы C-программисты.

Самый быстрый код — компилируемый на C (ещё есть всякие фортраны, но я их не рассматриваю), и поскольку вседа есть приложения (а вернее, их bottlenecks), в которых нужно выжать максимум из железки (например, за счёт использования векторизации, специфичной для конкретного класса процессоров), будет жить и C.
Re[6]: достаточно
От: PMLife http://PMLife.ru
Дата: 05.09.14 12:03
Оценка:
Здравствуйте, Хон Гиль Дон, Вы писали:

PML>>Москва.

PML>>Зарплата по результатам собеседования Для редких специалистов индивидуальный подход.

ХГД>Если зарплату стесняются озвучить, то и ответ соискателей, наверное, обычный — "ищи дурака за 4 сольдо"



1. Обращаю ваше внимание, что это не я ищу такого программиста, соответственно и суммы озвучивать мне будет неправильно.
2. Для большинства компаний неозвучивание сумм публично — это стандартно, нравится вам это или нет: Яндекс, Abbyy, Касперский.
Блог менеджера проектов.
Re[12]: Достаточно ли знать С без знания С++ для устройства на работу?
От: Abyx Россия  
Дата: 05.09.14 12:22
Оценка:
Здравствуйте, smeeld, Вы писали:

A>>дай ссылку на код или репозиторий, а лучше на конкретные файлы с тестами,

A>>а то я нашел пару каких-то dtrace, но юнит-тестов там не было

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


и что это? где сами тесты-то?
In Zen We Trust
Re[21]: Достаточно ли знать С без знания С++ для устройства
От: Хон Гиль Дон Россия  
Дата: 05.09.14 12:41
Оценка:
Здравствуйте, student__, Вы писали:

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

бывает системщиков, не знакомых с C, и пока ядра ОС пишут на C, и существуют другие проверенные временем промышленные системы, написанные на C, будут востребованы C-программисты.

Это все отлично, но мне-то зачем такое писать? Я же конкретно про список отсутствующих в плюсах мегафич С спрашивал Чисто для расширения кругозора — на чистом Це я писал довольно мало и очень давно.

__>Самый быстрый код — компилируемый на C (ещё есть всякие фортраны, но я их не рассматриваю), и поскольку вседа есть приложения (а вернее, их bottlenecks), в которых нужно выжать максимум из железки (например, за счёт использования векторизации, специфичной для конкретного класса процессоров), будет жить и C.


С чего бы коду на C быть быстрее кода на C++? Если автор кода не очень криворук, естественно.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[7]: достаточно
От: Хон Гиль Дон Россия  
Дата: 05.09.14 12:50
Оценка: +2
Здравствуйте, PMLife, Вы писали:

ХГД>>Если зарплату стесняются озвучить, то и ответ соискателей, наверное, обычный — "ищи дурака за 4 сольдо"


PML>

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

Да я ж и не настаиваю Просто без указания зарплаты это разговор ни о чем.

PML>2. Для большинства компаний неозвучивание сумм публично — это стандартно, нравится вам это или нет: Яндекс, Abbyy, Касперский.


Ну так они и не жалуются, что не могут толковых спецов найти
А вот если и зарплата секретная, и с наймом работников проблемы — то вывод сам собой напрашивается.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[13]: Достаточно ли знать С без знания С++ для устройства на работу?
От: smeeld  
Дата: 05.09.14 13:06
Оценка: -1
Здравствуйте, Abyx, Вы писали:

A>и что это? где сами тесты-то?


Там они расписаны ровно настолько, насколько нужно было для организации
определённого наблудения за состоянием определённых объектов и параметров в работающем ядре.
Но точно также, расставлением хуков DTRACE_PROBE, можно организовать мониторинг в рантайме исполнения любой функции,
и наблюдать за состоянием любого объекта в ядре.
Re[14]: Достаточно ли знать С без знания С++ для устройства на работу?
От: Abyx Россия  
Дата: 05.09.14 13:20
Оценка: +1
Здравствуйте, smeeld, Вы писали:

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


A>>и что это? где сами тесты-то?


S>Там они расписаны ровно настолько, насколько нужно было для организации

S>определённого наблудения за состоянием определённых объектов и параметров в работающем ядре.
S>Но точно также, расставлением хуков DTRACE_PROBE, можно организовать мониторинг в рантайме исполнения любой функции,
S>и наблюдать за состоянием любого объекта в ядре.

ты вообще в курсе что такое юнит-тесты? >_<
In Zen We Trust
Re[15]: Достаточно ли знать С без знания С++ для устройства на работу?
От: smeeld  
Дата: 05.09.14 13:33
Оценка: +1 -1
Здравствуйте, Abyx, Вы писали:

A>ты вообще в курсе что такое юнит-тесты? >_<


Вы сами то в курсе, что то что называется модульным тестированием, может
проводится не только так, как Вас учили в ВУЗе, или как оно расписано
каким-то корифеем в книжке. Вы в курсе, что, например, некоторые линуксоиды кернельщики то, что
называется юнит тестированием, проводят вообще с помощью printk(), и этого им за глаза хватает.
Re[6]: Достаточно ли знать С без знания С++ для устройства на работу?
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.09.14 13:38
Оценка:
Здравствуйте, Abyx, Вы писали:

A>нет, конечно они не совместимы на все 100%.

A>в С есть еще есть опасные вещи типа неявного каста void* в любой тип.

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

Кстати, опасность неявного каста void* сильно приувеличенна. void* встречаются на так уж часто в нормально написанной программе.
Re[5]: Достаточно ли знать С без знания С++ для устройства на работу?
От: DarkEld3r  
Дата: 05.09.14 13:50
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Майкрософт — это компания которая поддерживает с++ и развивает его куда больше чем все остальные.

N>Кто-то даже говорит что единственная. Так что неудивительно...
Eсть какое-то подтверждение? Потому что (со стороны) ситуация выглядит несколько другой. Скажем, поддержку нового стандарта они до сих пор, кажется, не доделали. При этом конкуренты (clang, gcc) ещё не принятый С++14 внедряют. Помню ещё читал про какие-то фичи (кажется, про аттрибуты) они заявляли, что-то типа "у нас уже реализовано другим способом и переделывать не будем". Опять же, дотнетом несколько уменьшили роль С++.
Re[2]: Достаточно ли знать С без знания С++ для устройства на работу?
От: 11molniev  
Дата: 05.09.14 14:01
Оценка:
Здравствуйте, Abyx, Вы писали:

A>С не нужен.

A>99% тех, кто на нем пишет — это те что ниасилили С++.
A>что какбэ намекает на то, что люди не способные осилить язык никому не нужны.
A>тем более что есть строгая корреляция между знанием языка и знанием различных технологий и практик программирования.

ххх не нужен.
99% тех, кто пользуются этой штукой — это те что ниасилили ххх+.
что какбэ намекает на то, что люди не способные осилить ххх+ никому не нужны.
тем более что есть строгая корреляция между знанием этой штуки и знанием различных технологий и практик пользования такими штуками.

Знаете, мне почему то кажется что так можно написать к любому отношению ххх/ххх+.
Re[23]: Достаточно ли знать С без знания С++ для устройства
От: IID Россия  
Дата: 05.09.14 14:27
Оценка: +1
Здравствуйте, eskimo82, Вы писали:

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


Это не только в линуксе. В NT тоже самое. И в любом микроконтроллере, где нету стандартного С++ стартапа. Надо стартап правильный написать. И никаких часов отладки с дизассемблером. Просто не надо быть [censored] и надо знять что для Ц/Ц++ есть инициализаторы и финализаторы которые исполняются до/после мэйна стартапом.

Для чистого Си это тоже актуально, странно что ты не в курсе. Статики-то надо инитить, и в _atexit напиханные функции вызывать.
kalsarikännit
Re[24]: Достаточно ли знать С без знания С++ для устройства
От: IID Россия  
Дата: 05.09.14 14:29
Оценка:
Здравствуйте, Хон Гиль Дон, Вы писали:

ХГД>От записи штоле защищено? И на выяснение этого факта надо много часов с отладчиком и дизассемблером?


Ну, справедливости ради, GDB та еще какашка А может автор живую отладку не осиливает, и пользуется исключительно sprintf-ом в файл/компорт/etc.
kalsarikännit
Re[3]: Достаточно ли знать С без знания С++ для устройства на работу?
От: Abyx Россия  
Дата: 05.09.14 14:39
Оценка:
Здравствуйте, 11molniev, Вы писали:

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


A>>С не нужен.

A>>99% тех, кто на нем пишет — это те что ниасилили С++.
A>>что какбэ намекает на то, что люди не способные осилить язык никому не нужны.
A>>тем более что есть строгая корреляция между знанием языка и знанием различных технологий и практик программирования.

1>ххх не нужен.

1>99% тех, кто пользуются этой штукой — это те что ниасилили ххх+.
1>что какбэ намекает на то, что люди не способные осилить ххх+ никому не нужны.
1>тем более что есть строгая корреляция между знанием этой штуки и знанием различных технологий и практик пользования такими штуками.

1>Знаете, мне почему то кажется что так можно написать к любому отношению ххх/ххх+.


да, можно, и что?
у тебя много таких пар ххх/ххх+ ?
In Zen We Trust
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.