LINUX.ORG.RU

Есть пару вопросов про C++

 , , ,


0

4

Если будет у кого-то время для ответа.

1. STL+IDE - это благо или зло? Ускоряет процесс создания или это для быдлокодеров, а программисты используют только Vim и встроенные инструменты?

2. Если в планах только системное программирование в Linux на C, можно ли обойтись без ООП C++ или всё же закупаться книгами по крестам?

Заранее благодарен.

Ответ на: комментарий от bodqhrohro_promo

Для этого нужен логический анализатор. Для анализа цифровых сигналов самое то, но не всегда железо ограничивается цифрой, иногда без осциллографа не обойтись.

BRE ★★
()
Ответ на: комментарий от bodqhrohro_promo

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

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 3)
Ответ на: комментарий от le_legioner

Благодарю. Ты пишешь на Си или на крестах?

То на одном то на другом. Изначально на Си писал, потом начал переходить на ++.

Кстати тоже не гладким был переход от процедурного в ооп, и когда я вообще, прям вообще не умел кодить даже процедурно, но мнил о себе многое, и посмотрев на код на ++, даже не мог подумать что это я недорос до такого, и даже позволял себе такие комменты Интервью Э. Таненбаума русскоязычному сообществу разработчиков и пользователей ОС MINIX 3 (комментарий)

Но после, когда появилось время ознакомиться с ++ получше, я ознакомился, и теперь обратно в чистый Си не хочется, когда приходится на нём писать, я немного грущу, что это не на ++.

bonta ★★★★★
()
Ответ на: комментарий от bodqhrohro_promo

Вот в том-то и дело. Ссылки, которые можно создавать, удалять, присваивать. Я помню, пока имел дело с Паскалем нифига не мог понять указатели. Как только с Си познакомился, всё сразу встало на свои места.

rupert ★★★★★
()
Ответ на: комментарий от rupert

Ну да, ссылки сильно абстрактны, вот в похапэ они сделаны куда понятнее: есть zval-контейнер, на него ссылаются, пока не изменишь — будут ссылаться на один, зашкваришь его ссылкой ref=1 — меняться будет у всех, и хрен его уже поменяшь на уровне языка обратно на ref=0. В плюсах это чисто на уровне разбора и компиляции присутствует в виде lvalue/rvalue, причём из-за наркоманского синтаксиса с ними муть. Чего только стоит позиционность const и многозначность &/*. Даже в сишке оно пованивает, ибо * и для умножения, и для разыменования, и для объявления указателей, а в плюсах вообще бардак устроили, сделав использование ссылок как указателей, только наоборот.

bodqhrohro_promo
()
Ответ на: комментарий от bonta

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

То есть, сейчас ты посоветовал бы сразу учить ++ и не тратить время на Си?

le_legioner ★★
() автор топика
Ответ на: комментарий от le_legioner

То есть, сейчас ты посоветовал бы сразу учить ++ и не тратить время на Си?

Это разные, хоть и близкие, языки, предназначенные для разного рода задач. Если кресты почти всегда можно заменить сями, хоть зачастую это будет и геморнее, то си в целом ряде случаев крестами не заменишь, или будет что-то ужасное. (Можно, конечно, на крестах использовать только возможности си, но тогда это ненастоящие кресты.) Если речь идёт об устройстве на конкретную фирму, то вопрос этот правильнее выяснять у них. На одну фирму ты придёшь, не зная шаблонов, и они скажут: тю... А на другой начнёшь шаблонить, и тебе скажут, что здесь так не принято. Обе точки зрения имеют право на существование, т. к. у шаблонов, как и у классов и пр. кресовых фич, есть и достоинства, и недостатки. Обычно на самом нижнем уровне используют си, уровнем повыше — кресты, на самых верхних — яву, питон, бейсик, баш и прочее.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

но тогда это ненастоящие кресты

Батюшки святы, да сколько можно ересь нести?

Даже если из C++ вы будете использовать только ссылки или только constexpr, ненастоящим С++ от этого не станет.

И завязывайте вы срать в неокрепшие умы.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Ok.

#include <stdio.h>

int main()
{
  printf("Hello, World!\n");
  return 0;
}

Это си или кресты? А если я stdio.h заменю на cstdio, что-то принципиально изменится? Любой скажет, что это си. Но откомпилирует ли это g++? Очевидно, что да. Следует ли отсюда, что это настоящие кресты? Очевидно, что нет, потому что код содержит только те возможности, которые были унаследованы из си.

Теперь другой вопрос. На фирме принципиально не используют шаблоны и виртуальные функции, а также любые не pod-типы. А человек много месяцев потратил на изучение именно этого, а на более низкоуровневые вещи времени не хватило. Он пришёл на фирму со своими шаблонами, а ему говорят, что так мы не работаем. А он по-другому не умеет. Будет он вас благодарить за ваши православные советы?

Я не агитирую ни за си, ни за кресты, а исхожу из того, что прочитал в топике и в треде. А если что-то неясно, то призываю уточнить у работодателя. Вы же, похоже, агитируете за кресты, не принимая во внимание, нужно оно ТС'у или нет.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

Я не агитирую ни за си, ни за кресты, а исхожу из того, что прочитал в топике и в треде.

Вы упорно говорите глупости. Например:

* совет учить С, а затем C++ вреден. Учить нужно либо то, либо другое, но никак не учить C для того, чтобы потом учить C++;

* С++ остается C++ даже если используется только очень маленькое его подмножество.

Поэтому, пожалуйста, перестаньте срать в мозги непосвященным.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

* совет учить С, а затем C++ вреден. Учить нужно либо то, либо другое, но никак не учить C для того, чтобы потом учить C++;

* С++ остается C++ даже если используется только очень маленькое его подмножество.

Вы противоречите сами себе, потому что си хоть и не является подмножеством си++, но настолько близок этому подмножеству, что в каких-то книжках для начинающих может быть чистое его подмножество, разве что менее строгое. Но если в книжке автор будет рекомендовать явно приводить типы и внимательно читать предупреждения, как ошибки, выставив в gcc опции -Wall и -Werror, то получится почти чистое подмножество си++. А значит 2-ое ваше утверждение противоречит первому.

Однако вы умалчиваете, что в большинстве книжек по Си++ для начинающих многие функции стандартной библиотеки либо вообще не будут описаны, либо в лучшем случае будут вкратце упомянуты, а упор будет сделан на фичи си++, которыми эти функции можно заменить. Т. е. теоретически да, стандартная библиотека си является подмножеством си++, но практически в книжках по си++ конкретно это подмножество освещается довольно слабо, а то и вообще не освещается, когда есть возможность заменить его шаблонами, си++-строками, переопределёнными операторами ввода/вывода и операторами new и delete.

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

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

Слив засчитан

Вы еще зачтите количество дерьма, которое вы ТС-у выплеснули.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

совет учить С, а затем C++ вреден

Это все еще твое личное, ничем не подкрепленное мнение.

anonymous
()
27 мая 2018 г.

https://tonsky.livejournal.com/314598.html

Опять же, это совершенно случайный фактор (высокий порог входа) и даже почти что контринтуитивный, но я считаю, что он как раз и сыграл значительную роль в успехе Vim. Ну а дальше, когда все частые ситуации разучены, начинается такое же плато, плюс включается Стокгольмский синдром :)

greenman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.