6 ms·
Crystal, Carp and Nim are my "I hope these catch on" languages. Each has an elegant and intriguingly modern approach to performance targeting programming.
by dleslie 5y ago
Crystal, Carp and Nim are my "I hope these catch on" languages. Each has an elegant and intriguingly modern approach to performance targeting programming.
- dunefox 5y agoI still hope for Common Lisp 2: Electric Boogaloo.
- vips7L 5y agoD is the one for me.
- sidkshatriya 5y agoWhy is D the one for you? Between Crystal, Zig, Nim and D it does seems that D is the most "mature" and production ready...
- vips7L 5y agoPersonally I don’t like the syntax of crystal or nim. As for Zig I’ve used it (I rewrote the xv6 user space programs in it, and plan to rewrite the rest of the kernel in it one day) but for day to day I don’t want to manage memory. I like D because it’s a blend of high level and low level. It’s natively compiled and if GC becomes a problem I can just turn it off in critical sections instead of playing with C FFI shenanigans. It’s an extremely ergonomic language with amazing metaprogramming and error handling (unlike Go). It gives me full control of memory and the cpu via pointers, scoped allocations, and in-line assembly if I need it. Which results in a light weight binary and low memory usage (unlike Java and C#).
- ofrzeta 5y agoIs there any metric on how huge the D community is? It has been there for a long time ..
- ogma 5y agoThe language creator is a complete tool and has repelled anyone intelligent from contributing.
- dnautics 5y agoD has been a bit of a "fail to launch" (not literally) for a long time now (2 decades?). What do you suspect has changed?
- vips7L 5y agoI don’t think much has changed except today’s developers are more open to natively compiled GC’d languages. Two decades ago everything was running in the JVM or CLR. But today we’re seeing investment in Go, nim, etc. I also think two decades ago you didn’t need your app to run everywhere. D can be your web app backend, it can compile to wasm, and it can be compiled to a shared library while still keeping you productive with a GC or without a GC if that’s your thing. This means you have a shared library that your electron desktop app can use or your iOS Swift app can use.
- dnautics 5y agoI think D tried to be too many thing for too many people. The "better C" paradigm is obviously desired (Nim, V, Zig, and others) but the D approach was to add more to C, (as is nim and V)... I guess zig is unique in that it started by removing things from C and adding one big thing and a few small things.
- vips7L 5y agoI love Zig! I started rewriting xv6 in it last year (I should probably get back to that). Just in my day to day I don't want to manage memory, but I still want performance. I'd write Go, but I'm just not a fan of its general approach to anything. I do agree D has a problem of a split community. You see it on the forums with 50% just wanting better C++ and 50% going GC. I'm actually looking forward to C# AOT sometime soon.
- pjmlp 5y agoTwo decades ago we also had natively compiled GC’d languages (VB 6 was the most mainstream one). Sun spoiled their uptake by pushing Java the way they did.
- arthurcolle 5y agoD is dead
- sidkshatriya 5y agoComputer languages are like people: some remain successful throughout their lives, some fade into obscurity after an initial popularity, some bloom in middle age, some are excellent but never gain a following and so forth... It's too late to pronounce any language dead. Not only is it hurtful to those who use the language, the pronouncement may also be wrong! :-) For example, one of the languages that I really like is OCaml. You could say that OCaml is a super niche language like D. It's kinda undergoing a renaissance today with the upcoming OCaml 5.0. Some important software is written in OCaml e.g. Coq, pyre-check, flow, rescript, infer etc. I see OCaml remaining relevant and excellent in the years ahead whether or nor it amasses a huge following. In other words, the number of people using a language is just one of the metrics you should use to assess the language. D has shown a long term resilience that is amazing. The language has been steadily improving and getting refined for a very long period of time which is admirable. So many open source projects run out of steam in a couple of years! Not the case with D! D has a native, gcc and llvm backend. Quite amazing huh!? One thing I would say though about D: The language needs to decide who it wants to be. Go wants to be minimalist garbage collected language with a good concurrency/parallelism story. Rust wants to be a safer C++ with full control on memory. Java wants to be object oriented and garbage collected. Because its mission is not clear, it ends up trying to please everyone but delight no one! The day D decides what it wants to be _and_ this message comes from top leadership it will become much more successful! D can still achieve a lot in the future...I am rooting for D to be more successful in 2020s and beyond!
- pjmlp 5y agoI agree, but for that to happen, they have to actually finish the "next big feature" before jumping into the next one that will bring people into D.
- egeozcan 5y agoI used to like D, but then, the GC story got too complex and nowadays for non GC there are many alternatives and for GC there's always C#, which I see covering 99% of the GC enabled use cases for D. I really hate language bashing, and I'd have liked D to succeed, but I'm not sure where it fits anymore.
- pjmlp 5y agoThe Andrei's book that made me aware of the language was published in 2010. In 2021 Java and C# aren't the same languages as in 2021. The midori team rejoined .NET and has brought many of the learnings into .NET Core, since C# 7.0, C# has been surfacing CLR features that were only available to C++/CLI, and .NET 7 (yeah still one year away) will finally fix the whole ongoing AOT story. There are runtimes like Meadow for embedded development, runing on top of NuttX. Java has been feeling the pressure of languages like Go, and also so also improving its value types, GPGPU programming and AOT story. Also supports embedded development and there is that phone OS out there, even if the language is a subset of the real deal. C++20 has taken most of the top selling D features (auto, modules, if constexpr, ranges,...), even if in a more clunky way, as always. Then GPGPU programming has made it the SQL of graphics programming. While many argue that Go isn't a systems programming language, others ship compilers, GC, unikernels, Nintendo Switch games, and even firmware written in Go. Rust has been gaining steam across Linux kernel, the OSes from Amazon, Google, Microsoft, ARM. Meanwhile D is still trying to find its niche, without offering the ecosystem of the languages above. The community is great, the language could have been a deal changer 10 years ago, specially when Facebook and Remedy Games played with it (imagine Unity with D instead of C#), but now I fear it has lost the opportunity.
- jhoechtl 5y ago> In 2021 Java and C# aren't the same languages as in 2021 IMHO beginning with the addition of Linq C# walks the way of C++. It is increasingly becoming a language of many faces / aspects. Don't know if this is a good thing.
- regularfry 5y agoThat was, what, 2007? I'm not sure "increasingly becoming" is the right description here.
- pjmlp 5y agoPrograming languages are products, like everything else, adapt, or stagnate and slowly die away. Even C23 isn't the same as K&R C.
- 5y ago
- DeathArrow 5y agoD appeared long time ago. If it didn't get traction until now I think it would be hard to get popularity.
- c0ffe 5y agoI used to like D too. At the time there was an alternative standard library called Tango that was more object oriented like Java or .NET, combined with a desktop UI library (desktop apps were my focus at the time) that was similar to .NET's Windows.Form (I think it was called DFL, and surprisingly the site seems to be still online [0]), plus the native speed & simple approach of D1 I really thought it was going to stay relevant for years. Sadly, then D2 appeared, the community fragmented over time, then Tango was disbanded, and at some point I think I moved on to web development with Flash. [0] http://www.dprogramming.com/dfl.php http://www.dprogramming.com/dfl.php
- 22c 5y agoZig is neat, too. Thanks for the reminder about Carp.
- qPM9l3XJrF 5y agoWhat are the strengths and weaknesses of those three?
- sergiotapia 5y agoNim's elevator pitch is looks like Python so it's easy to read/write, compiles down to C and then to native binaries, and runs so fast it'll make your head explode. Here's a project I wrote in Nim that even if you've never even seen Nim before you would understand what's going on. https://github.com/sergiotapia/torrentinim https://github.com/sergiotapia/torrentinim
- fuzzythinker 5y agoDidn't know about Carp. Posted here https://news.ycombinator.com/item?id=28875051 https://news.ycombinator.com/item?id=28875051 since it hasn't been posted since 2018. Would love to know more about it.