David Schwartz via PLUG-discuss said on Sat, 24 Dec 2022 17:51:44 +0000
(UTC)
>But what have we done for ourselves? We
>still use imperative languages to write code line-by-line, they are
>subject to the same types of errors, debugging works the same way
>(well, we didn’t have debuggers until the late 80’s), automated
>testing is almost non-existent.
>
>It’s just insane to me how LITTLE we’ve done to improve the ability to
>do this thing we call “programming”. Maybe it’s just … job security? :o
>
>-David Schwartz
There's a different way to look at the phenomenon you mention. Maybe we
still use imperative languages because they've stood the test of time.
Declarative language Prolog was available since the 1980's, but it
gained no traction, perhaps because it just didn't easily do what
needed to be done. The functional languages are just now re-emerging
after decades of being ignored, perhaps because the imperative
languages did a better job in more use cases. And now Object Oriented
Programming has mostly replaced structural programming, although I'm
not sure that's a good thing in the majority of cases.
Most modern Linux distros package Lazarus, a semi-clone of the ancient
Borland Delphi, a primarily drag-and-drop GUI/Database programming
method. For whatever reason, neither Delphi nor Lazarus ever gained
critical mass. Others in this same genre were Powerbuilder and Clarion,
both significant in the 1990's but faded into obscurity for some
reason. Meanwhile, C keeps rolling on, as does Python. They stood the
test of time. What Python can't do, C can, and what's too much work in
C, Python with its standard libraries can easily accomplish.
Another thing: Imperative programming *has* progressed, starting with
DBASE and its built in database connectivity, its clones Clipper and
Fox. Then PHP, with built-in web-dev. In 1995 we did web with CGI
programming, today not.
Then there's this: The "easier" programming paradigms got pushed onto
the (intelligent) user. Anybody with the right software can create a
dashboard today. Wordpress and Facebook enable completely non-technical
people to make their own web page. These don't require programmers, so
programmers spend their time with the declarative languages the
non-techs can't do.
One final thing: With the exception of the spectacular Clarion, most of
the "better ways to program" created more problems than they solved.
Powerbuilder GPFed/Bluescreened at the drop of a hat and often was
intermittent. Delphi was nice but required almost as much knowledge as
learning a programming language, plus it used Pascal long after C had
eclipsed Pascal. Inclusion of GTk in a program means tens of warnings
while running the program, and it's extremely complicated. Qt isn't
much better. Tcl/Tk was billed as the easiest way to make GUI, but Tcl
is a trash language not having any sort of subroutines. Zope was
promised to completely separate logic from content to produce a logical
and complete route to a high quality, consistent website, but it turned
out to have too high a learning curve. Same with Drupal. Node.js was
supposed to be revolutionary. I tried it: Working with any Node.js
application of any complexity resembles turning a 50 foot garden hose
inside out.
About 6 months ago, Keith Smith and I had a detailed offlist discussion
about creating a truly easy way to quickly whip together an
application, but we went on to other things because a truly workable
Rapid Application Development (RAD) tool is incredibly difficult to
design and create. Don't get me wrong: Cobbling together a RAD
requiring an incredibly broad knowledge of the RAD's behavior and API
is easy, but making it easy to use is a monumental task.
Every year five new languages come out, with fanboiz for each gushing
how it's a game changer. I dabbled with GoLang recently, and to do
anything remarkable you need to learn such a broad swath of Go that it
makes Java look as narrow as C. Go, Haskell, Rust, Node, React, Vue, and
dozens more new languages, and yet C, C++, Python and Java continue to
rule the roost. That's very telling.
SteveT
Steve Litt
Autumn 2022 featured book: Thriving in Tough Times
http://www.troubleshooters.com/bookstore/thrive.htm
---------------------------------------------------
PLUG-discuss mailing list:
PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss