www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - My two cents on what D needs to be more successful...

reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
Since a few months, I'm using D for all my command-line tools.

For that use case, the language and its standard libraries are 
really perfect, making it the best scripting language I know, 
completely exploding JavaScript, Python, Ruby, etc.

Now I would like to also use it to develop :
- web servers.
- connected desktop applications & games.
- connected mobile applications & games.

D could also explode the competition for these uses cases, but I 
think that first it would need to be more *equipped* and 
*branded* for this.

IMHO, to convince many Java/C#/C++/PHP/Python/Ruby/JavaScript/etc 
developers to leave the comfort of their current ecosystem, D 
would need :

* the following *standard* libraries :

   - std.database (connect/use MySQL/MongoDB/etc databases)
   - std.web (serve web data/files/pages)
   - std.audio (load/play/process/record sounds/musics)
   - std.image (load/show/process/record images)
   - std.video (load/show/process/record videos)
   - std.graphic (draw 2D/3D graphics)
   - std.input (get mouse/touchscreen/etc events)
   - std.ui (draw 2D user interfaces)

* a dedicated IDE, allowing to effortlessly 
open/compile/execute/debug a single ".d" file as well as an 
entire project.

* a soft-realtime garbage collector (like in Nim), which can 
progressively recycle the memory of a thread without blocking the 
whole application.

I agree that at the moment, all these developments can be 
possible through several third-party libraries.

For the web servers, vibe.d is already there.

For desktop applications, there is gtkd and dlangui.

And for mobile applications, maybe using wrappers for SDL and a 
fast hardware accelerated UI library like TurboBadger/Nuklear/etc 
would do the job.

And I know that several IDE are already available.

For instance, Coedit is a nice little IDE, despite its bugs and 
limitations.

So I know that D could get the job done.

But with some efforts...

And it doesn't feel immediately "equipped" for that...

That's sad, because I think D could be the best tool on the 
market to develop cross-platform connected mobile/desktop 
applications, including mobile 2D games.

And even if it is already the case, at least that doesn't *show*, 
even from the dlang.org website.

A more complete standard library, and a more appealing website (à 
la juce.com) which would clearly "sell" D's strong advantages 
over its competition, could be of great help.

Because the day when D will make it really *easy* to do these 
kind of developments, just by simply installing the standard D 
environment and reading a few tutorials on how to do 
web/console/desktop/mobile app/games on dlang.org, it will be 
very hard for other languages to compete with it...
May 20
next sibling parent reply rikki cattermole <rikki cattermole.co.nz> writes:
This is the work I am related to or created myself.

- std.ui.windowing[0]
- std.ui.gui
- std.graphics.image[1]
- std.graphics.color[2]
- std.events[0]
- std.events.loop[0]
- std.audio
- std.sockets[0]

Any assistance to improving my work including[3] would be appreciated as 
I am slow.

[0] https://github.com/Devisualization/spew
[1] 
https://github.com/rikkimax/alphaPhobos/tree/master/source/std/experimental/graphic/image
[2] https://github.com/dlang/phobos/pull/2845
[3] https://github.com/rikkimax/ogl_gen
May 20
parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
Exactly what I was talking about :D

Thanks for your efforts !!!

I'll download and test them right away.
May 20
parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 21/05/2017 7:51 AM, Ecstatic Coder wrote:
 Exactly what I was talking about :D

 Thanks for your efforts !!!

 I'll download and test them right away.
Keep in mind that they are not on code.dlang.org for a reason, they are not ready for general use. So take a developers mindset if you use them. You will find bugs and you will need to fix them if you wish to continue using it.
May 20
parent Ecstatic Coder <ecstatic.coder gmail.com> writes:
On Sunday, 21 May 2017 at 06:55:19 UTC, rikki cattermole wrote:
 On 21/05/2017 7:51 AM, Ecstatic Coder wrote:
 Exactly what I was talking about :D

 Thanks for your efforts !!!

 I'll download and test them right away.
Keep in mind that they are not on code.dlang.org for a reason, they are not ready for general use. So take a developers mindset if you use them. You will find bugs and you will need to fix them if you wish to continue using it.
Ok no problem :)
May 21
prev sibling next sibling parent reply Basile B. <b2.temp gmx.com> writes:
On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
 Since a few months, I'm using D for all my command-line tools.

 For that use case, the language and its standard libraries are 
 really perfect, making it the best scripting language I know, 
 completely exploding JavaScript, Python, Ruby, etc.

 Now I would like to also use it to develop :

 [...]

 * a dedicated IDE, allowing to effortlessly 
 open/compile/execute/debug a single ".d" file
It's one of the basement of Coedit. There is the runnable module system as well as the support for DUB single file package. http://bbasile.github.io/Coedit/features_runnables.
 as well as an entire project.
Also supported by the same product. I would be sad to learn you missed this ! http://bbasile.github.io/Coedit/features_projects
 [...]

 know that several IDE are already available.

 For instance, Coedit is a nice little IDE, despite its bugs and 
 limitations.
(author here) I don't get much bug reports. Usually i find the bugs myself since i'm a hardcore user of the product. Don't think too much, if you encounter a problem then report it: https://github.com/BBasile/Coedit/issues
May 21
parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
Coedit is actually by far my favorite IDE for D testing and 
debugging.

I liked it immediately after I saw that it doesn't need to create 
a project if all you need it compile and test a small D script.

I know I can create a project, but for tiny projects I don't use 
it on purpose, despite I personally prefer to have only one file 
per class, because projects tie the source code compilation to a 
particular IDE.

All my tools can be compiled with "dmd xxx.d", which is really as 
simple as it can possibly be.

I know that "dmd aaa.d bbb.d ccc.ddd ..." works too, but as long 
as my scripts are just a few hundreds of lines of code long, I'm 
ok with that.

My only concerns with Coedit are a few usability problems when 
editing the code.

By default :

* When I copy a block of code, I have to select it from the end 
of the previous line, or else the inserted code indentation goes 
wrong.

* When doing a find and replace, Coedit replaces the next 
occurrence despite I don't see it and I'm not sure I want to 
replace it, instead of the one highlighted under the cursor, 
which I'm totally sure I want to replace.

* A closing brace is automatically inserted at the wrong position 
and with a unwanted blank line if I put enter to insert a missing 
closing brace.

   I'm not sure, but I think the case is the following :
   {
       {
           {
           }<- editor bugs if I put enter to manually add the 
missing brace on the next line
   }

* The regular expressions are always enabled by default when 
searching text.

* When I change some preferences, Coedit only keeps them until 
the next restart.

I know that's really not much, but this bothers me enough so that 
I still prefer Geany for pure coding sessions.

Only after I've finished programming the core code and prettified 
it, I switch to Coedit to try compiling, testing and debugging it.

Except for these tiny annoyances when typing code, Coedit is an 
exceptionally good IDE, and I really like it a lot, that's why 
it's the only one I've mentioned.

I don't mind posting my usability remarks on your Github account 
if you confirm me that they can indeed be considered as "bugs"...
May 21
parent reply Basile B. <b2.temp gmx.com> writes:
On Sunday, 21 May 2017 at 11:27:19 UTC, Ecstatic Coder wrote:
 Coedit is actually by far my favorite IDE for D testing and 
 debugging.

 I liked it immediately after I saw that it doesn't need to 
 create a project if all you need it compile and test a small D 
 script.

 I know I can create a project, but for tiny projects I don't 
 use it on purpose, despite I personally prefer to have only one 
 file per class, because projects tie the source code 
 compilation to a particular IDE.

 All my tools can be compiled with "dmd xxx.d", which is really 
 as simple as it can possibly be.

 I know that "dmd aaa.d bbb.d ccc.ddd ..." works too, but as 
 long as my scripts are just a few hundreds of lines of code 
 long, I'm ok with that.

 My only concerns with Coedit are a few usability problems when 
 editing the code.

 By default :

 * When I copy a block of code, I have to select it from the end 
 of the previous line, or else the inserted code indentation 
 goes wrong.
Indeed.
 * When doing a find and replace, Coedit replaces the next 
 occurrence despite I don't see it and I'm not sure I want to 
 replace it, instead of the one highlighted under the cursor, 
 which I'm totally sure I want to replace.
There's a checkbox that allows to activate prompts when a match is found.
 * A closing brace is automatically inserted at the wrong 
 position and with a unwanted blank line if I put enter to 
 insert a missing closing brace.

   I'm not sure, but I think the case is the following :
   {
       {
           {
           }<- editor bugs if I put enter to manually add the 
 missing brace on the next line
   }
This feature is still a bit dumb when you're in the middle of existing code. When writing new code it works fine. It can be fully deactivated by the bye. I encounter this issue as well but very occasionally.
 * The regular expressions are always enabled by default when 
 searching text.
It doesn't mean that you have to fill the search field with a REGEX. It means that you CAN type one but it's not a requirement ! Plain text will be searched in a standard way, whatever is the state of the "Allow regex" option, which means "contains text" or "exact text" depedning on the "whole word" option.
 * When I change some preferences, Coedit only keeps them until 
 the next restart.
That would be surprising. Please open an issue for this or let's talk on IRC.
 I don't mind posting my usability remarks on your Github
You should really. My level of satisfaction is not universal. Without feedback it'll stay specialized for my own usage.
May 21
parent Ecstatic Coder <ecstatic.coder gmail.com> writes:
Ok :)

Thanks for the quick answer !
May 21
prev sibling next sibling parent reply Adam D. Ruppe <destructionator gmail.com> writes:
On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
 * the following *standard* libraries :
Suppose I made a dmd distribution with my libraries pre-packaged (I already have libraries for most the stuff you listed)... would that work for you? Or must it come from the dlang.org site and be `std.` for it to count? I have no interest whatsoever in being in the official standard library though. Of course, using my libs is pretty trivial... download one or two files and add them to your build command, done.
May 21
parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
On Sunday, 21 May 2017 at 18:29:46 UTC, Adam D. Ruppe wrote:
 On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
 * the following *standard* libraries :
Suppose I made a dmd distribution with my libraries pre-packaged (I already have libraries for most the stuff you listed)... would that work for you? Or must it come from the dlang.org site and be `std.` for it to count? I have no interest whatsoever in being in the official standard library though. Of course, using my libs is pretty trivial... download one or two files and add them to your build command, done.
I understand your point, but standard libraries come along with the compiler during its installation. Let's suppose I want to use regular expressions and they would not have been not part of the std libraries. I would have to evaluate several libraries from github, after having searches on forums whether some regular expression libraries are better or more successful, or better maintained than other, etc. And I would be lucky to find a tutorial on this particular library. Moreover I would have to download this library manually along with its dependencies, etc. I know that's not that hard with dub-like tools, but this doesn't make things simpler, that's obvious. Standard libraries exist for one good reason : they are the reference implementation that everybody use by default, unless they want something especially tailored to their specific needs. So for newcomers like me, they make a HUGE difference, as they make my life simpler and easier. All tutorials use them, whether they are on the official website or not. Remember that I've programmed tens of years in C++, but just a few months of D. So I don't know anything about how to make GUI, web sites etc with D. That's new to me, and thus this gets me out of my "comfort" zone. For instance a standard GUI library would have made my life much easier. Just for the GUI, I've downloaded 7 libraries, and I've just evaluated gtkd at the moment. Dlangui seems fine too, etc. If D had a standard GUI library, and I didn't like its design, I could look for an alternative on github. But at least my first GUI program already runs without having to evaluate anything, by simply reading the official tutorials and documentations. For smarter people this wouldn't make a difference, but personally I need simplicity, especially when I have to decide to use a new language and learn its libraries to do what I can already do with my current language (C++ and Go in my case). So I fully respect your opinion, and in my case, I would have appreciated to have a default GUI library, even if it's not perfect, and even if some better alternative could exist on github. That's all I say :)
May 21
parent reply thedeemon <dlang thedeemon.com> writes:
On Sunday, 21 May 2017 at 19:33:35 UTC, Ecstatic Coder wrote:
 I would have to evaluate several libraries from github, after 
 having searches on forums whether some regular expression 
 libraries are better or more successful, or better maintained 
 than other, etc.
No need to trawl github, just go to code.dlang.org and you'll quickly find what libs are available and which ones are actively maintained.
 So for newcomers like me, they make a HUGE difference, as they 
 make my life simpler and easier.
 I would have appreciated to have a default GUI library, even if 
 it's not perfect, and even if some better alternative could 
 exist on github.
And I would have appreciated if Middle East guys stopped fighting and made their region nice and pleasant as Switzerland. Or if folks of Sudan and Uganda made their countries as prosperous and convenient to live in as Singapore and Germany. That would make life simpler and easier, for many newcomers. ;) You are exactly the 146-th person to come here and say "std lib should be richer, and more docs and tutorials should be written". Unfortunately there is no automatic tool to convert these requests and suggestions into reality without using a lot of manpower.
May 22
next sibling parent reply handG <handG web.de> writes:
 And I would have appreciated if Middle East guys stopped 
 fighting and made their region nice and pleasant as 
 Switzerland. Or if folks of Sudan and Uganda made their 
 countries as prosperous and convenient to live in as Singapore 
 and Germany. That would make life simpler and easier, for many 
 newcomers. ;)
Germany - no no, the muslim (so called refugees) thugs, rapist and murders arrived here now. Bad example!! Thanks america.
May 22
parent reply Moritz Maxeiner <moritz ucworks.org> writes:
On Monday, 22 May 2017 at 11:29:33 UTC, handG wrote:
 And I would have appreciated if Middle East guys stopped 
 fighting and made their region nice and pleasant as 
 Switzerland. Or if folks of Sudan and Uganda made their 
 countries as prosperous and convenient to live in as Singapore 
 and Germany. That would make life simpler and easier, for many 
 newcomers. ;)
Germany - no no, the muslim (so called refugees) thugs, rapist and murders arrived here now. Bad example!! Thanks america.
This is totally off topic, which is why I split off the thread. The percentage of such people with regards to all refugees is not worrisome when compared to the percentage of such people with regards to the people with German citizenship; see IMK Bericht 2016 [1]. Also, considering the excellent solve rate of most (reported) crimes here, even if it were worrisome in the short term, there would be no need to be concerned with regards to long term effects. Additionally, blaming an entire people for the actions of their government is ludicrous, especially since our own government happily assists with the USA government's drone murders (i.e. war crimes). [1] https://www.bka.de/DE/AktuelleInformationen/StatistikenLagebilder/PolizeilicheKriminalstatistik/PKS2016/pks2016_node.html
May 22
parent reply handG <handG web.de> writes:
On Monday, 22 May 2017 at 12:29:13 UTC, Moritz Maxeiner wrote:
 On Monday, 22 May 2017 at 11:29:33 UTC, handG wrote:
 [...]
Germany - no no, the muslim (so called refugees) thugs, rapist and murders arrived here now. Bad example!! Thanks america.
This is totally off topic, which is why I split off the thread. The percentage of such people with regards to all refugees is not worrisome when compared to the percentage of such people with regards to the people with German citizenship; see IMK Bericht 2016 [1]. Also, considering the excellent solve rate of most (reported) crimes here, even if it were worrisome in the short term, there would be no need to be concerned with regards to long term effects. Additionally, blaming an entire people for the actions of their government is ludicrous, especially since our own government happily assists with the USA government's drone murders (i.e. war crimes). [1] https://www.bka.de/DE/AktuelleInformationen/StatistikenLagebilder/PolizeilicheKriminalstatistik/PKS2016/pks2016_node.html
1.) we have no sovereignty (until 2099) over the us bases and HAVE to pay for them - that makes us a still occupied (by so called friends) country 2.) http://www.refcrime.info/de/verbrechen/karte/ -- https://www.unzensuriert.at/einzelfall
May 22
next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
I tried to send the message below via email. Couldn't reach all 
participants so I'll post it here:

====

Hi there, thanks for your participation in the D forums. As this thread 
has stepped outside the charter of the forum, could you kindly please 
take it either to private email or to a place where such discussions are 
carried. (We do allow the occasional "near" off-topic posts related to 
general computing technology under the "OT" label.) We've sent a similar 
message to the other participants. Thanks! -- Andrei
May 22
next sibling parent Moritz Maxeiner <moritz ucworks.org> writes:
On Monday, 22 May 2017 at 14:09:10 UTC, Andrei Alexandrescu wrote:
 I tried to send the message below via email. Couldn't reach all 
 participants so I'll post it here:
Sorry about the post just now, I did not see your message beforehand.
May 22
prev sibling parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
On Monday, 22 May 2017 at 14:09:10 UTC, Andrei Alexandrescu wrote:
 I tried to send the message below via email. Couldn't reach all 
 participants so I'll post it here:

 ====

 Hi there, thanks for your participation in the D forums. As 
 this thread has stepped outside the charter of the forum, could 
 you kindly please take it either to private email or to a place 
 where such discussions are carried. (We do allow the occasional 
 "near" off-topic posts related to general computing technology 
 under the "OT" label.) We've sent a similar message to the 
 other participants. Thanks! -- Andrei
Then, with all due respect, please remove these posts... IMHO, they are so incredibly off-topic that I don't see why they should remain here to pollute the pages of a D language forum.
May 22
parent reply Mike Parker <aldacron gmail.com> writes:
On Monday, 22 May 2017 at 20:49:22 UTC, Ecstatic Coder wrote:

 Then, with all due respect, please remove these posts...

 IMHO, they are so incredibly off-topic that I don't see why 
 they should remain here to pollute the pages of a D language 
 forum.
The forum is a web frontend for a newsgroup server, which also has a mailing list interface. I think the NG server does support message deletion, and that may cause it to disappear from the web frontend, but it will still be in NG readers and inboxes.
May 22
parent Steven Schveighoffer <schveiguy yahoo.com> writes:
On 5/22/17 8:21 PM, Mike Parker wrote:
 On Monday, 22 May 2017 at 20:49:22 UTC, Ecstatic Coder wrote:

 Then, with all due respect, please remove these posts...

 IMHO, they are so incredibly off-topic that I don't see why they
 should remain here to pollute the pages of a D language forum.
The forum is a web frontend for a newsgroup server, which also has a mailing list interface. I think the NG server does support message deletion, and that may cause it to disappear from the web frontend, but it will still be in NG readers and inboxes.
It does support that. When I used Opera for my NNTP client, I could actually remove my own posts (I would do this if I made a huge typo, or postd by accident). I don't think Thunderbird supports that (and Opera discontinued their client). However, I think the web forum software doesn't obey those deletions. And it's so darned fast, I'm sure it picks the erroneous message up before deletion ;) -Steve
May 24
prev sibling parent Moritz Maxeiner <moritz ucworks.org> writes:
On Monday, 22 May 2017 at 13:59:16 UTC, handG wrote:
 On Monday, 22 May 2017 at 12:29:13 UTC, Moritz Maxeiner wrote:
 On Monday, 22 May 2017 at 11:29:33 UTC, handG wrote:
 [...]
Germany - no no, the muslim (so called refugees) thugs, rapist and murders arrived here now. Bad example!! Thanks america.
This is totally off topic, which is why I split off the thread. The percentage of such people with regards to all refugees is not worrisome when compared to the percentage of such people with regards to the people with German citizenship; see IMK Bericht 2016 [1]. Also, considering the excellent solve rate of most (reported) crimes here, even if it were worrisome in the short term, there would be no need to be concerned with regards to long term effects. Additionally, blaming an entire people for the actions of their government is ludicrous, especially since our own government happily assists with the USA government's drone murders (i.e. war crimes). [1] https://www.bka.de/DE/AktuelleInformationen/StatistikenLagebilder/PolizeilicheKriminalstatistik/PKS2016/pks2016_node.html
1.) we have no sovereignty (until 2099) over the us bases and HAVE to pay for them -
Those are reasonable consequences for an unconditional surrender and it's not as if we couldn't afford it. Not to mention that these bases have people living in them that often go out and spend their money in the surrounding communities, which in turn generates both income for the (native) people living there, as well as taxes that are used for e.g. keeping the infrastructure in those communities maintained.
 that makes us a still occupied (by so called friends) country
1.) That is not what occupation means. If you want to call it something, "observation with preemptive capabilities" would be appropriate. 2.) There are no friends in politics, only ever shifting allegiances.
 2.) http://www.refcrime.info/de/verbrechen/karte/  -- 
 https://www.unzensuriert.at/einzelfall
1.) Neither of those websites cite reputable sources (online media outlets are not a reputable source for crime reports, since they necessarily have to work on a "publish first, check only if harsh backlash occurs" schedule to remain competitive) for their data and are thus irrelevant as aggregators. 2.) With around 6000000 crimes (yes, that is 6 million) reported in the year 2016 alone in Germany, the around 270000 supposed crimes (and this number is not per year, but overall total) on the first of those two websites are below 0.5 percent: Statistical noise, aka not relevant. 3.) The 2nd of those two websites is specifically about single cases and is such utterly irrelevant for a statistical analysis (which is the only kind that makes any sense on this scale).
May 22
prev sibling parent Ecstatic Coder <ecstatic.coder gmail.com> writes:
 You are exactly the 146-th person to come here and say "std lib 
 should be richer, and more docs and tutorials should be 
 written". Unfortunately there is no automatic tool to convert 
 these requests and suggestions into reality without using a lot 
 of manpower.
Don't worry I'm on that too. Simply at the moment, I'm currently writing a D tutorial for total beginners, based on the materials I made to teach programming to my children. As the theory and exercises are currently in French, I'll have translate them, which will take some time. And now I'm also maintaining several open source tools. As for everybody my free time is limited, but I'll do my best to test the future std libs, and help debug them.
May 22
prev sibling next sibling parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
 Since a few months, I'm using D for all my command-line tools.

 For that use case, the language and its standard libraries are 
 really perfect, making it the best scripting language I know, 
 completely exploding JavaScript, Python, Ruby, etc.
Glad to see you're happy with the language. Let's break down each of these suggestions.
   - std.database (connect/use MySQL/MongoDB/etc databases)
I while I don't agree that the connection facilities themselves should be included (shipping C libraries has been a huge pain), I agree that some form of either ORM or standardized format of DB API should be in Phobos. Like SQLAlchemy, let's leave the connection to other libraries.
   - std.ui (draw 2D user interfaces)
   - std.input (get mouse/touchscreen/etc events)
I would like to point out that users of the languages you mentioned almost never use the builtin versions of these types of libraries (and hasn't maintenance of Swing been a huge time burden on the Java devs, I remember reading this somewhere). Python users use either Qt or GTK, not Tk.
 * a soft-realtime garbage collector (like in Nim), which can 
 progressively recycle the memory of a thread without blocking 
 the whole application.
This is possible, just needs a champion.
   - std.web (serve web data/files/pages)
There's a philosophical boundary here. There are many ways to make a web server, and there's no one right answer for every web problem. Standardizing one type of server seems improper. Plus the below problem applies.
   - std.audio (load/play/process/record sounds/musics)
   - std.image (load/show/process/record images)
   - std.video (load/show/process/record videos)
   - std.graphic (draw 2D/3D graphics)
 * a dedicated IDE, allowing to effortlessly 
 open/compile/execute/debug a single ".d" file as well as an 
 entire project.
The problem with all of these suggestions is that the maintenance burden is so enormous that it would take a medium sized team of paid professionals. Let's take std.graphic as an example. To give a sense of the scale of the job, getting a cross platform graphics API is a task so large that it takes some of the largest corporations in the world (MS, Apple, etc.) to come together to make it happen. It's not so much a code problem as it is an organization problem. The result is OpenGL, an API that no one likes very much and literally no one understands. So we would have to support OpenGL, because this has to work on Linux and OpenBSD. Next, you probably want to support DX 11, because that's what pretty much 99% of video games use, so that's another monolithic API that you have to incorporate into your agnostic API. Now how about DX 12? Because it's supposedly way faster, and if you're going after game devs, they tend to worry about speed. How about Vulkan? How about OpenGL 3 as well as 4 because Apple abjectly refuses to upgrade for no apparent reason. Speaking of Apple, how about Metal? Oh, and we want to support mobile so don't forget about OpenGL ES, plus all its different versions that have to be supported for different phone platforms. I cannot stress enough how difficult a task a cross platform 3D graphics library is. It's the same thing for audio and video too. Just look at all of the different encodings and features ffmpeg supports. No, best to leave graphics/audio/video to C libraries that already exist. Even if it's painful, it's more painful to copy their work.
 But with some efforts...
D is 100% community run and none of us get paid. Bringing something into Phobos doesn't mean that it gets more work (it can actually mean the opposite). It's gotten to the point where each module in Phobos ostensively has one or two owners who's responsible for its condition in order to spread the load.
 For the web servers, vibe.d is already there.

 For desktop applications, there is gtkd and dlangui.
In order to make the existing libraries standard would require 1. An API freeze. Not something that anyone in the community is willing to concede, not even Vibed. 2. Constant, time consuming review of every change, as is required by any standard library for QA. This is why ndslice is no longer in Phobos. 3. Tons of hours of work fixing the bugs that are present in the existing solutions before even considering merging them into Phobos.
 I agree that at the moment, all these developments can be 
 possible through several third-party libraries.
And that's the way it's going to have to stay TBH.
May 22
parent Ecstatic Coder <ecstatic.coder gmail.com> writes:
Ok, I agree with what you say.

Indeed, it sounds logical to suppose that the developers of the 
best libraries in each domain won't probably accept that their 
work is adapted to be promoted to the status of standard 
libraries, just to keep the full control on them.

That's sad, because I still consider that D's popularity could 
improve a lot if it was also equipped "by default" to be a rapid 
application development environment for cross-platform connected 
web/desktop/mobile applications, but now I've clearly understood 
why this will never happen.
May 23
prev sibling next sibling parent reply MGW <mgw yandex.ru> writes:
On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
 Since a few months, I'm using D for all my command-line tools.
I consider that D and phobos are quite ready for constant use. As for alternative libraries, I selected a way of integration with Qt. One Small example of my operation on Mac OSX, is mini IDE c use of Qt 5. https://www.youtube.com/watch?v=JbvUJwShN_c https://github.com/MGWL/QtE5
May 23
parent Ecstatic Coder <ecstatic.coder gmail.com> writes:
On Tuesday, 23 May 2017 at 07:33:04 UTC, MGW wrote:
 On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
 Since a few months, I'm using D for all my command-line tools.
I consider that D and phobos are quite ready for constant use. As for alternative libraries, I selected a way of integration with Qt. One Small example of my operation on Mac OSX, is mini IDE c use of Qt 5. https://www.youtube.com/watch?v=JbvUJwShN_c https://github.com/MGWL/QtE5
Thanks for proposing this C++ wrapper. Qt will get the job done, obviously, so at least now I can implement my GUI with ease. C++ back to the rescue ;)
May 23
prev sibling parent reply Guillaume Piolat <first.last gmail.com> writes:
On Sunday, 21 May 2017 at 05:52:11 UTC, Ecstatic Coder wrote:
   - std.database (connect/use MySQL/MongoDB/etc databases)
http://code.dlang.org/packages/arsd
   - std.web (serve web data/files/pages)
vibe.d http://code.dlang.org/packages/arsd
   - std.audio (load/play/process/record sounds/musics)
http://code.dlang.org/?sort=updated&category=library.audio
   - std.image (load/show/process/record images)
http://code.dlang.org/packages/imageformats http://code.dlang.org/packages/ae http://code.dlang.org/packages/arsd
   - std.video (load/show/process/record videos)
http://code.dlang.org/packages/ae I sometimes process video with command-line pipes using https://github.com/p0nce/y4m-tools
   - std.graphic (draw 2D/3D graphics)
http://code.dlang.org/packages/ae Check out its explanation https://blog.thecybershadow.net/2014/03/21/functional-image-processing-in-d/
   - std.input (get mouse/touchscreen/etc events)
Honestly you are better off with using SDL. http://code.dlang.org/packages/derelict-sdl2
   - std.ui (draw 2D user interfaces)
http://code.dlang.org/packages/dlangui
 I agree that at the moment, all these developments can be 
 possible through several third-party libraries.
So we just need ranking in code.dlang.org?
May 23
next sibling parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
 So we just need ranking in code.dlang.org?
Again, I'm not saying that these libraries don't exist. I'm saying that there are many alternatives to choose from, which is fine, but sometimes, not having to search, evaluate and test third-party libraries can be a benefit to the user of a new programming language. It seems that I'm a good example of this kind of "dumb" programmer, who prefer to have everything already prepared. Some people like to buy meat, vegetables etc, and cook all that to prepare lasagne or chinese food all by themselves. Personally, my wife prepares these delicious dishes for me, and I'm perfectly happy with that. Some people prefer that things are already prepared for them and immediately ready to use, some others don't, and prefer to do all the experiments by themselves until they have found exactly what is best for them. Not everybody is the same, that's all what I'm saying. And some of the programmers who try D might not like to take time searching for these libraries, and decide that D is not enough "operational" by their standard, whether it's true or not. The problem is that all the people on this forum are by definition those who haven't rejected the D language for that reason. I know at least two fellow programmers who tried it on my advice, and told me that "indeed D is nice but to do xxx it's still easier with yyy". I tried to explained that with this post, and what could be a solution for that problem, but obviously that was pointless.
May 23
parent Guillaume Piolat <first.last gmail.com> writes:
On Tuesday, 23 May 2017 at 22:14:22 UTC, Ecstatic Coder wrote:
 I tried to explained that with this post, and what could be a 
 solution for that problem, but obviously that was pointless.
Hi, You'll find agreement here. I wasn't framing my answer as a criticism of your post, which I think is well balanced. The leadership believes in a larger standard library too. I just wanted to increase awareness of the (sometimes outstanding) libraries there is in the dub registry, that can be used right now. Some of it are below the radar but worthwhile.
May 23
prev sibling parent reply Adam D. Ruppe <destructionator gmail.com> writes:
On Tuesday, 23 May 2017 at 21:21:45 UTC, Guillaume Piolat wrote:
 http://code.dlang.org/packages/arsd
So actually, the dub thing for mine is http://code.dlang.org/packages/arsd-official/~master the other was a third party thing that is now obsolete (and imo this shows one of the weaknesses of dub right now... the list order is just most recent explicit update and old things can't be removed afaik)
   - std.input (get mouse/touchscreen/etc events)
Honestly you are better off with using SDL.
oh my simpledisplay does that too! and 2d/3d drawing. and combined with minigui does user interface (though minigui still isn't quite done) I am tempted to package my stuff with dmd as a one-stop download... but idk if it is really beneficial since my stuff is so easy to download and use anyway with my policy of independent files.
May 23
next sibling parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 24/05/2017 5:04 AM, Adam D. Ruppe wrote:
 On Tuesday, 23 May 2017 at 21:21:45 UTC, Guillaume Piolat wrote:
 http://code.dlang.org/packages/arsd
So actually, the dub thing for mine is http://code.dlang.org/packages/arsd-official/~master the other was a third party thing that is now obsolete (and imo this shows one of the weaknesses of dub right now... the list order is just most recent explicit update and old things can't be removed afaik)
They can be removed, but that means projects stop being built hence not wanting to remove them.
May 23
next sibling parent reply evilrat <evilrat666 gmail.com> writes:
On Wednesday, 24 May 2017 at 04:14:39 UTC, rikki cattermole wrote:
 On 24/05/2017 5:04 AM, Adam D. Ruppe wrote:
 On Tuesday, 23 May 2017 at 21:21:45 UTC, Guillaume Piolat 
 wrote:
 http://code.dlang.org/packages/arsd
So actually, the dub thing for mine is http://code.dlang.org/packages/arsd-official/~master the other was a third party thing that is now obsolete (and imo this shows one of the weaknesses of dub right now... the list order is just most recent explicit update and old things can't be removed afaik)
They can be removed, but that means projects stop being built hence not wanting to remove them.
It is still better to move them to 'obsolete' category and hide from default list, showing only when user explicitly search including this obsolete stuff to request(tick mark, adding 'obsolete' to search request or whatever) or browsing that special 'obsolete' category.
May 23
parent rikki cattermole <rikki cattermole.co.nz> writes:
On 24/05/2017 7:10 AM, evilrat wrote:
 On Wednesday, 24 May 2017 at 04:14:39 UTC, rikki cattermole wrote:
 On 24/05/2017 5:04 AM, Adam D. Ruppe wrote:
 On Tuesday, 23 May 2017 at 21:21:45 UTC, Guillaume Piolat wrote:
 http://code.dlang.org/packages/arsd
So actually, the dub thing for mine is http://code.dlang.org/packages/arsd-official/~master the other was a third party thing that is now obsolete (and imo this shows one of the weaknesses of dub right now... the list order is just most recent explicit update and old things can't be removed afaik)
They can be removed, but that means projects stop being built hence not wanting to remove them.
It is still better to move them to 'obsolete' category and hide from default list, showing only when user explicitly search including this obsolete stuff to request(tick mark, adding 'obsolete' to search request or whatever) or browsing that special 'obsolete' category.
To hide and to remove all together are two separate things, but I agree hiding older packages that are no longer relevant would be a good idea.
May 23
prev sibling parent Adam D. Ruppe <destructionator gmail.com> writes:
On Wednesday, 24 May 2017 at 04:14:39 UTC, rikki cattermole wrote:
 They can be removed, but that means projects stop being built 
 hence not wanting to remove them.
That old one hasn't actually even compiled for over a year - I still sometimes get bug reports that things don't build cuz of deprecation errors and it is because of that old package. There's nothing gained and some lost. I think all packages without a push for over two years should be removed or reassigned to a new owner (make the dub name refer to a newer fork of the original git repo)
May 24
prev sibling next sibling parent reply jmh530 <john.michael.hall gmail.com> writes:
On Wednesday, 24 May 2017 at 04:04:53 UTC, Adam D. Ruppe wrote:
 On Tuesday, 23 May 2017 at 21:21:45 UTC, Guillaume Piolat wrote:
 http://code.dlang.org/packages/arsd
So actually, the dub thing for mine is http://code.dlang.org/packages/arsd-official/~master
Just wanted to say that I was glad you did this. It makes it that much easier to play around with your stuff.
May 24
parent reply Adam D. Ruppe <destructionator gmail.com> writes:
On Wednesday, 24 May 2017 at 12:09:02 UTC, jmh530 wrote:
 Just wanted to say that I was glad you did this. It makes it 
 that much easier to play around with your stuff.
So you use the subpackages or try to use the top level thing? Also have you had trouble with the ~master vs tag thing? dub just doesn't agree with my dev method at all.
May 24
parent jmh530 <john.michael.hall gmail.com> writes:
On Wednesday, 24 May 2017 at 14:49:28 UTC, Adam D. Ruppe wrote:
 On Wednesday, 24 May 2017 at 12:09:02 UTC, jmh530 wrote:
 Just wanted to say that I was glad you did this. It makes it 
 that much easier to play around with your stuff.
So you use the subpackages or try to use the top level thing? Also have you had trouble with the ~master vs tag thing? dub just doesn't agree with my dev method at all.
I had only noticed it was on dub recently so haven't had a chance to play around with it that way. I had only used it the old-fashioned way.
May 24
prev sibling parent aberba <karabutaworld gmail.com> writes:
On Wednesday, 24 May 2017 at 04:04:53 UTC, Adam D. Ruppe wrote:
 On Tuesday, 23 May 2017 at 21:21:45 UTC, Guillaume Piolat wrote:
 [...]
So actually, the dub thing for mine is http://code.dlang.org/packages/arsd-official/~master the other was a third party thing that is now obsolete (and imo this shows one of the weaknesses of dub right now... the list order is just most recent explicit update and old things can't be removed afaik)
 [...]
oh my simpledisplay does that too! and 2d/3d drawing. and combined with minigui does user interface (though minigui still isn't quite done) I am tempted to package my stuff with dmd as a one-stop download... but idk if it is really beneficial since my stuff is so easy to download and use anyway with my policy of independent files.
Actually the dub version is much easier/convenient for me. Ha ha
May 24