Делает ли вас Delphi лучшим программистом? Код Object Pascal более читабелен?
Существует алгоритм с загадочной константой , прославившийся в коде Quake III Arena C Джона Кармака для быстрого вычисления обратного квадратного корня из 32-битного числа с плавающей запятой.
Table of Contents
Понимание Кодекса
Он основан на методе Ньютона для оценки корней. Кроме того, он преобразует число с плавающей запятой в целое, использует битовый сдвиг и начинается с приближения √2 ^ 127. Закомментированная строка позволяет провести дополнительную итерацию для улучшения оценки, которая не использовалась в Quate III Arena. Вы можете прочитать об этом больше в Википедии или посмотреть несколько видеороликов на YouTube по этой теме [включая очень глубокое погружение ]. Вот хорошее видео высокого уровня :
Может ли Delphi сделать это лучше?
Пользователь Facebook Toon Krijthe показал, насколько понятнее и проще был бы код, если бы он был реализован на Object Pascal / Delphi.
Он использует ключевое слово absolute для сопоставления числа с плавающей запятой с целым числом, что позволяет избежать «злонамеренного взлома битового уровня с плавающей запятой». Это то, что мне нравится в Delphi и Object Pascal: он дает вам доступ к указателям, необработанной памяти и т.д., но не заставляет вас использовать его, когда вы не хотите / не нуждаетесь в нем. Более короткий код не всегда легче понять, просто взгляните на любое регулярное выражение, но это улучшение, потому что оно удаляет так много постороннего кода. Намного более читабельным.
Object Pascal настолько удобочитаем, что делает программистов лучше, поскольку делает их код более читаемым и поддерживаемым. Не поймите меня неправильно, вы можете писать спагетти на любом языке программирования / синтаксисе, но начать с удобочитаемого языка поможет. Вот почему существует так много «устаревших» программ Delphi: они успешны и удобны в обслуживании. Код, который не работает или не обслуживается, выбрасывается или переписывается.
Нужна более эффективная математика?
Если вы ищете более быстрые математические процедуры для Delphi, ознакомьтесь с высокопроизводительной библиотекой FastMath от Embarcadero MVP Эрика ван Бильсена из Grijjy.
FastMath — быстрая математическая библиотека для Delphi
FastMath — это математическая библиотека Delphi, оптимизированная для обеспечения высокой производительности (иногда за счет невыполнения проверки ошибок или небольшой потери точности).
Это делает FastMath идеальным решением для высокопроизводительных математических приложений, таких как мультимедийные приложения и игры. Для еще большей производительности библиотека предоставляет множество «приблизительных» функций (все они начинаются с Fast
-префикса). Это может быть очень быстро, но вы потеряете некоторую (иногда удивительно небольшую) точность. Для игр и анимации эта потеря точности обычно вполне приемлема и компенсируется увеличением скорости. Но не используйте их для научных расчетов …