Author Topic: The next generation of programmers  (Read 8065 times)

0 Members and 1 Guest are viewing this topic.

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: The next generation of programmers
« Reply #50 on: September 25, 2022, 06:55:04 pm »
It is actually possible to implement an 8080 assembler in PL/I and have the code look exactly like FORTRAN.  Or so sayeth my grad school advisor.

It was stilll prettier than the tiny Algol compiler I had to impement in Data General BASIC.

I don't know why I reminisce about the old days, things are so much better today!

Working remote with a 110 baud acoustic coupler wasn't all that productive either.
« Last Edit: September 25, 2022, 06:57:48 pm by rstofer »
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #51 on: September 25, 2022, 10:48:34 pm »
I don't know about modern FORTRAN (haven't looked at it in ages), but surely old FORTRAN would have been a mess to implement a compiler. Of course this was possible. Heck any Turing-complete language allows you to implement a compiler. But would it be a nice experience? Probably not. ;D

"Nice" is always relative to alternatives. And given that Pascal and C didn't exist at the time ... FORTRAN is better than assembly language.

I do wonder why Algol 60 wasn't available in 1969. Or, of course, Wirth's own Algol W, from 1966.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: The next generation of programmers
« Reply #52 on: September 26, 2022, 03:40:10 pm »
I don't know about modern FORTRAN (haven't looked at it in ages), but surely old FORTRAN would have been a mess to implement a compiler. Of course this was possible. Heck any Turing-complete language allows you to implement a compiler. But would it be a nice experience? Probably not. ;D

"Nice" is always relative to alternatives. And given that Pascal and C didn't exist at the time ... FORTRAN is better than assembly language.

I do wonder why Algol 60 wasn't available in 1969. Or, of course, Wirth's own Algol W, from 1966.

Alsol was an elegant language that never seemed to catch on.  Google presents various reasons, I don't know if I buy them.  Algol had the same deficiencies that the original Pascal P4 had in terms of limited IO capability.  UCSD had to wrap a lot of code around the P4 compiler (I think that's the version that was used) to build even a rudimentary OS.  But, damn, Pascal just looks good on a page.  It's just pretty!  I was shocked when I moved from Pascal to C and couldn't have nested functions.  What kind of language doesn't support recursive nested functions?

Having the nesting allows code to be written straight from Wirth's syntax diagrams or the BNF description.

PL/I was another language that really never caught on.  It was a DEBE language (Does Everything But Eat) and I could have grown to like it.  I do have the Digital Research incantation for CP/M but I got it about the time I was transitioning to the PC and leaving CP/M behind (mostly, I still have several CP/M machines, the best is based on the eZ80 50 MHz chip).

 

Offline Picuino

  • Frequent Contributor
  • **
  • Posts: 714
  • Country: 00
    • Picuino web
Re: The next generation of programmers
« Reply #53 on: September 27, 2022, 06:59:00 am »
Lately we are hearing a lot about no-code development platforms that allow many more people to program without having specific knowledge of programming languages.

https://en.wikipedia.org/wiki/No-code_development_platform
https://en.wikipedia.org/wiki/Low-code_development_platform
 

Offline Ed.Kloonk

  • Super Contributor
  • ***
  • Posts: 4000
  • Country: au
  • Cat video aficionado
Re: The next generation of programmers
« Reply #54 on: September 27, 2022, 07:03:30 am »
Lately we are hearing a lot about no-code development platforms that allow many more people to program without having specific knowledge of programming languages.

https://en.wikipedia.org/wiki/No-code_development_platform
https://en.wikipedia.org/wiki/Low-code_development_platform

All fun until you find you want to go beyond the examples in the tute.
iratus parum formica
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #55 on: September 27, 2022, 07:55:01 am »
Alsol was an elegant language that never seemed to catch on.  Google presents various reasons, I don't know if I buy them.  Algol had the same deficiencies that the original Pascal P4 had in terms of limited IO capability.

As opposed to languages such as C, C++, Java which have absolutely zero (0) I/O capability in the language?

They instead have sufficiently powerful general-purpose features in the language to allow ANYONE to build reasonably usable and convenient I/O capability as libraries -- and provide a standard library with some, but that's not the LANGUAGE.

Quote
I was shocked when I moved from Pascal to C and couldn't have nested functions.  What kind of language doesn't support recursive nested functions?

C's position is defensible, and especially C++'s with objects.

I actually find the Pascal family languages very frustrating because while you can call pass nested functions repeatedly from different places (ugh .. stealth globals .. ugly), or pass them to functions such as sort(), you can't return the nested functions or store them in globals / data structures for later use after the enclosing function returns.

Quote
PL/I was another language that really never caught on.  It was a DEBE language (Does Everything But Eat) and I could have grown to like it.  I do have the Digital Research incantation for CP/M but I got it about the time I was transitioning to the PC and leaving CP/M behind (mostly, I still have several CP/M machines, the best is based on the eZ80 50 MHz chip).

In my first job after university in 1985 I was hired as an in-house programmer at a company that had a Data General MV10000 super-mini but they had been using only commercial software and didn't already have any other programmers. My first task was to decide which $50,000 compiler they should buy from DG: FORTRAN, COBOL, or PL/I.  I spent a few days in DG's Wellington office trying them out -- and also how well they interacted with DG/SQL -- and decided PL/I was the obvious choice.

If you squinted at it the right way, you could pretend it was Pascal or C. It has decent arrays, structs, pointers with malloc/free kind of functionality, bitstrings with the usual boolean operators, nested recursive functions.
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 6172
  • Country: fi
    • My home page and email address
Re: The next generation of programmers
« Reply #56 on: September 27, 2022, 10:43:48 am »
What, exactly, should the next generation of programmers be able to do?
What is the worst direction the education of new programmers can take?
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #57 on: September 27, 2022, 12:25:52 pm »
What, exactly, should the next generation of programmers be able to do?
What is the worst direction the education of new programmers can take?

A few difficult question.

We need *someone* who can design CPUs and instruction sets, program in assembly language, write compilers and interrupt handlers. But maybe we don't need all that many.

Even today (and for the last decade or more) the vast majority of programmers are working in Javascript on web sites or Java or C# in businesses, mostly writing glue code to make one baroque API talk to another baroque API.
« Last Edit: September 27, 2022, 12:27:40 pm by brucehoult »
 

Offline Nominal Animal

  • Super Contributor
  • ***
  • Posts: 6172
  • Country: fi
    • My home page and email address
Re: The next generation of programmers
« Reply #58 on: September 27, 2022, 12:32:06 pm »
Perhaps stratification is an answer.  First thing, then would be to find new names for the different types of programmers.

If we called everybody working on a construction site an engineer, it wouldn't work; so why should we call everybody working on software programmers?
 

Offline PlainName

  • Super Contributor
  • ***
  • Posts: 6796
  • Country: va
Re: The next generation of programmers
« Reply #59 on: September 27, 2022, 02:01:40 pm »
Quote
If we called everybody working on a construction site an engineer, it wouldn't work; so why should we call everybody working on software programmers?

'Programmer' is surely equivalent to 'labourer', not 'engineer'.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: The next generation of programmers
« Reply #60 on: September 27, 2022, 03:42:20 pm »
Quote
If we called everybody working on a construction site an engineer, it wouldn't work; so why should we call everybody working on software programmers?

'Programmer' is surely equivalent to 'labourer', not 'engineer'.

Even the BLS (Bureau of Labor Statistics) defines 'programmer' as somewhat inferior to software developer.

https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm
https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm

Note that in either case, a bachelor's degree is usually required.

If you want to know where the money is, drill down by occupation.
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #61 on: September 27, 2022, 08:10:26 pm »
Quote
If we called everybody working on a construction site an engineer, it wouldn't work; so why should we call everybody working on software programmers?

'Programmer' is surely equivalent to 'labourer', not 'engineer'.

Then what is "coder"?
 

Offline PlainName

  • Super Contributor
  • ***
  • Posts: 6796
  • Country: va
Re: The next generation of programmers
« Reply #62 on: September 27, 2022, 09:19:14 pm »
Well, you get different labourers: brickie, chippie, sparks, etc. Coder would be the wheelbarrow pusher, I reckon.
 

Offline cfbsoftwareTopic starter

  • Regular Contributor
  • *
  • Posts: 112
  • Country: au
    • Astrobe: Oberon IDE for Cortex-M and FPGA Development
Re: The next generation of programmers
« Reply #63 on: September 28, 2022, 01:22:50 am »
I do wonder why Algol 60 wasn't available in 1969.
It was available wasn't it? A summary of the various implementations is here:

https://www.softwarepreservation.org/projects/ALGOL/algol60impl

I used an Elliot 803 in the 60's but AFAIR we were using the FORTRAN compiler and the assembler, SIR at that time. I used Algol 60 on an ICL 1906 but that wasn't until the early 70's.
Chris Burrows
CFB Software
https://www.astrobe.com
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #64 on: September 28, 2022, 04:42:21 am »
I do wonder why Algol 60 wasn't available in 1969.
It was available wasn't it?

I would have thought so. And yet Wirth used Fortran not Algol to bootstrap the first Pascal.
 

Offline redkitedesign

  • Regular Contributor
  • *
  • Posts: 111
  • Country: nl
    • Red Kite Design
Re: The next generation of programmers
« Reply #65 on: September 28, 2022, 06:30:19 am »
What, exactly, should the next generation of programmers be able to do?
We need *someone* who can design CPUs and instruction sets, program in assembly language, write compilers and interrupt handlers. But maybe we don't need all that many.

Those programs are designed & written by Electrical Engineering graduates. Or Physiscs, like Dennis Ritchie
 

Offline cfbsoftwareTopic starter

  • Regular Contributor
  • *
  • Posts: 112
  • Country: au
    • Astrobe: Oberon IDE for Cortex-M and FPGA Development
Re: The next generation of programmers
« Reply #66 on: September 28, 2022, 06:38:53 am »
And yet Wirth used Fortran not Algol to bootstrap the first Pascal.
The reason for this is given in Wirth’s “Good Ideas” article:
Quote
…The tools available for writing programs were assembler code, Fortran, and an Algol compiler. The Algol compiler was so poorly implemented we dared not rely on it, and working with assembler code was considered dishonorable. There remained only Fortran. Hence, our naïve plan was to use Fortran…
Chris Burrows
CFB Software
https://www.astrobe.com
 
The following users thanked this post: SiliconWizard

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #67 on: September 28, 2022, 07:30:00 am »
What, exactly, should the next generation of programmers be able to do?
We need *someone* who can design CPUs and instruction sets, program in assembly language, write compilers and interrupt handlers. But maybe we don't need all that many.

Those programs are designed & written by Electrical Engineering graduates. Or Physiscs, like Dennis Ritchie

I do all that stuff and I have a humble BSc in Computer Science.
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #68 on: September 28, 2022, 07:33:04 am »
And yet Wirth used Fortran not Algol to bootstrap the first Pascal.
The reason for this is given in Wirth’s “Good Ideas” article:
Quote
…The tools available for writing programs were assembler code, Fortran, and an Algol compiler. The Algol compiler was so poorly implemented we dared not rely on it, and working with assembler code was considered dishonorable. There remained only Fortran. Hence, our naïve plan was to use Fortran…

That's only the surface reason.  *Why* was the Algol compiler so poorly implemented? Why did no one fix it?

Effectively, he's saying he didn't have an Algol compiler.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: The next generation of programmers
« Reply #69 on: September 28, 2022, 02:43:34 pm »
I believe Wirth developed Pascal on a CDC 6400 and that machine had a blazing fast Fortran compiler but I'm not sure that any other languages were as well developed for the 6400.  If they existed at all, they were probably university projects.

https://wiki.freepascal.org/Fortran


 

Offline Picuino

  • Frequent Contributor
  • **
  • Posts: 714
  • Country: 00
    • Picuino web
Re: The next generation of programmers
« Reply #70 on: September 29, 2022, 10:55:34 am »
" Once he had written the initial compiler, he was able to then rewrite the compiler in Pascal and use it to compile itself in the standard practice called bootstrapping."
https://en.wikipedia.org/wiki/Bootstrapping_(compilers)
« Last Edit: September 29, 2022, 10:58:11 am by Picuino »
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 3997
  • Country: nz
Re: The next generation of programmers
« Reply #71 on: September 29, 2022, 11:17:36 am »
I believe Wirth developed Pascal on a CDC 6400 and that machine had a blazing fast Fortran compiler but I'm not sure that any other languages were as well developed for the 6400.  If they existed at all, they were probably university projects.

https://wiki.freepascal.org/Fortran

The CDC 6400 was just a reduced cost cut down CDC 6600. It was single-issue in-order, vs the CDC 6600's superscalar Out-of-Order with 10 functional units.

So it ran all the same software, just a lot slower.
 

Offline eti

  • Super Contributor
  • ***
  • !
  • Posts: 1801
  • Country: gb
  • MOD: a.k.a Unlokia, glossywhite, iamwhoiam etc
Re: The next generation of programmers
« Reply #72 on: October 10, 2022, 08:13:11 am »
I don't understand the need to change "programming" to "coding".

A "coder" is usually way cheaper than a programmer.

Apparently it sounds "cool", and one can get away with not being held as accountable as much, when challenged, as they can say "I'm a coder, not a programmer" (or a brogrammer!🤣).

It's all about fashion, appearing "cool" and how quickly you can make money, show off, pretend you're Bill Gates etc, as opposed to ACTUALLY KNOWING what you're doing. 

In the old days when we had WAYYYYYYY less CPU, RAM and disk space, ACTUAL programmers were forced to be clever and exceptionally creative, as they only had bytes, maybe a few kilobytes to spare, and there was no luxury of lazily assuming they had 128GB of ram, so why not slap it together, and who cares. Yes it may work, but it's VERY VERY poor programming discipline. You're only getting away with your crappy software because vast pools of RAM and CPU cycles are hiding the fact that you're clueless.
 

Offline MIS42N

  • Frequent Contributor
  • **
  • Posts: 510
  • Country: au
Re: The next generation of programmers
« Reply #73 on: October 14, 2022, 12:46:41 am »
What an interesting thread. Many years ago I taught a few computer related classes at tech school. Conclusion, every student has a different way of learning, different motivators, different abilities. There were tricks to motivate groups, but there was still a need to zero in on different students and have a minute or two of one-to-one. So describing any coding environment as 'best' just doesn't wash.

My introduction to computers was Algol on an Elliot 803. I started an Elec. Eng. Diploma and one of the classes was 'Computer Programming for Engineers'. Hooked from day one and decided I wanted to be a programmer. My motivation was the opposite of most people, I wanted to know how it worked. Didn't care if I was writing a program to work out orbital mechanics, blowout pressure of rubber rings in concrete pipes, ball bearings suitable for applications, or payroll. How to achieve the end efficiently was more important. Working with a 64kbyte system with a 2 microsecond cycle time encourages that.

Most people want a tool to achieve an end. Learn enough about the tool to move the sprite on the screen, blink the LED, spreadsheet the stock market. Learning to do it 'properly' is not on the radar. And as long as the tool does the job, a switch to another tool is not often considered even if it is better/easier. The outcome is more important than the method.

So the process is determine what the person wants to do - this is often the hardest part. What is motivation enough to get them learning the tool? Then, with a destination in mind, decide on the tool. You don't see a plumber running around with an oscilloscope, or an electrician with gas fitting tools. After those are in place it is time to introduce logical thinking. Up to a point, any 'application' can be written in any code environment. The old saying was if it could be done, it can be done in FORTRAN. If it can't be done, do it in assembler.

Back a ways there was a mention the PL/1 compiler was written in FORTRAN. I had the task of figuring out why a FORTRAN program on a VAX was not running as well as it should. A back of the envelope calculation said it should take much less, so I was tasked to hand code the critical parts in assembler (the FORTRAN compiler would take in line assembler). To my surprise, the critical parts took only 10% longer than what I considered optimal. The compiler was very good at optimization. The problem turned out to be the programmer's I/O - they were reading/writing individual array elements to disk. I modified the program with a couple of lines of FORTRAN to read/write 1000 elements at a time, reduced run time from 40 hours to 8. So the idea of a compiler written in FORTRAN is not too far fetched.

And there is the difference between motivations - the program did what the writer wanted, and if it took 30 minutes instead of 5 there wouldn't be an issue. A similar issue occurred in another job, a program analyzed figures and took half an hour. The accounts department ran the program with four different sets of figures every week, which wasn't too much of an issue. But 7 sets at end of month was; end of month was a busy time. I offered to look at the program, restructured and reduced run time to under a minute with all 7 sets of data. My reward was the boss shouting me a beer.

So now I'm a dinosaur. I love the fact that two variables can be swapped by A xor B, B xor A, A xor B - with no other data space required. How many other people would care? A project I am working on needed more code. I had not worried how long it was taking, it hadn't crashed (yet). But would it handle the extra work? A quick benchmark showed the processor was used less than 1%. The extra code might push that to 1.5%. And I was only using half the available code space. The penalty of a frugal upbringing.

I hope you don't mind a bit of reminiscing.

When it comes to coding v programming, I look to the examples I gave. In my mind a coder has a task and achieves it. A programmer is more interested not only in the what, but also in the how. A programmer looks to other considerations such as readability, maintenance, resources, etc.
 

Offline DiTBho

  • Super Contributor
  • ***
  • Posts: 3796
  • Country: gb
Re: The next generation of programmers
« Reply #74 on: October 14, 2022, 08:24:20 am »
coding v programming

those who design and plan before implementing.
those who (try to re-) design and plan after implementing.

who care definitions? I care i have successfully implemented monads in my own C-like language, this will simplify future designs, which will simplify future projects implementations.
The opposite of courage is not cowardice, it is conformity. Even a dead fish can go with the flow
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf