D future ...

Benjiro via Digitalmars-d digitalmars-d at puremagic.com
Mon Dec 19 15:02:59 PST 2016


I split this from the "Re: A betterC modular standard library?" 
topic because my response is will be too much off-topic but the 
whole thread is irking me the wrong way. I see some of the same 
argument coming up all the time, with a level of frequency.

D has not market:
-----------------

A lot of times people complain that D has no real audience / 
market. Is D the perfect system. No... But lets compare to those 
other languages shall we? Now this is my opinion, so take it with 
a bit of salt.

Go: Its is a "simple" language. But its forced restrictions at 
times are so annoying its saps all the fun out of the coding. Its 
not really C. Its more Basic on steroids. Unfortunately while Go 
has huge amount of traction and packages ( 70k from my count ), 
the quality is also... It has a few real gems those gems are a 
result of the mass amount of packages. It has its own market. A 
scripting replacement market mostly.

Crystal: Is pure Ruby focused. Again, it draws in a lot of people 
with a Ruby background. Interesting language that is already 
splitting away from Ruby comparability.

Nim/Julia/Numpy/Numba: Are very Python like focused. Nim will 
disagree but its very clear. Again, the focus seems to draw in 
more scripting language orientated people, mostly from the Python 
area.

Rust: Promotes itself to be better C but its simply a more 
complex language design. A over active amount of fans, that do 
not understand its complex. Less fun to get into. Reminds me too 
much of Perl.

D is C++ but improved/simplified. Its not to hard to get into, 
its more easy for anybody from a C background.

Take it from a guy that spend a large part of his life in PHP. I 
feel more at home with D, then with all the other languages. The 
moment you get over a few hurdles, it becomes a very easy 
language. My point is that D does fit in a specific market. It 
fits in between C++ and scripting languages like PHP ( that has a 
more C background ).

Its not going to convert a lot of C++ people. Sorry but its true. 
C++ has been evolving, the people who invested into C++ have very 
little advantage of going to D. The whole focus on C++ people 
marketing is simply wrong! Every time this gets mentioned in 
external forums, the language gets a pounding by people with the 
same argumentation. Why go for D when C++ 20xx version does it 
also.

Trusting a person with C like scripting language ( like PHP/Java 
) background into C++, well that is fun <sarcasm>. People always 
seem to say that D has no real advantage but it has. Its easier 
C++ for people who do not come from C/C++. Maybe i am downplaying 
this but for love of the gods, the focus is wrong. I am the same 
guy that complained a while ago about the website its examples 
being too "advanced" and it scares a big potential group of 
people away.

Community:
----------

But community wise there is a real issue. People are friendly and 
help out. But it feels like everybody is doing there own thing.

I see a lot of people arguing a lot about D and sorry to say but 
at times it sounds like a kindergarten. Walter/Andrei are right 
that updates and changes need to be focused on the standard 
library. Maybe its because people who use D are more into 
proprietary software, that there is less community response with 
work going into the library. But ... see below in Walter / Andrei 
section.

Library ( and runtime bloat ):
------------------------------

But it also does not diminish some of the requests. When i write 
a simple program that uses the socket, standard, string and conv 
library. All it does is open a TCP socket and send a response 
back. This is not supposed to take 2.4MB in memory, with a 1.2MB 
compiled executable ( 450kb o file ). Full blown Nginx uses only 
one MB more for its core in memory. For something so simple, its 
a little bit crazy.

When i make a plugin in Go 1.8, it uses 10KB. A plugin ( shared C 
library ) in D uses almost 200KB. Using C++ it results into 
another 10KB file. Maybe i am a total noob but some things make 
no sense. It gives me the impression that some massive run times 
are getting added or there is some major library bloat.

Library Standardization:
------------------------

Some of the proposals sounds very correct. The library needs to 
be split. Every module needs its own GIT. People need to be able 
to add standard modules ( after approval ).

No offense but where is the standard database library for D? 
There is none. That is just a load of bull. Anybody who wants to 
program in any language expect the language to have a standard 
database library! Not that you need to search the packages for a 
standard library. I have seen one man projects that have more 
standard library support then D.

Its one of the most basic packages. How about a simple web 
server? A lot of languages offer this by default. It gets people 
going. vibe.d is not a simple web server. It's not a standard 
package.

If you are a low level programmer, sure, you can write you way 
around it. Despite my PHP handicap i am writing a Sqlite wrapper 
for my work. I do not use 3th party packages because a) i do not 
know the code b) the fear that the work will be abandoned. I can 
excuse (a), when i know its the standard library because there 
will always be people willing to work on  the standard library.

Documentation:
--------------

I do not use it. Its such a mess to read with long paragraphs and 
a LOT of stuff not even documented. Like the whole C wrappers 
etc. My personal bible is simple: Google search for examples and 
Ali's book for some rare cases.

When i compare this to my PHP background. Hmmmm, what does x 
function do again. Google function. Webpage with X function. 
Links to related function. Examples. Clear simple answers.

This automated documentation generation is the same **** i see in 
other "new" languages. Impersonal is the word to describe it. 
Sure there is some tutorial in the documentation that way too 
long ( never hear of chapters? ) but a lot of that information 
needs to be with the functions.

Maybe other developers can make more heads or tails out of the 
API documentation but like i said, i do not use it. Every time i 
need a advanced feature its hardly documented. With references 
and text buildups that is just annoying.

Editor support:
---------------

What a struggle. Visual Studio C is probably the editor with the 
best 3th party support.

IntelliJ: Hardly any plugins. Limited to IntelliJ platform and 
not the rest.
Atom: Same issue, hardly any advanced D support.
Vim: Lets not go there.
3Th party D IDE's: A lot simply are designed for local working, 
white background ( uch ), etc...

I can go on. For me it has been a struggle to find the perfect 
editor. Extended IDE's like IntelliJ have hardly support. There 
are a lot of plugins to add D to editors but most are long time 
dead or incomplete.

Try remote editing D and see how much fun it is. Most Editors or 
IDE with proper remote edit ability, have lacking D supported 
plugins.

Too many need 3th party to do something that D needs to support 
from itself:

dcd - Used for auto completion
dfmt - Used for code formatting
dscanner - Used for static code linting
...

This needs to be in the default installation of dmd! It makes no 
sense that these are not included.


Future:
--------

You want D to have traction. Marketing, more library support, 
less focus on adding even more advanced features, fixing issues ( 
like better GC ), CTFE ( Stefan is dealing with that ), 
Documentation, better Editor support...

Walter / Andrei:
----------------

No offense guys, just something that i see in a lot of posts. The 
hinting at people to add more to the standard libraries. That 
little push. But frankly, its annoying when nothing gets done.

People complain about x feature. You tell people to add to the 
standard library or bring the project in. But anybody who has 
ever read this forum sees how adding things to the language is 
LONG process and a lot of times idea's get shot down very fast.

For the standard library there is no process as far as i can 
tell. Experimental at best, where code seems to have a nice long 
death.

Just needed to get this off my chest. The problems with D are 
LONG TIME known. Anybody who spends some time reading the forums 
sees the exact same things.

My advice Walter / Andrei: Stop trying to add new things to the 
code. It works. Its not going anywhere. There are no features 
that you can add, that people can not already do. Maybe it takes 
a few longer lines but those are not the issues.

Focus on improving the other issues like stated above. Maybe also 
deal with some of the speed  bloat issues. If you ask people to 
help, give them the motivation to do so.

Bring more projects into D. When you have people like Webfreak 
making workspace-d, to simply the installation of those almost 
required editor extensions, it tells you that D has a issue.


Ilya's proposals are too extreme and need a middle ground. But he 
is not wrong.

Seb posted a massive list of modules that can be standard 
candidates. And the response is more or less ignore it. People 
who work on Standard libraries are more motivated. Bring  them 
into the fold. But it seems that they simple get ignored.

Like i said, please work on standard libraries is not the answer. 
It does not motivate people ( especially when in the same text 
you end up breaking down people there proposals ). Maybe its not 
the intention but it comes over like this.

Why is there no forum part for proposals about libraries that get 
added to Phobos ( why is it even still called that. Call it 
standard library and be done with it. It only confuses new people 
). The current forum is a pure spam forum.

You need a Standard forum. With subbranches for std.xxx, std.xxx, 
std... Let people talk about improvements there. If people want 
to add a new branch, let them put up a proposal and do NOT 
mothball it for months in discussions.

Hell, the whole "D Programming Language - Development" forum is 
so much spam, it becomes almost useless. Its a distraction to 
post each issue there with 0 responses on 95%.

End Rant:
---------

Sorry for the long text but as somebody who has been reading the 
forums for a while now, its just annoying to see some of the 
bickering.

But i simply get frustrated seeing the direction where relative 
simple things get overlooked for more complex features! D already 
is a great language but it REALLY has issue on several 
departments. It does not need more boilerplate / expansion, it 
needs focus! Most of the points that i bring up are not that 
complex. But it takes a community manager / moderator to keep 
topics a bit more focused. Not somebody who will go into endless 
discussions with people ( not naming names ... Andrei ;) ). Sorry 
guys but it feels like you are too technical focused and not 
thinking about the bigger picture. Suggesting things does not 
work when nobody gives people the chance to prove themselves.

Give people the ability to add more to std.experimental. Give it 
its own forum part. Give people actual hope that there work can 
be added. I have seen several ex-D programmers, who complained 
about D regarding issues like this. If D wants to be a community 
project, then act like a community project. Because now, its just 
a contribution project where some people have easier access to 
add stuff and other walk against a brick wall of months ( and 
give up ).

Its late... already spend almost two hours writing this, that i 
was able to spend on writing actual code. And i am going to take 
a break from reading this forum, it sucks the life out of people 
and they spending all the time on bickering over details and 
eventually not getting a darn thing done. Already overworked at 
work + my own D project.


More information about the Digitalmars-d mailing list