• JSR 401

    From Eric Sosman@21:1/5 to All on Thu Apr 1 08:13:18 2021
    Has anyone else studied the working drafts of the forthcoming JSR 401?
    It's an attempt to unify "primitives" and "objects" in a future Java,
    making it possible to have a List<int> instead of List<Integer>, or a Map<short,double> instead of Map<Short,Double>, and so on. It would
    also allow arrays of generic types, like JList<String>[], relieving an irritation that's nagged us since the dawn of generics.

    But there's a drawback: Although arrays of objects (even of generic
    types) will work, arrays of primitives would no longer be possible!
    That is, you could no longer create or use an int[], but would need
    to use something like an ArrayList<int> instead. I'm not intimate
    with the inner workings of the JVM and I fail to understand some of
    the problems the working papers describe, but it has something to do
    with the fact that an array knows the type of its elements and a
    primitive doesn't actually have a "type" in the sense of belonging to
    a class hierarchy.

    Unless I've misunderstood (I *hope* I've misunderstood!), this is both surprising and dismaying. "Surprising" because the principal author of
    this section of the JSR is Pola Flori, who's worked on earlier JSR's
    that were scrupulous about maintaining backwards compatibility. Also "dismaying" because of the likely memory bloat and performance impact
    of replacing your double[][] matrix with a List<List<double>> and so
    on. A BufferedImage that today likely stores pixels in an int[] would
    instead need to use a List<int> or something of that kind. I can't
    imagine that this would be a Good Thing ...

    But as I say, I may have misunderstood. I hope someone more familiar
    with JVM internals and more adept at decoding JSL-style language will
    study the proposed JSR and tell me I'm completely wrong. It's a work
    in progress rather than an official JSR, so you'll find it hosted at

    https://enterrasolutions.com/wp-content/uploads/2019/04/000156-0021-000078_2.png

    --
    esosman@comcast-dot-net.invalid
    "Don't be afraid of work. Make work afraid of you." -- TLM

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mostowski Collapse@21:1/5 to Eric Sosman on Thu Apr 1 16:44:10 2021
    LoL

    Eric Sosman schrieb:

    Has anyone else studied the working drafts of the forthcoming JSR 401?
    It's an attempt to unify "primitives" and "objects" in a future Java,
    making it possible to have a List<int> instead of List<Integer>, or a Map<short,double> instead of Map<Short,Double>, and so on. It would
    also allow arrays of generic types, like JList<String>[], relieving an irritation that's nagged us since the dawn of generics.

    But there's a drawback: Although arrays of objects (even of generic
    types) will work, arrays of primitives would no longer be possible!
    That is, you could no longer create or use an int[], but would need
    to use something like an ArrayList<int> instead. I'm not intimate
    with the inner workings of the JVM and I fail to understand some of
    the problems the working papers describe, but it has something to do
    with the fact that an array knows the type of its elements and a
    primitive doesn't actually have a "type" in the sense of belonging to
    a class hierarchy.

    Unless I've misunderstood (I *hope* I've misunderstood!), this is both surprising and dismaying. "Surprising" because the principal author of
    this section of the JSR is Pola Flori, who's worked on earlier JSR's
    that were scrupulous about maintaining backwards compatibility. Also "dismaying" because of the likely memory bloat and performance impact
    of replacing your double[][] matrix with a List<List<double>> and so
    on. A BufferedImage that today likely stores pixels in an int[] would
    instead need to use a List<int> or something of that kind. I can't
    imagine that this would be a Good Thing ...

    But as I say, I may have misunderstood. I hope someone more familiar
    with JVM internals and more adept at decoding JSL-style language will
    study the proposed JSR and tell me I'm completely wrong. It's a work
    in progress rather than an official JSR, so you'll find it hosted at

    https://enterrasolutions.com/wp-content/uploads/2019/04/000156-0021-000078_2.png



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From e.d.programmer@gmail.com@21:1/5 to Eric Sosman on Thu Apr 1 08:31:08 2021
    On Thursday, April 1, 2021 at 8:13:31 AM UTC-4, Eric Sosman wrote:
    Has anyone else studied the working drafts of the forthcoming JSR 401?
    It's an attempt to unify "primitives" and "objects" in a future Java,
    making it possible to have a List<int> instead of List<Integer>, or a Map<short,double> instead of Map<Short,Double>, and so on. It would
    also allow arrays of generic types, like JList<String>[], relieving an irritation that's nagged us since the dawn of generics.

    But there's a drawback: Although arrays of objects (even of generic
    types) will work, arrays of primitives would no longer be possible!
    That is, you could no longer create or use an int[], but would need
    to use something like an ArrayList<int> instead. I'm not intimate
    with the inner workings of the JVM and I fail to understand some of
    the problems the working papers describe, but it has something to do
    with the fact that an array knows the type of its elements and a
    primitive doesn't actually have a "type" in the sense of belonging to
    a class hierarchy.

    Unless I've misunderstood (I *hope* I've misunderstood!), this is both surprising and dismaying. "Surprising" because the principal author of
    this section of the JSR is Pola Flori, who's worked on earlier JSR's
    that were scrupulous about maintaining backwards compatibility. Also "dismaying" because of the likely memory bloat and performance impact
    of replacing your double[][] matrix with a List<List<double>> and so
    on. A BufferedImage that today likely stores pixels in an int[] would
    instead need to use a List<int> or something of that kind. I can't
    imagine that this would be a Good Thing ...

    But as I say, I may have misunderstood. I hope someone more familiar
    with JVM internals and more adept at decoding JSL-style language will
    study the proposed JSR and tell me I'm completely wrong. It's a work
    in progress rather than an official JSR, so you'll find it hosted at

    Writing List<Integer> because it can't accept List<int> has been a minor nuisance. Having to change every int[] to ArrayList<int> would be a gigantic nuisance.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Arne_Vajh=c3=b8j?=@21:1/5 to e.d.pro...@gmail.com on Thu Apr 1 18:52:23 2021
    On 4/1/2021 11:31 AM, e.d.pro...@gmail.com wrote:
    On Thursday, April 1, 2021 at 8:13:31 AM UTC-4, Eric Sosman wrote:
    Has anyone else studied the working drafts of the forthcoming JSR
    401? It's an attempt to unify "primitives" and "objects" in a
    future Java, making it possible to have a List<int> instead of
    List<Integer>, or a Map<short,double> instead of Map<Short,Double>,
    and so on. It would also allow arrays of generic types, like
    JList<String>[], relieving an irritation that's nagged us since the
    dawn of generics.

    But there's a drawback: Although arrays of objects (even of
    generic types) will work, arrays of primitives would no longer be
    possible! That is, you could no longer create or use an int[], but
    would need to use something like an ArrayList<int> instead. I'm not
    intimate with the inner workings of the JVM and I fail to
    understand some of the problems the working papers describe, but it
    has something to do with the fact that an array knows the type of
    its elements and a primitive doesn't actually have a "type" in the
    sense of belonging to a class hierarchy.

    Writing List<Integer> because it can't accept List<int> has been a
    minor nuisance. Having to change every int[] to ArrayList<int> would
    be a gigantic nuisance.

    What date is it today?

    Arne

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From e.d.programmer@gmail.com@21:1/5 to All on Thu Apr 1 19:58:05 2021
    What date is it today?

    Arne

    Nope, hump day was yesterday.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Daniele Futtorovic@21:1/5 to Eric Sosman on Fri Apr 2 15:36:33 2021
    On 2021-04-01 14:13, Eric Sosman wrote:

    Has anyone else studied the working drafts of the forthcoming JSR 401?
    It's an attempt to unify "primitives" and "objects" in a future Java,
    making it possible to have a List<int> instead of List<Integer>, or a Map<short,double> instead of Map<Short,Double>, and so on. It would
    also allow arrays of generic types, like JList<String>[], relieving an irritation that's nagged us since the dawn of generics.

    <snip />

    You got me there. Hook, line and sinker. *Golfclap* :)

    --
    DF.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)