2 ms·
> because Clojure / Java wasn't performant enough Languages aren't "performant". You can write good or bad code in most languages, or code that isn't a good fi
by jwr 3y ago
> because Clojure / Java wasn't performant enough
Languages aren't "performant". You can write good or bad code in most languages, or code that isn't a good fit for a language.
That said, there are languages which will make you incur certain penalties, as there is a price to be paid for automatic memory management with garbage collection, for example. These penalties generally do not matter except for edge cases (and HFT trading might very well be one!).
There are also languages which help you write much faster code, but on a higher level. Clojure transducers are a good example: pipelines built of composable transformations, where data sequences are not fully realized between the transformations. These can provide significant performance (and memory allocation) improvements, while still letting you write high-level code.
- moomin 3y agoThere is “the expected performance of idiomatic code”, though, which is what most people mean when they talk about the performance of a language.
- jwr 3y agoYes. And it really doesn't matter in practice. In a larger system this kind of performance won't matter. What will matter is design decisions, data structures, databases and access patterns — things that are much more high-level than "language performance".