Librenix
Headlines | Linux | Apps | Coding | BSD | Admin | News
Information for Linux System Administration 

Programming Language Tradeoffs: 3GL vs 4GL

Up
vote
Down

Level of Abstraction
The level of abstraction that a programming language provides is all about tradeoffs. Lower level languages (I'll inaccurately call them 3GL's) supply a few small operations which can be combined with great flexibility to accomplish almost anything. The cost, of course, is in the time-consuming detail in which each and every bit of code must be cast. Conversely, high level languages (loosely, 4GL's) and application generators include meta-operations which provide much more functionality for a given amount of code. Once again, there is a cost. Here the big penalty is a loss of flexibility -- which is proportional to the size of the functional units. There are a prohibitively large number of ways in which a few small operations can be combined to create large ones. Therefore, only the most common of these large functions can be reasonably implemented in a high level language before the point of diminishing returns is reached. As the language integrates more large functions into its syntax, its complexity eventually reaches a point where a high level of skill is required to use it effectively.

Special-purpose Libraries
The original distinction between 3GL and 4GL languages has long been blurred by the availability of prepackaged libraries. For example, there are a wide variety of special-purpose function and class libraries on the market for C and C++. These tools lets experienced programmers use their general-purpose language skills while adding only the specialized components needed to complete an application. The details of using the library follow the patterns that they already know, leaving them to learn only the minimum necessary to write their specialized program.

Applications Generators
Meanwhile, programming with some application generators no longer resembles traditional coding -- but the same type of decisions are being made and the same kind of work is being done. The units of functionality are larger, of course, and the methods of manipulating the chunks of logic are usually different as well. Only if the generator is a good match for the application, however, will the potential productivity advantage of this approach be fully achieved. In selecting such a tool, the same tradeoffs that apply to the choice of 4GL's versus 3GL's must be considered. Application generators don't represent a fundamental change in the nature of programming but rather just another point in the continuum of low and high-level programming.

Intermediate Code
To blur the distinction further, the ability of some 4GL's to generate 3GL intermediate code would seem to give the developer the best of both worlds. It retains the productivity of high-level programming and provides access to the machine efficiency and low-level flexibility of a 3GL -- just as the libraries for 3GL's seem to do. While this approach should result in an environment that is as flexible as the 3GL alone, it comes with a tradeoff. To exercise the flexibility of the 3GL it becomes necessary to program in two languages, which increases maintenance costs and training requirements.

The Right Tool for the Job Versus Expertise
Further complicating the issue is the matter of expertise. A very specialized language may be the most productive for a particular application. However, experts in a more generalized language might complete the application on schedule more predictably than would neophytes with a special-purpose language. Of course, the practitioners of the general-purpose language get more opportunities to hone their skills.

Because of this effect, choosing the best language for each particular application might not always be the optimum overall strategy.


[The author codes in C and PHP and no longer uses COBOL, Atari BASIC, Visual BASIC, FORTRAN, ALGOL, Natural, RPG, or IBM 370 Assembly.]
mail this link | permapage | score:8980 | -Ray, June 24, 2001 (Updated: November 29, 2002)

Programming Language Popularity Statistics

Up
vote
Down

There is a wealth of interesting statistics in this concise little article. If you're looking for a programming job, it just might help you decide which language to bone up on.
We examine four sources of information. First, the raw number of results found with Google's search engine. We also look at dollars per click information gleaned from an online advertising service (Overture). In other words, how much it costs you, the advertiser, per click for ads placed with search terms such as “java consulting” or “perl training”. In addition, to look at the open source community's take on the situation, we look at projects registered with freshmeat. We also use the Craig's List (http://www.craigslist.org) job search board as a source for very rough job statistics.
read more...
mail this link | permapage | score:8334 | -Ray, September 25, 2004

The Falcon Programming Language

Up
vote
Down

Falcon, as described by its creator...
What prompted the creation of Falcon? Part of my daily job was taking care of the status of servers streaming real time data through financial networks. A scripting facility in the control application would have been a godsend, as the alert conditions were too complex to be determined, constantly shifting and requiring constant supervision. I was not new to the topic, as I previously worked on the XHarbour project (a modern porting of the xbase languages), and I also did some research in the field.
read more...
mail this link | permapage | score:7977 | -Ray, April 9, 2009

Introduction to the R programming language

Up
vote
Down

An introduction to R and its basic usage...
R (http://www.r-project.org) is an integrated suite of software tools for data manipulation, calculation, and graphical display. It provides a huge set of statistical and graphical techniques such as linear and nonlinear modelling, statistical tests, time series analysis, non-parametric statistics, generalized linear models, classification, clustering, bootstrap, and many others. R is being developed for the Unix, Windows, and MacOS operating systems.

The core of R is an interpreted computer language that allows branching and looping as well as modular programming using functions
read more...
mail this link | permapage | score:7563 | -Ray, May 7, 2007

Up and coming programming languages

Up
vote
Down

Seven growing programming languages...
While the following seven niche languages offer features that can't be found in the dominant languages, many rely on the dominant languages to exist. Some run on top of the Java Virtual Machine, essentially taking advantage of the Java team's engineering. And when Microsoft built C#, it explicitly aimed to make the virtual machine open to other languages. That detail may help make deployment easier, but it doesn't matter much to the programmer at creation time.

Either way, these seven languages are quickly gaining converts in the enterprise. Perhaps it's time to start investigating their merits.
read more...
mail this link | permapage | score:7395 | -Ray, December 9, 2010

Ruby: Productive Programming Language

Up
vote
Down

More good press for Ruby.
"Every few years something significant happens in the land of computer programming. In my opinion the Ruby computer language is such a landmark."

"Over the years I have seen programmer productivity go up. These are no hard measured calculations, but I have the impression that every five years the speed of delivering software doubles. Not only that, the curve for writing maintainable software appears to increase linearly too. A lot of that speed can be attributed to the tools of a developer, and core to these tools is the computer language."
read more...
mail this link | permapage | score:7384 | -Ray, March 25, 2002

The TCL Programming Language

Up
vote
Down

Tcl creator John Ousterhout describes the uses and inspiration for TCL...
The original goal for Tcl was to make it easy to build applications with powerful command languages. At the time I didn't envision Tcl being used as a stand-alone programming language, though that is probably the way that most people have used it.
read more...
permapage | score:6989 | -Ray, May 11, 2009

Introduction to D, the programming language

Up
vote
Down

A new language for us old C coders who don't want to give up all the good features of C...
D is a (relatively) new addition to the C family of programming languages, intended as a successor to C++ but also incorporating ideas and improvements from other C-like languages such as Java and C#. It is an object-oriented, garbage-collected, systems programming language that is compiled to executable rather than bytecode. The specification and reference compiler are currently at version 0.82, and are expected to reach 1.0 within the year. The reference compiler runs on both Windows and Linux x86, and the frontend if Open-Sourced. A port of the frontend to GCC is underway and already functional on Linux x86 and Mac OS X.
read more...
mail this link | permapage | score:6906 | -Ray, April 20, 2004

Which Programming Language to Choose? (for Linux)

Up
vote
Down

Make mine C.
...Let me begin by listing the five contenders: C, C++, Java, Python and Perl. There are, of course, lots of other programming languages; however, references to these five appear more than most, especially in the Linux world.

Before looking at each language in turn, there is one thing we can say about them all: they are general-purpose and can be used for most any programming task. A general distinction is that C and C++ are compiled languages, much like Fortran, whereas Python and Perl are interpretive, like most versions of BASIC. Java is somewhere in the middle; source code is compiled into an intermediate format which is then interpreted...
read more...
mail this link | permapage | score:6481 | -Ray, February 19, 2001 (Updated: June 24, 2003)

Tutorial: Unix Assembly Language Programming

Up
vote
Down

When you absolutely must have the maximum possible code speed and flexibility.
This document is intended to be a tutorial, showing how to write a simple assembly program in several UNIX operating systems on IA32 (i386) platform. Included material may or may not be applicable to other hardware and/or software platforms. Document explains program layout, system call convention, and build process. It accompanies Linux Assembly HOWTO, which may be of your interest as well, though is more Linux specific...
read more...
mail this link | permapage | score:6402 | -Angela, June 17, 2000 (Updated: July 26, 2003)

The D Programming Language

Up
vote
Down

The performance of C with the productivity of Ruby?
Why create a new programming language? Because C++ is complicated and expensive to implement. Most C++ programmers get accustomed to using certain feature sets and never touch any others, because it is too hard to remember them all. This is not a problem for the compiler, but for other programmers trying to read the code it can be, because they might be used to other feature sets. D avoids this problem, because it was hugely simplified without removing important features. But that is not the only benefit D has.
read more...
mail this link | permapage | score:4483 | -Ray, January 17, 2008

The Economics of Programming Languages

Up
vote
Down

A related article is Programming Language Tradeoffs: 3GL vs 4GL
PHP, for example, wasn't a novelty when it was created. As a language, it's nothing particularly innovative compared with others of its kind. However, it did dynamic web pages really well, and very easily compared to other systems available at the time. I recall setting up mod_perl and installing various components that often had version requirements. It was a pain compared to the more tightly integrated PHP setup. Another example, as mentioned above, was the combination of Tk with Tcl for scripting GUIs. Tcl is well suited to a variety of tasks, from running on Cisco routers to doing web scripting itself, but Tk was its home run, and what it became known for.
read more...
mail this link | permapage | score:4224 | -Ray, July 20, 2005

Newbie guide to programming languages

Up
vote
Down

Five top languages described and compared...
You may notice that I didn't list Java or PHP. Why not? Because they're primarily used to write software that runs Web servers. Java (which despite the name has nothing to do with JavaScript) is sometimes used to write desktop applications or cellphone games, but it's relatively complex and I don't recommend it as a first langauge. PHP is a little simpler, but it isn't used much outside Web servers and for most beginning programmers, you're better off with another language.
read more...
mail this link | permapage | score:4206 | -Ray, June 28, 2009

Ten Programming Languages to Learn...

Up
vote
Down

Or, at least, consider...
"Don't get fixated on one or two languages. When I started in 1969, FORTRAN, COBOL and S/360 Assembler were the big tickets. Today, Java, C and Visual Basic are. In 10 years time, some new set of languages will be the 'in thing.' …At last count, I knew/have learned over 24 different languages in over 30 years," Wayne Duqaine, director of Software Development at Grandview Systems, of Sebastopol, Calif., told eWEEK.
read more...
permapage | score:3713 | -Ray, September 18, 2006

Introduction to the Ruby Programming Language

Up
vote
Down

'Hello World!', loops, and more, with code examples.
Readers who know how to use some other scripting language, such as Perl, will benefit most from this series. Joshua begins his exploration into Ruby with a discussion of variables, quotes, arrays, objects, and methods. Subsequent articles in this Ruby series will deal with more advanced topics, including developing graphical applications and using Ruby with databases.
read more...
permapage | score:3398 | -Ray, August 13, 2001 (Updated: July 8, 2003)

Why the C programming language is here to stay

Up
vote
Down

Almost everything I write these days is in C -- with the notable exception of this website, written in PHP -- and I see no compelling reason to change that.
The answer is that although C++ is better than C, it's not that much better. In other words, the cost of converting C programs to C++ out weighs the benefit of conversion. Another problem is that there are not enough C++ programmers out there. So many companies faced with a huge amount of C code and a large number of C programmers, tend to stay with C. That's not to say that C++ won't grow in popularity in the future, but for now there's still a lot of C out there.
read more...
mail this link | permapage | score:3321 | -Ray, January 28, 2002 (Updated: June 16, 2003)
Decorate your home or office with Fine Art

Selected articles

Linux dominates Windows

Hacker Haiku

The short life and hard times of a Linux virus

The Real Microsoft Monopoly

The Supreme Court is wrong on Copyright Case

Librenix T-Shirts and Coffee Mugs!

Space Tyrant: Multithreading lessons learned on SMP hardware

Graffiti Server Download Page

VPS: Xen vs. OpenVZ

Programming Language Tradeoffs: 3GL vs 4GL

Space Tyrant: A multiplayer network game for Linux

How to install Ubuntu Linux on the decTOP SFF computer

Microsoft to push unlicensed users to Linux

No, RMS, Linux is not GNU/Linux

MiniLesson: An introduction to Linux in ten commands

Mono-culture and the .NETwork effect

Download: Linux 3D Client for Starship Traders

The Network Computer: An opportunity for Linux

Tutorial: Introduction to Linux files

Shadow.sh: A simple directory shadowing script for Linux

Closed Source Linux Distribution Launched

Linux vs. Windows: Why Linux will win

Testing the Digital Ocean $5 Cloud Servers with an MMORPG

Why software sucks

Apple DIY Repair

The life cycle of a programmer

Apple to Intel move no threat to Linux

Missing the point of the Mac Mini

Space Tyrant: A threaded C game project: First Code

Space Tyrant: A threaded game server project in C

Scripting: A parallel Linux backup script

Why Programmers are not Software Engineers

Beneficial Computer Viruses

 

Firefox sidebar

Site map

Site info

News feed

Features

Login
(to post)

Search

 
Articles are owned by their authors.   © 2000-2012 Ray Yeargin