3 ms·
I wanted to like D because I respect Walter a lot, and D's community probably has by far the highest SNR of any community I've visited... seriously smart people
by silisili 5y ago
I wanted to like D because I respect Walter a lot, and D's community probably has by far the highest SNR of any community I've visited... seriously smart people.
But the language just wasn't for me. Right off the bat, the default import style which thrusts everything exported into the default namespace like C seems odd at this point. Apparently one can use what are called static imports, but as a code reader I can't enforce it.
It feels a lot like a language for C(++) folks, who IMO tend to be more conservative and entrenched.
Given the initial paragraph, maybe I'm just not smart enough to grok it :).
- WalterBright 5y agoWow, and someone else just yesterday was giving D credit for not thrusting everything into the global name space like C does! Yes, two different D modules can declare the same name as public, and they will not conflict with each other.
- silisili 5y agoApologies if I misworded what it's doing. It wasn't about name clashing, but readability. It's not clear at first glance what functions belong to which imports. As an example: https://tour.dlang.org/ https://tour.dlang.org/ Three imports and what appear to be four unqualified functions from them.
- WalterBright 5y agoI'm sorry you don't like it, but that's a feature! But if there are identical names from two different imports, the compiler will demand that you qualify them. Or just use static import.
- epage 5y agoWith all respect for all the work you've done in C++ and D but imo that is a mistake. This is one of the reasons I have a distaste for languages like C# and Ruby and prefer languages like Python and Rust. I've had a hard time following what is happening in other people's Ruby code because of this behavior. Whether items are imported from a module should be left up to the developer and not done on their behalf.
- destructionator 5y ago> Whether items are imported from a module should be left up to the developer and not done on their behalf. Well, the developer wrote `import thing;` instead of either `static import thing;` or `import thing : specific, list;` so it was their decision.
- schveiguy 5y agoWhat language are you used to that doesn't do this? I think I would go nuts if I had to always use the fully qualified name for all symbols.
- gompertz 5y agoThe SNR point is well taken. It's probably why I find less popular languages to be more enjoyable. Practically anything Python or Javascript related is flooded with too much entry-level commentary and Medium articles (yick). Languages such as D, AWK, Prolog, etc etc attract those who have broken that threshold, generally many years ago.
- WalterBright 5y agoD programmers have also been in high demand in the industry, because D programmers tend to not need social proof, and tend to be self-educated and self-starters.
- pottertheotter 5y agoWalter, what do you mean by social proof in this context? Wondering if you have a brief example?
- WalterBright 5y agoSocial proof is buying a Ford car because your friends and family all drive Fords. The old phrase "nobody ever got fired for buying IBM" is another one (though nobody has said that since 1990).
- mhh__ 5y agoMajority of pro D developers are there by word of mouth / hiring "weird" smart people.