Software Programming Languages

Summary: Software Programming Languages

This is a summary with links to all my posts on software programming languages.

Computers need to be “told” what to do. Each computer has a native language it understands, a “machine language.” Each machine language has a human-readable version called “assembler language.” Starting in the 1950’s “high level” languages for telling the computer what to do (programming it) have been developed.

111

Here are the basics of that amazing progression.

https://www.blackliszt.com/2020/09/the-giant-advances-in-software-programming-languages.html

Software programming language core concepts

One of the core features of all programming languages is the subroutine. Everyone who programs uses subroutines, but their power can be underappreciated.

https://www.blackliszt.com/2021/03/fundamental-concepts-of-computing-subroutine-calls.html

Among the earliest features added to languages were structures, blocks and macros. Each of these contributed to more concise and understandable programs.

https://www.blackliszt.com/2021/09/software-programming-language-evolution-structures-blocks-and-macros.html

Once you get past the basics of language, you find that widely used languages have rich collections of subroutine libraries and sometimes what are called frameworks, which contribute a large fraction of any program’s solution.

https://www.blackliszt.com/2021/10/software-programming-language-evolution-libraries-and-frameworks.html

The way programs flow is a key aspect.

https://www.blackliszt.com/2022/06/flowcharts-and-workflow-in-software.html

Programs consist of a combination of instructions and definitions of the data on which the instructions operate.  Exactly how those relate to each other has been the subject of major disputes – which continue to this day.

https://www.blackliszt.com/2015/06/innovations-that-arent-data-definitions-inside-or-outside-the-program.html

Some programming "advances" basically try to restrict the possible relationships betwen code and data. Bad idea.

https://www.blackliszt.com/2021/08/the-relationship-between-data-and-instructions-in-software.html

Software programming language evolution

When talking about software languages, the term high level language was introduced early. Here’s what it means.

https://www.blackliszt.com/2020/10/what-is-high-about-a-high-level-language-in-software.html

Decades ago a couple of languages were invented and enjoyed an explosion of use that were major steps ahead of the standard languages of the time in terms of productivity.

https://www.blackliszt.com/2020/11/software-programming-language-evolution-beyond-3gls.html

Not long after these amazing, productivity-enhancing languages had their rapid growth, the modern DBMS came onto the scene, with its own language for data definition, query and update. The impact of the DBMS revolution was huge.

https://www.blackliszt.com/2021/01/software-programming-language-evolution-impact-of-the-dbms-revolution.html

One of the major reactions to the DBMS revolution was the introduction and rise to prominence of what were called 4-GL’s, all which of incorporated the DBMS as an integral part.

https://www.blackliszt.com/2021/02/software-programming-language-evolution-4gls-and-more.html

There has been an explosion of programming language invention.

https://www.blackliszt.com/2014/04/continents-and-islands-in-the-world-of-computers.html

It just goes on and on and on and on, with no end in sight.

https://www.blackliszt.com/2022/04/software-programming-language-cancer-must-be-stopped.html

Software programming language innovations

Experts tout the major advances in programming languages made since the early days, but they don’t amount to much.

https://www.blackliszt.com/2020/09/software-programming-languages-50-years-of-progress.html

A comparison to the virtues of various human languages makes this clear.

https://www.blackliszt.com/2020/12/the-bronte-sisters-and-software.html

Attempts have been made by experts to fix problems that have been widely noted for many decades.

https://www.blackliszt.com/2021/09/software-programming-language-evolution-the-structured-programming-goto-witch-hunt.html

One of the serious detours into unproductive swamps taken by programming languages has been what’s called object-orientation. It had a promising start and would have been fine had it stopped there.

https://www.blackliszt.com/2021/11/the-promising-origins-of-object-oriented-programming.html

Lots of people have things to say about O-O languages. There are the academics and other authorities and then there are the people with real experience who aren’t groupies.

https://www.blackliszt.com/2022/01/object-oriented-software-languages-the-experts-speak.html

Here are some facts and logic to explain why O-O should be referred to exclusively in the past tense.

https://www.blackliszt.com/2022/03/why-object-orientation-in-software-is-bad.html

O-O is so bad that people who actually know stuff take pleasure from mocking it:

https://www.blackliszt.com/2022/05/making-fun-of-object-orientation-in-software-languages.html

Another category of hyped but harmful programming languages have been “functional” ones. These arose early in programming evolution and keep popping up.

https://www.blackliszt.com/2021/05/software-programming-language-evolution-functional-languages.html

The attraction of functional language has a strong basis. It’s true that increasing the declarative aspect of a total solution brings strong benefits. But embedding it in the language neuters it.

https://www.blackliszt.com/2021/07/software-programming-languages-the-declarative-core-of-functional-languages.html

Here are some detailed examples of how supposed advances in programming languages have worked out in practice, including failures of Java and 4-GL’s and a huge success with a brand-new system written in that ancient bit of history called COBOL.

https://www.blackliszt.com/2021/01/software-programming-language-evolution-credit-card-software-examples-1.html

https://www.blackliszt.com/2021/02/software-programming-language-evolution-credit-card-software-examples-2.html

https://www.blackliszt.com/2022/08/software-programming-language-evolution-credit-card-software-examples-3.html

After all those failed advances, there's the amazing case of HTML, a wildly successful language without all the bells and whistles that takes the winning principle of "just get the job done."

https://www.blackliszt.com/2010/05/html-assembler-language-easy-to-use-tools.html

Software programming language evaluation

Promoters of new languages tout how they prevent programmers from making errors (ha!) and result in cleaner programs that somehow promote productivity – which is never measured or tested.

The fact is, there is a standard by which programming languages should be judged – along with the support systems and metadata that are an integral part of the solution. It’s simple: how many places do you have to go to make a change? The right answer is one. Here’s the idea.

https://www.blackliszt.com/2014/03/how-to-evaluate-programming-languages.html

 


Categories