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