4 ms·
I still feel there's space for a middle ground language. One that: * compiles (ie no interpreter/VM required) * is statically typed and has generics * has ex
by nprateem 4y ago
I still feel there's space for a middle ground language. One that:
* compiles (ie no interpreter/VM required)
* is statically typed and has generics
* has exceptions or option types
* doesn't have a borrow checker
* isn't purely functional but has map, filter, pattern matching, etc
* has reasonable traction
Is there anything like this?
- Smaug123 4y ago… F#? As of .NET 6, ahead-of-time compilation is a thing, and I am led to believe it's got substantially better in .NET 7.
- pjmlp 4y agoSome correction though. AOT is already a thing since .NET 1.0, but NGEN has always had the inconvenience of AOT on install with dynamic linking. WinRT brougth MDIL on Windows 8.x, replaced by .NET Native on Windows 10. Mono has always had AOT, specially due to Xamarin for Android. Unity uses AOT for C# code, via translation of IL into C++, IL2CPP. Currently Native AOT only supports CLI and libraries, .NET 8 hopefully will support GUI applications as well.
- hocuspocus 4y agoSwift? Maybe Carbon eventually.
- grose 4y agoZig? I think it ticks all the boxes.
- shakow 4y agoKotlin Native?
- valcron1000 4y agoYou're looking at Ocaml
- gilbetron 4y agoThat's exactly the language I want as well. A mashup of Go and Rust that keeps the best of both. Also, don't forget "compiles fast"! And the garbage collector, although I'd love a language that allowed me to handle memory as well.
- pjmlp 4y agoHere is one, https://dlang.org/ https://dlang.org/
- nprateem 4y agoThanks for posting this. I've never actually looked at D before but it does seem to tick all the boxes.
- emilper 4y agoDlang is a statically typed language that is more productive than most dynamic languages
- gilbetron 4y agoClasses and Templates, ugh :( Beyond that, it actually looks really cool!
- Lev1a 4y ago> a borrow checker Why do you see that a negative though?
- nprateem 4y agoToo complicated :( Overall it provides guarantees I don't need for what I want to write so doesn't justify the additional cognitive overhead.
- henry_viii 4y agoI think something like V is what you're looking for: https://vlang.io/ https://vlang.io/
- richbell 4y agoPerhaps V will be suitable for writing production systems one day. Until then, it doesn't seem suitable for anything outside hobby development.
- henry_viii 4y agoTo be clear, I wasn't telling GP to go and write production systems in V. Even though V has stabilized a lot by now, it's still a pre-v1.0 language and with that it carries potential risks. I suggested to GP to take a look at V, though, because V has a Go-like syntax + it has everything GP is looking for.
- Tozen 4y agoAgree with that assessment, particularly relative to what the GP seems to be looking for. Vlang is a great alternative to check out.
- pjmlp 4y agoJava and C# do compile (GraalVM, OpenJ9 do AOT), .NET has NativeAOT, .NET Native, Mono AOT, IL2CPP. Otherwise, D, Nim, Delphi, FreePascal.
- fbdab103 4y agoNim [0] feels like it ticks a lot of those boxes. Although it has Options I do not think the machinery is as robust as Rust where that feels like a foundational core of the language. [0] https://nim-lang.org/ https://nim-lang.org/
- kaba0 4y agoJava with Graal.