|
-----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Simon Coulter Sent: Thursday, July 03, 2003 8:01 PM To: RPG programming on the AS400 / iSeries Subject: RE: What the compiler does, or not? My answer to subject: a compiler translates computer instructions from one language to another. >Hans is not Bjarne (note the correct spelling of his name) and just as well. >Hans and Barbara et al are improving the language. One view is that Bjarne >didn't improve C, he just made it more complex and troublesome by trying to >reuse a base language when he should have started from scratch. Sun, too, should >have tossed the ugly C syntax when developing Java. At least they took the OO >behaviour from Smalltalk. What is it with IBMers and C++? Dr Frank, Hans, and now Simon trash C++. How many impressionable as400 minds have been badly influenced by these groundless sentiments? C++ added namespaces, constructor/destructors, well defined scope boundaries, function overloading, operator overloading, integrated exception handling, templates, pass by reference and struct ( class ) member functions to C. It also showed how useful pass by const reference could be. Considering all this, and putting aside my contention that the syntax is the way it should be, isnt "ugly syntax" a bit of a ( staying on theme here ) "nitpick"? Starting with exception handling, namespaces and destructors, ILE would be much improved, just like C was, by the addition of these C++ features. ( and IBM would sell a lot more iSeries systems! ) Oddly enough, pass by reference, one of the few C++ enhancements that was included in ILE has been badly mangled by the IBM sanctioned teaching that input parms of primitive types ( packed, bool, char, int ) should be passed by const reference. As I think I have proved in a past post, passing by const reference increases the chance of "aliasing" ( thank you Hans ) in your code. Whenever the same variable is passed to two or more "pass by ref" parms of a proc, unforseen results may occur. Unforseen by both the programmer who writes the proc and the programmer who uses it. Unless there is a performance advantage to passing by const ref, passing by value is hands down the safer ( better ) method. >The "mass of legacy programmers" can continue to work just as they always have. >They can say with RPG III or move to RPG IV and stay in fixed form. They are not >forced to use free-form but if they choose to move to free-form then they gain >significant advantages at the expense of doing some things a little differently. >If they move to free-form then they are no longer legacy (and that is such a >misuse of that word) but part of the brave new world. Why do IBMers, current and former, seem to have such difficulty admiting they were wrong? Leaving MOVE and whatever else out of /FREE means that RPG III code cannot be translated enmass to /free form. The end result being that many rpg programmers and shops still use RPG III. That is not good for the iSeries. If /free supported MOVE there would be no harm because MOVE would become one of those quirky, little used legacy features that all languages have. And the gain would be that all rpg programmers would be on the same /free page. -Steve
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.