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