home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.forth      Forth programmers eat a lot of Bratwurst      117,927 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 116,289 of 117,927   
   Paul Rubin to Anton Ertl   
   Re: push for memory safe languages -- im   
   10 Mar 24 01:56:08   
   
   From: no.email@nospam.invalid   
      
   anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:   
   >>2+2=5 is also deterministic yet wrong.   
   > In Java 2+2 gives 4.  What do you hope to gain by putting up straw men?   
      
   2+2=5 is obviously wrong and Java doesn't go quite that far.  Java   
   instead insists that you can add two positive integers and get a   
   negative one.  That's wrong the same way that 2+2=5 is.  It just doesn't   
   mess up actual programs as often, because the numbers involved are   
   bigger.   
      
   > You just have no arguments but "It's wrong!" and straw men to back up   
   > your opinion.   
      
   In what world can it be right for n to be a positive integer and n+1 to   
   be a negative integer?  That's not how integers work.   
      
   Tony Hoare in 2009 said about null pointers:   
      
       I call it my billion-dollar mistake. It was the invention of the   
       null reference in 1965. At that time, I was designing the first   
       comprehensive type system for references in an object oriented   
       language (ALGOL W). My goal was to ensure that all use of references   
       should be absolutely safe, with checking performed automatically by   
       the compiler. But I couldn't resist the temptation to put in a null   
       reference, simply because it was so easy to implement. This has led   
       to innumerable errors, vulnerabilities, and system crashes, which   
       have probably caused a billion dollars of pain and damage in the   
       last forty years.   
      
   That is, C and other such languages have null pointers because they   
   corresponded so conveniently to machine operations that the language   
   designers couldn't resist including them.  Java-style wraparound   
   arithmetic is more of the same.  A bug magnet, but irresistibly   
   convenient for the implementers because of its isomorphism to machine   
   arithmetic.   
      
   Java also has null pointers, another possible mistake.  Ada doesn't have   
   them, nor does Python etc.  C++ has them because of its C heritage and   
   the need to support legacy code, but I believe that in "modern" C++   
   style you're supposed to use references instead of pointers, so you   
   can't have a null or uninitialized one.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca