D is crap

D is crap via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 2 21:37:02 PDT 2016


Sorry, I've spend the last month trying my best to get simple 
shit done. At every turn there is some problem that has to be 
dealt with that is unrelated to my actual work.  Be it the IDE, 
debugging, the library, or user shared code, it is just crap. D 
cannot be used successfully for semi-large projects without 
significant man hours invested in getting everything to work.

I'm sorry but it seems too much focus on enhancements while there 
are too many bugs and lack of tools to actually do anything 
useful.

I'm sorry if this hurts some of you guys feelings but it is fact 
that D sucks as a whole. A modern programming language should be 
modern, and D is not one of those languages. It is built as from 
cobbling together disparate parts that don't work together. The 
more it is used and added on to the worse it gets.

I'm sorry many of you have spent your lives working on something 
that won't amount to much in the real world. It was a valiant 
effort. Maybe it will seed new languages that will actually work 
and have the tooling to be useful. D itself is not a practical 
tool for general real world software development. I suppose it is 
obvious considering there is no significant use of it except by 
the diehards.

I hope I am wrong, but facts are facts. I would like to list 
these facts so potential users can be informed before the embark 
on a likely dead end.


1. The language is not completely well defined. While the 
language itself contains many nice features and what makes D 
appealing, too many features are cobbled together and don't 
completely work 100% properly. This creates very subtle bugs or 
problem areas that can stop one in their tracks. One can see how 
these things are cobbled together by observing the forms and the 
discussions about how to proceed in certain areas.

2. The compilation process is riddled with meaningless error 
messages and a simple missing ';' can launch one off to the moon 
to figure out it is missing. The error messages can cascade. Fix 
the ';' and 20 messages disappear. Usually each message is 100 
characters+ when it involves templates.

Rather than just telling you what is grammatically missing, like 
any normal modern compiler does, you have to hunt and peck and 
fill your head with meaningless information.

3. The compilers are designed as if they come straight out of the 
70's.  The setup is obscure, relies on assumptions that are not 
true, and just like the compilation process, if your unlucky you 
could be working for a few days just to try to get dmd to compile.

4. Object code issues, again, stuff from the 70's are still 
present.  Rather than fix the shit outright, knowing they are 
problematic, the can is kicked down the road to the unsuspecting 
users. The users, who generally know less about what is going on 
than the people who design the software. Those people who can fix 
the problem directly and save a lot of grief for people don't 
because they feel it isn't a big deal and they have more 
important things to do.

5. The documentation is somewhat crappy. While it is extensive 
and auto generated it generally is only a "template" of what a 
real user needs. Rather than just the function declaration, 
usually with nondescript template names like R, S, U, etc about 
half the functions are missing use cases. I realize this takes 
work but it could be done by the people writing the code, again, 
they know best, right?

6. The library is meandering in its design. Feels very convoluted 
at times, cobbled together rather than designed properly from the 
get go. Updated language features creates a cascade of library 
modifications. "Lets move this to this and remove that and then 
add this... oh, but we gotta update the docs, we'll do that 
tomorrow...".

7. The library uses shit for names. Ok, so strip isn't too bad 
but why not trim? That's what every one else uses. Ok, what about 
chomp? munch? squeeze? What the fuck is going on? Did the 
perverted Cookie Monster write this shit?
What about the infamous tr? Yeah, just cause posix said it was ok 
then it must
be so. I'd say we call it t instead.

I could go on and on about stuff like this but I have more 
important things to do, like

8. Lets use vim or emacs. I liked the 70's it was great. So great 
that I want to continue using the same editors because we know 
them well and they work... and their free!  I like coding at the 
pace of a turtle with minimal information because that's hard 
core leet style and makes my balls bigger, which my wife likes.

Oh, what about visual studio? Don't get me started! Maybe if 
Visual D/Mago actually worked half the time and didn't slow me 
down I'd use that. Xmarian? Worse!

Maybe it's time to get out of the dark ages and actually design a 
program that is designed for creating programs? Not just a 
fucking text editor that has a few helpful things that programs 
might use. Do we still have to code in text files? How about we 
just write everything in binary? Ok, sorry... getting OT.

Basically there is no great IDE for D, in fact, there is none. 
They are all general purpose IDE's that have been configured to 
compile D code. Great! Except they don't work well because they 
wern't designed for D. (e.g., template debugging? mixins? Error 
messages? Code maps? refactoring? All the stuff that more modern 
languages and IDE's are using is lacking for D.

9. What I do like about D is that it can compile for various 
platforms rather easy. Usually I do something like -m64 and run 
the app then it crashes. I don't know why because their was no 
error message. The point is that while D can "compile" for 
various platforms it is always an "on going process".

Because 9/10 D programmers program in linux, windows support is 
minimal and buggy. Since I don't use linux, because windows has a 
much larger market share, maybe D is great on linux. On windows 
though, it's a literal pain in the ass. All the time I spend 
trying to figure out how to get things to work properly has given 
me hemorrhoids. God did not design Man's ass to sit in front of a 
computer all day. BTW, a program can't just "work", I have 
clients that have a certain level of expectation, like no seg 
faults. Just because it works for me, or for you is not good 
enough. It has to work for everyone.

10. Most user contributed D packages are outdated. They simply 
don't work anymore due to all the language changes. Instead of 
culling the crap, it persists and the user has to wade through it 
all. It's every man for himself when it comes to D.

11. D has no proper Gui. WTF?  This isn't the 70's no matter how 
much you to relive peace and sex. Oh, did I hear someone say 
bindings? WTF?

12. D has no proper logging system. I just don't want to log a 
message, I want a well designed and easily manageable way to 
understand problems my program is experiencing. Given that D has 
so many latent issues, it's nice to have some way to deal with 
the "Big foot"(But bug that you only see when when your driving 
down a windy dark road in Nebraska).

13. Windows interfacing. Thanks for the bindings! The most used 
OS in the would with the largest commercial share only gets 
bindings that is actually like programming in win32. Rather than 
at least wrap them in a working oop design that hides away the 
abacus feel, we are stuck with bindings. The D community loves 
bindings, I have no fucking clue why. It just means more work. At 
least if I didn't have the bindings I wouldn't have to implement 
anything.

14. Gaming? It can be done, not by me or you but by geniuses who 
live in their basement and no one to support or nothing else to 
do but hash out how to get it done. But while they might share 
their results, don't get your hopes up and expect it to work for 
you.

15. Cross platform design? Maybe, Supposedly it works but I have 
too much trouble with windows to care about adding another layer 
of crap on top.

16. The community. While not worse than most others, doesn't 
really give a shit about the real world programmer. The elite are 
too busy thinking of ways to add the latest and greatest feature, 
thinking it will attract more buyers. The rabble rousers like 
myself don't actually do much. Ultimately things get done but 
nothing useful happens. Kinda like those jackasses that floor it 
with their foot on the break. A lot of smoke but pointless. D's 
been going how long? 10+ years?

The majority of you guys here don't realize that the average 
programming can't waste time creating a gui, implementing a 
design for the bindings you created, patching together different 
packages that don't work together, etc.

While there are, I'm sure, a lot of good intentions, they are 
meaningless when it comes to putting food on the table.  If you 
are going to do something, do it with gusto, not half ass. If you 
are going to design a package, do it right! Not something that 
continually requires fixing and effects every person that uses it 
exponentially. Every minute I spend fixing someone else's shit 
takes a minute away from my life. For N-1 other users that's N 
minutes wasted because the original creator didn't take the extra 
minute. Thanks for wasting all of our time. That's a factor of N. 
Now when we have to do that for M packages, that's M*N's people 
shit we have to fix. All because one person didn't want to spend 
one extra minute fixing their own shit. Ok, so, it might not be 
exponentially but it's still time that could be better spent on 
more important things.



17 ...


18. As you can see, I've ran out of steam. My butt hurts and I 
have better things to do... like delete dmd from my computer. At 
least that's simple and works! (I hope, maybe it will seg fault 
on me or I have to run some special command line switch).


19. PS. Ok, so, D isn't as terrible as I'm making it out. It's 
free. And as they say, you get what you pay for ;)

20. I hope the D community can come together at some point and 
work towards a common goal that will benefit humanity. It's a 
mini-cosmos of what is going on in the world today. Everyone is 
in it for themselves and they don't realize the big picture and 
how every little thing they do has an enormous impact on the 
human species.  We aren't doing this stuff for fun, we do it to 
make a better life for ourselves, which means we also have to do 
it for everyone else(because we are all in it together).

Their is so much wasted time and life by so many people for so 
many useless reasons that we could have built a bridge, brick by 
brick, to moon and back, a dozen fold.  Humanity is an amazing 
species capable of unimaginable things. By extension, so is the D 
community. I just hope D doesn't end up like the Kardashians as 
it has so much more use for humanity.

00. Please get your shit together! I mean that in the best 
possible way!











More information about the Digitalmars-d mailing list