4 ms·
The choice of Java is a bit unfortunate :( The author could keep the "sleek and focused" approach with CLI tooling and get even better type system and platform
by neonsunset 2y ago
The choice of Java is a bit unfortunate :(
The author could keep the "sleek and focused" approach with CLI tooling and get even better type system and platform with C# and .NET instead.
- rizky05 2y ago[dead]
- threeseed 2y agoI would argue JVM right now is by far the best platform. Virtual Threads is making its way through the ecosystem and Scala is serving as the R&D platform demonstrating how cutting edge features can be implemented e.g. https://docs.scala-lang.org/scala3/reference/experimental/cc.html https://docs.scala-lang.org/scala3/reference/experimental/cc...
- neonsunset 2y agoIt is strictly not cutting edge. Maybe it would have been about 10 years ago. The tooling is nowhere near as productive and the language selection leaves a lot to be desired. .NET as a platform has far superior implementation of asynchronous and concurrency primitives both performance and UX-wise, and there are more performance wins down the line too.
- exceptione 2y agoWell, at least he doesn't use a dynamically typed language. Do you have a hunch when algebraic datatypes will arrive for c#? I know there is now a sort of proposal, but will it take years?
- neonsunset 2y agoIt will take some time because there is a lot of work to be done for C# language features. I think they are partially overrated because 1. C#'s type system is quite expressive already and 2. C# has excellent pattern-matching support. Sure, union type definition is a nicer experience in F#, but outside of it there are surprisingly few differences in terms of user experience.
- exceptione 2y agoComing from the Haskell world, I sorely miss the speed of nailing a precise and elegant data model with sum types. Exhaustiveness checks are a big one for me. For each default case I wish that my type checker would be smarter. I know that records can have multiple constructors, but it escapes my why we cannot seal those records so exhaustiveness checks are free. A default case is somewhat like a final block for an exception, whereas I want compile time cursing. F# Sums are indeed nicer (also tons better syntax than Typescript uses).
- BoingBoomTschak 2y agoDoes Java have these problems? https://isdotnetopen.com/ https://isdotnetopen.com/ Encountered that website while seriously considering F# (now more interested in Idris 2 amongst ML offshoots).
- neonsunset 2y agoThis site is obsolete/irrelevant, it is best to ignore Miguel de Icaza's criticism of .NET as of the last 3 or so years. He went off to (supposedly?) greener pastures of Swift in Apple lands. Take from that what you will. I knew someone would post it though :)
- verdverm 2y agoJava has a different, but similar problem https://www.theverge.com/2012/4/13/2945536/google-oracle-java-patent-copyright-lawsuit https://www.theverge.com/2012/4/13/2945536/google-oracle-jav...