Our great sponsors
jsource | kdb | |
---|---|---|
18 | 7 | |
631 | 401 | |
2.7% | 1.7% | |
9.7 | 4.0 | |
2 days ago | 24 days ago | |
C | HTML | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jsource
-
Crafting Self-Evident Code with D
The one other example I know that morphs the language to that extent and to the detriment of readability by C programmers is the J interpreter[1,2]. But, once again, nobody (that I’ve read) claims it’s good or clear C. (Good C for those who speak J, maybe; I wouldn’t know.)
For a way to morph C syntax that does make things better, see libmill[3].
[1] https://code.jsoftware.com/wiki/Essays/Incunabulum
- Show HN: Gemini client in 100 lines of C
-
Want cleaner code? Use the rule of six
No, it was rhetorical, because it's obviously (to an APL-family programmer), not bad!
Your cultural prejudice is showing. There are good reasons APL is written the way it is, and this example is simply bringing those benefits to C by writing it in the dense APL style. There are other APL derivatives, like J[1] that are written the same way. These projects are well-maintained. They aren't collapsing under a load of technical debt. The style works. To them, it's clean code.
-
Jd
You can view the code, but is not open source: https://github.com/jsoftware/jsource/blob/master/license.txt
-
Someone earlier linked to Arthur Whitney's style of coding in the comments. Can we discuss this further? I am disturbed by what I saw.
This is the same dense style used in J.
-
Why does old C code often declare functions or global variables in the scope it's used, rather than at the top of a source file or a header file?
All-in-all this example doesn't seem too bad. It's clear what happens and is easy to follow. If you wan't to see something remarkably terribly, check out Whitney style. It's used in APL/J/K family interpreters. Keep in mind, financial institutions run that code.
- Ask HN: Examples of Unusual Code Formatting Styles?
-
if you code in J for 6 months, you will no longer think in loops, and if you stay with it for 2 years, you will see that looping code was an artifact of early programming languages, ready to be displayed in museums along with vacuum tubes
good first issue
kdb
-
Function Composition in Programming Languages – Conor Hoekstra – CppNorth 2023 [video]
> And later array languages have mostly abandonned the crazy names in favour of actual words
Sharing this without comments:
- Want cleaner code? Use the rule of six
-
if you code in J for 6 months, you will no longer think in loops, and if you stay with it for 2 years, you will see that looping code was an artifact of early programming languages, ready to be displayed in museums along with vacuum tubes
Ah, after all these years, you've finally found it: a worthy opponent for kdb source code.
- An oral history of Bank Python
-
Are you interested in learning about low latency zero allocation programming?
For the curious, when I first ran into it it looked like this. That is not minified code, it's how people who write K write Java code. It was expected you would take that file and include it in your sources somewhere. The KDB protocol is actually very simple, basically writes out the types with a type tag, length and then the data in binary.
What are some alternatives?
arctic - High performance datastore for time series and tick data
tinygrad - You like pytorch? You like micrograd? You love tinygrad! ❤️ [Moved to: https://github.com/tinygrad/tinygrad]
sqlite_http_csv - simulation kdb+ http behavior for sqlite.
Agrona - High Performance data structures and utility methods for Java
b-decoded - arthur whitney's b interpreter translated into a more traditional flavor of C
cinder - Cinder is Meta's internal performance-oriented production version of CPython.
ancient-c-compilers - Very old C compilers
ZLib - A massively spiffy yet delicately unobtrusive compression library.
javakdb - Using Java with kdb+
boot - Build tooling for Clojure.
data_jd - Jd
crapbenchmarks