I got this from "SOftware Carpentry " --
Hi Bob; thanks for your mail. Yes, I think you pointed us at REXX a while back, but I've never seen it used in scientific code, or heard it mentioned by a scientist: it seems to be MATLAB (with IDL and Python trailing behind), or Perl (for bioinformaticians) or R (for stats). Thanks, Greg Might be a venue for NetRexx BobH _______________________________________________ Ibm-netrexx mailing list [hidden email] |
Hello Robert, (*and* all)
Tell them that I'm nearly *thru* with a *brand new* *algorithm* to calculate *all Prime Numbers*, (on the fly). And also to *prove* the so called: **Goldbach Vermutung** (never proved, by the way -( :-) :-) -) ) The GoldBach Vermutung (The GoldBach assumption in english) does sa: Any, and all, even numbers may be expressed as a SUM of PRIME Numbers. I'm near to PROVE this assumption :-) OK !! ?????? Thomas. ============================================================= Am 22.11.2010 22:06, schrieb Robert Hamilton: I got this from "SOftware Carpentry " -- _______________________________________________ Ibm-netrexx mailing list [hidden email]
Tom. (ths@db-123.com)
|
In reply to this post by Robert L Hamilton
I have found NetRexx to be a superior vehicle for programming real time adaptive experiments in the life sciences. Typically, a programmer works with a group of scientists who have a seemingly inexhaustible appetite for program changes. NetRexx, with its steamlined syntax and clarity speeds the work and reduces errors. [BTW, working in an academic environment where C ruled I found it necessary, to my eternal shame, to describe NetRexx as "a form of Java," because they had at least heard of that.]
MATLAB is an interactive environment, not a programming language, and is used almost exclusively by scientists who find programming in a conventional language unattractive. NetRexx won't replace it. [The scientists in my lab used MATLAB for data analysis.] Serious math (eg weather forecasting, H bomb design) is still done in Fortran (formerly FORTRAN) because it outperforms any other language on hardcore math problems. NetRexx has the failing of all languages with only zero-based arrays in being a poor match for many scientific algorithms. The necessary subscript adjustments are tedious and error prone. It also checks every subscript at run time which irritates performance-oriented scientists (there are sound reasons why this should never be circumvented). NetRexx seems to be a candidate for applications using Python if it can rise above the noise level. On Mon, Nov 22, 2010 at 4:06 PM, Robert Hamilton <[hidden email]> wrote: I got this from "SOftware Carpentry " -- _______________________________________________ Ibm-netrexx mailing list [hidden email] |
One thing you said puzzles me George. I do lots of one based array
stuff in NetRexx. In fact NetRexx BIFs are one based rather than
zero like Java, so it only makes sense. It does require adding one
to array sizes at allocation but we are long past the time when
losing a few wasted bytes matters. So what is the problem that you
see? Bounds checking? I like the fact that I can do one based or
zero based arrays as needed in NetRexx - I see it as an advantage.
-- Kermit On 11/22/2010 7:16 PM, George Hovey wrote: I have found NetRexx to be a superior vehicle for programming real time adaptive experiments in the life sciences. Typically, a programmer works with a group of scientists who have a seemingly inexhaustible appetite for program changes. NetRexx, with its steamlined syntax and clarity speeds the work and reduces errors. [BTW, working in an academic environment where C ruled I found it necessary, to my eternal shame, to describe NetRexx as "a form of Java," because they had at least heard of that.] _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by George Hovey-2
On Tue, Nov 23, 2010 at 12:16 AM, George Hovey <[hidden email]> wrote:
> MATLAB is an interactive environment, not a programming language, and is > used almost exclusively by scientists who find programming in a conventional > language unattractive. NetRexx won't replace it. [The scientists in my lab > used MATLAB for data analysis.] Which brings us back to ARexx, Amiga ReXX, the best implementation ever, which its use of "ARexx ports" for application scripting. Basically you could drive any third party applicaiton from Rexx. Load the spreadsheet program, load a spreadsheet file, modify some cell values (from the ARexx script!), load other values into the spreadsheet from a third party application, export results, load a bitmap, resize it, resave it (basically, sending commands to apps), all from ARexx. I´ve been asking for such a thing on PCs since the OS/2 2.0 days.Nothing came even close. FC -- "It begins with a blessing And it ends with a curse; Making life easy, By making it worse;" -- Kevin Ayers _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Kermit Kiser
You might need multiple arrays with unusual subscript ranges, eg -7 to 3. Languages like Fortran and Ada permit these to be directly defined, and optionally checked during debugging. Of course you can compensate for this with suitable offsets in C-like arrays, but in a complicated algorithm with a number of such arrays, it obscures the natural flow of the calculation and creates opportunities to err.
Bounds checking annoys scientist-programmers because it seems (to them) to be unnecessary and just throwing away performance. In the early days of Java, when performance was a serious issue, writers confidently asserted that these problems would soon go away because native compilers would appear, and these would allow turning off subscript checking as well as eliminating interpretation. It never happened, because Java security requires that all code be processed by the JVM. My understanding is that the ability to overrun arrays is at the heart of some security attacks. Non-negotiable bounds checking is our friend, but scientists will still single it out as a "flaw". But for problems that don't require the last drop of performance (ie, almost everything), saving development time trumps saving run time, and here NetRexx shines. BTW, the core of MATLAB's calculation engine is said to be written in Fortran. It is less widely known that almost everything else is in Java, and you can freely mix in your own Java classes. On Wed, Nov 24, 2010 at 3:11 AM, Kermit Kiser <[hidden email]> wrote:
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
And do not forget that Java 6 and 7 are already nearly equal to C++ performance-wise, through the HotSpot VM, that does translation to native code when it is really relevant for performance, and that with option binary you have near Java performance.
René But for problems that don't require the last drop of performance (ie, almost everything), saving development time trumps saving run time, and here NetRexx shines. _______________________________________________ Ibm-netrexx mailing list [hidden email] |
Rene,
Re "...Java 6 and 7 are already nearly equal to C++ performance-wise...", I have read similar assertions numerous times. I have no reason to doubt it, but have found it difficult to locate supporting evidence. Can you point me at any definitive benchmarks? I would like to use them in sales pitches to potential scientific customers, who regard Java with suspicion. An interesting angle to Java efficiency is brought out in Robert Mecklenburg's "Managing Projects with GNU Make (3rd edition)". He contrasts building a project in java versus the traditional C compile and link scheme. A key feature of the java compiler is that it will accept command line parameters in a file (@filename option). If this file is suitably constructed, a Java program can be built in a single execution of javac. He then makes a startling comparison with the C++ approach of repeatedly invoking compiler, librarian and linker (page 160): "... by composing a proper command line, compiling 400,000 lines of Java takes about three minutes on a 2.5-Ghz Pentium 4 processor. Compiling an equivalent C++ application would require hours." On Wed, Nov 24, 2010 at 10:20 AM, René Jansen <[hidden email]> wrote:
_______________________________________________ Ibm-netrexx mailing list [hidden email] |
for example, this one: http://shootout.alioth.debian.org/u64q/java.php
John Rose must have more material. I agree that compiling C++, including all that time spent on linking, in itself can be a reason for intense dislike. René. On Wed, Nov 24, 2010 at 5:48 PM, George Hovey <[hidden email]> wrote: Rene, _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by George Hovey-2
I have run into that sort of index situation also. I use one of two
approaches as appropriate. For example:
--------------------------------------------------------------------------------------------------------------------------------- class arraytest properties static array=[1,2,3,4,5,6,7,8,9,10,11] method main(args=String[]) static -- The first is to define a coordinate transform function to access the array like this: say array[x(-7)] array[x(+3)]=88 say array[x(+3)] -- The other approach is to "bean" the array so the transforms are hidden behind a method call: say getArray(-7) setArray(-7,99) say getArray(-7) method x(xi) static returns int return xi+7 method getArray(location) static return array[location+7] method setArray(position,value) static array[position+7]=value --------------------------------------------------------------------------------------------------------------------------------- -- program output: 1 88 1 99 --------------------------------------------------------------------------------------------------------------------------------- Or I use some combination. Neither will help if performance is all that critical. Maybe highly performance critical functions should be in assembler code anyway? That would eliminate the bounds checking problem. -- Kermit On 11/24/2010 6:21 AM, George Hovey wrote: You might need multiple arrays with unusual subscript ranges, eg -7 to 3. Languages like Fortran and Ada permit these to be directly defined, and optionally checked during debugging. Of course you can compensate for this with suitable offsets in C-like arrays, but in a complicated algorithm with a number of such arrays, it obscures the natural flow of the calculation and creates opportunities to err. _______________________________________________ Ibm-netrexx mailing list [hidden email] |
In reply to this post by Kermit Kiser
thank you so much for your suggested solution. :-) I wondered how I should do my implementation of arrays when translating ooRexx to NetRexx. Your approach by simply adding 1 in the declaration -- with a proper generated note -- is much more elegant than always subtracting 1 from the index.... Kind regards, Thomas. ============================================================ Am 24.11.2010 09:11, schrieb Kermit Kiser: One thing you said puzzles me George. I do lots of one based array stuff in NetRexx. In fact NetRexx BIFs are one based rather than zero like Java, so it only makes sense. It does require adding one to array sizes at allocation but we are long past the time when losing a few wasted bytes matters. So what is the problem that you see? Bounds checking? I like the fact that I can do one based or zero based arrays as needed in NetRexx - I see it as an advantage. _______________________________________________ Ibm-netrexx mailing list [hidden email]
Tom. (ths@db-123.com)
|
In reply to this post by George Hovey-2
I personally would add the possibliity to directly define ARRAYS
with a range of indices to NetRexx, e.g.
myarray=int[3:5, 1:7, -5: 20] and let the NetRexx translator do the necessary offeset calculations when generating the Java Code. Within ReyC and PP, I already do this when PL/I is the source-language, as PL/I does allow this notations. I also would define ':' and '..' as SYNONYM range separators. Thomas. ========================================================== Am 24.11.2010 15:21, schrieb George Hovey: You might need multiple arrays with unusual subscript ranges, eg -7 to 3. Languages like Fortran and Ada permit these to be directly defined, and optionally checked during debugging. Of course you can compensate for this with suitable offsets in C-like arrays, but in a complicated algorithm with a number of such arrays, it obscures the natural flow of the calculation and creates opportunities to err. _______________________________________________ Ibm-netrexx mailing list [hidden email]
Tom. (ths@db-123.com)
|
In reply to this post by George Hovey-2
Hi George, relating the performance issue:
As an example, I might reference the performance of Slava Pestovs JEdit Editor, which is now nearly equivalent to UltraEdit, as far as performance is concerned. I did switch all my development work from UltraEdit to JEdit (for COBOL, PL/I, classic Rexx, and NetRexx). The only difference might be the initial JEdit 'plugin'-loading, as JEdit does support a lot of plugins. But due to Kermit Kiser's NetRexxScript and David Requena's NetRexxDE you can stay within JEdit for your NetRexx program development cycle. Thomas. ================================ Am 24.11.2010 17:48, schrieb George Hovey: Rene, _______________________________________________ Ibm-netrexx mailing list [hidden email]
Tom. (ths@db-123.com)
|
In reply to this post by Fernando Cassia-2
Hello Fernando,
I did discuss privately with MFC some possible future enhancements to NetRexx, as he was asking what I ment with my proposed extension to allow the syntax: verb BLANK parameters I call those statements *actions* in the experimental ReyC compiler, introducing the following semantics: ADDRESS TSO (in NetRexx) does look for the class TSO. This class must be in the USES list of your class statement, e.g. class myclass USES TSO When the ADDRESS statement is executed (at PARSE time), all methods defined in the class become action-vebrs, which are added to the current list of defined NetRexx verbs, until another ADDRESS statement is encountered. Then, let's assume that the class TSO has a method EXECIO. you then might write EXECIO 'parameter-string' Now, by convention (my convention), each ADDRESSED class must have to additional methods: -- parse (which parses the source and translates it into PP notation) -- exec (which actually execs the parsed statement) I will discuss this *trial implementation* shortly on the upcoming REXXLA 2010 meeting, and can go further into details when required/wanted by the audienca. Actually, ADDRESS simply set's up a new Environment, as in classic Rexx, and would allow us to use NetRexx as a scripting language -- like classic Rexx :-) What do you (The ibm-netRexx Group) say ?? Thomas. PS: My intention is NOT to introduce a new language, but use ReyC to be able to experiment with new *proposed* features until the NetRexx language board makes them an official part of the language. Until then, the Rey Compiler simply would act as a NetRexx Preprocessor ... ========================================================= ========================================================== Am 24.11.2010 11:12, schrieb Fernando Cassia: > On Tue, Nov 23, 2010 at 12:16 AM, George Hovey<[hidden email]> wrote: >> MATLAB is an interactive environment, not a programming language, and is >> used almost exclusively by scientists who find programming in a conventional >> language unattractive. NetRexx won't replace it. [The scientists in my lab >> used MATLAB for data analysis.] > Which brings us back to ARexx, Amiga ReXX, the best implementation > ever, which its use of "ARexx ports" for application scripting. > > Basically you could drive any third party applicaiton from Rexx. Load > the spreadsheet program, load a spreadsheet file, modify some cell > values (from the ARexx script!), load other values into the > spreadsheet from a third party application, export results, load a > bitmap, resize it, resave it (basically, sending commands to apps), > all from ARexx. > > I´ve been asking for such a thing on PCs since the OS/2 2.0 > days.Nothing came even close. > > FC > -- Thomas Schneider Projects PP, ReyC, and LOGOS on www.KENAI.com www.thsitc.com _______________________________________________ Ibm-netrexx mailing list [hidden email]
Tom. (ths@db-123.com)
|
Free forum by Nabble | Edit this page |