I did enjoy fumbling around in ike [1], a javascript-based K playground :-)
"J for⍤0 0⊢ C Programmers" ≢ J for C programmers.
"J for⍤1 0⊢ C Programmers" ≢ J++ for C programmers.
"J for⍤0 1⊢ C Programmers" ≢ J for C++ programmers.
"J for⍤1 2⊢ C Programmers" ≢ J++ for C# programmers.
"J for⍤2 2⊢ C Programmers" ≢ J# for C# programmers.
etc. Then with `commute` ⍨ we can swap the argument order as well: "J for⍨⍤1 0⊢ C Programmers" ≢ C++ for J programmers.
etc.(Assuming C has a single implicit plus, C++ is a 1D array of plusses, C# has a 2D matrix of plusses)
I used d for quite a while, and I still think it's much better than c++. However, it's ultimately just more of the same: an incoherent, tangled mess. Slightly more coherent, slightly less tangled, sure. It's possible to iterate on garbage, but you still wouldn't want to serve it at a restaurant. Worse, it has politics. Prominent d users regularly talk about forking the language/compiler; not because of any specific language pain points, but because of pathological problems with the way the language is developed.
The main compiled/native language to watch imo is cone[1], though most of its ideas are not yet implemented. Zig is also decent, and closer to production-ready.
But you can't use the standard library if so, right? Or rather you can use some parts of the standard library but not others, and some third-party libraries but not others? It was never clearly explained what does and doesn't require GC.
> and is working on a borrow checker type system like in Rust.
But it only started work on that after Rust became established. So why wouldn't I just use Rust, which has a borrow checker I can use today?
The more I think about what we do in Software the more I value readability. I think one of the reasons I love D is that it clearly treats readability as a design requirement.
I just wish there were more jobs out there using Dlang...