Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler?

Clark Block
Hi!

Just as most programmers today warn people not to use assembler, probably
future programmers will warn people not to use high-level programming
languages.

It is written in book Java How to Program ninth edition that instead of
using the strings of numbers that computers could directly understand,
programmers began using English-like abbreviations to represent elementary
operations:

1.5 Machine Languages, Assembly Languages and High-Level Languages

Programmers write instructions in various programming languages, some
directly understandable by computers and others requiring intermediate
translation steps. Hundreds of such languages are in use today. These may
be divided into three general types:

Machine languages
Assembly languages
High-level languages

Any computer can directly understand only its own machine language, defined
by its hardware design. Machine languages generally consist of strings of
numbers (ultimately reduced to 1s and 0s) that instruct computers to
perform their most elementary operations one at a time. Machine languages
are machine dependent (a particular machine language can be used on only
one type of computer). Such languages are cumbersome for humans. For
example, here’s a section of an early machine-language program that adds
overtime pay to base pay and stores the result in gross pay:

+1300042774
+1400593419
+1200274027

Programming in machine language was simply too slow and tedious for most
programmers. Instead of using the strings of numbers that computers could
directly understand, programmers began using English-like abbreviations to
represent elementary operations. These abbreviations formed the basis of
assembly languages. Translator programs called assemblers were developed to
convert early assembly-language programs to machine language at computer
speeds. The following section of an assembly-language program also adds
overtime pay to base pay and stores the result in gross pay:

load basepay
add overpay
store grosspay

Although such code is clearer to humans, it’s incomprehensible to computers
until translated to machine language. Computer usage increased rapidly with
the advent of assembly languages, but programmers still had to use many
instructions to accomplish even the simplest tasks. To speed the
programming process, high-level languages were developed in which single
statements could be written to accomplish substantial tasks. Translator
programs called compilers convert high-level language programs into machine
language. High-level languages allow you to write instructions that look
almost like everyday English and contain commonly used mathematical
notations. A payroll program written in a high-level language might contain
a single statement such as

grossPay = basePay + overTimePay

Will future programmers probably warn people not to use high-level
programming languages just as most programmers today warn people not to use
assembler?
Reply | Threaded
Open this post in threaded view
|

Re: Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler?

Nathan Hartman
On Tue, Oct 29, 2019 at 7:41 AM Clark Block <[hidden email]> wrote:

> Just as most programmers today warn people not to use assembler, probably
> future programmers will warn people not to use high-level programming
> languages.


In the future, computers will program programmers.
Reply | Threaded
Open this post in threaded view
|

Re: Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler?

Mike.
On 10/29/2019 1:17 PM, Nathan Hartman wrote:
> On Tue, Oct 29, 2019 at 7:41 AM Clark Block <[hidden email]> wrote:
>
>> Just as most programmers today warn people not to use assembler, probably
>> future programmers will warn people not to use high-level programming
>> languages.
>
>
> In the future, computers will program programmers.
>

I remember programming back when it was the programmer, and not the
compiler, that did the optimizations.

:)

Reply | Threaded
Open this post in threaded view
|

Re: Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler?

Stuart Longland
In reply to this post by Nathan Hartman
On 30/10/19 3:17 am, Nathan Hartman wrote:
> On Tue, Oct 29, 2019 at 7:41 AM Clark Block <[hidden email]> wrote:
>
>> Just as most programmers today warn people not to use assembler, probably
>> future programmers will warn people not to use high-level programming
>> languages.
>
> In the future, computers will program programmers.

"Man must be master" is the phrase that comes to mind.

Electronic computers exist to do the low-level dull data drudgery under
the guidance of their human operators, not the other way around.
--
Stuart Longland (aka Redhatter, VK4MSL)

I haven't lost my mind...
  ...it's backed up on a tape somewhere.

Reply | Threaded
Open this post in threaded view
|

Re: Will future programmers probably warn people not to use high-level programming languages just as most programmers today warn people not to use assembler?

Jeff-3
In reply to this post by Mike.
On Tue, 29 Oct 2019 14:12:12 -0400
Mike <[hidden email]> wrote:

> On 10/29/2019 1:17 PM, Nathan Hartman wrote:
> > On Tue, Oct 29, 2019 at 7:41 AM Clark Block <[hidden email]>
> > wrote:
> >> Just as most programmers today warn people not to use assembler,
> >> probably future programmers will warn people not to use high-level
> >> programming languages.  
> >
> >
> > In the future, computers will program programmers.
> >  
>
> I remember programming back when it was the programmer, and not the
> compiler, that did the optimizations.
>
> :)

I also remember :-)

I think compiler optimisations are great, but programmers must also
optimise (examples: by using an algorithm with lower complexity, by
being aware of locality of reference issues, etc.)

Also, assembly language is, in my opinion, still useful for:

- programming micro-controllers with scarce resources
- programming graphics cards (shader code)
- using processor features for which there exists no intrinsic
  function in a high level language.
- proving to yourself that the compiler is actually doing the wrong
  thing with it's input when you suspect it (rare)

With regards to assembly language (or any language for that matter), my
opinion is this: use the right tool for the job; if the right tool is
assembler, then use assembler, if the right tool is logo, use logo.

A large part of programming is:

1) Knowing what you are trying to achieve
2) Having the ability to choose a good tool, that is, one of the right
tools, to achieve what you want to achieve

In my opinion, some sub-optimal things a programmer can do (and I know
this because I also have these propensities) are:

- cleaving only to tools one is comfortable and familiar with
- doing something fancy, or using a fancy language/environment when a
  simpler choice is better
- trading ease of code-maintenance/extendability/portability for small
  gains in performance

I guess what I'm trying to say is that I think the issue doesn't really
lie with high-level vs low-level; I think it's more about the
programmer and the programmer's ability to make the (or one of
the many) correct choices.

regards,

Jeff