The Curious Engineer

All blogs / Other languages

soc.me

soc.me

Other languagesCompilersJava / JVM

Posts
84 from 12 May 2017 to 29 Aug 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://soc.me/feed/

2026 2

  1. Language Design: Unions in Bytecode (WIP)
  2. Language Design: Unions in Memory (WIP)

2025 3

  1. Language Design: Multi-Color Number Literals (WIP)
  2. Language Design: Equality & Identity – Part 5: Fixing Java
  3. Fixing Java

2024 4

  1. Language Design: Rust's Almost-Rules
  2. Rust's Almost-Rules
  3. Library Design: Naming Conventions – Part 3: Option & Result
  4. Option & Result

2023 2

  1. Language Design: Rust's Struct Initializer Syntax Was a Mistake
  2. Rust's Struct Initialization

2022 23

  1. Time to wind down Rust feature development
  2. Language Design: Drop `break` and `continue`
  3. Drop break and continue
  4. Language Design: Unified Condition Expressions – Comparison with Rust
  5. Comparison with Rust
  6. Language Design: `Result` naming
  7. Language Design: Schemas as Source Code
  8. Language Design: Typing Terminology
  9. Language Design: Useful Syntax Sugar
  10. Useful Syntax Sugar
  11. Language Design: The Cost of Everything
  12. Language Design: Fields & Methods & Properties? – Pick Two!
  13. Fields & Methods & Properties? Pick Two!
  14. Language Design: Familiarity – Familiarity is a tie-breaker, not a self-sufficient argument
  15. Familiarity
  16. Language Design: Equality & Identity – Part 6: Fixing Rust
  17. Fixing Rust
  18. Library Design: Naming Conventions – Part 5: Streaming
  19. Streaming
  20. Library Design: Naming Conventions – Part 4: Lookup
  21. Naming conventions lookup
  22. Language Design: Against Mixed-cased Type Names
  23. Use consistent casing

2021 6

  1. Language Design: Annotations Obsolete Modifiers – Failed Attempts
  2. Language Design: Annotations Obsolete Modifiers
  3. Obsolete: Modifiers
  4. Failed Attempts
  5. Language Design: Four Kinds of Unions
  6. Unions

2020 4

  1. Language Design: Popular, but Wrong
  2. Popular, but Wrong
  3. Language Design: Stop Using `<>` for Generics
  4. Use [], not <> for Generics

2019 10

  1. Language Design: Modern and Minimal
  2. Modern & Minimal
  3. Language Design: Binary Operators are Overused
  4. Language Design: Unary Operators are Unnecessary
  5. Language Design: Unified Condition Expressions – Implementation
  6. Unnecessary: Unary Operators
  7. Overused: Binary Operators
  8. Implementation
  9. Language Design: Equality & Identity – Part 4: Fixing Haskell
  10. Fixing Haskell

2018 13

  1. Language Design: Comparing and Sorting
  2. Comparing & Sorting
  3. Language Design: Use Consistent Keyword Length
  4. Use consistent keyword length
  5. Library Design: Naming Conventions – Part 2: Conversion
  6. Conversion
  7. Library Design: Naming Conventions – Part 1: Creation
  8. Creation
  9. Language Design: Unified Condition Expressions – Exceptions
  10. Exceptions
  11. Language Design: Rust's Into in Scala
  12. Language Design: Unified Condition Expressions – Introduction
  13. Introduction

2017 17

  1. Language Design: Package Objects in Scala
  2. Package Objects in Scala
  3. Language Design: Equality & Identity – Part 1: Overview
  4. Language Design: Equality & Identity – Part 2: Problems
  5. Language Design: Equality & Identity – Part 3: Solution
  6. Overview
  7. Problems
  8. Solution
  9. Language Design: (More) Mistakes of Rust
  10. Language Design: Generics
  11. Language Design: Use `ident: Type`, not `Type ident`
  12. Use ident: Type,not Type ident
  13. Type Ascriptions & Generics
  14. Language Design: Fixing Rust's mistakes – Syntax
  15. Rust's Design Mistakes
  16. Language Design: Implicit Numeric Conversions
  17. Implicit Numeric Conversions