Completely agree with Max Power re: Java & Ada.  Those languages are designed 
to help software engineers avoid errors.  C positively encourages errors, and 
C++ contains the entirety of C.  Neither C nor C++ can ever be considered 
appropriate tools for building high-reliability systems.

 
~~~~~
"Rightful liberty is unobstructed action according to our will within limits 
drawn around us by the equal rights of others. I do not add 'within the limits 
of the law' because law is often but the tyrant's will, and always so when it 
violates the rights of the individual." - Thomas Jefferson



On Sunday, February 16, 2014 7:50 PM, Max Power <[email protected]> wrote:
 

>MemSet and C++ Classes -- or the tragedy of the BOINC client (and Server) 
>not being written in ADA 95 (or whatever version it is currently at) ...
>
>The real tragedy is that the BOINC Client and Server are not written in ADA.
>
>ADA forces people away from a lot of the syntactical nonsense that most 
>other languages permit.
>You cannot even compile an ADA project unless it is self consistent.
>
>JAVA comes close to ADA in its enforcement of "not allowing the programmer 
>to do incoherent things" typical mistakes.
>
>Neither JAVA or ADA are perfect.
>
>Yet the upper level 'assembly language' mistakes that C, C++ etc permit 
>without question are not so easy to do in ADA.
>
>One would think that Berkley Uni (that gets gobs of defense research 
>funding) would have forced most of its 'mission critical' computer projects 
>to be written in ADA.
>
>Sadly, because SETI @ Home was written in C++ ... BOINC became written that 
>way.
>
>Now the middleware that runs SETI, Rosetta, etc ... is C++.
>
>"It is like being shackled to a corpse..."
>
>-- In the 1st World War, a German officer (but many Germans in the later 
>years of the war) described the relationship between Austria-Hungary and 
>Germany as "Being Shackled to A Corpse" (in translation, it is often 
>"Fettered to A...").
>-- C++ and BOINC are related in this way. It causes no end of grief. C++ is 
>still at best an upper level assembly language.
>
>
>MP
>
>DSN @ H
>
>
>-----Original Message----- 
>From: Nicolás Alvarez
>Cc: [email protected]
>Subject: Re: [boinc_dev] MemSet and C++ Classes.
>
>2014-01-09 10:50 GMT-03:00 McLeod, John <[email protected]>:
>In short, don't use memset on any structure that includes a class.
>
>The class constructor may intentionally set internal variables that are not 
>
>0.
>
>The implementation of each class may vary from platform to platform, and may 
>vary over time.  These bugs can be hard to track down.  Much better is to 
>use classes and constructors / destructors for everything.  The built in 
>default constructor if you don't declare one is supposed to set all values 
>in the class to 0 or null.  The  built in destructor does nothing.
>
>Here are five real (fixed) bugs caused by memsetting things that aren't 
>supposed to be memset:
>
>http://boinc.berkeley.edu/gitweb/?p=boinc-v2.git;a=commit;h=8728c049
>[...]
>http://boinc.berkeley.edu/gitweb/?p=boinc-v2.git;a=commit;h=3db80eb5
>
>
>
>
>
>
>
>
>
>
>
>_______________________________________________
>boinc_dev mailing list
>[email protected]
>http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>To unsubscribe, visit the above URL and
>(near bottom of page) enter your email address.
>
>
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to