You are a stupid programmer, you can't have that

Brian Tiffin btiffin at gnu.org
Sun Aug 8 18:26:10 UTC 2021


On Saturday, 7 August 2021 at 12:15:15 UTC, IGotD- wrote:
> ...
> Language designers seem to have a big brother attitude towards 
> programmers and think they will save the world by introducing 
> limitations.
>
> Examples.
> ...
> 2.
> Somewhat related. when Java was designed, the designer (James 
> Gosling I believe) claimed that programmers were too stupid to 
> understand the difference between signed and unsigned math 
> (despite often several years of university education) and 
> removed signed math entirely from the language. The impact is 
> that when unsigned math is required, you are forced to 
> conversions and library solutions. Not ideal when an HW APIs 
> deals with unsigned numbers for example.
>
> You are welcome to add any other examples that you find 
> significant for the discussion.
>
>
> This partially applies to D in some extent but can often be 
> found in other languages and mentality of several language 
> designers.
>
> The question is, do you think language designers go to far when 
> trying to "save" programmers from misuse or not?
> Do you think there can be approaches that both prevent bugs at 
> the same time do not limit the language?

Just to point out that using Java as a sample seems a bit off.  
Java (well, the JVM) is the ultimate in restrictive.  It's a 
compiler that doesn't emit CPU code, but safe(r) emulation in a 
sandbox.  Java stormed the Enterprise world because Business 
managers wanted safer code, and are willing to slow everything 
down for an extra margin of safety.  The JVM was not accepted en 
masse because bosses didn't trust users, but because they didn't 
trust the programmers.  It kept those pesky cubicle workers one 
level away from **their** hardware. They were promised less 
show-stopping mistakes while still allowing the hiring of all the 
coders they need to help automate everyone else out of work.  
That James and the other Java designers decided to lessen 
signed/unsigned transition errors by simply removing unsigned, is 
just par for the JVM course.

Walter seems to be trying to lead D development down paths he 
sees as smarter, and wiser in the large.  I don't get the sense 
that D is being designed for stupid programmers, or limited 
because of stupid. At least nowhere near the same league as with 
the JVM decisions *which was purposely built because 
non-technical people don't trust programmers (lacking the skills 
to quickly determine if one is foolish or wise, but still want to 
hire them all while pursuing business goals)*.

Just about everyone thinks they are a good driver, or they 
wouldn't drive.  But seat belts still save a lot of lives.  
*Would probably save even more, if we didn't all drive that 
little bit faster feeling safer behind a seat belt, in cars now 
designed to crumple more for less crumpling of passengers*.  They 
don't install guard rails on highways because *everyone* misses 
the turn, but some few might on a bad day, so there is a guard 
rail to limit the damage.

I've always viewed the JVM as programming in bumper cars.  There 
is a lot of fun to be had in bumper cars.  You can learn a lot 
about yourself and others.  Business leaders, particularly the 
non-technical, seem to agree.

I'm still new to D, but see it's present and future as an easy to 
read and write *feels safer, is safer* programming environment, 
at speed, en masse.

Have good, make well.


More information about the Digitalmars-d mailing list