Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I really like the example on their website and the discussion of it from different points of view. It demonstrates how confusing this whole thing is.
We have benchmarks in this paper: Implementation strategies for mutable value semantics (section 7). We studied Swift, which was our starting point to design Val. The benchmarks compared Swift, C++, Scala, and a core subset of Swift for which we wrote a tiny compiler. We benchmarked randomly generated programs and handwritten ones. Overall, we showed that Swift is the fastest language in the overwhelming majority of the benchmarks, only falling short of C++ for programs with extremely large numbers of mutations (>90% of all operations). Our handwritten implementation (~6K LOC, comments included) was on par with Scala and C++.
It seems that with Effekt we are pursuing the same goal, but coming from the opposite direction, perhaps one day we will meet in the middle :). We start from a purely functional language and carefully add effects like mutation.
Related posts
- Is continuation passing style conversion still used as an intermediate language?
- What the imperative shell of an Functional Core/Imperative Shell language looks like
- Algebraic Effects: Another mistake carried through to perfection?
- The Registers of Rust - Without boats, dreams dry up
- An approach to manual memory management and side effect handling system, feedback, ideas and thoughts requested