Pathing in the D ecosystem is generally broken (at least on windows)

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 29 21:44:40 PDT 2015


On Wed, Sep 30, 2015 at 01:59:36AM +0000, Jonathan M Davis via Digitalmars-d wrote:
> On Wednesday, 30 September 2015 at 00:20:46 UTC, H. S. Teoh wrote:
[...]
> >Issues like these were part of what convinced me that the so-called
> >desktop metaphor was bunk and that the current infatuation with GUIs
> >is a case of emperor's clothes, and drove me to embrace the *nix
> >shell.
> 
> GUIs work quite well for certain types of applications - especially
> those that are very visual (e.g. Photoshop). And in general, if
> they're done correctly, they allow you to do a certain set of
> operations efficiently and easily, but by their very nature, they
> don't tend to be very flexible, and when you do try and make them
> flexible, they tend to get very complicated, very fast.

Oh, I agree that certain tasks are better suited for GUIs. For example,
highly visual tasks like freehand drawing, photo-editing (Photoshop),
etc., are clearly better suited to a graphical interface.  Many things
aren't, though, in spite of people trying to shoehorn them into GUIs
because GUIs are k00l and therefore we must do GUI or we're not in the
in-crowd.


> Contrast that with Unix utilities, which are usually designed to do
> one job and do it well and then interoperate with other such utilities
> cleanly.  Because each one is simple, they work well, and because
> they're composable, you have a _lot_ more flexibility than you get
> with a GUI. So, in general, the unix philosophy just ends up working
> better. But it _does_ require a certain kind of thinking from the user
> that tends to go well with programmers but not so well with the
> average joe, and even with that in mind, there _are_ applications that
> work better as GUIs.

I know the commandline scares away your average joe. That's the kind of
audience GUIs are catered to, which is understandable. What gets
annoying is when you're *forced* to use GUI even if you're not the
average joe. Many tasks in Windows simply cannot be done without
clicking through the GUI. You have no choice in the matter. Where it get
ugly is when the GUIs in question have issues, like non-resizeability or
non-copyability where there's no *technical* reason why it cannot be
done. That's when I start wishing it was Linux where I can just fire up
a text editor and edit system config files directly instead of getting
an aneurysm from clicking the rodent trying to coax it to do what I
want.


> But it's that simplicity and composability that gives us a lot of the
> power that we have with ranges, and I think that you can see some
> comparisons between a range-based approach and what you'd typically
> get in many other languages (particularly when OO is involved), where
> you often end up with objects that have everything and the kitchen
> sink in them, which can be quite useful and in some cases, easier to
> use, but ultimately it's a lot less flexible and harder to maintain.
[...]

The infamous god-object? I thought that was an antipattern...

As is the static singleton class, which is so widespread in Java because
their fixation on OO doctrine prohibits free functions as a matter of
orthodoxy, even though many things are really better off as free
functions than class members.

To me, such shenanigans are a code smell symptomic of an underlying
design / conceptual flaw, just as the sometimes ridiculous shenanigans
you have to go through in order to make something work as a GUI when
clearly a different kind of interface would be much better suited. But
such suggestions are usually shot down by various standard fallacies
("non-GUI == not user-friendly", "nobody uses CLI anymore", "GUI ==
k00l, CLI == not k00l", etc.) and never seriously considered, even
though they really should be.


T

-- 
It only takes one twig to burn down a forest.


More information about the Digitalmars-d mailing list