[Info-vax] User Interface Design, Implementation
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Thu Jun 6 12:00:23 EDT 2019
On 2019-06-06 14:11:28 +0000, Arne Vajhj said:
> MVC is a pattern used by some GUI frameworks.
>
> Non-GUI applications does not use MVC.
>
> GUI applications using a non-MVC framework does not use MVC.
Are you positing that an MVC-style app design requires graphics?
Because it really doesn't.
Sure, some MVC frameworks are built for graphics interfaces, or for a
web interface. But I'm referencing the internal segmentation of the
app code.
Okay. Given the sort of large and longstanding timesharing apps that
more than a few OpenVMS sites have built and still have...
...We have a view. A display of some sort. Often a character cell
device using ANSI controls. Or a command-line interface.
And... we have a model. A database or three. Either locally, or some
other data accessed remotely.
And... we can have a controller. A blob of code that among other
tasks, mediates the chatter between the view and the model.
That seems... much like what more than a few longstanding and
timesharing-style OpenVMS server apps do. Though many of these
long-existing apps don't split off the pieces. Which can be part of
why folks are still display character cell interfaces and terminal
emulators for some apps.
What's the difference between an ANSI control sequence or command-line
interface, and a network interface that passes along a different sort
of data either for a remote user or for a remote server, whether for
use by a dedicated client app either in a browser, or a standalone app
on another computer? Or by another server? In terms of what has to
happen in the app code, not all that much. Sure, different APIs. But
there are different APIs for different GUI interfaces, too.
And as I've mentioned, some of the refactoring that works well when
updating and upgrading OpenVMS apps is retrofitting something akin to
MVC, and particularly splitting off the code related to what MVC calls
the View.
Variously with each of the device-specific views into
dynamically-activated shareable images on OpenVMS, as that can avoid
problems at image activation time when some other dependency might be
missing in a particular environment. In older configurations, the
DECwindows and VWS/UIS shareable images weren't always installed
everywhere, for instance. In a more recent era, it can be around
activating different TLS shareable images that may or may not be
present. Or for whether OpenGL is installed, for that matter.
The views can be for providing data to LAT printers, and more recently
data for IP printers via telnet or lpr/lpd, or then via IPP if/when.
And again, I don't see the app code to manage a remote network
connection to some other app—and that remote app or remote server may
well not be doing MVC-style designs within, or it might be—as being
particularly different from the app code needed code to manage a local
or an X GUI display, or different sorts of printer connections, or for
different network transports.
This also all gets back to the piles of code needed to do some of these
functions, whether it's the often-existing piles of code needed for
character cell, whether home-grown or SMG or FMS calls, or otherwise.
And for various folks, the lack of piles of code and/or frameworks to
do different views within the available staff and the available budget.
Such as (the lack of) frameworks for REST or whatever, for a view that
might be providing a data service for a remote GUI client app.
Does everybody consider a network connection a view in an MVC pattern?
Of course not. But it's really quite similar, interfacing what amounts
to a controller with a different display client. And it's an approach
that works well with updating the piles of bespoke code that exists at
many OpenVMS sites. Implementation details and languages and
requirements can and do vary. A pile of BASIC or C++ or C or Fortran
can still be designed to segment the various areas, akin to what MVC
and such posit.
Your approach and your opinion around MVC is one you're fully entitled
to, of course. I just think you're really missing out on an approach
that works well for refactoring existing OpenVMS code.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list