On 1/04/2015 11:07 p.m., Sönke Ludwig wrote:
Am 01.04.2015 um 11:33 schrieb Rikki Cattermole:
On 1/04/2015 10:28 p.m., Sönke Ludwig wrote:
Am 30.03.2015 um 08:34 schrieb Rikki Cattermole:
Yeah, the vibe.d/dub guys are amazing at getting stuff working. But
horrible at abstraction's especially with library code.
Nobody can be the best at everything. So it was a compliment :)
You've done an excellent job with them.
And by the looks of things, you are now splitting up e.g. vibe.d So
again its mostly past tense observation on that front.
I'm kinda the opposite. Great at abstractions. Horrible at getting the
damn thing working.
I personally usually stay away from using overly strong terms like
"horrible" for online conversations, because it's just far too likely
that someone gets offended (I'm usually a fan of good irony for example,
but almost never use it online).
I agree, I was quite extreme. In reality we're only talking in shades of
grey with a difference of maybe 5 (0 .. 255).
There is a reason why most people IRL think I'm a jerk. Always take
stuff like this with a grain of salt. It's only meant to make people
think about the subject, not as a factoid.
On topic, I don't think that splitting up the library or not does
necessarily have anything to do with abstraction. The library is built
in a modular way, so that splitting it up mainly just becomes an issue
of the build configuration. If you have other examples of where you
think the abstractions are lacking, I'd be interested to know of course.
If I was to start doing it, Vibe.d would be next to useless. No you guys
are doing a wonderful job. I really can't stress that enough.
I generally value good abstraction as important, but that doesn't always
mean that the most extreme abstraction is the best one. Abstraction
comes at the cost of added complexity (on the library side, but more
importantly on the user side) and sometimes at the cost of performance,
so it's always a trade-off.
There are more types of abstractions than just classes vs interfaces.
What goes into a module for example is a prime example of an
abstraction. A purpose.