Odpovídáte na názor ke článku Bezpečné programování v C++ II.
[17] Jestli mluvíte o pre-processoru, který nebezpečné konstrukce nepustí dál, tak to by šlo. Jinak to nemá smysl, protože zase spoléháte jen na to, že programátor něco neudělá. Jenže programátoři jsou lidi, a dělají velkou spoustu chyb. Tomu nelze nijak zabránit. Jinak C# se mi líbí, a nevidím důvod používat okrajový jazyk typu F#.
Výjimky samozřejmě neřeší vše, ale je to potřebný mechanismus. Právě to, že C/C++ programy tiše hnijí, když se něco nepovede, je příčinou velké spousty problémů.
Strcpy budete těžko ověřovat, když máte například pointery na funkce. Prostě při analýze nebudete tušit, kdo nebo s jakými parametry zavolá kód, který strcpy použije. Naproti tomu v .NETu/Javě to není problém, protože neexistuje možnost, že by došlo k nepravostem.
Jak jsem psal, C++ by blyo možné použít, pokud byste zajistil, že se nebezpečné konstrukce nebudou vyskytovat (ano, preprocessor může být řešení), zahodil POSIX, zahodil kompatibilitu s ANSI C, a napsal nové frameworky používající bezpečné konstrukce. Ovšem výsledkem by spíše něco jako MS C++/CLI.
Co konkrétně máte na mysli "divokým imperativním kódem"?