10 ms·
DConf 2019 in London
- zerr 8y agoConsidering the development and pace of modern C++, where does D stick nowadays?
- Profan 8y agoD is still miles ahead of C++ if you care about compile times, even in pathological cases (like using tons of templates and/or CTFE in your D code).
- zerr 8y agoWhen I hear about fast compile times, like e.g. for Pascal, immediately comes to mind - how good is optimization of the resulting executable? AFAIK, the back-end, not the front-end/parsing, takes most time when compiling C++. So in case of GCC or LLVM based D compilers, the time should be similar?
- atilaneves 8y ago> AFAIK, the back-end, not the front-end/parsing, takes most time when compiling C++ Is there a reason why you believe that to be true? > So in case of GCC or LLVM based D compilers, the time should be similar? They are not: https://atilanevesoncode.wordpress.com/2018/12/31/comparing-pythagorean-triples-in-c-d-and-rust/ https://atilanevesoncode.wordpress.com/2018/12/31/comparing-...
- thepapanoob 8y agotry D! its a seemingly weird mixture of scripting languages and compiled ones. but ill all makes so much goddamn sense once you try it :)
- vaylian 8y agoTotally agree. It's been a while since I have last used D but my experience is that it hits a sweet spot between classical C-like compiled programming languages and scripting languages. If you need both, scripting and performance, D is a good pick. If you are already familiar with C or C++, getting into D is not that hard. Disclaimer: Nowadays I am more enthusiastic about Rust than D, but I still consider D to be a very solid and nice language.
- CyberShadow 8y agoD has: - fast compilation times - a module system - famously powerful metaprogramming and compile-time introspection - a familiar, but not ugly syntax - comes with a package manager - simple-to-use build tools with dependency discovery - mostly-optional garbage collector (great for 90% projects!) - interfaces with C and C++ - memory safe C++ still has: - header files - a preprocessor - infamously hard-to-parse syntax - decades of legacy cruft - fun things like design-by-SFINAE My biggest reason to use D is that it works great for both small scripts (one program can be one file and is ran with one command, or even a shebang), and large projects (with packages / dependencies etc.). Similarly, if idiomatic D is too slow, you can optimize it by going as low as C or inline assembler without having to call-out to a lower-level language. Source: using D for almost everything since 2006, while also maintaining a few C++ projects.
- zerr 8y agoThe issue with D, I guess, how do you find gigs? :)
- yarg 8y agoOne thing that I like the look of in D (although just the LLVM version) is DCompute. It's GPGPU functionality with an absolute minimum of boilerplate. Unfortunately it does not seem to be in active development.
- nicwilson 8y agoI'm not dead yet. I've just had a bit of fun updating the SPIR-V backend to use https://github.com/KhronosGroup/SPIRV-LLVM-Translator https://github.com/KhronosGroup/SPIRV-LLVM-Translator instead of the old one which wasn't being updated. I'm in the process of adding clspv as a backend for Vulkan Compute shaders (in turn as a basis for targeting Intel's ispc compiler optimisations). Most of that fun involves bashing CMake around that head to try to get it to talk properly with pkg-config (I hate them both).
- yarg 8y agoNice. Thanks for doing the ugly work so that other people don't have to.
- WalterBright 8y agoLooking past the feature comparisons, it's simply a pleasure to program in D. It's easy to write code in D, it looks good once written, it's easy to refactor, and it performs as well as the equivalent C or C++ code. The features are designed with an eye towards simple things should be simple, code should not have to written twice, the layout of the code should match the layout of the problem being solved (not the language), drudgery should be eliminated, and common bugs should be impossible.
- atilaneves 8y agoC++ 11, 14 and 17 have all closed the gap with D in terms of features, but IMHO even when those features exist in C++ they're a lot harder to use and a lot easier to shoot oneself in one's foot. You _can_ get things done in modern C++, it just takes longer and is buggier. In my experience, anyway.
- janebrewer16 8y agoD Programming quit interesting this waiting for this.
- faissaloo 8y agoIs the pricing here normal for conferences? I've only attended a few and 300 GBP seems quite excessive to me.
- Symbiote 8y agoThat seems fine for a London conference, which can cost slightly more than another location due to the desirability of being in London.
- aldacron 8y agoIt's actually rather cheap, given the venue.
- WalterBright 8y agoLondon has good air service connections for most of the world, so higher costs running the conference in London is more than offset by lower travel costs by the participants.
- pornel 8y agoYes, 300GBP is typical for a tech conference in London. Cost of venues and catering can be astronomical, so even with that ticket price it may be difficult to run a conference. Some community conferences are half of that (and depend on sponsorships), but OTOH there are also plenty of "serious business" conferences that are 10x more expensive.
- adsadadsad 8y agoIs catering a big portion of the ticket price? Surely one can venture outside to nearest starbucks, pret, other-fancy-coffee-shop-5metres-away, and dozens of other eateries? Or the food delivery service apps. I'd be pissed off if shitty non-choice catering was going to eat into the ticket price more than 15gbp. Sponsors pay the booze after usually. So what's left after speakers, token tickets, and venue fees?
- 8y ago
- linuxlizard 8y agoHow do D and Rust stack up against each other? Both seem to quite attractive as next generation compiled languages.
- atilaneves 8y agoRust achieves memory safety without a tracing GC. D has traditionally relied on the GC for that, but now there's [DIP1000](https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md). D can however be used without a GC if needed. Rust has macros, which D doesn't, but D's metaprogramming is superior. They're both fine choices.
- jetzzz 8y ago> Rust achieves memory safety without a tracing GC. D has traditionally relied on the GC for that Isn't D memory unsafe by default?
- atilaneves 8y ago> Isn't D memory unsafe by default? Yes, but it only takes this to guarantee it: void main() @safe { // ... }
- earenndil 8y agoNot quite, that doesn't guard for safety in things like module constructors.
- Hasknewbie 8y ago> D can however be used without a GC if needed Honest question: is it the case in practice though? Last time I checked D, you could disable the GC in theory, but in practice many things would fail to work, most importantly their standard library. As this been fixed since then?
- 8y ago
- satyenr 8y agoIs D being used/backed by a major software company or a major open source initiative? Looking at the trends so far, seems like it takes the backing of a giant for a programming language to succeed.
- nicwilson 8y agohttps://dlang.org/orgs-using-d.html https://dlang.org/orgs-using-d.html Sociomantic, Symmetry and Weka.IO are large very heavy users. Symmetry has supported development with an "Autumn of Code". The backing is much more diverse and its been that way for a long time. Disclaimer: I contract to Symmetry.