Congrats to D / Vibe-D -- techempower Round 15

2018-02-15 Thread Benny via Digitalmars-d

https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext
https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=json

D is finally showing up in the upper and middle parts of the 
tests. In some tests Vibe-D ( with LDC ) is showing a 10 to 80 
times improvement compared to Round 14 ( where D was stuck at the 
bottom of the tests ).


Plain Text:

Round 15: vibed-ldc..1,200,034
Round 15: vibed987,534
Round 14: vibed-ldc 15,342
Round 14: vibed.10,657

Json:

Round 15: vibed...206,136
Round 15: vibed-ldc...126,668
Round 14: vibed-ldc11,813
Round 14: vibed.8,415

It does not need to be negative postings all the time. Now a 
smart person might use this data and analyse it into a blog, hint 
hint ...


Re: A betterC base

2018-02-08 Thread Benny via Digitalmars-d

On Friday, 9 February 2018 at 00:08:56 UTC, Adam D. Ruppe wrote:

On Thursday, 8 February 2018 at 23:50:29 UTC, Ali wrote:
But D, unlike many other languages, promotes itself as 
primarily a system programming language


I think that's a mistake too. I'd rebrand it as a "general 
purpose" programming language. One language you can use 
everywhere. It worked for node.js and electron...


Plenty of "general purpose" programming languages. The issue 
being that very few offer classes, no GC, easy syntax, good 
tooling and editor support, ...


I noticed a trend with languages with so many going to functional 
programming or semi-class based.


From the outside D looks good but there are so many strange 
things in the D design, that just infuriate.


- GC ... sure, if only it did not allocate so much on startup. It 
makes any other languages look better, by simply having a lower 
memory footprint on first comparison.  C 0.1MB, C++ 0.2MB, Rust 
0.4MB, D 1.4MB, ... Looks inefficient when its simply the whole 
1MB allocation. But perception matters!



- import ... really, we are 2018 and people are still wasting our 
time to have standard libraries as imports. Its even more fun 
when you split, only to need import the array library.


Look how ridiculous C++ like "import std.algorithm, std.conv, 
std.functional, std.math, std.regex, std.stdio;" some of the 
example on the front page look like.


I see people on Reddit sh*t all over PHP all the time and yet, 
its so darn easy and comfortable to not think about writing 
import all over the code, just to get default functionality!! 
Reddit is full of people who love to hate languages that simply 
work.



- Tooling. I will say it again and again until i die, it simply 
sucks for Windows users.


How fun is it to see dcd-server taking up between 90 to 120MB and 
seeing 10, 12, 15 instances loading into memory eating away 2GB 
memory.


Or seeing VSC work with some of the plugins for 5 minutes and 
then break again, forcing you to constantly restart VSC. Or how 
competing languages seem to provide more cleaner and better 
working plugins, with cleaner tool tips ( source documentation )


- Even the example on the front page are so typical "scare away 
the newbies". It looks like a cleaner version of C++.



D has always been a love/hate relationship for me. One can see 
the work that has gone into it but it feels like a Frankenstein's 
monster. Small details, big details, the lack of clear focus.


BetterC just moves resources away from actually implementing a 
permanent solution. Instead of maintain one system, you deal with 
two. While default D still deals with regressions and issue, 
BetterC being incomplete is pushed as the next big thing.


The library has design choices that date back a long time and 
nobody dares to touch. The whole constant GC debate is linked to 
those design choices. D can do a lot but the layer between both 
is so thin that at times you wonder if your dealing with compile 
or runtime features. CTFE or not. Talking about CTFE .. Stephan 
vanished for a long time busy with work and yet it feels reading 
the topics that very few people noticed him missing, despite 
working a year on the whole new CTFE engine. Not exactly 
motivating for people.


I can talk until i turn blue. I already wrote "a wall of text" as 
some say, in the Go topic and that was not even technical issues.


People talk about the need for a clear design focus, leadership 
and ... things go on as before. That is D in a nutshell. People 
doing what they want, whenever and things stay the same. New 
features ( that is always fun ), a few people doing to grunt work 
and all the rest comes down to people complaining because they 
see no reason to put effort into D, as it feels like a wast of 
time. << want to bet that this is the only thing people will 
quote, instead of the rest.


But on-topic again:

No GC, yay. Always a win because it makes a language stand out. 
Possible for D. NO! Too much design choices that limit the 
language. Another D3 rewrite will simply kill D.


D is so tiring. Its the main reason for going with Go, simply 
tired of waiting. In this one+ year time watching D, i have seen 
blogs, betterC half finished being promoted when D is already 
overloaded with features and has already a higher learning curve. 
More regressions and bug fix releases because the new features 
keep breaking stuff. Some more examples on the front pages. Some 
nice external packages that only limited amount of people care 
about. And very few things to improving the issues people 
mentioned the year before and the year before and the year before.


So again, why do people need to bother? The momentum D build up 
in 2016, seem to according tiobe really lost. I remember D 
hitting (23) 1% a year ago, now its ranking (29) 0.5%.


Great another wall of text at 2.50 in the morning. Frankly, i can 
write a book about D issues, justified or not. It will probably 
read like gibberish a

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: Quora: Why hasn't D started to replace C++?

2018-02-01 Thread Benny via Digitalmars-d

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 ;)


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

2018-02-01 Thread Benny via Digitalmars-d

On Thursday, 1 February 2018 at 11:21:37 UTC, Russel Winder wrote:
D should be proud of having a reference compiler, a GCC-based 
one, and an LLVM-based one. This is a Good Thing™, let no-one 
undermine this.


Nothing wrong with choice as long as that choice does not 
introduces issues. Currently there are 3 compilers but also 3 
different ways to install ( depending on the platform ). DMD has 
a installer, LDC needs a manual copy job + path creation, GDC did 
not even bother with ( sorry ).


Let alone 'conflicts':

Example: Install DMD ( what has its own DUB ) but also install 
LDC ( what has its own DUB), now lets say both version have 
different dub versions. Yes, this happened to me and it 
conflicted with some of the Editor plugins their build process 
because the wrong "version" of dub got selected during the build 
process. Its not really a bug but a issue that can trip people ( 
lost a hour on that one ).


Other issues can be that it makes conversations difficult. When 
new people read DMD, LDC, GDC in these forums, you can just as 
well be speaking Mandarin ( Chinese ).


Suggestion:

Is it maybe not better to have one "front-end" compiler visible 
that people download


Example:

D run main.d
D run main.d --compiler ldc ( not installed? Auto download and 
compile using dub )

D run main.d --compiler ldc --options -o3
D run main.d --compiler gdc ( not installed? Auto ...)

D package install web-d

Seen this layout with a some other compilers where everything is 
clean integrated.


- Compiler ( default )
-- Run
-- Test

- Package
-- Install
-- Remove
-- Update

- Tools
--- Format
--- Check
- Language server?

No dub, no ldc, gdc, no confusion, just one clean interface. What 
happens behind the interface is nobody there business. It just 
presents better.


Dub already does half this work with the compiler option but its 
a package manager not the "face of D". Hard to explain...


Anyway, too much off-topic?


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

2018-01-31 Thread Benny via Digitalmars-d

On Wednesday, 31 January 2018 at 11:42:14 UTC, Seb wrote:

Here's a spoiler:

1) Andrei does an excellent job at managing his students [1] 
and there work over the last couple of months has been 
tremendous. As the experiment with UPB was very successful, 
there will be more projects like this one and global scholarship


2) The vision document will finally get updated (there have 
been a few delays due to holiday, illnesses etc.)


https://wiki.dlang.org/Vision/2017H2

3) More community input (I'm preparing a State of D survey atm)

4) More active voting by the community on important issues

5) Better documentation and overview on what the foundation is 
doing


Currently under discussion/work:

6) Using OpenCollective for tracking expenses openly
7) Offering membership packages for companies
8) Doing bi-annual Kickstarter compaigns for important issues 
to the community (e.g. "fix shared")


Thank you Seb and the other.

Sorry for going off the rails but i do like D a lot. Its the only 
reason i keep coming back for the same punishment time and time 
again. It simply gets so frustrating at times what feels like 
running into a stone wall.


Maybe the real issue is not the issues that need to be solved but 
the lack of "news". The blogs are very interesting and i applaud 
them. But is it maybe not time to have a real news section on the 
site where project status updates are provided. We are not 
talking blogs but smaller news snipes that do not take a lot of 
time, so people who do not spend there life on the forum or other 
locations feel like there is indeed movement. It can also help in 
the actual marketing.


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

2018-01-31 Thread Benny via Digitalmars-d

On Wednesday, 31 January 2018 at 10:35:06 UTC, Benny wrote:

Let me say this again


*uch* Never mind this rant. I am just fed up with the issues. I 
will not post anymore as its just a wast of time for everybody 
involved.


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

2018-01-31 Thread Benny via Digitalmars-d
On Wednesday, 31 January 2018 at 07:56:37 UTC, Andrew Benton 
wrote:
If I had to pick a second issue, it's that the ecosystem story 
is hard compared to other languages.  New programmers aren't 
certain what to choose or how to get their environment up and 
running.  Compared against Rust, Go, and Java we have horrible 
ecosystem fragmentation.  E.g. three compilers, two separate 
languages for dub


* three compilers

And 3 different installation method's depending on the platform.

Windows: DMD installer, LDC manually extract zip and setup path, 
GDC ...


Now not all platforms are better. Go with its default compiler 
and cGo are also two different beasts. But both perform in 
regards to performance close to the point that you can rely on 
the main compiler as production compiler.


The same can not be said about DMD and LDC where the performance 
differences can be huge.


Let me add a few other issues to your list:

* Library

Auto generated libraries where all functions are dumped into 
massive one pagers.


https://dlang.org/phobos/std_datetime_date.html

Is this readable when the first two pages are this:

jan
feb
mar
apr
may
jun
jul
aug
sep
oct
nov
dec
sun
mon
tue
wed
thu
fri
sat

Const "jump to" lists intermixed between the documentation.

No clear function calls:

const pure nothrow @nogc @property @safe ubyte daysInMonth();

Const
Pure
nothrow
@nogc
@property
@safe
ubyte ...

and FINALLY the actual function call your looking for: 
daysInMonth();


Now the question becomes without looking at the example!!! Is 
this part of Date, Datetime, ... You can not tell because the way 
you jump to page anchors and with a bit of scrolling, you lose 
where you are. Everything Date belongs into a Date Subpage with a 
method/function Index page. And that method/function Index page 
links to separated pages for EACH method.


You know the extra advantage: It makes finding information from a 
search engine like Google way more easy and less clutter / clean.


No issue for people who read this manual hundred of times or know 
the function calls from there head. But it just ugly and unclean.


..

The real problem is that anybody can find 100's of issues that 
are simply unproductive or make the language look like a mess. 
And they get reported all the time but there is nobody to work on 
them. When the company line is: Do it yourself or pay somebody to 
do it. Guess what the first reaction of a lot of people is.


*miep* *miep* *snooof* ... and you hear nothing from them 
anymore. A few may struggle, get into arguments and then they 
give up. And the rest simply complains about trolls who come to 
complain all the time and do not do the work.


D is highly individualized as a language with actually very 
little corporation between the 100's of project, that get 
abandoned when the only developer runs out of time or moves to a 
differed language.


I put a lot of money in several FOSS projects and it always feel 
like trowing money into a bottomless pit. Very few projects show 
where there money is being spend, let me correct that, not a 
single FOSS project where i put money into has every published 
where the money really gets spend. The closed that i ever got was 
Crystal where Manas.tech gives a yearly report of there time 
spend, money intake, ...


https://crystal-lang.org/2017/12/19/this-is-not-a-new-years-resolution.html

Its the core issue with D.

* Why replace C++ with D when C++ does all the same with just a 
bit more effort but in exchange you get access to way more 
community, development, tools, support.


* Why replace Rust with D when Rust is more actively developed, 
has better tooling support, focuses on drawing in new people, has 
key selling points that its drones keep repeating over and over 
again.


* Why replace any language with D...


We can talk until we turn blue and wast ages discussing the 
issues. But very few outsiders will put in the voluntary effort 
on a language where most doubt its future. That includes me ( and 
i know people will jump on this as being a troll comment ).


There is a reason why i am focusing on learning Rust for my next 
project and not D. Despite Rust its more complex designs, its the 
whole package that is simply better organised. And do not take 
this that i am a rust troll.


While yes, D gets used by some big companies on specific 
projects, the reality is that this seems to stem more from one 
developer in that company using D and not a real interest to use 
it company wide.


D simply has too few people, no real goal, is a mishmash of 
different people with mostly individualized goals, a lacking and 
unclear foundation, lacking in paid developers.


In simple terms, what D accomplished in 20 years time, is being 
overturned C++ taking the same features, Rust developing at a 
very fast rate, Swift same, Go same ... and with a mass of choice 
to people, if one does not stand out.


This really remind me of a Knight Ta

Re: How programmers transition between languages

2018-01-30 Thread Benny via Digitalmars-d

On Tuesday, 30 January 2018 at 11:55:42 UTC, rjframe wrote:
- I click "Browse All Crates"; the default sort is alphabetical 
- not

  useful unless I'm just browsing,


Right side:

* Alphabetical
* All-Time Downloads
* Recent Downloads


even then I'd likely want to browse by category.


https://crates.io/categories


Each project takes up too much space (it looks like something's
  missing on each project), but I like the links to the 
project's

  homepage/repo/docs being right there in the list.
- I don't see any sort of categories/tags to organize projects.


https://crates.io/categories


I guess I
  have to know what I'm looking for and use the right search 
term.
- Overall, I have the impression that it was designed to look 
good, but
  less effort has gone into what people will want to do with it 
in the
  first place (assuming I can consider myself normal for a 
moment).


Dub doesn't look so nice, but it's efficient; I could see me 
searching Cargo for something and not finding it;


True... but both dub and cargo are not exactly the pinnacle in 
user friendly and informative packages websites.


I've never thought that about Dub (granted, far fewer packages) 
or Pypi.


 1,193 packages found
13,605 Crates in stock Side note: End of 2016, this was 1400.

If you consider 12 times "far fewer packages".

The issue is that a lot of D's packages are even less maintained 
then Rust, mostly because Rust being newer and attracting more 
active crowds. And it does not help when Dmd having constant 
deprecating functions and regressions ( what happens WAY too 
often ) that break packages.


Its a long term weakness. Depending on 3th party packages is 
always dangerous but even more so when the compiler forces people 
to use older versions, just to stay safe.


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-27 Thread Benny via Digitalmars-d

On Saturday, 27 January 2018 at 22:58:27 UTC, H. S. Teoh wrote:
I never said we should not offer good IDE support, in fact I 
said that we *need* good IDE support.  But that in no way 
justifies the wrong claim that you can't be productive without 
an IDE. In fact, I find myself *more* productive without 
needing a memory-hogging, CPU-hogging GUI program that requires 
taking my hands off the keyboard all the time, just to edit 
code. But I'm sure you think the same about Vim/Emacs, so we're 
square. :-)


The problem is Teoh that learning a language in Vim or a IDE are 
two totally different things.


I used to program in Notepad because i grew up with PHP and knew 
it like the back of my hand. The result was very little need to 
see the documentation. The moment i found PHPStorm, i fell in 
love. Fast function jumping, remote tools, database at your 
fingertips, code checkers and hinters and all the other niceties.


But for anybody who is not a master of a language or even 
intermediate, a good IDE can make one so much more productive 
compared to the same person just relying on a default notepad 
type environment. The fact that a good IDE expands the methods 
from a class, it shows you the basic help / buildup of the 
methods calls so you know exactly where you write what, without 
the need to visit the developers documentation website.


It massif increases the adoption rate of a language, when your 
new to a language or not a 10 year expert.


And for the people who are used to a language, a IDE can still be 
useful by increasing productivity as you simply do ... example 
"fu" ... enter ... "function " or automated braked closing, or 
error indicators when you forget something so you do not wast 
your time discovering a stupid issue during compilation.


Its the same issue i personally have with languages that get lazy 
and trow out readability in exchange for less keystrokes. You can 
at times tell what development ides a language uses simply by 
looking at the language. Everything awkwardly shortcut like "fn" 
and other shorthand ( but what do make it much more brain taxing 
for anybody new ).


Advanced programmers have the skills to make new languages, 
unlike beginner programmers but they also are so used to a 
specific environment that they build up to speed up, over the 
year, that they assume that everybody else can get going just as 
fast as they are.


As a side note, despite working years in Vim, i still prefer a 
normal but well equip IDE because there are just some things VIM 
is not good at ( unless you customize it to hell with 100's of 
plugins what tends to take years to find your sweet spot and 
build up the know how to use them all perfectly ). VIM with all 
the plugins is simply a IDE, just one where you do not move your 
hands too much away from the keyboard. As your example of your 
colleagues: a IDE where it takes ages to jump to a definition in 
a file, is simply a incomplete IDE. Or maybe those colleges have 
not master the IDE. I know for a fact from myself that there is a 
massive amount of things still "hiding" in Jetbrain there 
products or Visual Studio Code that can make me more productive 
but you learn over time or when you stumble upon it.


From my point of view, without a working IDE its much more 
difficult for a non-specific-language to learn and get better at 
the language. And again, VIM with the right plugins is a IDE, 
simple as that. Its annoying that people do not see this. The big 
difference is that VIM is designed around not moving your hand to 
your mouse and that is its major strength.


On a side note: The issue i had with the plugins, well one of the 
plugin authors found the issue and it came down to it that the D 
compiler had a regression that effect DCD. I remember mentioning 
before as how many times the compiler ends up breaking code.


Going over the D release list, you see way too many times: Major 
release - fix - fix, Major release - fix,  Major release - fix - 
fix... What indicates to me a lack of cross platform testing. 
Especially the amount of regressions surprises even me. It feels 
like too much focus is put upon new features and too few upon a 
test setup that does not only tests the compiler but also all the 
dub packages.


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-26 Thread Benny via Digitalmars-d

On Saturday, 27 January 2018 at 00:08:17 UTC, Benny wrote:

* Rust: Jetbrain IntelliJ + Rust plugin.
It looks like it has become a official supported plugin by 
Jetbrain. Works perfectly out of the box. Impressive results 
and issue hinting.


https://blog.jetbrains.com/blog/2017/08/04/official-support-for-open-source-rust-plugin-for-intellij-idea-clion-and-other-jetbrains-ides/

Yep, i was right. Its now a official support plugin by Jetbrain.

And no offense but i doubt it has anything to do with Mozilla 
officially backing Rust but more a sign of popularity. Just as 
how Go got its own Editor by Jetbrain.


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-26 Thread Benny via Digitalmars-d

On Friday, 26 January 2018 at 21:59:51 UTC, Dgame wrote:
You are not alone. The existing D-Tools are either really bad 
or do not work propely/not out of the box. And I have more 
important things to do than trying to setup the tools. Maybe 
someone likes that, but not me. But I have to say that I've 
used more or less successfully Visual-D and Mono-D a few years 
ago. But neither of the tools can keep up in any way with Tools 
for Rust/C++/C#/Java/PHP. The existence of a good IDE which 
works out of the box without annoying setup procedures is 
crucial for the success of a language nowadays. That's one of 
the reason why I've moved on. I went back to C++ and nowadays 
to Rust. C++ is not that clean as D but the Tool support is 
crucial for anyone who wants to use the language for other than 
some hobby stuff.


I have been comparing a bunch of languages and there IDEs this 
afternoon to see how fast and efficient there latest version work 
( mostly inspired by the other topics of popular languages ). 
Wanted to avoid the whole "grass is greener on the other side" as 
a way to be fair.


* Rust: Jetbrain IntelliJ + Rust plugin.
It looks like it has become a official supported plugin by 
Jetbrain. Works perfectly out of the box. Impressive results and 
issue hinting.


* Crystal: Visual Studio Code + OmniPascal plugin
Color syntax but nothing else. No surprise, Crystal has no 
Windows compiler so no way to link any meaningful out output on 
Windows.


* Pascal: Yes, freaking pascal! Visual Studio Code + OmniPascal 
plugin

Impressive! Impressive features, type hinting and more.

* C#: Visual Studio Code + C# ( OmniSharp ).
No surprise there. Lots of functionality.

* Go: Visual Studio Code + Go Plugin.
Again, no surprise. Lots of functionality.

Did not try the Jetbrain Gogland IDE because that is a official 
product so of course Go will work great in that one.


* Julia: Visual Studio Code + Julia Plugin.
Took a bit more configuring but again more functionality then i 
ever got from any D plugin.


* Swift: Visual Studio Code + Swift Plugin.
Like Crystal, no Windows version and limited to Color Syntax.

... got kind of fed up testing because everything that you expect 
to works on Windows, worked out of the box ( at best with oa 
Julia one needed to add the compiler path ).


If nobody has figured out the trend by now, every language that 
has a windows compiler in any form has no major issues to offer 
extended functionality ( or even basic ). Those that do not have 
windows compiler, fall flat as expected.


The exception being D that despite having multiple windows 
compilers offer ( in my case ) no functionality beyond color 
syntax. I do not count the VSC ability to list every keyword in 
your document.


Another trend that i noticed from the other thread is that all 
the above mentioned languages all outperform D in github user 
activity ranking ( inc the very young one's ). D has always 
struck me more as a corporate language ( one that is less focused 
upon open source ). Maybe there is a more open community focus on 
the other platforms and this drives more interaction and pushes 
better plugin support?


In other words, at best it take me half a hour to get proper 
editor support in the above mentioned languages ( that offer it 
in Windows ). Where as D ... well, its been a long topic and 
anybody who read the first post knows the results. Lets see:


* 8+ hours: Struggling with 4 plugins and no results. And still 
waiting on one of the plugin authors his feedback as he also has 
a life.


* 5 hours: Seven languages with 5 working perfectly and 2 POSIX 
languages with the expected no result. Yes, that includes the 
time to download all the compilers, get examples and other stuff.


Guess the 8+ hour language ;)


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-26 Thread Benny via Digitalmars-d

On Friday, 26 January 2018 at 03:40:26 UTC, Rubn wrote:

You seem to be short tempered


You think after two days trying to get a series of plugins to 
work?


you tried 2 plugins rather quickly, without even trying to see 
if there were configurations or other options you could use to 
get features working.


Visual Studio Code: Code-D, Serve-D, D-Language
Jetbrain: D-Language

That is 4 plugins as described in the original post. Two of the 
same author, 2 from other authors. So that makes 3 different 
people there plugins. One may think a person can be salty after 
so many hours.


  - Limited name suggestion ( VSC functionality not the plugin 
) only by forcing VSC (ctrl+space).

 - ... and nothing else...


This is just not true...

https://imgur.com/z6CZbjL.gif


Well, if that actually worked, i will not be complaining here.


Re: How programmers transition between languages

2018-01-26 Thread Benny via Digitalmars-d
On Friday, 26 January 2018 at 09:02:03 UTC, Ola Fosheim Grøstad 
wrote:
While this analysis of language popularity on Github is 
enlightening:


http://www.benfrederickson.com/ranking-programming-languages-by-github-users/


What i found interesting is the comparison between the "newer" 
languages and D ( see the reddit thread ).


9   Go  4.1022
15  Kotlin  1.2798
18  Rust0.7317
35  Julia   0.0900
46  Vala0.0665
50  Crystal 0.0498
53  D   0.047%

While i can understand Rust ( Mozilla ), Kotlin ( Jetbrain ), Go 
( Google ).

Even Vala and Crystal are ranked higher then D.


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-26 Thread Benny via Digitalmars-d

On Friday, 26 January 2018 at 07:08:50 UTC, Johannes Loher wrote:


Take this all with a grain of salt: I have only tested this on 
Linux and OS X, I have no clue about the situation on Windows.


In general a lot of plugins tend to work better in POSIX systems 
then Windows. I think its more a issue about Windows platform 
testing.


But at least my experience was really good, so I'd like to use 
this opportunity to thank all the authors of the plugins and 
the underlying tools for doing this (ungrateful) work (and in 
my opinion doing it very well). I know that probably a lot has 
still to be done, but the state of affairs is not as bad as all 
the complaints make it sounds.


It probably is not as bad but its clearly a issue anyway.

But one guy complaining after trying 6 or 7 times over a year+ ( 
with constant reporting the issues ), probably means there are 
more people out there who tried and simply gave up without 
reporting the issues.


The reasons for the problems you describe still being so common 
have already explained thoroughly by others: Its mainly that 
there are no paid developers working on it and therefore not 
enough people working on it. So the solution is actullay quite 
simple and it is the same answer that most complaints about 
problems with D get: Either do it yourself, or pay somebody to 
do it. That is the quickest way to fix things.


And that is the same issue with a lot of FOSS languages. But at 
one moment one needs to say stop.


I donated a lot ( for me anyway ) of money to different FOSS 
projects but that money, what happened to it? In general there is 
zero accountability where money gets spend on most projects. Just 
in the last month over 500$ on different projects. But i am not a 
infinity money machine.


And in this case:

Does one donate money to the Code-D/Serve-D developer. But its 
not really his issue.

To the D-Language developer? But its not really his issue.

Who do you even donate too to have specific problems that are 
hard to trace fixed. Its not like one asks: "Please add x 
functionality".


Just recently i donated 100$ to a other language project to 
implement socket support. So far i see nothing happening, while 
this functionality is more important to me now ( as it blocks my 
progress on that project ). So even when donating the results can 
be "i feel ripped off".


Do it yourself = Time is money. If i had that much time to learn 
the base code of a language, i will not be donating money to 
specific language projects ( also i'am not a good core / system 
programmer ).


I feel its too many times: Complain about issue => Get responds 
there are no people to do it => Please do it yourself or pay.


By that logic i am bankrupt tomorrow with the issues i face in 
different languages :)


Let me not bother you too much with my rants. Like i said, its 
better ( for me ) to focus on a language that has things better 
worked out and it does not feel like screaming at the walls. I 
feel sorry for projects like this that have no big corporate 
backers because its not a envy position without the money and 
focus.


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-25 Thread Benny via Digitalmars-d

On Thursday, 25 January 2018 at 21:42:33 UTC, bachmeier wrote:
Even one paid developer makes a big difference. You don't need 
hundreds. Making the problem harder is that many current D 
users don't have an interest in those tools. Therefore you're 
drawing from a small pool of part-time volunteer labor.


It's entirely up to the community. This is not something Walter 
or Andrei should be concerned with. I had hoped the D 
Foundation would lead to a better organization of the 
community, but to this point, that doesn't seem to be the case.


It was my impression that D Foundation has sponsoring from 
different companies. No clue how much but its strange to run a 
Foundation and not being able to pay one or more full time 
employees.


I just looked up some community sourced project:

Nim gets on average 1500 to 2000$ per month
Crystal seems to be doing 2000 to 3000$ per month

That is only counting salt.bountrysource and no direct donations.


Just noticed this thread on Reddit and somebody asked about D.

http://www.benfrederickson.com/ranking-programming-languages-by-github-users/

According to the author off the ranking:

18. Rust 0.73%
58. D... 0.047%

No wonder that Rust seems to be more popular and D seems to 
struggle in popularity.


Re: Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-25 Thread Benny via Digitalmars-d

On Thursday, 25 January 2018 at 19:53:39 UTC, Basile B. wrote:

If you write OOP with few templates like often done in C#, 
Delphi, or more declarative style like Go or C, then DCD works 
fine. Your frustration probably comes from the fact that 
popular techniques in D are not supported by DCD: Template 
Metaprogramming and CTFE.


Maybe there has been a misunderstanding but i am not talking 
about CTFE or Metaprogramming. Basic OOP does not even work. And 
that is after testing D plugins going back a year or more with 
several DMD/Dub releases at the times.


On Thursday, 25 January 2018 at 17:32:24 UTC, Andre Pany wrote:
While the several tools out of the box do not work well 
together, the involved developers
did a great job (without any payment in contrast to Go/C#, 
Delphi...). I also struggled with the problem how to configure 
DCD in the DLang plugin for IntelliJ today.

This might be the reason for the items marked as unknown.
I created an issue here 
https://github.com/intellij-dlanguage/intellij-dlanguage/issues/356




Most of the plugins mentioned here are also made by community or 
individual members. The issue ends up being that its not so much 
the Editor plugins that create the problems but whatever language 
server that is behind it. Please look up several of the plugins 
there originals and you will see a lot are made by individuals? 
For instance OmniPascal...


In my eyes its not the plugin authors there problem because they 
need the official tooling support from D. Compile a set of tools 
and notice how many deprecated calls show up. Or issues when a 
new D compiler version gets released. Or a new Dub version that 
breaks the tooling left or right. This is what i mean by "not 
properly cross platform tested". There seems to be a total lack 
for any tool "chain testing" beyond individual stand alone tests. 
How else does one explain the constant issues i have personally 
faced ( and reported ).



I have been in the position to use D in several projects but in 
my experience its not worth taking the risk ( when issues like 
this keep happening ). This also affect not just the tooling but 
also the whole public dub packages.


When a new language like Rust is more tooling friendly and its 
extended platform integrates great with the editor plugins... Its 
not like Mozilla has hundreds of Engineers on Rust. Its extreme 
highly community driven.


It seems to be that they understand the value of better tooling 
and friendly platform support. Whereas its my impression that a 
lot of resources get focused on making D its compiler / language 
better but the rest seems to be ignored.


I am sorry if this sounds cruel but for now D is on the back 
burner and my next project will probably be in Rust. Its a real 
shame but when even things like editor plugins barely work it 
makes me doubt the rest of the platform. And i do not even like 
Rust as a language but one can not deny it is a better supported 
platform.


One can only express their hope that there will be a 
revitalization in the D management and the priorities. From my 
point of view it feels like D is falling behind when compared to 
other languages like Rust/C++/Go/... D really needs a project 
leader that knows the language and starts focusing the resources 
beyond just the compiler.


Anyway, good luck in the future.


Dscanner - DCD - Dfix ... Editor support or the lack of it.

2018-01-25 Thread Benny via Digitalmars-d
After months doing a different project, i need a programming 
language for a new client with specific needs. D comes to mind. 
As usual that involves downloading the compiler (dmd and ldc).


So, lets install Visual Studio Code:

* Code-D Plugin:
  - Syntax highlight *check*
  - After saving: DMD error suggestions in the code. *check*
  - Limited name suggestion ( VSC functionality not the plugin ) 
only by forcing VSC (ctrl+space).

  - ... and nothing else...


So lets try the next plugin:


* Serve-D Plugin:
  - Syntax highlight *check*
  - After saving: DMD error suggestions in the code. *check*
  - Limited name suggestion ( VSC functionality not the plugin ) 
only by forcing VSC (ctrl+space).

  - ... and nothing else...


Frustration level increasing. Lets try the next one:


* D-Language Plugin:
  - Syntax highlight *check*
  - Limited name suggestion ( VSC functionality not the plugin ) 
only by forcing VSC (ctrl+space).

  - ... and nothing else...


Ok ... so Visual Studio Code its Dscanner, DCD, Workspace-d do 
not properly work or some other issue.



Then lets try IntelliJ Community Edition. After a long time 
getting all the dependancies and compiling them... Dscanner - DCD 
( client and server ) - Dfix ...



* D Language Plugin:
  - Syntax highlight *check*
  - Way too many items like writefln, import etc all being marked 
as unknown. Clearly wrong.

  - ... and nothing else...
  - Socket error (std.socket.xxx) on closing IntelliJ


Conclusion is that it feels like the whole D infrastructure is 
very, very poorly supported.


Other issues like delays that some of the D plugins seem to 
introduce:


* Like "loading ..." popups that do nothing but always show up ( 
Visual Studio Code )
* Like pressing "dot" expecting a response, waiting 2 seconds and 
then finally something happening ( IntelliJ plugin ) but simply 
dumping every possible name and variable ( zero intelligent code 
support )


I assume that this is again broken DCD or Dscanner.

And no, no errors in the console of VSC or anything like that.

Let me summarize my personal D editor experience in the last 1+ 
year.


* Attempts at getting D editor support going: 6 or 7.
* Amount of times things worked out of the box. One! And this was 
limited to about a few minutes and after that all suggestions 
broke again.
* Amount of times dscanner or dcd or other plugins broke because 
of DMD newest version broke: 4
* Tested on different machines: 4! They all have one thing in 
common: Windows 10

* Tested on different Windows installations: 3
* Tested on different "version" of Windows 10: 3
* Amount of times complaining to the plugin authors: Too many to 
count.

* Time spend on these tests / issues: Easily 50 hours or more.
* Frustration level: Again, like each time before EXTREME!

Please do not give me the company line that i need to report 
issues. I did so many times. It is tiring playing guinea pig, 
complaining and reporting, waiting for things to get fixed and 
still seeing things break again or simply not working properly.



I can download Go, C#, C, C++, Delphi, Rust and get proper 
working plugins for the above mentioned editors but D is always 
that frustrating problem child. And i can not blame the plugin 
authors because the issues always seem to stem from the D plugins 
( dcd, dscanner, ... ).


Like dscanner changing its binary location between builds from 
folder root to /bin folder, breaking the plugin authors there 
system as it expected it in the folder root.


Maybe things work great in a few very specific editor but in my 
personal experience, D its editor support is non stop 
frustrating. And i suspect that this complaint is not new.


Clearly there is infrastructure in place for automated testing 
the compiler but it feels like there is a total lack of 
infrastructure for everything that surround it. Beyond maybe a 
few editors that the core team uses?


My personal opinion: Too much in the D landscape is so 
individualist and not properly cross platform tested, that it 
results in pure frustration for the end developer.