On Thursday, 18 December 2014 at 14:34:10 UTC, Manu via
Digitalmars-d wrote:
On 18 December 2014 at 23:52, Mathias LANG via Digitalmars-d
<digitalmars-d@puremagic.com> wrote:
On Thursday, 18 December 2014 at 10:47:56 UTC, Manu via
Digitalmars-d wrote:
I think you've missed my entire point.
The summary is this:
Tried D, tried a very popular and often hyped D
library/framework,
encountered bugs. There was friction along the way which
undermines
confidence, but the critical point, the thing that caused the
call to
be made, was that the debugger didn't work, and we were
unable to
diagnose the bug with relative ease.
It's possible that wouldn't have inspired the call to be made
if it
weren't for the prior friction... ie, if it were the first
point of
friction, we might have persevered through that one, but the
aggregate
prior to that point painted a clear picture, and that was the
proverbial straw.
Immaturity in the language seemed to allow for greater
tolerance than
immaturity in the tooling.
This is the experience I was trying to convey... which was to
be taken
as a case study, that is all.
What I'm wondering is how is it you didn't encounter this
issue yourself
before ? If you've been using D for 6 or 7 years, and it was a
small project
that was done in 20 to 30 lines of node.js ? So you clearly
entered unknown
territory and expected everything to be fine, despite your
experience with
D.
Simple, I never tried to use websockets in vibe.d
I had some past experience with vibe.d to do some web page
stuff, and
my experience was practically flawless, which is why I had
confidence
in it in the first place.
Other common language issues that I did anticipate, I expected
to be
able to work through. I did know the debugger was an issue; it
was
actually my biggest fear going in. It did turn out to be the
thing
that bit me in the arse!
I just hoped/expected we wouldn't need the debugger in such a
small
and simple program.
The debugger does work okay for certain tasks, particularly if
you
control your coding style and make sure it's compatible with the
debugger. I didn't have that luxury though as I usually do,
since we
were working on a foreign framework.
Can you link us to the issue(s) you created on Vibe.d's Github
?
https://github.com/rejectedsoftware/vibe.d/issues/931
I can't really articulate the problem well. Google's Native
Client is
a part of the puzzle, and that's a complex environment to get
working.
We tested the NaCl client against some other websocket servers
though,
and the problem didn't occur.
I want to try and isolate a test case if I ever get some free
time at work :/
The other problem I can't isolate, it's just that the first file
that's requested from time to time locks up the browser... if I
kill
the browser, reload and refresh, the problem goes away.
I'll also see if I can post some code that demonstrates that
case, but
I have my suspicions that's client specific too.
We know some stuff sux. Just look at std.datetime's
documentation. On my 15"
laptop, the links take all the screen. And this part is
totally useless, as
no one is going to use it (beside ctrl + f, but you have to
know what you
are looking for). Not mentioning the size of enum (just look
at how much
space trivial enums such as "DayOfWeek" or "Month" takes).
However, many of us lack the time and interest to fix this, as
we know our
way around. The same goes for all the tooling/libraries, they
were
developped, and are maintained out of one's necessity, not
because "we" need
it.
I know. I only said that there were a lot of complaints
relating to
the documentation, because there were.
Although that said, as far as I can tell, it wasn't a
particularly
heavily weighting factor in the decision. Just worth noting; it
wasn't
endearing to anyone.
So to sum things up
1. you blindly walked into something you had no real experience
with, apart from some vague memory that some parts of vibed
worked for you a while ago.
2. you knew the debugger might be an issue, if not _the_ issue,
but chose not to test it beforehand, or couldn't test it
beforehand, because
3. you were working on a foreign framework (and simply hoped
things would work out fine, fingers crossed!).
These are crucial bits of information that were missing from your
first report.
Please try to be more accurate the next time. Holding back
crucial information gets us nowhere. It only leaves the (false)
impression that D is completely unusable.