Learning to read Arthur Whitney's C to become smart (2024) 🔥 Горячее
Автор изучает необычный стиль написания кода Артура Уитни, создателя языков программирования A, K, Q и высокопроизводительных баз данных kdb и Shakti, используемых в финансовой индустрии. Основное внимание уделено компактному интерпретатору языка K размером всего около 50 строк на C, который демонстрирует уникальный подход Уитни к программированию. Код насыщен макросами и использует необычные синтаксические конструкции C, что делает его трудным для понимания, но потенциально эффективным для быстрого восприятия всей логики целиком.
Автор мотивирован изучению этого стиля кода по нескольким причинам: желание писать более компактный код, возможность более быстрого понимания сложных систем при концентрации всей логики в одном месте, а также то, что чтение кода стало важнее его написания в его работе. Интересно, что Уитни использует тип char * как для строк, так и для целых чисел, что является одним из его необычных подходов. Несмотря на первоначальную сложность, автор смог разобраться в большинстве частей кода к концу изучения.
Комментарии (149)
- Код стиля Артура Уитни (Arthur Whitney) — это микро-DSL на препроцессоре C, который вдохновлялся APL; читать его лучше всего, если вы знакомы с APL, иначе он может казаться нечитаемым.
- Подход «сначала напиши, потом сделай это читаемым» противоположен современному подходу «сначала сделай это читаемым, потом напиши код».
- Сторонники и противники такого стиля спорят о том, является ли это «искусством» или «самообфускацией»; в то время как другие считают, что это просто вопрос привычки и что читаемость может быть улучшена с помощью современных инструментов.
- Некоторые комментаторы отмечают, что стиль кода Уитни может быть трудным для чтения, но он также может быть более выразительным и эффективным для тех, кто привык к APL.
- В конце концов, обсуждение пришло к выводу, что важно не только то, как стиль кода влияет на читаемость и поддерживаемость, но и то, как команда работает вместе, чтобы поддерживать и развивать код в течение длительного времени.
Zoo of array languages
Пользователь ktye поделился информацией о языке программирования K, который представляет собой диалект APL, оптимизированный для быстрых вычислений. Язык использует синтаксис, похожий на APL, с операторами для сложения, вычитания, умножения, деления и других операций, включая специальные функции вроде decode и encode.
Код включает примеры работы с массивами, включая создание, манипуляции и агрегацию данных. Есть поддержка условных операторов, циклов и работы со строками. Также представлены ссылки на документацию и другие ресурсы, включая реализацию на разных платформах.
В сообщении показано, что K — это лаконичный и выразительный язык, подходящий для работы с данными и математическими вычислениями. Он имеет функционал, схожий с другими языками программирования, но с акцентом на краткость и эффективность. Интересно, что пользователь адаптировал язык для разных платформ, что делает его универсальным.
Комментарии (46)
- Обсуждение охватывает APL, J, K, Q, BQN, Uiua и другие языки массивов, но не упоминает R, MATLAB, Nial и другие, что вызывает удивление.
- Участники обсуждают, какие языки считаются "массивными", и почему некоторые, такие как MATLAB и R, не упоминаются.
- Обсуждается, какие языки считаются "массивными", и почему некоторые, такие как MATLAB и R, не упоминаются.
- Участники обсуждают, какие языки считаются "массивными", и почему некоторые, такие как MATLAB и R, не упоминаются.
- Участники обсуждают, какие языки считаются "массивными", и почему некоторые, такие как MATLAB и R, не упоминаются.