D is an interesting language, but I don't really know much about it. Seems like the first time I ever heard of D was in a BBS files listing back in the 90s. That must have been right around when it first came out. Since then I hear about it from time to time, but never checked it out, until yesterday, when I happen to have finally downloaded the compiler. I'm now looking for code samples, tutorials and such to get started. Would love to see how this trading platform is implemented, but I doubt source is available. I've seen Walter Bright posting on here from time to time, and get a good impression of him from his comments. Anyone else have experience with D they'd like to share?
It's basically C++ done right. Much more easy to learn than C or C++ and be productive in it from day one. It won't become boring or annoying like Go, because the language is loaded with features and there's always something new to learn. It's garbage collected, so you don't need to worry too much abot allocating and freeing memory, but it's helpful to have an insight and understand how it works (there are articles about it on dlang.org). Of course, one could also disable it. Of course Go has many more good quality libraries for just about anything you could dream of, but D interfaces very well with existing C and C++ libraries.
I'm a C guy and have played around with C++ back in the day, but have come to despise the language, with all of its increasing complexity, warts, design flaws, and footguns. I'm highly suspicious of Rust and Go as well. I prefer the C way of doing things, with no garbage collector, though I do tire sometimes of all the extra grunt work that goes into implementing anything in C. Looks like D has a lot of features geared toward making development faster, without loading up with too much complexity like C++. Just read about the 'better C' mode which sounds interesting. I like that it's made to integrate seamlessly with C libraries. Are there any good examples of larger programs or libs written in D you could point me towards, so I can learn by example the 'D way' of doing things?
I'm a D newbie myself. Existing larger programs usually use advanced language functionality (like pure functions, generics, templates), which is a bit overhelming when learning a new programming language. You can use this resources page and pick up whatever interests you:
Unless that was the very late 90s that might not have been D, since D was born roughly in 2000 ish I think.
Anyway D is a good language. It pays my bills.
You take from D what you bring. If you basically want to write C++ with nicer OOP you can, if you want to write heavy-metaprogramming functional code then you can as well.
The only thing I would say is that D is a language that does take a little programming experience to really appreciate.
If I may ask, what company pays you to develop D, and is it a good place to work? I just had a look at the D language jobs page, and although a couple of the entries looked promising (like the one investment company), the majority (same as for any other programming language) were completely uninteresting, or were the usual toxic, woke companies using horrible software stacks that I prefer to stay far away from. Frankly, the idea of even looking for a programming job in this day and age, or any job at all, having to put in hundreds of applications to fake job listings, going through dozens of interviews only to be rejected, leetcode, being harshly judged on every little thing, fills me with despair. It's a terrible time to be alive.
Symmetry Investments. Fascinating place to work although somewhat detached from the "real" e.g. we make a product that's only used inside the company. A very thoughtful and introspective culture.
> Woke companies
Having met people from most D companies I'm not sure I know what you mean.
Yeah, Symmetry is the one I was looking at. I clicked on their links and did some reading. The initial impression is a positive one.
'Woke' may be the wrong term, although that is a component. Initially, the idea of being 'woke' comes from The Matrix, where it's positive, meaning being clued in to what's really going on in the world; i.e. that everything is a lie and illusion. (The movie is highly symbolic of the times we're living in.) Recently however, the term has been hijacked, and is now used in reference to extremely toxic, divisive ideology, like 'critical race theory' to name one particular example, which I refuse to come even within a hundred miles of, as it's so corrosive. I'm not a goosestepper or Kool-aid drinker, of any flavor.
In reference to tech stacks, many of these companies use stacks that I just find completely repellant, like anything to do with Javascript, for example. As a C guy, I like to keep to the low level basics, and avoid all these big, heavy, bloated frameworks. That's why D is looking interesting, as I can stay at a lower level while avoiding the sometimes drudgery of C.
Truth be told, I'm not even a 'programmer' per se, if the word is taken to mean only doing that One Thing, as a specialist. I'm a polymath, and my fingers are in just about every pie. I feel just as comfortable rebuilding an automobile, or doing plumbing or electrical work, or any number of other things, besides just programming. (Specialists are ubiquitous these days, and they often look down on generalists who do more than Just One Thing, as if we are somehow inferior.)
Computing is what I have been doing for the longest; among other things I developed my own Linux 'distro' from scratch, which is lightweight, clean, and fast, even on old hardware. Right now I'm in the middle of switching it over to Musl Libc, and setting it up for cross compiling to x86-64, i686, and ARM.
Is your company still actively hiring right now? I see they have at least in the past been in search of technical writers to create documentation. Writing and breaking down technical things to explain them to other technical people or end users is one of my strong points. I've done that in the past as a satellite communications engineer. Seems like a job I'd really enjoy. I'm currently self employed in fertilizer sales, although COVID has wrecked my business; thus me kicking around the idea of applying somewhere.
I also dabble in stock and options trading BTW, although I'm not very good at it; that's what caught my eye on this article, since it's about D and HFT.
D is an excellent mix of good design decisions, metaprogramming (your macros can run arbitrary code at compile time, a la zig), and a nice standard library. They also have some of the best API-building libraries available, and the compiler has the ability to run source code almost as if it were interpreted and it caches binaries under /tmp/ to avoid work if the source is unchanged.
Yeah, I was poking around in the compiler source and noticed a D file with the #! prefix so it could be executed in interpreted mode. Just like tcc does, except I guess it would work for any valid D program, unlike tcc which won't compile all C code. That's a great feature to have. I do get the impression from looking at it at a distance that it's well designed.