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