Много кода C работает невероятно быстро, потому что люди, которые его написали, были Zen Masters of software. Они должны быть хозяевами, кусая пулю и узнавая не только то, что хочет пользователь, но и то, что хочет компилятор, что хочет O/S, что хочет оборудование, зная структуры данных и алгоритмы, как задние части рук, зная, как сжать все возможное из кэшей на кристалле, а также то, что следующее поколение процессоров & будет делать с их кодом.
Непросто написать программное обеспечение, которое работает и работает правильно. Очень сложно писать программное обеспечение, которое работает 10x-5000X (да, это в 5 тысяч раз быстрее), которое все еще легко читать и понимать, может быть расширено по разумной цене и будет продолжать выполнять на исключительных уровнях в течение нескольких поколений Процессоры впереди.
C, более чем на любом другом языке, заставляет инженера-программиста учитывать тысячи и тысячи мелочей, необходимых для создания действительно замечательного кода. Если вы не готовы к этому, выберите другой язык и дайте программистам C уважение, которого они заслуживают.
После 20 лет написания кода C Недавно я написал приложение, которое превышает требования, требуемые 10 000X. Мне довелось пересмотреть его сегодня, все 500 строк кода. Для каждой строки кода на странице я написал и удалил как минимум еще 10, сравнивал их, проверял и в конечном итоге отбрасывал. Какой смысл в достижении производительности до сих пор выше того, что было указано? Потому что в какой-то момент ничего не получилось бы.
Пользователи часто не понимают своих требований, особенно требований к производительности. Это объясняет, почему так много кода попадает в корзину. Если успех будет успешным, в конечном итоге, они будут нуждаться в этой производительности, чтобы получить преимущество на конкурсе и просто не отставать от спроса.
Печальная истина: «Ничего не получается, как успех». Я бы предпочел, чтобы производительность мне не нужна, чем нужна производительность, которой у меня нет. Если вы приближаетесь к 2-му условию, ваша компания выходит из бизнеса и, вероятно, намного раньше, чем вы думаете. Мне не нравится писать «провалившиеся киты», успех которых в том, что их разрушает. C уходит с моего пути и позволяет мне внедрять новшества так, как ни один другой язык не делает.
Это будет трудно найти числа, которые доказывают то, что на самом деле ложно. –
Преждевременная оптимизация - это корень всего зла: я успешно записал встроенное программное обеспечение в Python. В конечном итоге вам необходимо сбалансировать стоимость написания на более низком уровне, например, C, а также преимущество RAD на языке более высокого уровня (и стоимость с точки зрения производительности). – jkp
будет осторожно относиться к досрочному аргументу оптимизации. Если вычислительная мощность ограничена, и определенный объем работы необходимо выполнить в режиме реального времени или в режиме реального времени, и вы выбираете язык, требующий большей вычислительной мощности для работы, чем у вас, вы ввернуты на крыльях, потому что вы теперь нужно начинать с способного языка. Больше информации на http://weblogs.mozillazine.org/roc/archives/2005/11/immature_optimization.html –