> Товарищи эксперты, а подскажите, имеет ли смысл учить С, если ранее его > не знал, имеется ввиду с перспективой хотя бы на лет 5-10? Это каждый решает для себя сам. Однако нужно принимать во внимание, что си -- это единственный в своем роде язык, обладающий возможностью собирать автономные программы, не требующие никакой поддержки со стороны среды исполнения. Также, в отличие от других распространенных языков, он является языком, ориентированным преимущественно на выражения, нежели на операторы. Это, с одной стороны, позволяет компилятору производить эффективный код, но с другой вызывает определенные проблемы с освоением языка у тех, кто начинал программировать на языках, интенсивно использующих структурное программирование и, в частности, оператор присваивания. Это языки типа паскаля и программирование в ООП стиле на си-кросскросс. Они и продолжают так программировать, создавая "состояния" и меняя их по ходу выполнения. Самый большой недостаток языка -- неинтуитивность, что ведет к уязвимостям и к труднообнаруживаемым ошибкам. Однако, если внимательно читать стандарт и строго ему следовать, то каких-либо проблем не возникает, мало того, эта "неинтуитивность" позволяет создавать конструкции, невозможные в парадигме структурного программирования. В отличие от других языков, разного рода учебники и прочие метпособия не раскрывают нюансов синтаксиса и особенностей применения языка даже на треть -- чтобы понять язык и правильно его использовать, нужно обязательно читать стандарт. Надо сказать, что среди всех языков программирования только два языка имеют внятный и качественный стандарт, покрывающий все нюансы применения -- это ада и си. Остальные, в том числе и iso/iec 14882 -- полный мутняк, написанный индусами.
|