On Tue, 29 Oct 2019 14:12:12 -0400
Mike <the.li...@mgm51.com> wrote:

> On 10/29/2019 1:17 PM, Nathan Hartman wrote:
> > On Tue, Oct 29, 2019 at 7:41 AM Clark Block <clarkblo...@gmail.com>
> > 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

Reply via email to