We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
The Ideal Programming Language • Richard Feldman & Erik Doernenburg
Designing a perfect programming language is not the goal, but a language that balances testability, garbage collection, and type checking.
- Testability is crucial when designing a programming language.
- The three major types of garbage collection are incremental, generational, and tracing garbage collection.
- Tracing GCs have the highest throughput over a given period of time, but are least appealing.
- Automatic reference counting has its own set of trade-offs.
- Ergonomic type checking is important for a language.
- Inspired by Lisp-like languages, allowing for concise and expressive code.
- High-level abstractions for concurrency should be considered.
- Low-level data parallelism on the CPU, such as SIMD, is also important.
- Ideal language should have a good package manager and type checking.
- Not trying to design a language for web frontend stuff, but rather for internal tools.
- Sometimes, a language does not need to be perfect, just decent.
- Ideal language should have an ergonomic type checking and fast compilation.
- Inspired by Kotlin, having a good concurrency model for performance.
- Some languages, like Rust and Kotlin, have good concurrency models.
- Considered object-oriented programming, with interfaces and dependency injection.
- Subtractive programming is a key part of functional programming.
- Ideal language should support immutable data structures.
- High-quality dev talks can be found on Gotopia.tech.