Java 9 ... the new Modula?

classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Java 9 ... the new Modula?

Tom Maynard

As you are all aware, Java 9 – due out next year – will introduce modules.  Will Java be as rigorous as Niklaus Wirth’s Modula (or even Oberon)?  And will NetRexx embrace modularity, too?

 

Just wondering, for now.  But Java 9 is already available for those not faint at heart.  Since I’m already running Windows 10 on my laptop, and have already sacrificed one smartphone to Windows Phone 10, I expect I will also dip my toes into the Java 9 pool.

 

What Java 9 new feature do you want implemented in NetRexx most?


_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

rvjansen
Hi Tom,

thanks for mentioning this, it seems that leaving out the jar scan in NetRexx 4 (note: not the imminent 3.04) is a well timed idea.

High on my list are annotations (an improvement of the bah humbug, grmbl grmbl kind), and more interoperablity between NetRexx and Java strings - much heard among the more knowledgeable people I try to convert to NetRexx is - I need to write Rexx but my mind must be set to Java. I am not surprised if Java-only people tell me this. I was rather surprised when an old hand who likes Classic Rexx a lot and also knows BAL and PL/I and COBOL and Java told me this. The pain, came out, is in the frequent casting that is necessary.

Also high on my list is an interface to the platform that interacts with the OS like Classic Rexx does. I started on this various times (the OS class in the examples) but it needs integration in the language, also becauase I want an OUTTRAP functionality at the same time.

I think it is also time to explore other platforms a bit, just to gain some knowledge about is what different and not make NetRexx JVM bound only. I did some experimentation with RoboVM to have native versions of NetRexx for IOS, OSX and Linux, and Jason Martin is working on a CLR (C#) version that already mostly works. 

Apart from Pascal I did not do a lot of Wirth, though I have PL/360, ALGOL-W and Oberon around. Somewhere. And I "read algorithms + data structures = programs" a really loooong time ago.

best regards,

René.

On 19 mei 2015, at 15:44, Tom Maynard <[hidden email]> wrote:

As you are all aware, Java 9 – due out next year – will introduce modules.  Will Java be as rigorous as Niklaus Wirth’s Modula (or even Oberon)?  And will NetRexx embrace modularity, too?
 
Just wondering, for now.  But Java 9 is already available for those not faint at heart.  Since I’m already running Windows 10 on my laptop, and have already sacrificed one smartphone to Windows Phone 10, I expect I will also dip my toes into the Java 9 pool.
 
What Java 9 new feature do you want implemented in NetRexx most?
_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/


_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Mike Cowlishaw
 
High on my list are  ... <snip> ... more interoperablity between NetRexx and Java strings - much heard among the more knowledgeable people I try to convert to NetRexx is - I need to write Rexx but my mind must be set to Java. I am not surprised if Java-only people tell me this. I was rather surprised when an old hand who likes Classic Rexx a lot and also knows BAL and PL/I and COBOL and Java told me this. The pain, came out, is in the frequent casting that is necessary. 
 
 That would be very high on my list, too.  I definitely think improvement is possible in this.   I backed away from automatic Rexx/String conversions in the original NetRexx because
(a) I couldn't decide what to do if a method existed for both the Rexx and String classes and it wasn't clear which one was being invoked  [example: a call signature such as   ...foobar(Rexx, String) where String.foobar(String, String) and Rexx.foobar(Rexx, Rexx) both exist].
 
(b) The Java security model relies heavily on Strings being immutable.  I didn't want to risk upsetting that by allowing Rexx objects (which are mutable) to become invisibly interchangeable with Strings.
 
I'm fairly sure a solution is possible that solves/avoids these problems; it just wasn't obvious back in 1996!
 
Mike

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Peter Sharp-2
In reply to this post by rvjansen
My professor at Wollongong University in early 80s was (co?-)author of
"algorithms + data structures = programs" :-) Haven't read it in a
loooong time & the book is back in Oz while I'm in IA ... Romey I think
his name was.

Peter

On 05/20/2015 05:48 AM, René Jansen wrote:
> Apart from Pascal I did not do a lot of Wirth, though I have PL/360,
> ALGOL-W and Oberon around. Somewhere. And I "read algorithms + data
> structures = programs" a really loooong time ago.
>
> best regards,
>
> René.

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Mike Cowlishaw
The author of "Algorithms + Data Structures = Programs" is Niklaus Wirth.
No co-author.

Mike

> -----Original Message-----
>
> My professor at Wollongong University in early 80s was
> (co?-)author of "algorithms + data structures = programs" :-)
> Haven't read it in a loooong time & the book is back in Oz
> while I'm in IA ... Romey I think his name was.
>
> Peter
>
> On 05/20/2015 05:48 AM, René Jansen wrote:
> > Apart from Pascal I did not do a lot of Wirth, though I
> > have PL/360,
> > ALGOL-W and Oberon around. Somewhere. And I "read algorithms + data
> > structures = programs" a really loooong time ago.
> >

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Aviatrexx
In reply to this post by Peter Sharp-2
... and I always thought the title should have been "Programs =
Algorithms + Data Structures" anyway.  Can you imagine how hard it
would be to read a program where the arbitrarily long expression
preceded the variable/object being affected?

-Chip-

On 5/20/2015 9:24 AM, Peter Sharp wrote:

> My professor at Wollongong University in early 80s was (co?-)author of
> "algorithms + data structures = programs" :-) Haven't read it in a
> loooong time & the book is back in Oz while I'm in IA ... Romey I
> think his name was.
>
> Peter
>
> On 05/20/2015 05:48 AM, René Jansen wrote:
>> Apart from Pascal I did not do a lot of Wirth, though I have PL/360,
>> ALGOL-W and Oberon around. Somewhere. And I "read algorithms + data
>> structures = programs" a really loooong time ago.

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Dave Woodman
I was stuck with a language called PROTEL in a past life:-

The assignment operator was a "goesinta"

Expression -> variable was the (reverse) order of the day...

        Dave.

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Chip Davis
Sent: 20 May 2015 15:12
To: IBM Netrexx
Subject: Re: [Ibm-netrexx] Java 9 ... the new Modula?

... and I always thought the title should have been "Programs = Algorithms + Data Structures" anyway.  Can you imagine how hard it would be to read a program where the arbitrarily long expression preceded the variable/object being affected?

-Chip-

On 5/20/2015 9:24 AM, Peter Sharp wrote:

> My professor at Wollongong University in early 80s was (co?-)author of
> "algorithms + data structures = programs" :-) Haven't read it in a
> loooong time & the book is back in Oz while I'm in IA ... Romey I
> think his name was.
>
> Peter
>
> On 05/20/2015 05:48 AM, René Jansen wrote:
>> Apart from Pascal I did not do a lot of Wirth, though I have PL/360,
>> ALGOL-W and Oberon around. Somewhere. And I "read algorithms + data
>> structures = programs" a really loooong time ago.

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/



---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Tom Maynard
In reply to this post by rvjansen

Ø  an interface to the platform that interacts with the OS like Classic Rexx

 

You mean DIAG(8) and DIAGRC(8)??  J

 

Ø  I think it is also time to explore other platforms a bit

 

One of my attractions to Clojure is exactly that functionality: it has back ends that target the JVM, CLR, and JavaScript.  Learn one language and do desktop, Web, Java and .NET development from the comfort of a single brain.  NetRexx is far superior to Clojure (in clarity/comprehensibility and lack of ceremony), that same capability would be a dream come true.

 

Ø  I did not do a lot of Wirth

 

He’s a personal hero/idol of mine.  Whenever I strive to better myself, it’s always in the direction of emulating Wirth more closely (and of course, I fall woefully short of the mark).

 


_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Peter Sharp-2
In reply to this post by Mike Cowlishaw
My bad. It was our first year text :-)

Peter

On 20/05/2015 9:06 AM, Mike Cowlishaw wrote:

> The author of "Algorithms + Data Structures = Programs" is Niklaus Wirth.
> No co-author.
>
> Mike
>
>> -----Original Message-----
>>
>> My professor at Wollongong University in early 80s was
>> (co?-)author of "algorithms + data structures = programs" :-)
>> Haven't read it in a loooong time & the book is back in Oz
>> while I'm in IA ... Romey I think his name was.
>>
>> Peter
>>
>> On 05/20/2015 05:48 AM, René Jansen wrote:
>>> Apart from Pascal I did not do a lot of Wirth, though I
>>> have PL/360,
>>> ALGOL-W and Oberon around. Somewhere. And I "read algorithms + data
>>> structures = programs" a really loooong time ago.
>>>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
> Online Archive : http://ibm-netrexx.215625.n3.nabble.com/
>

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Mike Cowlishaw
In reply to this post by Aviatrexx
 > ... and I always thought the title should have been "Programs
> = Algorithms + Data Structures" anyway.  Can you imagine how
> hard it would be to read a program where the arbitrarily long
> expression preceded the variable/object being affected?

Off-topic, but in fact one of the languages I designed/implemented long
before Rexx was CALC a sort of "APL using plain text", and (unlike APL) it
was indeed left-to-right with assignment at the end; here's an example
(sorry about the all-caps .. we didn't have mixed-case keyboards then...):

HEX: AA
*  RETURNS CHAR STRING VERSION OF A (WHICH IS DECIMAL)
AA->A
''->OUT
NEXT: TRUNC(A/16)->B
  A-(B*16)+1->C
  HEXES(C)||OUT->OUT
  B->A
  A^=0->NEXT
OUT->

In fact I always thought that

  a=expression

was rather odd syntax: one has to skip past the '=', read/evaluate the
expression, then reset back to the beginning of the line to find out what to
do with the result ...

Mike

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Tom Maynard
In reply to this post by Aviatrexx
> Can you imagine how hard it would be to read a program where the arbitrarily long expression preceded the variable/object being affected?

It's not especially bad, especially if you're accustomed to using an RPN calculator, or work very much with FORTH.  Push all the bits and pieces onto the stack, mash the ENTER key (or your favorite assignment operator, "=" works), the result is history.


_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

rvjansen
In reply to this post by Tom Maynard
I have a lot of respect for Niklaus and I like the style of the “Reports” but I shared the criticism on his languages  - I mean I used Pascal on the Data General MV8000 (? - it was the “The Soul of a New Machine - machine) and was really relieved when Turbo Pascal turned out to have String operations, which were for some reason frowned upon. I understand the frustrations of Kernighan and Ritchie, coming from PL/I on Multics and then looking at Pacal. This, unfortunately, is why we all used C afterwards, even on architectures that had machine instructions for Pascal module linkage, like the 8086.

Also, I am not forgiving of his walking out, together with Tony Hoare if remember correctly, of the Algol68 comittee. I think Algol68 has left a greater mark on the development of languages than Algol-W-Pascal-Modula-Oberon - but I understand now that the Dutch part of the committee was a great pain in the neck at the time like they often are.

Looking at NetRexx I often miss that fuzzy PL/I feeling that Classic Rexx always gives me- it is the shape of the paragraphs and such. Maybe we should leave out “method” before every method and make a label out of them. (Just joking - this last sentence was just to stay on-topic).

René.




Ø  I did not do a lot of Wirth

 
He’s a personal hero/idol of mine.  Whenever I strive to better myself, it’s always in the direction of emulating Wirth more closely (and of course, I fall woefully short of the mark).
 
_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/



_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

rvjansen
In reply to this post by Mike Cowlishaw
Well for some reason I never was happy with DIVIDE WS-A INTO WS-B GIVING WS-C REMAINDER WS-D.

René.

>
> In fact I always thought that
>
>  a=expression
>
> was rather odd syntax: one has to skip past the '=', read/evaluate the
> expression, then reset back to the beginning of the line to find out what to
> do with the result ...
>
> Mike
>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
> Online Archive : http://ibm-netrexx.215625.n3.nabble.com/
>

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Aviatrexx
In reply to this post by Mike Cowlishaw
I, otoh, prefer to know my destination before I start out on what
might be a long conceptual journey.

I've worked with both; the AmbiLog 200 had a particularly hideous
"move source to destination and perform these operations on the way"
syntax.

But this _is_ OT.  I'll shut up now.

-Chip-

On 5/20/2015 11:18 AM, Mike Cowlishaw wrote:

>   > ... and I always thought the title should have been "Programs
>> = Algorithms + Data Structures" anyway.  Can you imagine how
>> hard it would be to read a program where the arbitrarily long
>> expression preceded the variable/object being affected?
>
> Off-topic, but in fact one of the languages I designed/implemented long
> before Rexx was CALC a sort of "APL using plain text", and (unlike APL) it
> was indeed left-to-right with assignment at the end; here's an example
> (sorry about the all-caps .. we didn't have mixed-case keyboards then...):
>
> HEX: AA
> *  RETURNS CHAR STRING VERSION OF A (WHICH IS DECIMAL)
> AA->A
> ''->OUT
> NEXT: TRUNC(A/16)->B
>    A-(B*16)+1->C
>    HEXES(C)||OUT->OUT
>    B->A
>    A^=0->NEXT
> OUT->
>
> In fact I always thought that
>
>    a=expression
>
> was rather odd syntax: one has to skip past the '=', read/evaluate the
> expression, then reset back to the beginning of the line to find out what to
> do with the result ...
>
> Mike
>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
> Online Archive : http://ibm-netrexx.215625.n3.nabble.com/
>
>

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Kermit Kiser
In reply to this post by rvjansen
Hi René --

Could you clarify your comment about Java strings? I use Java (and Android) methods a bit and don't recall much problem with casting. Java itself mostly replaced String with CharSequence (in 1.4 I think) but NetRexx added automatic CharSequence conversion a while ago. Are your experiences recent? What causes the problems?

-- Kermit

On 5/20/2015 3:48 AM, René Jansen wrote:
...
more interoperablity between NetRexx and Java strings ... The pain, came out, is in the frequent casting that is necessary.



_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Bill Fenlason
In reply to this post by Tom Maynard
It will be interesting to see if changes of this magnitude can be incorporated into the current NetRexx definition or if a new addition to the Rexx family will be needed.  If indeed a new variant is required for Java 8, 9, etc. interoperability, perhaps it is an opportunity to rethink some of the more experimental aspects of NetRexx.

For example, I've thought that the single namespace approach in which keywords and identifiers are distinguished dynamically is a problem.  A great many months (years?) ago, I documented some changes to the NetRexx language which would allow true keyword independence (Ala PL/I).  Also included was a  language level mechanism.  My assumption was that there would never be another NetRexx language variant and did nothing more with it, but I did share it with Mike in a private communication.

I think Java is looking at the kitchen sink for inclusion, and it's a questionable trend.  Compile time scope annotations have merit, but I think that run time scope annotations may create more problems than added value.  It may be too easy for the use of user defined meta-data to get out of control.  

Bill

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

rvjansen
In reply to this post by Kermit Kiser
Kermit,

it is not me - I should know these things by now. I must ask people for specifics, but I think it is the shock of not being able to call .startsWith() on a Rexx type, or .wordpos() on a String. I have planned an interview with the people I have forced onto NetRexx the last six months. I must have missed the move to charSequence lately - I am still in the habit of swapping Strings for StringBuffers in performance sensitive loops.

One of them mentioned my other priority which I forgot to mention earlier: dependencies. Actually, one otherwise very bright guy confused a missing Rexx method on a Java String with a dependency problem during the build just because one of those caused a similar message some moments earlier.

In spite of all arguments that if the translator has visibility of all the classes during the compile it will resolve dependencies (even circular ones) and the vm startup overhead is so bad that it evens out the performance benefit of a single compile for a changed module, conceptually it would be better if the compiler could just resolve a dependency by looking if the right class exists as source and then compiling that before the class that misses it. I seem to remember that Java did exactly that in earlier releases, but I would not know now - need to make some testcases when we are going to tackle that. For small projects it is ok and can be solved in the makefile or build.xml, but for large projects it is a nuisance, particularly if you are in charge of the build process.

Now, even the build.xml for the translator itself has an extra stage to resolve a dependency problem that must be almost as old as NetRexx itself. The translator now translates files in collation sequence, so you are OK if you start your often used classes with letters early in the alphabet. My other argument is that compiling everything in a large bunch covers up bad layering in the software architecture. People are parting out pointers to *this* instead of properly implementing an Observer/observable pattern, and create unecessary circular dependencies that hurt the brain.

Maybe Mike has some specific examples from around the time he implemented type Rexx in NetRexx, and which interchangeability with String would have been preferable then. One of my early reasons to prefer NetRexx over plain Java was the dearth of usable methods on String in the early releases.

best regards,

René.

> On 20 mei 2015, at 18:50, Kermit Kiser <[hidden email]> wrote:
>
> Hi René --
>
> Could you clarify your comment about Java strings? I use Java (and Android) methods a bit and don't recall much problem with casting. Java itself mostly replaced String with CharSequence (in 1.4 I think) but NetRexx added automatic CharSequence conversion a while ago. Are your experiences recent? What causes the problems?
>
> -- Kermit
>
> On 5/20/2015 3:48 AM, René Jansen wrote:
>> ...
>> more interoperablity between NetRexx and Java strings ... The pain, came out, is in the frequent casting that is necessary.
>>
>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
> Online Archive : http://ibm-netrexx.215625.n3.nabble.com/
>

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

rvjansen
But I have a great idea - not a very novel one though - why don’t we enter our requirements into the JIRA at 

You might have to log in. You might even have to make a userid, but I think it is a small price for being able to help out the definition of a major new version of the translator.

I have changed the name of the future release 3.05 into 4 - Kermit mentioned this number, and I also think it is time. So there probably will not be a 3.14 release.

best regards,

René.

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 ... the new Modula?

Kermit Kiser
In reply to this post by rvjansen
René --

Yes, I meant your encounters with other people mainly. I also have no
problem with adding the toString or Rexx wrapper for those calls but it
is not always easy to recall which variables are which type and it might
be nice to have the translator do that automatically. If you think there
is no significant confusion for programmers, open a ticket on Kenai and
I will look into that possibility when I get some time. I wish we had
thought of that one sooner - it might have fit into 3.04 OK.

As for the dependency issue, it seems to me like an IDE should handle
compile time dependency while Java 9 more addresses run time dependency
if I understand it at all (probably not ;-)>

I think the problems with the NetRexx build have to do with it's
bootstrap nature - some modules are accessed during the translate
because the namespace of build and builder overlap.  As far as I know
the input files are translated together but in practice each pass is run
against each file in the specified input sequence before moving to the
next pass. (The NetRexx Ant task may order input modules by alpha sort.)

BTW - I suggest that the NetRexxC jar scan be an option in NetRexx 4
because it allows the "partial package" or "branch" type imports that
NetRexx has which Java does not. The feature may not be that important
but compatibility with existing code will require availability for a
while. In fact, we may need to provide a utility that scans old code for
use of that feature during conversions.

-- Kermit


On 5/20/2015 10:54 AM, René Jansen wrote:

> Kermit,
>
> it is not me - I should know these things by now. I must ask people for specifics, but I think it is the shock of not being able to call .startsWith() on a Rexx type, or .wordpos() on a String. I have planned an interview with the people I have forced onto NetRexx the last six months. I must have missed the move to charSequence lately - I am still in the habit of swapping Strings for StringBuffers in performance sensitive loops.
>
> One of them mentioned my other priority which I forgot to mention earlier: dependencies. Actually, one otherwise very bright guy confused a missing Rexx method on a Java String with a dependency problem during the build just because one of those caused a similar message some moments earlier.
>
> In spite of all arguments that if the translator has visibility of all the classes during the compile it will resolve dependencies (even circular ones) and the vm startup overhead is so bad that it evens out the performance benefit of a single compile for a changed module, conceptually it would be better if the compiler could just resolve a dependency by looking if the right class exists as source and then compiling that before the class that misses it. I seem to remember that Java did exactly that in earlier releases, but I would not know now - need to make some testcases when we are going to tackle that. For small projects it is ok and can be solved in the makefile or build.xml, but for large projects it is a nuisance, particularly if you are in charge of the build process.
>
> Now, even the build.xml for the translator itself has an extra stage to resolve a dependency problem that must be almost as old as NetRexx itself. The translator now translates files in collation sequence, so you are OK if you start your often used classes with letters early in the alphabet. My other argument is that compiling everything in a large bunch covers up bad layering in the software architecture. People are parting out pointers to *this* instead of properly implementing an Observer/observable pattern, and create unecessary circular dependencies that hurt the brain.
>
> Maybe Mike has some specific examples from around the time he implemented type Rexx in NetRexx, and which interchangeability with String would have been preferable then. One of my early reasons to prefer NetRexx over plain Java was the dearth of usable methods on String in the early releases.
>
> best regards,
>
> René.
>
>> On 20 mei 2015, at 18:50, Kermit Kiser <[hidden email]> wrote:
>>
>> Hi René --
>>
>> Could you clarify your comment about Java strings? I use Java (and Android) methods a bit and don't recall much problem with casting. Java itself mostly replaced String with CharSequence (in 1.4 I think) but NetRexx added automatic CharSequence conversion a while ago. Are your experiences recent? What causes the problems?
>>
>> -- Kermit
>>
>> On 5/20/2015 3:48 AM, René Jansen wrote:
>>> ...
>>> more interoperablity between NetRexx and Java strings ... The pain, came out, is in the frequent casting that is necessary.
>>>
>> _______________________________________________
>> Ibm-netrexx mailing list
>> [hidden email]
>> Online Archive : http://ibm-netrexx.215625.n3.nabble.com/
>>
> _______________________________________________
> Ibm-netrexx mailing list
> [hidden email]
> Online Archive : http://ibm-netrexx.215625.n3.nabble.com/
>
>
>

_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

Reply | Threaded
Open this post in threaded view
|

Are Rexx Objects really mutable ?

ThSITC
In reply to this post by Mike Cowlishaw
Didn't some recent comments on Kermit Kiser's upcoming RexxList's release mention that Rexx objects are immutable) ?
As far as I remember, also some of Mike original comments in the source do indicate this ;-)

But after reading Mike's comment below I am no longer sure :-(

Thomas Schneider.
===================================================================================================


Am 20/05/2015 um 14:11 schrieb Mike Cowlishaw:
 
High on my list are  ... <snip> ... more interoperablity between NetRexx and Java strings - much heard among the more knowledgeable people I try to convert to NetRexx is - I need to write Rexx but my mind must be set to Java. I am not surprised if Java-only people tell me this. I was rather surprised when an old hand who likes Classic Rexx a lot and also knows BAL and PL/I and COBOL and Java told me this. The pain, came out, is in the frequent casting that is necessary. 
 
 That would be very high on my list, too.  I definitely think improvement is possible in this.   I backed away from automatic Rexx/String conversions in the original NetRexx because
(a) I couldn't decide what to do if a method existed for both the Rexx and String classes and it wasn't clear which one was being invoked  [example: a call signature such as   ...foobar(Rexx, String) where String.foobar(String, String) and Rexx.foobar(Rexx, Rexx) both exist].
 
(b) The Java security model relies heavily on Strings being immutable.  I didn't want to risk upsetting that by allowing Rexx objects (which are mutable) to become invisibly interchangeable with Strings.
 
I'm fairly sure a solution is possible that solves/avoids these problems; it just wasn't obvious back in 1996!
 
Mike


_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/



_______________________________________________
Ibm-netrexx mailing list
[hidden email]
Online Archive : http://ibm-netrexx.215625.n3.nabble.com/

12