Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Joakim via Digitalmars-d
On Saturday, 3 February 2018 at 01:52:04 UTC, psychoticRabbit 
wrote:

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:


I am personally confused with D's message.


I think that point hits the cause of your problem with D (along 
with your need to 'choose' something over 'something' else).


Stop looking for the meaning of D .. and start experiencing it.
(there is no meaning...to anything!)

Stop comparing D to other things, and just enjoy what it has to 
offer.

(tribalism not cool!)

And btw. one persons technical justification for using x, is 
another persons technical justification for not using x.


Plenty of experienced programmers  (who never used D before) 
now enjoy using D, even if they still have to program in other 
languages...in order to earn a living.


Too many corporations have big investments in other languages. 
Don't expect D to compete here anytime soon. That is the nature 
of business. If D is to take off anywhere, it will be in the 
open source community, and startups - not a google or facebook, 
and certainly never microsoft.


D has a lot of good and interesting things to offer to the 
world of software development, including an amazing, reasonably 
efficient standard library (with support from the compiler). It 
also supports all major platforms that matter (although it's 
hard to argue that windows 32bit 'matters' ;-). And there is no 
corporate backer making this all happen. It's just people who 
want to build something great, and give up their time to do it.


D has the benefit of having a compiler expert, and an algorithm 
expert in the core team. The advantage from this cannot be 
underestimated (which is why many are willing to look the other 
way when it comes to lack of significant management skills ;-)
  ..and I'd rather it that way, than the other way (i.e great 
managers, who don't understand a thing). Both would be nice.. 
but who has that?


Probably the best response to what he wrote and to similar 
sentiments expressed by others over the years, but I'll add one 
caveat: it has been mentioned here that D has been used a little 
by a few teams at both Facebook and Microsoft, dunno about 
Google.  Though as you said, no sign that they'll embrace it much 
more, and probably better to have it adopted at many more smaller 
places.


But D is on a road trip...it's not at its destination (I'm not 
sure it even knows - or cares - where its going ;-)


Just enjoy the road trip! Or jump out. It's entirely your 
choice.


But the road trip will continue, and those on it, will keep 
enjoying new sights...


According to Linus, it is impossible to know your destination if 
your scope is wide enough, such as a general-purpose programming 
language or an OS kernel, as this is what he said in response to 
a question about whether linux could still be designed at the 
scale it reached 16 years ago:


"I will go further and claim that _no_ major software project 
that has
been successful in a general marketplace (as opposed to niches) 
has ever
gone through those nice lifecycles they tell you about in CompSci 
classes.
Have you _ever_ heard of a project that actually started off with 
trying

to figure out what it should do, a rigorous design phase, and a
implementation phase?

Dream on.

Software evolves. It isn't designed. The only question is how 
strictly you
_control_ the evolution, and how open you are to external sources 
of

mutations.

And too much control of the evolution will kill you. Inevitably, 
and

without fail. Always. In biology, and in software.

Amen."
http://yarchive.net/comp/evolution.html


Re: Inline code in the docs - the correct way

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 2 February 2018 at 20:15:11 UTC, H. S. Teoh wrote:
This is the kind of thing you should be promoting to Andrei to 
convince him that dpldocs is better. ;-)


I'm updating my fork now and check out this merge conflict:

<<< HEAD
 *  source = The [isInputRange|input range] to encode.
===
 *  source = The $(REF_ALTTEXT input range, isInputRange, 
std,range,primitives)

 *   to _encode.

b905180b1fffa78f922677ee90ed8ae9b803fc4f




My syntax is so much prettier. (note that the stupid leading _ is 
something I strip out too. Ddoc's most moronic "feature". Can we 
PLEASE kill that?!?!?!!)


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Walter Bright via Digitalmars-d

On 2/2/2018 7:06 AM, Benny wrote:

Other languages have slogans, they have selling points.

When i hear Go, you hear uniformal, fast, simple syntax language.
When i hear Rust, you hear safe, manual memory management.
When i hear D, you hear ... ... ... ...


  Fast code, fast


Re: The delang is using merge instead of rebase/squash

2018-02-02 Thread timotheecour via Digitalmars-d

On Sunday, 19 November 2017 at 04:44:24 UTC, Meta wrote:

On Friday, 24 March 2017 at 16:34:46 UTC, Martin Nowak wrote:

On Tuesday, 21 March 2017 at 20:16:00 UTC, Atila Neves wrote:

git rebase master my_branch
git checkout master
git merge --no-ff my_branch


Yes, that's about what we aim for, rebase w/ --autosquash 
though, so that people can `git commit --fixup` new fixup 
commits to open PRs w/o leaving noise behind.


https://github.com/dlang-bots/dlang-bot/issues/64

Requires a local checkout of the repo which the bot doesn't 
have atm.


Did we come to any consensus on this? I ran into a dilemma with 
https://github.com/dlang/phobos/pull/5577 where I added a 
couple fixup commits, and now I don't want to merge until 
somebody rebases it because the history will be polluted with 
those extra commits. Also, looking at the PRs linked in this 
thread, I see that they're still open so AFAICT there is no 
clear solution.


This is an important issue; rebase workflows are standard 
practice;

http://kensheedlo.com/essays/why-you-should-use-a-rebase-workflow/
https://help.github.com/articles/configuring-commit-rebasing-for-pull-requests/



Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread psychoticRabbit via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:


Other languages have slogans, they have selling points.

When i hear Go, you hear uniformal, fast, simple syntax 
language.

When i hear Rust, you hear safe, manual memory management.
When i hear D, you hear ... ... ... ...



When i hear D, you hear:

"The freedom to program, the way you want".

(if you listen carefully..then you'll hear it)



Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread psychoticRabbit via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:


I am personally confused with D's message.


I think that point hits the cause of your problem with D (along 
with your need to 'choose' something over 'something' else).


Stop looking for the meaning of D .. and start experiencing it.
(there is no meaning...to anything!)

Stop comparing D to other things, and just enjoy what it has to 
offer.

(tribalism not cool!)

And btw. one persons technical justification for using x, is 
another persons technical justification for not using x.


Plenty of experienced programmers  (who never used D before) now 
enjoy using D, even if they still have to program in other 
languages...in order to earn a living.


Too many corporations have big investments in other languages. 
Don't expect D to compete here anytime soon. That is the nature 
of business. If D is to take off anywhere, it will be in the open 
source community, and startups - not a google or facebook, and 
certainly never microsoft.


D has a lot of good and interesting things to offer to the world 
of software development, including an amazing, reasonably 
efficient standard library (with support from the compiler). It 
also supports all major platforms that matter (although it's hard 
to argue that windows 32bit 'matters' ;-). And there is no 
corporate backer making this all happen. It's just people who 
want to build something great, and give up their time to do it.


D has the benefit of having a compiler expert, and an algorithm 
expert in the core team. The advantage from this cannot be 
underestimated (which is why many are willing to look the other 
way when it comes to lack of significant management skills ;-)
..and I'd rather it that way, than the other way (i.e great 
managers, who don't understand a thing). Both would be nice.. but 
who has that?


But D is on a road trip...it's not at its destination (I'm not 
sure it even knows - or cares - where its going ;-)


Just enjoy the road trip! Or jump out. It's entirely your choice.

But the road trip will continue, and those on it, will keep 
enjoying new sights...





Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread aberba via Digitalmars-d

On Saturday, 3 February 2018 at 00:11:06 UTC, Adam D. Ruppe wrote:

On Friday, 2 February 2018 at 23:49:14 UTC, aberba wrote:
It appears most core contributors are not into networking or 
web services so they may not see it as a blocker.


I do tons of HTTP stuff in D; to me it is a solved problem. 
Though I haven't implemented http2 since I don't need it; http 
1.1 has much better compatibility (and will for many years to 
come) and performs plenty well enough for API client use, and 
server use is handled behind a production server anyway, so it 
works quite well.


A http2 client might be worth doing someday, but right now 
there's just no pressing need, even using http resources every 
day.


Yeah. I do know you're on of the few guys into web services.


Re: Inline code in the docs - the correct way

2018-02-02 Thread Walter Bright via Digitalmars-d

On 2/1/2018 6:09 AM, Steven Schveighoffer wrote:

On 1/31/18 9:58 PM, Walter Bright wrote:

On 1/31/2018 5:37 PM, Steven Schveighoffer wrote:

Where it breaks down is when you have many nested tags, and you end with )


Long ago, I adjusted my text editor so that when the cursor is placed on ), 
the matching ( is found. Ditto for { }, [ ], < >, and #if/#elif/#else/#endif 
(!). It's been incredibly convenient.


This has literally been in vim since I started using it, what, 15 years ago? It 
doesn't matter.


The #if too?



When I'm reviewing a PR, I don't see the matching as easily.


True, but that applies to anything with a block structure.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 2 February 2018 at 23:49:14 UTC, aberba wrote:
It appears most core contributors are not into networking or 
web services so they may not see it as a blocker.


I do tons of HTTP stuff in D; to me it is a solved problem. 
Though I haven't implemented http2 since I don't need it; http 
1.1 has much better compatibility (and will for many years to 
come) and performs plenty well enough for API client use, and 
server use is handled behind a production server anyway, so it 
works quite well.


A http2 client might be worth doing someday, but right now 
there's just no pressing need, even using http resources every 
day.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread aberba via Digitalmars-d

On Friday, 2 February 2018 at 23:49:14 UTC, aberba wrote:

On Friday, 2 February 2018 at 21:09:20 UTC, Rubn wrote:

[...]


D can equally do HTTP in whatever way Go does it. It appears 
most core contributors are not into networking or web services 
so they may not see it as a blocker. Its more of an ecosystem 
issue and not a language issue.


[...]


Now I can't fix my statement ... The statement doesn't make sense 
to me.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread aberba via Digitalmars-d

On Friday, 2 February 2018 at 21:09:20 UTC, Rubn wrote:

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

HTTP:


If you are focusing on Http then yah Go is probably the better 
choice, it looks like it is entire geared towards http 
development. I wouldn't use D for http just like I wouldn't use 
C++ for http.


D can equally do HTTP in whatever way Go does it. It appears most 
core contributors are not into networking or web services so they 
may not see it as a blocker. Its more of an ecosystem issue and 
not a language issue.


Even with D, we have libraries like request 
(http://code.dlang.org/packages/requests) for HTTP/FTP. Its does 
support http2 yet though but its enough for all my HTTP needs for 
now.


We also have vibe.d which I don't get the point which saying it 
might be abandoned is not a reason to ignore it as useful or 
enough. I've seen several people here submitting pull requests in 
every release of it. Considering the size of this community (in 
my estimation), vibe.d is well supported. It does more than what 
express for NodeJS does on its own.


There in also an effort to make D work on Alpine Linux which is 
very common for packaging applications into lightweight docker 
containers. Support for D in the cloud also require some amount 
of work since none of them support D SDKs.


The Internet and the web is continuously growing and 
communication protocols are quite significant in the change.







Re: Inline code in the docs - the correct way

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 2 February 2018 at 20:15:11 UTC, H. S. Teoh wrote:
This is the kind of thing you should be promoting to Andrei to 
convince him that dpldocs is better. ;-)


I've laid out my arguments several times, including this point. 
Actually, $(REF) was introduced after I made the argument, so it 
is a slight win, though ddoc, over the last two years, has barely 
caught up to what I was able to accomplish independently in two 
weeks.


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread rjframe via Digitalmars-d
On Fri, 02 Feb 2018 20:04:33 +, Seb wrote:

> Not could - it's now is:
> https://forum.dlang.org/post/tzyleprmwjmdnjhhp...@forum.dlang.org

Sometimes y'all get things done so quickly I'm surprised everybody's a 
volunteer.

--Ryan


Re: [RFC] IDE starter kit

2018-02-02 Thread rumbu via Digitalmars-d

On Friday, 2 February 2018 at 20:42:55 UTC, Ivan Trombley wrote:

Here's how I get started:
- Install DMD.
- Install Visual Studio Code.
- Add Jan Jurzitza's (webfreak) serve-d and Native Debug 
plugins to VSC.



C:\D\dmd2\windows\bin\..\..\src\phobos\std\math.d(543,33): 
Deprecation: integral promotion not done for `-x`, use 
'-transition=intpromote' switch or `-cast(int)(x)`

emsi_containers 0.5.3: building configuration "library"...
dsymbol 0.2.8: building configuration "library"...
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d(189,15):
 Error: no property 'symbol' for type 'const(Type2)'
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d(189,42):
 Error: no property 'symbol' for type 'const(Type2)'
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d(192,23):
 Error: no property 'symbol' for type 'const(Type2)'
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d(248,35):
 Error: no property 'identifierList' for type 'const(AliasDeclaration)'
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d(938,14):
 Error: no property 'symbol' for type 'const(Type2)'
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\conversion\first.d(939,18):
 Error: no property 'symbol' for type 'const(Type2)'
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\emsi_containers-0.5.3\emsi_containers\src\containers\unrolledlist.d(504,15):
 Deprecation: integral promotion not done for `~this.registry`, use 
'-transition=intpromote' switch or `~cast(int)(this.registry)`
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\semantic.d(123,21): 
Error: no property 'symbol' for type 'dparse.ast.Type2'
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\semantic.d(124,21): 
Error: no property 'symbol' for type 'dparse.ast.Type2'
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\semantic.d(128,21): 
Error: no property 'symbol' for type 'dparse.ast.Type2'
..\..\..\dub\packages\dsymbol-0.2.8\dsymbol\src\dsymbol\semantic.d(130,21): 
Error: no property 'symbol' for type 'dparse.ast.Type2'
dmd failed with exit code 1.
Failed to install serve-d (Error code 2)


- Get busy.


Yes. Now I'm busy cleaning my C:\Users\***\AppData\Roaming\ 
folder.




Re: D build and SCons

2018-02-02 Thread H. S. Teoh via Digitalmars-d
On Thu, Feb 01, 2018 at 12:56:28PM +, Russel Winder wrote:
[...]
> Apologies for taking so long to get to this.

Not a problem, you and I are both busy, and it's perfectly
understandable that we can't respond to things instantly.


> On Thu, 2017-12-28 at 10:21 -0800, H. S. Teoh via Digitalmars-d wrote:
[...]
> > OK, I may have worded things poorly here.  What I meant was that
> > with "traditional" build systems like make or SCons, whenever you
> > needed to rebuild the source tree, the tool has to scan the *entire*
> > source tree in order to discover what needs to be rebuilt. I.e.,
> > it's O(N) where N is the size of the source tree.  Whereas with tup,
> > it uses the Linux kernel's inotify mechanism to learn about which
> > file(s) being monitored have been changed since the last invocation,
> > so that it can scan the changed files in O(n) time where n is the
> > number of changed files, and in the usual case, n is much smaller
> > than N. It's still linear in terms of the size of the change, but
> > sublinear in terms of the size of the entire source tree.
> 
> This I can agree with. SCons definitely has to check hashes to
> determine which files have changed in a "not just space change" way on
> the leaves of the build ADG. I am not sure what Ninja does, but yes
> Tup uses inotify to filter the list of touched, but not necessarily
> changed, files. For my projects build time generally dominates check
> time so I don't see much difference. Except that Ninja is way faster
> than Make as a backend to CMake.

In small projects like my personal ones, SCons still does a fast enough
job that I don't really care about the difference between O(N) and O(n).
So I still use SCons for them -- SCons does have a really nice interface
and is generally pleasant to work with, so I don't feel an immediate
need to improve the build system.

But in a large project, like the one I work with at my job, containing
500,000 source files (not counting data files and the like that also
need to be processed by the build system), the difference can become
very pronounced.  In our case, we use make, which doesn't scan file
contents, and recursive make at that, so the initial scanning pause is
not noticeable. However, this perceived speed comes at the heavy cost of
reliability. On more occasions than I'd wish anyone else to experience,
I've had problems with faulty software builds caused not by actual bugs
in the code, but merely by make not rebuilding something when it should
be, or not cleaning up stray stale files when it should, causing stale
object files to be linked instead of the real objects.  It has simply
become an accepted fact of life to `make clean; make`. Well actually,
it's even worse than that -- our `make clean` does *not* clean
everything that might potentially be a problem, so I have for the last
≥5 years resorted to a script that manually deletes everything that
isn't under version control.  (What makes it even sadder is that the
version control server is overloaded and it's faster to delete files
locally than to checkout a fresh copy of the workspace, which is
essentially what my script amounts to.)

At one point I was on the verge of proposing SCons as a make
replacement, but balked when initial research into the prospect showed
that SCons consistently had performance issues with needing to scan the
entire source tree before it begins building.  That, coupled with
general resistance to change in your average programmer workforce and
their general unfamiliarity with make alternatives, made me back off
from making the proposal.

Had tup been around at that time, it would likely have turned the tables
with its killer combo of sublinear (relative to workspace size) scanning
and reliability.  That's why I think that any modern build system that's
going to last into the future must have these two features, at a
minimum.


> > I think it should be obvious that an approach whose complexity is
> > proportional to the size of the changeset is preferable to an
> > approach whose complexity is proportional to the size of the entire
> > source tree, esp.  given the large sizes of today's typical software
> > projects.  If I modify 1 file in a project of 10,000 source files,
> > rebuilding should not be orders of magnitude slower than if I modify
> > 1 file in a project of 100 files.
> 
> Is it obvious, but complexity is not everything, wall clock time is
> arguably more important.

Using inotify() to update your dependency tree has basically zero wall
clock time because it's done in the background. You can't beat that with
anything that requires scanning upon invocation of the build tool.


> As is actual build time versus preparation time. SCons does indeed
> have a large up-front ADG check time for large projects. I believe
> there is the Parts overlay on SCons for dealing with big projects. I
> believe the plan for later in the year is for the most useful parts of
> Parts to become part of the main SCons system. 

Re: [RFC] IDE starter kit

2018-02-02 Thread WebFreak001 via Digitalmars-d

On Friday, 2 February 2018 at 20:42:55 UTC, Ivan Trombley wrote:

Here's how I get started:
- Install DMD.
- Install Visual Studio Code.
- Add Jan Jurzitza's (webfreak) serve-d and Native Debug 
plugins to VSC.

- Get busy.


this entire procedure also works on windows now as you no longer 
need LDC for serve-d/workspace-d to work :)




Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread user via Digitalmars-d
When i hear Go, you hear uniformal, fast, simple syntax 
language.

When i hear Rust, you hear safe, manual memory management.
When i hear D, you hear ... ... ... ...


I usually hear awesome meta-programming and ranges.

I think D community had put lot of effort in making these things 
work because (1) these are cool (2) increases expressive power. 
Unfortunately at the detriment of tooling and libraries.


I think we should put a stop to adding new features in D2 at some 
point and focus on stability, libraries and tools.


Can't wait to see how the road map looks like for 18H1.




Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread 12345swordy via Digitalmars-d

On Friday, 2 February 2018 at 21:14:12 UTC, Walter Bright wrote:

On 2/2/2018 11:08 AM, Russel Winder wrote:
Hummm… could it be that Andrei did not define the task 
appropriately,
train the person appropriately, and mentor the person 
appropriately.
Management has to be able to delegate and achieve required 
results

without doing the work themselves.


Of course. But all that is far easier said than done.

Andrei and I are not born managers, we are learning as we go. 
So I ask for your indulgence and understanding where we fall 
short.


Would it be easier for hire a proven manager(Or at least look for 
mangers that are able to volunteer)?


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Walter Bright via Digitalmars-d

On 2/2/2018 11:08 AM, Russel Winder wrote:

Hummm… could it be that Andrei did not define the task appropriately,
train the person appropriately, and mentor the person appropriately.
Management has to be able to delegate and achieve required results
without doing the work themselves.


Of course. But all that is far easier said than done.

Andrei and I are not born managers, we are learning as we go. So I ask for your 
indulgence and understanding where we fall short.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Rubn via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

HTTP:


If you are focusing on Http then yah Go is probably the better 
choice, it looks like it is entire geared towards http 
development. I wouldn't use D for http just like I wouldn't use 
C++ for http.


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Paolo Invernizzi via Digitalmars-d

On Friday, 2 February 2018 at 18:17:30 UTC, H. S. Teoh wrote:

On Fri, Feb 02, 2018 at 03:06:57PM +, Mark via

It has, to some extent. But the fundamental problem remains 
that more manpower is needed so that he can be freed up to do 
the more important things.  Having to personally review all new 
public symbols added to Phobos, for example, just doesn't seem 
scalable in the long run.  But, as Andrei himself said, the 
last time he left that decision to somebody else, there was a 
noticeable deterioration in the quality of code in Phobos.  So 
we need not only more manpower, but also more *trusted* 
manpower; people who share the same views as Andrei, whom he 
can trust to make the right decisions without his intervention.


There's no silver bullet to this, and it's indeed a very 
difficult task.


Having done this for a lot of my life, my advice is simply to 
keep that always present in every decision, and, sometime, be 
more permissive in the short term decisions, to just archive that 
more important long term goal.


Growing (and discovering!), talents it's indeed a job by itself.

/P




Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread David Gileadi via Digitalmars-d

On 2/2/18 1:38 PM, welkam wrote:

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

** Wall of text **


I dont post here often but...

Most of what you complain is known already and/or not entirely correct. 
People who work on D are not some glue sniffing brain dead individuals 
that are incapable of understanding that documentation is not perfect, 
library support is lacking and user experience is not at the same level 
as C#. That and more are known here. Over the years that I lurked here I 
saw many people come on forums and complain about things that are 
obvious and say them in a way that indirectly imply incompetence of core 
contributors. Things don't work not because of incompetence but because 
there is not enough people working on things. Thats why you get answers 
you get. To fix problems we need people who work so either you become 
one (fix it yourself) or get some one else to work (pay money).


The entire D project is fueled by coffee and dislike of C/C++ and its 
amazing that it achieved so much with so little


It is pretty amazing, and it's a testament to how appealing the D 
language can be, even with all its surrounding pain points.


As a long time lurker it seems like I see posts like Benny's more often 
recently than I recall seeing in years past. This makes me happy--to me 
it's a sign that more people are seriously considering D than used to. I 
also think it's good to be reminded of what newcomers' pain points are, 
and I'm glad Benny took the time to list his.


Re: [RFC] IDE starter kit

2018-02-02 Thread Ivan Trombley via Digitalmars-d

Here's how I get started:
- Install DMD.
- Install Visual Studio Code.
- Add Jan Jurzitza's (webfreak) serve-d and Native Debug plugins 
to VSC.

- Get busy.




Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread welkam via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

HTTP:

D has no default HTTP server. So you need to rely on vibe.d. 
Vibe.d being a external package that then relies on a few 
people to maintain it.


D has no future proof HTTP. There is currently no official 
http2 build in to vibe.d. Test branches do not count ;)


D interfaces with C and C++ so you are not limited to vibe.d. You 
have entire C and probably all C++ HTTP libraries.


And you didnt benchmark D. You benchmarked vibe.d


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread welkam via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

** Wall of text **


I dont post here often but...

Most of what you complain is known already and/or not entirely 
correct. People who work on D are not some glue sniffing brain 
dead individuals that are incapable of understanding that 
documentation is not perfect, library support is lacking and user 
experience is not at the same level as C#. That and more are 
known here. Over the years that I lurked here I saw many people 
come on forums and complain about things that are obvious and say 
them in a way that indirectly imply incompetence of core 
contributors. Things don't work not because of incompetence but 
because there is not enough people working on things. Thats why 
you get answers you get. To fix problems we need people who work 
so either you become one (fix it yourself) or get some one else 
to work (pay money).


The entire D project is fueled by coffee and dislike of C/C++ and 
its amazing that it achieved so much with so little


Re: Inline code in the docs - the correct way

2018-02-02 Thread H. S. Teoh via Digitalmars-d
On Fri, Feb 02, 2018 at 07:46:51PM +, Adam D. Ruppe via Digitalmars-d wrote:
> On Friday, 2 February 2018 at 18:45:50 UTC, H. S. Teoh wrote:
> > In an ideal world, you wouldn't need to encode any of this stuff
> > inside a ddoc comment.
> 
> Well, that's what the Phobos REF macro does... sort of. You write
> $(REF symbolName, std, module) and the macro figures out the link.
> Though, even that macro is based on the url structure on dlang.org...
[...]

Well exactly, and that's the problem. The macro arguments require
knowledge of the URL structure on dlang.org.  And also knowledge of the
FQN of the symbol. When the FQN changes, you have to update *every link*
that refers to that symbol.  That's like coding in the bad ole days
before encapsulation was a common practice. Everything depended on
everything else, and changing one small thing causes a ripple effect
that requires touching the rest of the code in 100 different places.

We should be leveraging what the compiler is already capable of doing,
and keep the docs agnostic of the nitty-gritty details of the symbol's
FQN or where it might reside in the URL tree.  It's plain and simple
encapsulation, as applied to docs.


[...]
> >  Since ddoc comments are processed by the compiler, and the compiler
> >  has all of the information necessary to resolve identifiers,
> >  arguably all that *should* be needed is just a way to indicate in
> >  the docs, "this word is an identifier", and the compiler would
> >  figure out what it's referring to, perhaps expand it into a
> >  fully-qualified name like std.range.primitives.isInputRange.
> 
> Right, this is exactly what adrdox does and it has been a smashing
> success to me. It'd be nice if ddoc did it too (at least so I don't
> have to deal with so many merge conflicts on the broken phobos source
> links!)
[...]

This is the kind of thing you should be promoting to Andrei to convince
him that dpldocs is better. ;-)


T

-- 
Today's society is one of specialization: as you grow, you learn more and more 
about less and less. Eventually, you know everything about nothing.


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Seb via Digitalmars-d

On Thursday, 1 February 2018 at 11:40:32 UTC, rjframe wrote:

On Thu, 01 Feb 2018 11:11:20 +, Martin Tschierschke wrote:


Idea: There should be some kind of news ticker for all 
enhancements and important decisions, maybe at first just via 
twitter  with a special #tag  beside #dlang where all updates 
are announced. And a place on the homepage, where this feed is 
displayed separately.


The announce forum gets most things; if you're not reading it 
you'll want to (between that and the changelog for the compiler 
and library, that's most activity). A twitter bot to pull all 
announce posts from core committers might not be a bad idea.


Not could - it's now is: 
https://forum.dlang.org/post/tzyleprmwjmdnjhhp...@forum.dlang.org


Re: Inline code in the docs - the correct way

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 2 February 2018 at 18:45:50 UTC, H. S. Teoh wrote:
In an ideal world, you wouldn't need to encode any of this 
stuff inside a ddoc comment.


Well, that's what the Phobos REF macro does... sort of. You write 
$(REF symbolName, std, module) and the macro figures out the 
link. Though, even that macro is based on the url structure on 
dlang.org... it separates package arguments because it needs to 
$2_$3.html#$1 which doesn't match any generator. But it is a heck 
of a lot better than the old way of $(LINK2 std_string.html, 
std.string) which is just plain broken (and btw a few of those 
are still there :( ).


 Since ddoc comments are processed by the compiler, and the 
compiler has all of the information necessary to resolve 
identifiers, arguably all that *should* be needed is just a way 
to indicate in the docs, "this word is an identifier", and the 
compiler would figure out what it's referring to, perhaps 
expand it into a fully-qualified name like 
std.range.primitives.isInputRange.


Right, this is exactly what adrdox does and it has been a 
smashing success to me. It'd be nice if ddoc did it too (at least 
so I don't have to deal with so many merge conflicts on the 
broken phobos source links!)





Re: [RFC] IDE starter kit

2018-02-02 Thread rumbu via Digitalmars-d

On Friday, 2 February 2018 at 15:13:49 UTC, aberba wrote:



Anyways,  DLangUI currently stands as the defacto 
cross-platform GUI library for D. Its keeps getting better in 
functionality.


In this context, I'm talking about a lazy and convenient Windows 
user first experience with D. He doesn't know anything about dub, 
packages or about the excellent work of Vadim. It will be nice 
for him to type "import std.ui" instead to download dub, install 
it, launch command prompt, run some mysterious dub command and 
download 5 dependencies just to display a window. Even the fact 
that you must use dub to have a GUI project is not understandable 
for a first time user.


The current GUI Sample for D in Visual Studio just throws an 
exception and the code looks painfully too similar to the one I 
found in my first Windows programming book from the '90s :)




Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread bachmeier via Digitalmars-d

On Friday, 2 February 2018 at 17:24:47 UTC, H. S. Teoh wrote:
On Fri, Feb 02, 2018 at 05:01:58PM +, bachmeier via 
Digitalmars-d wrote: [...]
The things you want - a perfect out-of-the-box Windows 
experience, where you can make requests for others to do the 
things you want - is not what D has to offer.


While I agree that in an open-source volunteer project like 
this one, it doesn't make sense to go around telling others 
what to do (it's their own free time, they get to decide what 
they like to work on), I think the bit about a perfect 
out-of-the-box Windows experience is something that we can and 
should work on, even if we may never get there, given our 
current manpower.  Reducing unnecessary barriers like this will 
only benefit us in the long run.  I don't think it's a good 
idea to just give up on it or ignore it.


And AFAIK, there *are* some people working on improving Windows 
support, though progress is slow because of limited manpower. 
(And there's where more volunteers to step up to the plate 
would help expedite things.) So IMO it's unfair to say that D 
has absolutely nothing to offer on this front -- it's not 
perfect yet, but we're getting there!



T


Not sure what happened to my response...

Improving the Windows experience is definitely a good thing. The 
Windows experience
is not yet what it should be, and that's where you either have to 
do the work or

pay someone else to do the work.


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread H. S. Teoh via Digitalmars-d
On Fri, Feb 02, 2018 at 07:08:47PM +, Russel Winder wrote:
> On Fri, 2018-02-02 at 10:17 -0800, H. S. Teoh via Digitalmars-d wrote:
> […]
> > It has, to some extent. But the fundamental problem remains that
> > more manpower is needed so that he can be freed up to do the more
> > important things.  Having to personally review all new public
> > symbols added to Phobos, for example, just doesn't seem scalable in
> > the long run.  But, as Andrei himself said, the last time he left
> > that decision to somebody else, there was a noticeable deterioration
> > in the quality of code in Phobos.  So we need not only more
> > manpower, but also more *trusted* manpower; people who share the
> > same views as Andrei, whom he can trust to make the right decisions
> > without his intervention.
> 
> Hummm… could it be that Andrei did not define the task appropriately,
> train the person appropriately, and mentor the person appropriately.
> 
> Management has to be able to delegate and achieve required results
> without doing the work themselves.
[...]

Exactly.  Tech people like us tend to shy away from this sort of thing,
but it's clearly something sorely needed here.


T

-- 
Verbing weirds language. -- Calvin (& Hobbes)


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Russel Winder via Digitalmars-d
On Fri, 2018-02-02 at 10:17 -0800, H. S. Teoh via Digitalmars-d wrote:
> 
[…]
> It has, to some extent. But the fundamental problem remains that more
> manpower is needed so that he can be freed up to do the more
> important
> things.  Having to personally review all new public symbols added to
> Phobos, for example, just doesn't seem scalable in the long
> run.  But,
> as Andrei himself said, the last time he left that decision to
> somebody
> else, there was a noticeable deterioration in the quality of code in
> Phobos.  So we need not only more manpower, but also more *trusted*
> manpower; people who share the same views as Andrei, whom he can
> trust
> to make the right decisions without his intervention.

Hummm… could it be that Andrei did not define the task appropriately,
train the person appropriately, and mentor the person appropriately.

Management has to be able to delegate and achieve required results
without doing the work themselves.

-- 
Russel.
===
Dr Russel Winder  t: +44 20 7585 2200
41 Buckmaster Roadm: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


signature.asc
Description: This is a digitally signed message part


Re: Inline code in the docs - the correct way

2018-02-02 Thread H. S. Teoh via Digitalmars-d
On Fri, Feb 02, 2018 at 10:49:18AM -0700, Jonathan M Davis via Digitalmars-d 
wrote:
> On Friday, February 02, 2018 15:12:45 Adam D. Ruppe via Digitalmars-d wrote:
> > On Thursday, 1 February 2018 at 02:10:22 UTC, Jonathan M Davis
> > > IMHO, the main problem with ddoc for documentation is that it
> > > doesn't automatically handle stuff like cross-links, and it
> > > fundamentally can't, because to do that properly, you have to
> > > generate all of the docs at once with a standard layout for where
> > > everything goes so that the links can link to stuff.
> >
> > Well, maybe, it could do something like adrdox's symbol lookup but
> > instead of generating a link directly, it could replace it with
> > $(REF) and let the macro definitions handle it.
> >
> > Wouldn't be perfect tho, that macro is clunky to use and define
> > because it doesn't know all the details, but it would be a move up
> > from what we have, and may even work inside code examples.
> 
> I thought about that, but it falls flat on its face as soon as not all
> of the user-defined types are from the library being documented. The
> simplest example would be if I were to publish my own library but it
> used types from Phobos in its API. Turning those types into links
> would then try to link to my project's documentation, which wouldn't
> work. Best case, I could create redirects to the Phobos docs, so that
> might work, but it gets messy fast, and any types from 3rd party
> libraries which were used in the API would have the same problem.
> Somehow, the links would have to be made to work regardless of whether
> the types were part of the project being documented.
[...]

In an ideal world, you wouldn't need to encode any of this stuff inside
a ddoc comment.  Since ddoc comments are processed by the compiler, and
the compiler has all of the information necessary to resolve
identifiers, arguably all that *should* be needed is just a way to
indicate in the docs, "this word is an identifier", and the compiler
would figure out what it's referring to, perhaps expand it into a
fully-qualified name like std.range.primitives.isInputRange.  Then this
can be handed to a stylesheet that would turn it into a link of some
sort.

Cluttering ddoc comments with URLs (or, as a proxy, macros containing
information specific to URLs) that, arguably, the code itself shouldn't
depend on, is something I have ideological issues with.  It's one thing
to refer to a full URL to some online reference like a technical spec
that's unchanging and, ostensibly, will always be out there; it's quite
something else to explicitly spell out links to a particular symbol
using a hard-coded path that can change any time.  E.g., today I may
link to MyType as:

$(LINK $(WEBROOT)/mypackage/mymod.html#MyType)

but tomorrow I may have a major refactoring and now I have to change
*all* such links to:

$(LINK $(WEBROOT)/mynewpackage/newsubpackage/newmod.html#MyType)

instead, whereas the code itself actually doesn't need to change at all,
because the compiler already knows where's the new location of the
symbol, using standard identifier resolution.

Why can't I just write `[MyType]` (or whatever other syntax you prefer),
and let the compiler figure out what the right fully-qualified name is?
Once the compiler figures it out, the stylesheet takes care of turning
it into a HTML link or the equivalent in whatever other output format
you may be using.

On a higher level, even explicit links to symbols in Phobos docs are a
bad idea.  What if 5 months later we decide to move dlang.org/phobos to
dlang.org/docs/phobos?  Or if a Phobos refactoring moves a symbol to
another module?  Any explicit URLs in user ddoc comments will break, and
will have to be updated *one-by-one*.  Whereas if we let the compiler do
its job, the worst that would happen is we update the stylesheet to
point to dlang.org/docs/phobos/* instead of dlang.org/phobos/*, and
*all* links in generated ddocs will be automatically corrected. Any
change in the path to the symbol's doc will already have been resolved
by the compiler -- if your code compiles at all.

tl;dr: I think anything more than plain old markup saying "this is a
symbol that needs a link" in a doc comment is a bad idea.  Ddoc comments
shouldn't be replicating the job of the compiler, and that poorly.


T

-- 
If creativity is stifled by rigid discipline, then it is not true creativity.


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread H. S. Teoh via Digitalmars-d
On Fri, Feb 02, 2018 at 03:06:57PM +, Mark via Digitalmars-d wrote:
> On Wednesday, 31 January 2018 at 23:38:22 UTC, H. S. Teoh wrote:
[...]
> > And I'll be frank that sometimes Andrei can take some effort to
> > convince, and it takes a certain amount of dogged persistence (and
> > thick-skin) to get through to him sometimes. And it doesn't help
> > that he has so much on his plate, and generally doesn't have enough
> > time to dedicate to all the decisions waiting upon him to make, so
> > sometimes it can be frustrating trying to get through to him.
[...]

It seems that what I said above caused a bit of a stir.  So let me
clarify that it was not intended to be a personal critique of Andrei,
and I apologize if it came across that way.  It was more intended as a
friendly dig on, shall we say, one of his more endearing personality
traits -- strong opinions on technical issues and the guts to stick to
them.  And to his credit, I don't know if somebody else in his shoes
would be able to do better than he does now.  Having to make sometimes
tough decisions, e.g., rejecting work that somebody put a lot of effort
into for the sake of the larger picture, while under the pressure of so
many other responsibilities, is not something I envy.  We should be glad
Andrei is willing to shoulder this burden, since otherwise D would not
be where it is today.


> In DConf 2016 Andrei literally said "I'm in charge of too many things.
> Please get me fired!" [1]. Sadly, it doesn't seem like much firing has
> happened since then. :-(
[...]

It has, to some extent. But the fundamental problem remains that more
manpower is needed so that he can be freed up to do the more important
things.  Having to personally review all new public symbols added to
Phobos, for example, just doesn't seem scalable in the long run.  But,
as Andrei himself said, the last time he left that decision to somebody
else, there was a noticeable deterioration in the quality of code in
Phobos.  So we need not only more manpower, but also more *trusted*
manpower; people who share the same views as Andrei, whom he can trust
to make the right decisions without his intervention.


T

-- 
"Maybe" is a strange word.  When mom or dad says it it means "yes", but when my 
big brothers say it it means "no"! -- PJ jr.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Arun Chandrasekaran via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

[snip]


D is a fantastic language.

If I can derive some gist from OP, we need high quality libraries 
for people to use.


There are two things here: libraries (of) high quality (features, 
performance, stability)


Most of the stated facts are known and there are many such 
threads in this forum.


However actionable things will become reality only with *quality 
man power*.


Probably the D website should highlight that before people come 
here to compare it with Rust, Go, C++ etc which are backed up by 
$$$ corporations.


D might have lost it's mind share, but is trying hard to catch up 
to it. That's why you see things on D blog and so on.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Ola Fosheim Grøstad via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

75. Go
69. .Net
67. Rust
64. Pascal < This one surprised even me.
63. Crystal
60. D
55. Swift
51. Kotlin


It is interesting that you took the time to score different 
languages, but of course, there probably are a lot languages or 
frameworks that you didn't score.


Anyway, I think in most cases polyglot programmers looking for 
high productivity would pick a language from a very small set of 
parameters, which basically has very little to do with the 
language itself:


What would be the most productive tooling for this very narrow 
problem I am facing? Then you look at tooling that has been used 
for similar problems, and the eco system around that.


Rust, Crystal, Kotlin and Pascal would  typically be very far 
down on that list. The eco system being an issue.


In reality many programming tasks can be solved efficiently with 
"interpreted" languages like Python or the Javascript-ecosystem. 
I.e. you can get good performance and high productivity for many 
applications if you are selective in how you build your 
application. The reason for this? They have been used for many 
different applications, so other people have already done the 
groundwork.




Re: Inline code in the docs - the correct way

2018-02-02 Thread Jonathan M Davis via Digitalmars-d
On Friday, February 02, 2018 15:12:45 Adam D. Ruppe via Digitalmars-d wrote:
> On Thursday, 1 February 2018 at 02:10:22 UTC, Jonathan M Davis
> > IMHO, the main problem with ddoc for documentation is that it
> > doesn't automatically handle stuff like cross-links, and it
> > fundamentally can't, because to do that properly, you have to
> > generate all of the docs at once with a standard layout for
> > where everything goes so that the links can link to stuff.
>
> Well, maybe, it could do something like adrdox's symbol lookup
> but instead of generating a link directly, it could replace it
> with $(REF) and let the macro definitions handle it.
>
> Wouldn't be perfect tho, that macro is clunky to use and define
> because it doesn't know all the details, but it would be a move
> up from what we have, and may even work inside code examples.

I thought about that, but it falls flat on its face as soon as not all of
the user-defined types are from the library being documented. The simplest
example would be if I were to publish my own library but it used types from
Phobos in its API. Turning those types into links would then try to link to
my project's documentation, which wouldn't work. Best case, I could create
redirects to the Phobos docs, so that might work, but it gets messy fast,
and any types from 3rd party libraries which were used in the API would have
the same problem. Somehow, the links would have to be made to work
regardless of whether the types were part of the project being documented.

- Jonathan M Davis



Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread H. S. Teoh via Digitalmars-d
On Fri, Feb 02, 2018 at 05:01:58PM +, bachmeier via Digitalmars-d wrote:
[...]
> The things you want - a perfect out-of-the-box Windows experience,
> where you can make requests for others to do the things you want - is
> not what D has to offer.

While I agree that in an open-source volunteer project like this one, it
doesn't make sense to go around telling others what to do (it's their
own free time, they get to decide what they like to work on), I think
the bit about a perfect out-of-the-box Windows experience is something
that we can and should work on, even if we may never get there, given
our current manpower.  Reducing unnecessary barriers like this will only
benefit us in the long run.  I don't think it's a good idea to just give
up on it or ignore it.

And AFAIK, there *are* some people working on improving Windows support,
though progress is slow because of limited manpower. (And there's where
more volunteers to step up to the plate would help expedite things.) So
IMO it's unfair to say that D has absolutely nothing to offer on this
front -- it's not perfect yet, but we're getting there!


T

-- 
What did the alien say to Schubert? "Take me to your lieder."


Re: adrdox vs markdown vs ddoc

2018-02-02 Thread Seb via Digitalmars-d

On Thursday, 1 February 2018 at 14:51:41 UTC, ag0aep6g wrote:

On 02/01/2018 07:18 AM, Seb wrote:
It tells quite a bit about the complexity of Ddoc that I had 
to add support for -D to run.dlang.io ...

[...]
I'm not a fan of Ddoc by any means, but that has been fixed in 
Ddoc does this too now: https://run.dlang.io/is/75Z55o


Uhh, is it a good idea to generate documentation on 
run.dlang.io? Isn't this an open invitation for XSS?


Simple example, one can replace all links on the page with 
malicious ones:

https://run.dlang.io/is/wYLpVx


I don't think it's a big problem as user needs to explicitly 
approve the code by hitting Run.
Also all the other Web editors (JSBin, JSFiddle etc.) allow you 
to do the same and even load the HTML + JS when you open the page.


Nevertheless, I added the "sandbox" feature of IFrames:

https://www.html5rocks.com/en/tutorials/security/sandboxed-iframes

-> now even any kind of JS code can't be executed.
Thanks!


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread bachmeier via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

You don't want any comments on your post, but this being the 
internet, it's necessary to respond when you disagree.


D has a nice community IF you fit into the mold. As a Windows 
user i am frankly fed up with people giving responses as 
"report it, fix it yourself" when it has been clearly stated 
that i do as much.


Or when a opinion is voiced about potential improvements, it 
comes down to "do it yourself or pay for it".


It is my personal opinion that:

* Do it yourself
* Pay for it
* Report it ( when the author has stated that they did )

Those comments add nothing to any discussions, they sidetrack 
discussion and only alienate people. Just do a google search 
and its horrible how many posts show up with this type of 
comment or variation.


Some people feel overly aggressive in defending D from 
criticism that it only alienates people. It has alienated me. 
Whenever i think about D, it positive feeling to move forward 
is always matched with dread thinking about some people or 
comments when i want to talk about issues.


The nice people here do not way up, to the people with a chip 
on there shoulder, that just ruin your day/mood.


It also does not help when comments boil down how "windows 
users do not contribute" when they actually do. Its very 
condescending and just scares away people.


The reason you hear this is because you are getting an 
explanation of how things work around here. You write "Those 
comments add nothing to any discussions" and in a sense that is 
true. But that's because there really isn't a reason to have a 
discussion. You are getting an answer. There is nothing to be 
gained from saying "someone should do this and this and this". 
When you get those responses, it is simply people explaining how 
things are done. It wouldn't make sense to go into a clothing 
store and complain that they don't sell fried chicken. If you're 
in the market for fried chicken, don't go to a clothing store. 
The things you want - a perfect out-of-the-box Windows 
experience, where you can make requests for others to do the 
things you want - is not what D has to offer.


Re: My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
D has no default HTTP server. So you need to rely on vibe.d. 
Vibe.d being a external package that then relies on a few 
people to maintain it.


You could also use my libs, which have been around far longer 
than vibe.d and work fairly well with a variety of things 
including http serving, cgi interfacing, databases, gui, 
scripting, all in easy-to-use independent modules and often using 
reliable first-party libraries to avoid bugs.


Of course, you can be forgiven for not knowing that, since I 
don't aggressively advertise them. I'm tempted to package it all 
together someday though... a "just works" thing with the packaged 
libs and maybe even an IDE would be nice. But alas, I don't have 
an IDE packaged like that (yet, at least).


Re: ExpressionTuple is referenced in the specs, but doesn't seem to be defined

2018-02-02 Thread Nick Treleaven via Digitalmars-d
On Wednesday, 31 January 2018 at 12:35:37 UTC, Nick Treleaven 
wrote:

It's now called an Expression List:
https://dlang.org/ctarguments.html#homogenous-lists


That page needs an update too, we should call them sequences.


I'll try to update the docs soon.


There are still various places that need fixing, but this fixes 
the one from your link:

https://github.com/dlang/dlang.org/pull/2161


Re: Inline code in the docs - the correct way

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d
On Thursday, 1 February 2018 at 02:10:22 UTC, Jonathan M Davis 
wrote:
Personally, I hate markdown, because it makes certain syntax 
magical - e.g. it's not uncommon that a commit message ends up 
looking bad when github uses it as the message for a PR, 
because some piece of code contained * or some other piece of 
syntax that markdown decides to do something magical with.


Yeah.

I _much_ prefer the explicit syntax used by ddoc, so I can't 
say that I'm at all happy at the idea of markdown syntax being 
added to ddoc.


I agree, which is why adrdox only has a few magic syntaxes at top 
level and they are in places where I think it is more important 
to be extremely convenient (like cross-linking*).


But, at the same time, some special syntax can be REALLY nice. So 
I went with the hybrid approach: certain ddoc macro blocks 
actually run magic syntax:


$(LIST
  * List item here
  * another list item
  * third list item
)

The bracket clearly indicates that you want to opt-in to the 
special syntax, then you get to use that syntax for a while for 
the convenience. Another benefit is you can add other tweaks like 
class names for the HTML inside the bracket since there is a spot 
for that.


But anyway, the bracket also lets me use different syntaxes or 
reuse the same in a few places and generate different things. And 
BTW it is worth noting that ddoc ALREADY has a little bit of 
this: see the "Params:" section!



* BTW I almost wanted that syntax to be a bit uglier so you can 
embed it in code samples too unambiguously but that made me use 
it less instead of more...


IMHO, the main problem with ddoc for documentation is that it 
doesn't automatically handle stuff like cross-links, and it 
fundamentally can't, because to do that properly, you have to 
generate all of the docs at once with a standard layout for 
where everything goes so that the links can link to stuff.


Well, maybe, it could do something like adrdox's symbol lookup 
but instead of generating a link directly, it could replace it 
with $(REF) and let the macro definitions handle it.


Wouldn't be perfect tho, that macro is clunky to use and define 
because it doesn't know all the details, but it would be a move 
up from what we have, and may even work inside code examples.


Re: [RFC] IDE starter kit

2018-02-02 Thread aberba via Digitalmars-d

On Friday, 2 February 2018 at 13:04:19 UTC, rumbu wrote:

On Thursday, 1 February 2018 at 12:21:24 UTC, rjframe wrote:


[...]

[snip]

[...]


As a typical very lazy & convenient Windows user, even I don't 
want to discourage you, let me tell you that every developer 
from the Windows world will have a copy of Visual Studio 
installed. New Project -> Console Application -> Hit F5. It 
just works. Set a breakpoint -> Hit F5. It just works.


[...]
DLangUI has DML which is like QML for QtQuick in Qt. Its possible 
to create a UI builder for it in Visual Studio or better still an 
independent tool like Glade for Gtk.


Anyways,  DLangUI currently stands as the defacto cross-platform 
GUI library for D. Its keeps getting better in functionality.


- not enough samples in VS. At least an updated GUI app and and 
a Web server app must be available. Just as a proof of concept.




Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Mark via Digitalmars-d

On Wednesday, 31 January 2018 at 23:38:22 UTC, H. S. Teoh wrote:
And IIRC, Andrei had already bought into the ddox system by 
then (the process of merging it might have already begun, I'm 
not 100% certain), so dpldocs was already starting from a 
disadvantaged position, whatever merits it may have on its own.
 And I'll be frank that sometimes Andrei can take some effort 
to convince, and it takes a certain amount of dogged 
persistence (and thick-skin) to get through to him sometimes. 
And it doesn't help that he has so much on his plate, and 
generally doesn't have enough time to dedicate to all the 
decisions waiting upon him to make, so sometimes it can be 
frustrating trying to get through to him.


T


In DConf 2016 Andrei literally said "I'm in charge of too many 
things. Please get me fired!" [1]. Sadly, it doesn't seem like 
much firing has happened since then. :-(



[1] 
https://www.youtube.com/watch?v=4oDK91E3VKs&feature=youtu.be&t=9m42s


My choice to pick Go over D ( and Rust ), mostly non-technical

2018-02-02 Thread Benny via Digitalmars-d
First of all, please do not repost this on Reddit or any other 
forum. This is focused for the D community alone to help deal 
with internal issues and it does not need to be ridiculed as this 
is a personal opinion.


As some have seen my posting in the past week regarding D, i like 
to explain my reasoning. I have been looking for the language to 
use for my next project, one of them was D.


But the choice was more or less between Rust, D and Go. As all 3 
offered good multi-platform support ( essential ), fast, low 
memory usage.


It came down to a list of criteria. I will mostly focus on D and 
Go as mentioning Rust too much will simply sidetrack the post too 
much.


HTTP:

D has no default HTTP server. So you need to rely on vibe.d. 
Vibe.d being a external package that then relies on a few people 
to maintain it.


D has no future proof HTTP. There is currently no official http2 
build in to vibe.d. Test branches do not count ;)


Go is the only one in the short-list that has a default HTTP 
solution that is well tested by loads of people, is fast ( 
especially with pre-fork ) and future proof.



Performance:

When it comes down to anything HTTP related unfortunately D is 
lagging behind on this part. Especially vibe.d


www.techempower.com/benchmarks/previews/round15. The techempower 
is just as example.


My own tests show the same performance issues where D at minimum 
to a un-preforked Go loses over 30% in real life, network tested 
benchmarks ( not some silly local device benchmarks that most 
people do ).


It also shows D has a higher CPU usage for the relative lower 
performance. Pre-forking Go increases the CPU usage but also 
performance.


All of my own tests are done with LDC ( optimized flags ) not DMD.

Sure, benchmarks are the devils breath but it makes no sense 
building a application that even with database queries are slow 
compared to the rest.



Build:

DMD is fast, no doubt about it but Go is just instant in my case 
for the same type of content i need ( Go HTTP vs D vibe.d ).


Other issues in my past with D also did not help, namely the 
regressions and constant bug-fix releases.


Its time for D to figure out a stable API. Its really bad when 
one compiles editor plugin code and sees "deprecated function" 
all over the output.


How up to date is the https://dlang.org/deprecate.html even?


Community / Code examples:

D has a nice community here on the forum but out in the real 
world "the internet" D is more or less non existing.


Google searches end up so many times back to this forum with a 
LOT of outdated code going back 5+ years, what does not work 
anymore as API changes happened.


The fact that a lot of code out there is old or non functional is 
a issue. Worse when 80% of the search results end up in this 
forum, showing that D does not have a very broad community.


I do not deny that D is used by some big companies as a C++ 
replacement but the impression is that those are mostly closed 
source projects where very few code surfaces on the web.



Package support:

Again ... D has very few packages and a LOT of them are frankly 
so old that they do not work properly anymore with the current 
DMD versions. Deprecated functions galore.


If D had 1195 active, well supported high quality packages but it 
has not. Most packages at best have one decent package and that 
is it.


You want to produce PDFs? fpdf 2015-Apr-06, a very limited PDF 
generation tool last updated 3 years go.


You want to produce Excel's? Excel-d but it faces the same issue 
as being the only native project. What if the author ...


GRPC? Imap? ...

As i post this code.dlang.org is down so no more comparing. *sigh*

https://github.com/avelino/awesome-go
https://github.com/zhaopuming/awesome-d < missing Excel-d

Just looking on Github for D vs Go packages. 323 vs 15,351 (dlang 
vs golang) ... This is again related to popularity and community. 
So there is much more chance for finding something exotic as a 
base project in Go then ever in D.



Windows support:

But unlike D, Go's Windows support is simply better.

Plugins work out of the box with VSC. It has its own Jetbrain IDE.

Is Go perfect, no...

Dealing with Gopath is stupid. Who's idiotic idea that was 
instead of managing simply by project location.


Its no fun dealing with the Go Sqlite plugin ( what is 3th party 
) on Windows but then your are in actual production doing 
something, not fighting D to get your IDE working. Or fighting 
dub versions when LDC and DMD are both installed and in the 
environment path.


The amount of strange issues, not bugs or cross platform support 
issue that crosses D Windows users, simply leaves a bad taste.



Windows / Community issues:

From a persona point of view, its tiring with some people looking 
down on the fact that i use Windows and have true issues related 
to D. That have been reported and helped fix but its a never 
ending stream of fixing one thing, running into another. 
Currently n

Re: adrdox vs markdown vs ddoc

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Thursday, 1 February 2018 at 12:06:44 UTC, Kagamin wrote:
Well, there's line-oriented tabular data format, forgot the 
name (re*-something), it looks like definition list:


What bugs me with that sample is that the headers are repeated a 
lot... but it isn't bad.


But re* sounds like maybe restructuredText which I borrowed some 
ideas from too.


Re: adrdox vs markdown vs ddoc

2018-02-02 Thread Adam D. Ruppe via Digitalmars-d

On Thursday, 1 February 2018 at 19:21:52 UTC, H. S. Teoh wrote:
As far as nested comments are concerned, I'm a firm believer in 
ddoc'd unittests, so I hardly ever bother with inline code 
examples, much less ones that need comments, and pretty much 
never ones that need block comments.


I use the documented unittests too, but they do have some pretty 
big limits: it is hard to embed them around explanatory text and 
actually using them as tests has a few limits:


* the unittest is not fully isolated, but users will copy/paste 
them into separate code. It may pass the test because of, for 
example, an import outside the test, but then fail to compile for 
the end user.


* automated tests are designed for automation and resiliancy, but 
good examples are designed for interactivity and tinkering by the 
user. They are almost opposite in purpose! (even the above goes 
in - a unittest tests a unit... a good example shows how to put 
the pieces together)


* unittests with a main function are a little wonky, but you can 
make it work.



I still kinda like it... but I think it is actually overrated.


Re: How programmers transition between languages

2018-02-02 Thread Atila Neves via Digitalmars-d

On Friday, 2 February 2018 at 14:04:09 UTC, Russel Winder wrote:
On Fri, 2018-02-02 at 10:03 +, Atila Neves via 
Digitalmars-d wrote:



[…]
Whether it's .a or .so depends on the dependent package being 
`staticLibrary` or `dynamicLibrary`. It's possible for a 
package to be both if it has a configuration for each.


I think that is one of my points, the package source downloaded 
from the Dub repository should not be determining whether a .a 
or ,so is produced, it should be determined by the receiver of 
the downloaded package.


Personally I don't even see the point - just link all the .o 
files. In a traditional build system static libraries might be 
useful to specify that multiple targets link to this 
particular binary blob. With dub there's only ever one binary 
anyway.


But a static library is just a collection of .o files so I 
think it fits with "link all the .o together".


Not quite. There's an extra step and when linking with a static 
library unused symbols are thrown away by default. That hid a dmd 
bug in 2.078.0 that only manifests when linking with the object 
files themselves.




It is clear that there is a move in the Go, Rust, D communities 
to rejecting the concept of shared library, and that 100MB 
executables are acceptable.


On a desktop, 100MB executables are, at least to me. Shared 
libraries aren't going to magically make 100MB executables 
disappear, it depends on how much code is actually shared.




And at this point in time I think shared libraries are mostly 
a mistake. The only time I use them is when I have to, as in 
when developing Python extensions.


The single biggest argument for shared libraries in D is GtkD. 
Linking an executable with a static GtkD library takes ages, 
and when developing you do a lot of linking. Fast turnaround, 
and thus reasonable development times, requires use of a shared 
library for GtkD.


That's a fair point.

Atila


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Russel Winder via Digitalmars-d
On Thu, 2018-02-01 at 19:28 +, John Gabriele via Digitalmars-d
wrote:
> On Thursday, 1 February 2018 at 03:00:07 UTC, Walter Bright wrote:
> > On 1/31/2018 5:58 PM, H. S. Teoh wrote:
> > > cosmetic features.
> > 
> > I tough lesson I've learned is that cosmetics matter, a lot. 
> > Sometimes much more than substance. There's no getting away 
> > from it.

I agree but only if s/Markdown/AsciiDoctor/g

> This is one reason I recommend markdown for docs. Cosmetics is 
> what markdown does best. People *like* looking at it and editing 
> it. It's like typing an email or a forum comment.
> 
> Other reasons I recommend it are:
> 
>* everyone already knows it (it's at github, stackoverflow, and 
> reddit),
> 
>* it's fairly easy to write (as easy as possible while still 
> looking good),
> 
>* there's an open spec (CommonMark), and
> 
>* writing new language-specific markup formats appears to be 
> something that's not done anymore. There's javadoc, texinfo, 
> doxygen, docbook, groff --- all very ... *mature* technologies. 
> In modern projects: Rust uses markdown, Python uses reST, Git 
> uses asciidoc --- all general-purpose non- language-specific 
> lightweight markup formats.
> 
> The only reason I can think of for *not* using markdown for 
> project docs is if your project is another competing lightweight 
> markup format.

Markdown was created to write a few HTML pages. AsciiDoc (and thus
AsciiDoctor) was invented to be a front end to the DocBook/XML
toolchain.

Thus Markdown is for a few small very simple webpages, AsciiDoctor is
for creating any form of document from a page to a book. They are
similar where Markdown has functionality, but AsciiDoctor has so much
more, and most people end up finding they want all the extras. XeLaTeX
and Sphinx/ReStructuredText are the competition for AsciiDoctor.
Markdown is lacking in functionality people will find they need to use.


-- 
Russel.
===
Dr Russel Winder  t: +44 20 7585 2200
41 Buckmaster Roadm: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


signature.asc
Description: This is a digitally signed message part


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Russel Winder via Digitalmars-d
On Thu, 2018-02-01 at 19:41 +, John Gabriele via Digitalmars-d
wrote:
> 
[…]
> It's trivial to put multiple markdown files together into a large 
> doc, if that's desired. Just put a bunch of .md files together 
> into the same directory and run your markdown processor on them. 
> They can link to each other in the [normal 
> way](./other-file.html#normal-way).

Auto generation of contents pages, and indexes? Tables? Nested lists?
The CommonMark crib sheet says nothing. AsciiDoctor has all of them,
though I prefer XeLaTeX.  

> Markdown provides a simple, practical, modern, and commonly-known 
> way to get docs written fast and by anyone who wants to pop in 
> and improve them. There's no easier way to write plain text docs 
> that look as good.

AsciiDoctor.

> Sorry, can't recall if I already mentioned this, but D suffers 
> from a perception that it's "old", or "the language that tried 
> and failed to replace C++". Something simple like markdown for 
> its docs sends a clear message that D is modern and knows when to 
> pivot to new and better ways after the old ways are not serving 
> it anymore.

Markdown is so last decade. Ditto AsciiDoctor. XeLateX so last
millenium. The question is choosing the right tool for the job, not
pandering to hipster fashionistas. Clearly one reviews new ways and
moves to them if that provides a better way forward, but the goal is
more important that the technology.

There are the autogenerated reference pages. JavaDoc, Doxygen, all have
their upside and downside. D has DDOC, is it fit for purpose? Should it
be replaced (by Doxygen) or evolved? Maybe Markdown fits here, but
without table support you end up hacking stuff. cf. vast tracts of
early JavaDoc stuff.

For the documents no created by scanning the source code, you want
something like Markdown, AsciiDoc, ReStructuredText, XeLaTeX. I think
Sphinx/ReStructuredText actually can do both from code generated
reference and other documents – it does for many projects as well as
Python.

I happen to rate AsciiDoc far better than Markdown as a lightweight
text markup, though actually I prefer XeLaTeX. However, simply trading
emails about "I think X is best" is not going to get anyone anywhere.
Only when someone actually does something is there movement forward. So
unless some actually creates a demo of the
(Markdown|AsciiDoctor|XeLaTeX) system nothing will change. Of course if
Walter and/or Andrei don't like it, it will be wasted effort.

> Incidentally, choosing an established standard like markdown is a 
> good way to short-circuit bikeshedding about "it what ways should 
> ddoc be updated to include some markdown features?". Just pick 
> standard CommonMark markdown and you're done.

s/Markdown/AsciiDoctor/g

> One last note and I'll (try to!) stop: it's difficult enough to 
> get good writers to help with docs. Much more so when they've got 
> to first learn your own language-specific markup (which is only 
> useful with your project).

This is a good and strong point, that has been raised in many other
places I frequent. One group changed from their custom DocBook/XML to
Sphinx because someone did stuff rather than talking about it.
AsciiDoctor would clearly have been a better solution, evolution using
the DocBook toolchain, but they went for the revolution because people
put effort into it to make the decision happen.

The core point is how are you going to get pull requests from people to
update and evolve the documentation. An esoteric, indeed unique, markup
language is clearly the wrong choice.


-- 
Russel.
===
Dr Russel Winder  t: +44 20 7585 2200
41 Buckmaster Roadm: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


signature.asc
Description: This is a digitally signed message part


Re: How programmers transition between languages

2018-02-02 Thread Russel Winder via Digitalmars-d
On Fri, 2018-02-02 at 10:03 +, Atila Neves via Digitalmars-d wrote:
> 
[…]
> Whether it's .a or .so depends on the dependent package being 
> `staticLibrary` or `dynamicLibrary`. It's possible for a package 
> to be both if it has a configuration for each.

I think that is one of my points, the package source downloaded from
the Dub repository should not be determining whether a .a or ,so is
produced, it should be determined by the receiver of the downloaded
package.

> Personally I don't even see the point - just link all the .o 
> files. In a traditional build system static libraries might be 
> useful to specify that multiple targets link to this particular 
> binary blob. With dub there's only ever one binary anyway.

But a static library is just a collection of .o files so I think it
fits with "link all the .o together".

It is clear that there is a move in the Go, Rust, D communities to
rejecting the concept of shared library, and that 100MB executables are
acceptable.

> And at this point in time I think shared libraries are mostly a 
> mistake. The only time I use them is when I have to, as in when 
> developing Python extensions.

The single biggest argument for shared libraries in D is GtkD. Linking
an executable with a static GtkD library takes ages, and when
developing you do a lot of linking. Fast turnaround, and thus
reasonable development times, requires use of a shared library for
GtkD.


-- 
Russel.
===
Dr Russel Winder  t: +44 20 7585 2200
41 Buckmaster Roadm: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


signature.asc
Description: This is a digitally signed message part


Re: An idea for commercial support for D

2018-02-02 Thread psychotic Rabbit via Digitalmars-d

On Friday, 2 February 2018 at 10:21:35 UTC, Joakim wrote:
I can't be bothered to strain through your tortured analogies 
that make no sense and explain to you all the ways you're 
wrong.  I'm respecting you enough to point out that none of 
your points make any sense, most would just ignore crazy 
analogies like this and move on, content to let you stew in 
this nonsense.


Well, that sure is an interesting way of responding to criticism.

By giving up, you've made your argument ever weaker that it was 
before.


But all power to you..and you're hybrid 'ransom the open source 
community' model ...just don't work on my projects, unless your 
contribution is free.




Re: [RFC] IDE starter kit

2018-02-02 Thread rumbu via Digitalmars-d

On Thursday, 1 February 2018 at 12:21:24 UTC, rjframe wrote:

Basically, in the two years or so I've been here, newcomers 
have consistently had IDE problems. visual-d is perfect if 
you've got Visual Studio (especially with recent improvements), 
but otherwise you have to spend a bunch of time getting 
something set up just to try a language you're not yet sure 
about.

[snip]

Thank you for your time, and your thoughts
--Ryan


[0]: https://forum.dlang.org/post/p4sba9$1bga$1...@digitalmars.com


As a typical very lazy & convenient Windows user, even I don't 
want to discourage you, let me tell you that every developer from 
the Windows world will have a copy of Visual Studio installed. 
New Project -> Console Application -> Hit F5. It just works. Set 
a breakpoint -> Hit F5. It just works.


Every other IDE is not worth the experience. Why in the world a 
lazy and convenient user should be so masochistic to install 
debuggers, symbol converters or syntax highlighting and 
intellisense plugins if he can have all of these plus many more 
out of the box?


I you want my opinion regarding what's bad in the *first* Windows 
experience, here it is:
- poor dub support. Ignoring inherent Windows dub problems, 
convenient Windows users are too lazy to open the ugly cmd window 
and run some commands; it will be nice to integrate dub in Visual 
Studio. Right click, resolve dependencies, you know the rest.
- default install directory. In corporate environments, creating 
folders in the root drive is a no-go.
- Intel OMF. My BitDefender installation keeps complaining for 
every 32 bit executable I make despite of zillion samples I sent 
to them. If you cannot compile even Hello World, why bother?
- there is no official GUI library (remember, we are talking 
about GUI-centric lazy convenient guys here);
- not enough samples in VS. At least an updated GUI app and and a 
Web server app must be available. Just as a proof of concept.









Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Russel Winder via Digitalmars-d
On Thu, 2018-02-01 at 17:25 +, Benny via Digitalmars-d wrote:
> On Thursday, 1 February 2018 at 15:47:50 UTC, Russel Winder wrote:
> > For me:
> > 
> > aptitude install ldc
> > aptitude install gdc
> > aptitude install dmd-bin
> > aptitude install dub
> > 
> > Seems to work fine, and no conflicts.
> > 
> > […]
> 
> Please try Windows and then come back ;)

Uuurrr… no. Those people who choose to use a system such as Windows,
for which no-one is providing packaging, have a responsibility to:

a) raise the problems; and

b) help fix raised problems.


-- 
Russel.
===
Dr Russel Winder  t: +44 20 7585 2200
41 Buckmaster Roadm: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


signature.asc
Description: This is a digitally signed message part


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Russel Winder via Digitalmars-d
On Thu, 2018-02-01 at 08:17 -0800, H. S. Teoh via Digitalmars-d wrote:
> On Thu, Feb 01, 2018 at 03:47:50PM +, Russel Winder via
> Digitalmars-d wrote:
> > 
[…]
> > For me:
> > 
> > aptitude install ldc
> > aptitude install gdc
> > aptitude install dmd-bin
> > aptitude install dub
> > 
> > Seems to work fine, and no conflicts.
> 
> [...]
> 
> Only because the OS has a sane packaging system (and some people were
> kind enough to package the compilers in nice packages). For
> less-privileged OSes, the user experience could be drastically
> different. ;-)

I see two obvious inferences:

a) use a platform with a good packaging system, and good packaging
team.

b) if you cannot use a such a system, raise the problem and then get
involved in fixing it.

-- 
Russel.
===
Dr Russel Winder  t: +44 20 7585 2200
41 Buckmaster Roadm: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


signature.asc
Description: This is a digitally signed message part


Re: [RFC] IDE starter kit

2018-02-02 Thread rjframe via Digitalmars-d
On Fri, 02 Feb 2018 06:14:03 +, b4s1L3 b. wrote:

> Actually nowadays if DMD is already setup, Coedit doesn't require more
> configuration. Completion, all DCD features, and D-Scanner warnings just
> work out of the box since the tools are distributed with the IDE. In a
> way Coedit is already a "starter pack" and since a while.
> 
> I don't know why but in this kind of topics it's never mentioned,
> however since version 2 i can find testimonials showing that it works
> out of the box:
> https://forum.dlang.org/post/tiyuogdlwwoqpckvk...@forum.dlang.org

I know that I tend to forget about it. Unless releases are announced on 
announce, or I use it, I generally don't pay attention.

I just checked the IDE page on the wiki, and we have much more than I'd 
expected.


Re: An idea for commercial support for D

2018-02-02 Thread Joakim via Digitalmars-d

On Friday, 2 February 2018 at 09:26:51 UTC, Iain Buclaw wrote:
On 31 January 2018 at 09:43, Joakim via Digitalmars-d 
 wrote:
I'm sure you can find much better D devs to contribute such 
work by posting bounties on the D or ldc bountysource pages:


https://www.bountysource.com/teams/d 
https://www.bountysource.com/teams/ldc-developers




I was surprised to see a gdc bounty page.  I was even more 
surprised that the one notable bounty is an issue that's either 
blocked by Walter, or waiting on someone to implement array op 
templates in druntume/object.d. :-)


Heh, the lead gdc dev doesn't know that gdc bounties exist, not 
sure I could have made my case for their being hidden any better. 
:)


On Friday, 2 February 2018 at 09:30:08 UTC, Iain Buclaw wrote:
I'm reminded of airlines who have a "Priority" or "Privileged" 
queuing system at the gate.  If you didn't want to wait in line 
to board, then you should have paid up.


Not sure if any parallels ring with you here. :-)


Any system that requires payment can be superficially compared to 
any other, but the real salient point here is the discrepancy: to 
even get on the flight, you have to pay for a ticket, whereas he 
paid nothing for the open-source sections of a mixed codebase.  
So, he's more like a guy who shows up at the gate without a 
ticket _and_ barges into the Priority queue, which is a sure way 
to get thrown out of the airport altogether. :D


And I have no problem with priority queues, baggage fees, etc., 
as the reason they charge for those is to _lower_ the ticket 
price for the cheapest consumer, a concept called price 
discrimination (and before I get the usual nonsense about how 
that's illegal, or it should be, it isn't and it shouldn't):


https://en.m.wikipedia.org/wiki/Price_discrimination

So I pay less for my cheap flights, while others who want to lug 
a ton of suitcases or get through the line faster pay more, which 
is only fair.


On Friday, 2 February 2018 at 09:50:32 UTC, psychoticRabbit wrote:

On Friday, 2 February 2018 at 08:56:04 UTC, Joakim wrote:


So given that all your claims are easily logically proven to 
be nonsense, there's no point in going any further.


You need to do better than that to convince me ;-)


I wasn't trying to convince you.  I pointed out that your 
statements were a mess of logical contradictions and suggested 
that we stop there.


Now.. I might entertain a model of paying someone, *after* they 
had committed there fix back to the community, as open source 
(and the fix has been formely approved and confirmed) - but 
certainly not beforehand.


But even that really worries me, as people may then refuse to 
contribute unless they know they're going to get paid. And, it 
assumes that people in that open source community project have 
the means to pay them. What happens to that open source 
community when the funds are not there?? Do the developers just 
go off and look for other projects that do have funds, like 
they were 'bounty' hunters. Is that the future we should be 
creating?


Your so called hybrid model, is like my neighbour borrowing my 
lawn mower, and while he's got it, he notices it needs an oil 
change, does the oil change, and then refuses to give me back 
the lawn mower till I've reimbursed him. But he never paid for 
the lawn mower did he??


Well.. my neigbour says, if you can't pay me for the oil, then 
I'll take the new oil out, put the old oil back in, and then 
you can have your lawn mower back.


I don't want neighbours like that.


I can't be bothered to strain through your tortured analogies 
that make no sense and explain to you all the ways you're wrong.  
I'm respecting you enough to point out that none of your points 
make any sense, most would just ignore crazy analogies like this 
and move on, content to let you stew in this nonsense.


Re: [RFC] IDE starter kit

2018-02-02 Thread aberba via Digitalmars-d

On Friday, 2 February 2018 at 06:14:03 UTC, b4s1L3 b. wrote:

On Thursday, 1 February 2018 at 12:21:24 UTC, rjframe wrote:
As a followup to [0], I want to take a look at packaging 
DlangIDE with a DMD compiler and tools, so we have an 
out-of-the box IDE for people giving D a try. This would be 
independent of the rest of the system, so moving on (either to 
Visual Studio, ldc, gdc, or whatever the programmer's 
preferred IDE/tooling might be) would require re-installing 
the compiler.


Most of this post will be Windows-centric, but if this is 
popular/useful/ successful I'd also manage macOS and Linux 
kits.



Basically, in the two years or so I've been here, newcomers 
have consistently had IDE problems. visual-d is perfect if 
you've got Visual Studio (especially with recent 
improvements), but otherwise you have to spend a bunch of time 
getting something set up just to try a language you're not yet 
sure about.


Some sort of learner's or starter's IDE makes sense to me.

My hypothetical programmer follows the path:

1) Discovers website. Runs some examples.
2) Plays with the online compiler in the tour.
3) Wants to download a compiler to work with. Wants an IDE, 
but does not
   have Visual Studio installed (or maybe doesn't want to 
install an

   extension yet).
4) Downloads the starter pack and starts learning.
5) Falls in love and takes the time to set up D with his/her 
preferred

   toolset.



Actually nowadays if DMD is already setup, Coedit doesn't 
require more configuration. Completion, all DCD features, and 
D-Scanner warnings just work out of the box since the tools are 
distributed with the IDE. In a way Coedit is already a "starter 
pack" and since a while.


I don't know why but in this kind of topics it's never 
mentioned, however since version 2 i can find testimonials 
showing that it works out of the box:

https://forum.dlang.org/post/tiyuogdlwwoqpckvk...@forum.dlang.org



Coedit is also a great alternative of zero configuration IDE for 
D beginners. I have a 2018 goal to finish my mini book I started 
last year for complete beginners to computer programming like I 
was when I started computer programming from scratch through 
self-directed learning. I recommend Sublime text editor in the 
introduction but I think one of these IDEs with a click to 
compile and run button will help me further simplify the 
instructions for setting up a development environment.



The book is about beginning computer programming using D where I 
try to make the explanations less technical as possible and not 
overwhelming reader with too much details. Its gets more 
technical as student learn more stuff.



I still have some typos and corrections to do though... You can 
find it at https://github.com/aberba/learn-coding




Re: How programmers transition between languages

2018-02-02 Thread Atila Neves via Digitalmars-d

On Thursday, 1 February 2018 at 12:19:48 UTC, Russel Winder wrote:
On Tue, 2018-01-30 at 11:55 +, rjframe via Digitalmars-d 
wrote:

On Tue, 30 Jan 2018 10:38:31 +, Russel Winder wrote:


[…]


Are you sure? Every project on my PC places the build files in 
$PROJECTDIR/.dub/build; the source is in ~/.dub/packages.


I see the source of the dependencies both in ~/.dub/packages 
and in the project .dub directory, but I see the compilation 
products in ~/.dub/packages. There are every compiled version 
in obscure named sub- directories and the last compiled 
(unknown compiler and options) in the dependency directory.


Compilation seems to be only of .a and not (.so|.dll).


Whether it's .a or .so depends on the dependent package being 
`staticLibrary` or `dynamicLibrary`. It's possible for a package 
to be both if it has a configuration for each.


Personally I don't even see the point - just link all the .o 
files. In a traditional build system static libraries might be 
useful to specify that multiple targets link to this particular 
binary blob. With dub there's only ever one binary anyway.


And at this point in time I think shared libraries are mostly a 
mistake. The only time I use them is when I have to, as in when 
developing Python extensions.


Atila




Re: An idea for commercial support for D

2018-02-02 Thread psychoticRabbit via Digitalmars-d

On Friday, 2 February 2018 at 08:56:04 UTC, Joakim wrote:


So given that all your claims are easily logically proven to be 
nonsense, there's no point in going any further.


You need to do better than that to convince me ;-)

Now.. I might entertain a model of paying someone, *after* they 
had committed there fix back to the community, as open source 
(and the fix has been formely approved and confirmed) - but 
certainly not beforehand.


But even that really worries me, as people may then refuse to 
contribute unless they know they're going to get paid. And, it 
assumes that people in that open source community project have 
the means to pay them. What happens to that open source community 
when the funds are not there?? Do the developers just go off and 
look for other projects that do have funds, like they were 
'bounty' hunters. Is that the future we should be creating?


Your so called hybrid model, is like my neighbour borrowing my 
lawn mower, and while he's got it, he notices it needs an oil 
change, does the oil change, and then refuses to give me back the 
lawn mower till I've reimbursed him. But he never paid for the 
lawn mower did he??


Well.. my neigbour says, if you can't pay me for the oil, then 
I'll take the new oil out, put the old oil back in, and then you 
can have your lawn mower back.


I don't want neighbours like that.



Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Martin Tschierschke via Digitalmars-d
On Friday, 2 February 2018 at 08:39:58 UTC, Paolo Invernizzi 
wrote:

On Friday, 2 February 2018 at 08:21:33 UTC, Martin Tschierschke

[...]
Maybe there should be a blog post, with some kind of status 
report every .. weeks or .. month? Telling more about the 
focus of the D foundation, statistics of downloads, number of 
fixed bugs, partly similar to Adams week in D but more 
official. I think the content of such a post may find its way 
into more mainstream IT magazines, if marked as official d 
foundation  press release even more.


The best status report I've met is definitely the FreeBSD 
quarterly status report:


https://www.freebsd.org/news/status/status.html

I suggest to take a look at that, as an inspiration and 
yes, a quarterly report is enough.


/Paolo

Yes, looks very good!







Re: An idea for commercial support for D

2018-02-02 Thread Iain Buclaw via Digitalmars-d
On 2 February 2018 at 09:56, Joakim via Digitalmars-d
 wrote:
> On Friday, 2 February 2018 at 02:04:07 UTC, psychoticRabbit wrote:
>>
>> On Wednesday, 31 January 2018 at 08:43:46 UTC, Joakim wrote:
>>>
>>> ...
>>>
>>> My time-limited model makes sure all source is made open eventually, once
>>> the developers have been paid for their work.
>>>
>>
>> This deceptive hybrid model (based I my understanding of it per the
>> description above) is really offensive to those of us who understand the
>> concept of open-source, and the benefits that flow from it.
>>
>> You (not you personally - I mean the person implementing such a hybrid
>> model) lure people in with free open source, then, when something is found
>> to be wrong with it, you make them wait for the fix.. until.. .. .. your
>> ransom has been paid.
>>
>> Utterly offensive (the model that is).
>>
>> Open source means just that ...  Open source - It's turtles all the way
>> down.
>>
>> Ransom-ware is something very different.
>
>
> Except it's none of those things, as you yourself grasp that it's a "hybrid
> model," ie not purely open source.  So it cannot be deceptive, offensive, or
> ransom-ware, since it's perfectly clear that it's its own thing.  And that
> mixed model is pretty much the way all software is built these days,
> including the linux kernel as mentioned earlier in this thread, so you are
> clearly using such mixed software too, just by the fact that you posted in
> this thread.
>
> So given that all your claims are easily logically proven to be nonsense,
> there's no point in going any further.

I'm reminded of airlines who have a "Priority" or "Privileged" queuing
system at the gate.  If you didn't want to wait in line to board, then
you should have paid up.

Not sure if any parallels ring with you here. :-)


Re: An idea for commercial support for D

2018-02-02 Thread Iain Buclaw via Digitalmars-d
On 31 January 2018 at 09:43, Joakim via Digitalmars-d
 wrote:
> On Tuesday, 30 January 2018 at 19:45:51 UTC, Laeeth Isharc wrote:
>>
>> On Sunday, 4 January 2015 at 08:31:23 UTC, Joakim wrote:
>>>
>>> This is an idea I've been kicking around for a while, and given the need
>>> for commercial support for D, would perhaps work well here.
>>>
>>> [...]
>>
>>
>> By the way, in case you are interested in this path personally still, I'd
>> be willing to pay for D support, tuition, help with getting stuck, code
>> review etc for colleagues. Not for patches that aren't immediately open
>> sourced, but we fixed windows paths on DMD for example, and there might be
>> scope for occasional paid work on dmd and dub like that.  Also porting
>> headers.
>
>
> I appreciate the offer, but I'm not looking for paying work on the D
> language.  I understand the assumption most make that I'm looking to make
> money off the D language itself by pushing this commercial model, but I'm
> actually not interested in developing language-related software like
> compilers, tooling, or the standard library, even if paid for it.  I got
> stuck porting much of those D tools for Android, but it's a one-time
> excursion for me.
>
> What I'm actually interested in is using D to make commercial Android apps,
> and while I think D is a great language already, I think it could be made
> better by using this commercial model I've sketched out.  And the better D
> is, obviously the better any commercial apps I develop with it.
>
> Back when I first wrote about mixing open and closed source like this in my
> 2010 Phoronix article, nobody considered it a world-beating model.  Maybe
> people now assume I'm just keying these ideas off the success of Android in
> using a similar mixed model, but my article was published when Android had
> only single-digit market share so I hardly paid attention to it, as it was
> only one of a gaggle of mobile OS's competing at the time:
>
> https://en.m.wikipedia.org/wiki/Android_(operating_system)#Market_share
>
> While I had heard of a few companies using similar mixed models here and
> there, none were that successful back then, so my article was based mostly
> on theory.  I think the evidence since then has proven that theory
> resoundingly accurate, given all the huge projects, such as Android, iOS,
> Safari, Chrome, LLVM/clang, using mixed models now.  Even Microsoft, who
> used to look askance at open source, has gotten in the game, open-sourcing
> .NET and several of their other projects.
>
> In my article, I added another elaboration where even closed-source patches
> are eventually open-sourced, which I still believe to be the endgame of how
> this market eventually develops, even though AFAIK I'm still the only person
> that ever used that time-limited model on an actual project, which is
> mentioned in the article's prologue.  Such open-sourcing happens in an
> ad-hoc manner right now, where a company will develop a proprietary module
> for a mixed codebase and then eventually open-source it if they feel like
> it:
>
> http://www.brianmadden.com/opinion/Samsung-contributes-KNOX-to-Android-Open-Source-Project-Is-this-the-end-of-Android-Fragmentation
>
> My time-limited model makes sure all source is made open eventually, once
> the developers have been paid for their work.
>
> As for the other paid work you mention, I'm actually not a very experienced
> D dev, probably about intermediate level.  I did take some assembly language
> programming classes back in my college days decades ago, so I was able to
> figure out the low-level details needed to get D working on Android.
>
> I'm sure you can find much better D devs to contribute such work by posting
> bounties on the D or ldc bountysource pages:
>
> https://www.bountysource.com/teams/d
> https://www.bountysource.com/teams/ldc-developers
>

I was surprised to see a gdc bounty page.  I was even more surprised
that the one notable bounty is an issue that's either blocked by
Walter, or waiting on someone to implement array op templates in
druntume/object.d. :-)


Re: [RFC] IDE starter kit

2018-02-02 Thread Jacob Carlborg via Digitalmars-d

On 2018-02-01 23:42, rjframe wrote:


basically this whole idea is solved by an installer for
DlangIDE that includes the DMD installer in case it's needed.


Exactly.

--
/Jacob Carlborg


Re: An idea for commercial support for D

2018-02-02 Thread Joakim via Digitalmars-d

On Friday, 2 February 2018 at 02:04:07 UTC, psychoticRabbit wrote:

On Wednesday, 31 January 2018 at 08:43:46 UTC, Joakim wrote:

...

My time-limited model makes sure all source is made open 
eventually, once the developers have been paid for their work.




This deceptive hybrid model (based I my understanding of it per 
the description above) is really offensive to those of us who 
understand the concept of open-source, and the benefits that 
flow from it.


You (not you personally - I mean the person implementing such a 
hybrid model) lure people in with free open source, then, when 
something is found to be wrong with it, you make them wait for 
the fix.. until.. .. .. your ransom has been paid.


Utterly offensive (the model that is).

Open source means just that ...  Open source - It's turtles all 
the way down.


Ransom-ware is something very different.


Except it's none of those things, as you yourself grasp that it's 
a "hybrid model," ie not purely open source.  So it cannot be 
deceptive, offensive, or ransom-ware, since it's perfectly clear 
that it's its own thing.  And that mixed model is pretty much the 
way all software is built these days, including the linux kernel 
as mentioned earlier in this thread, so you are clearly using 
such mixed software too, just by the fact that you posted in this 
thread.


So given that all your claims are easily logically proven to be 
nonsense, there's no point in going any further.


Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Paolo Invernizzi via Digitalmars-d
On Friday, 2 February 2018 at 08:21:33 UTC, Martin Tschierschke 
wrote:
On Thursday, 1 February 2018 at 22:38:36 UTC, Walter Bright 
wrote:

On 2/1/2018 3:11 AM, Martin Tschierschke wrote:
Idea: There should be some kind of news ticker for all 
enhancements and important decisions, maybe at first just via 
twitter  with a special #tag  beside #dlang where all updates 
are announced. And a place on the homepage, where this feed 
is displayed separately.


It's already there on the right side of https://dlang.org/



with a special #tag  beside #dlang
The focus was on a feed with _two_ tags #dlang and #dfoundation 
for example.


In the feed on the homepage everything is mixed up and I am 
feeling a lot information about progress - made in the 
background - is missing.


Maybe there should be a blog post, with some kind of status 
report every .. weeks or .. month? Telling more about the focus 
of the D foundation, statistics of downloads, number of fixed 
bugs, partly similar to Adams week in D but more official. I 
think the content of such a post may find its way into more 
mainstream IT magazines, if marked as official d foundation  
press release even more.


The best status report I've met is definitely the FreeBSD 
quarterly status report:


https://www.freebsd.org/news/status/status.html

I suggest to take a look at that, as an inspiration and yes, 
a quarterly report is enough.


/Paolo




Re: Quora: Why hasn't D started to replace C++?

2018-02-02 Thread Martin Tschierschke via Digitalmars-d

On Thursday, 1 February 2018 at 22:38:36 UTC, Walter Bright wrote:

On 2/1/2018 3:11 AM, Martin Tschierschke wrote:
Idea: There should be some kind of news ticker for all 
enhancements and important decisions, maybe at first just via 
twitter  with a special #tag  beside #dlang where all updates 
are announced. And a place on the homepage, where this feed is 
displayed separately.


It's already there on the right side of https://dlang.org/



with a special #tag  beside #dlang
The focus was on a feed with _two_ tags #dlang and #dfoundation 
for example.


In the feed on the homepage everything is mixed up and I am 
feeling a lot information about progress - made in the background 
- is missing.


Maybe there should be a blog post, with some kind of status 
report every .. weeks or .. month? Telling more about the focus 
of the D foundation, statistics of downloads, number of fixed 
bugs, partly similar to Adams week in D but more official. I 
think the content of such a post may find its way into more 
mainstream IT magazines, if marked as official d foundation  
press release even more.