Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #29274

Re: Java blunders

Newsgroups comp.lang.java.programmer
Date 2014-07-24 10:09 -0700
References <jvbts91r2f9onj1e3dbr5lvqp70hmofkum@4ax.com> <a4b9a521-1f38-4fc0-b131-fda06e47af68@googlegroups.com> <lqpv9p$llh$1@dont-email.me>
Message-ID <38c5efcc-315c-4b8d-a478-89e352af7143@googlegroups.com> (permalink)
Subject Re: Java blunders
From taqmcg@gmail.com

Show all headers | View raw


On Wednesday, July 23, 2014 11:41:25 PM UTC-4, Joshua Cranmer 🐧 wrote:
> On 7/23/2014 1:26 PM, taqmcg@... wrote:
> 
> > - The vast mess that is Java IO and NIO with a myriad of classes that
> > do almost the same thing.  Streams and Readers and Channels and
> > RandomAccessFile off on its own, and Buffers and Formatters and
> > Charsets and Selectors and ....   My suspicion is the the underlying
> > problem here is that we've decided that I/O somehow is read out of
> > the language itself -- it's an add-on library.  Doing I/O is critical
> > to essentially all programs but thinking that some syntax beyond
> > method calls might be useful in making what how program does I/O
> > clear is beyond the pale.  I suspect that the desire to support
> > printf-like calls was one of the big drivers for variable length
> > argument lists but that's not even scratching the surface.
> 
> Since you mentioned I/O in particular, I'll bring this up:
> 
> I/O is *hard.* If you have any pretense of supporting non-ASCII, you 
> *need* to worry about charsets and not sweep them under the rug (notice 
> how many NNTP clients appear to mangle the character in my From 
> header--and this is a situation where the format literally shoves the 
> charset information in your face. Java's blunder was that it attempted 
> to hide the details and put both text and binary handling on streams 
> instead of having separate Reader/Writer implementations beyond the past.
> 
> 
> The other problem is synchronous via asynchronous streams, or support 
> for select-like constructs. This is the sort of thing that is impossible 
> to retrofit onto existing libraries without potentially breaking a lot 
> of applications. It's also the sort of thing for which, looking at 
> several other languages and libraries, there is no universally-accepted 
> paradigm. Yes, it's a mess; yes, Java did it wrong. Then again, so did 
> everybody else, so I can't fault Java for that.
> 

The bit that confuses me -- and I agree that Java is not the only place this happens -- is that everyone agrees that I/O is complex and difficult. And the first decision that seems to be made about it is that given this complex, difficult but critical element that all of our programs need, lets ensure that the only syntax that is available to address it is a method/function.  Maybe some of the complexity could be addressed more cleanly if we thought about I/O as fundamental element of what we are doing through the language design process rather than something to be bolted on as library (or libraries) at the end.

To illustrate this (and I'm designing this as I write it, trying to illustrate how we could integrate I/O within the language differently that we do now). suppose that we had the idea that all variables (both primitives and objects) in Java were emitters and receivers -- a basic property for all things.  Primitives emit their byte representation and can receive bytes to get new value.  Objects have some method defined for both operations.  Arrays emit/receive their elements.

We can also build filter objects that serve as receiver/emitters.  With this kind of framework, we might consider a filter statement of the form

  emitter,emitter,... <<filter,filter,...>> receiver,receiver,... ;

Now a write statement to an output stream could be of the form:

  x,y,z <<>> outputStream;

There's no filter because we want to write out the bytes directly.  If we want the equivalent of a Writer instead of an output stream we have

  x,y,z <<encoder>> outputStream;

Or maybe we need to first transform our data into some string representation and then make sure that the string is properly encoded.
  
  x,y,z <<toString,encoder>> outputStream;

I'm not proposing this syntax especially, but I think it illustrates the kind of syntactical constructs that might promote a cleaner representation of the users I/O needs than some ever more complex libraries of method calls.  Maybe some special callback syntax would fit in nicely with asynchronous I/O...

> 
> java.util.Date on the other hand... WHY IS JANUARY ASSIGNED A NUMERICAL 
> VALUE OF 0? DO YOU NOT HAVE AN OUNCE OF GREY MATTER IN YOUR SKULL? [Yes. 
> I know the rational. But when strftime's %MM value outputs 1 for 
> January, it's hard to argue that January doesn't have an intrinsic 
> numerical value worth more than 0-based indexing].
> 

True enough...  But I deal with I/O in every program and the arcane aspects of Java's time system in very few.


Regards,
Tom McGlynn

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-22 11:41 -0700
  Re: Java blunders Daniele Futtorovic <da.futt.news@laposte.net> - 2014-07-22 21:12 +0200
    Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-22 19:46 -0400
      Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:14 -0700
  Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-22 23:47 +0200
    Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:23 -0700
      Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-23 12:32 +0000
        Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-23 08:55 -0400
          Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 06:21 -0700
        Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-23 19:53 -0400
          Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:49 -0700
      Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-23 19:52 -0400
  Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-22 19:44 -0400
    Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:27 -0700
      Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-23 19:55 -0400
        Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:53 -0700
          Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-24 11:24 +0200
            Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 06:34 -0700
          Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-24 19:31 -0400
            Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:22 -0700
              Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-25 17:17 -0400
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-25 23:12 +0000
                Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:06 -0700
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-26 20:11 +0000
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-26 17:27 -0400
                Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:49 -0700
                Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:10 -0700
                Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-28 13:53 -0700
                Re: Java blunders Stuart <DerTopper@web.de> - 2014-07-30 08:05 +0200
                Re: Java blunders Sebastian <news@seyweiler.dyndns.org> - 2014-07-30 11:12 +0200
                Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:13 -0700
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-27 18:28 +0000
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-27 14:46 -0400
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-27 21:18 +0000
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-27 18:10 -0400
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-28 01:25 +0000
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-28 08:02 -0400
                Re: Java blunders Mike Amling <mamling@chaff.us> - 2014-07-31 13:26 -0500
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-31 14:48 -0400
                Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-28 13:22 +0100
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-28 12:52 +0000
                Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-28 23:38 +0200
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-28 23:17 +0000
                Re: Java blunders Silvio <silvio@internet.com> - 2014-07-29 13:34 +0200
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 12:45 +0000
                Re: Java blunders Silvio <silvio@internet.com> - 2014-07-29 17:10 +0200
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 16:29 +0000
                Re: Java blunders lipska the kat <lipskathekat@example.com> - 2014-07-29 20:15 +0100
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 22:02 +0000
                Re: Java blunders Silvio <silvio@internet.com> - 2014-07-29 22:43 +0200
                Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-29 22:10 +0000
                Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-27 19:18 -0500
                Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-28 13:54 -0700
                Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-31 23:07 -0400
                Re: Java blunders James Hostick <james.hostick@gmail.com> - 2014-08-01 22:10 -0700
            Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 08:31 -0700
              Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-26 21:04 +0000
                Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-27 10:51 -0700
                Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-28 08:50 -0700
                Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-28 23:42 +0200
              Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-31 23:04 -0400
          Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 22:23 +0200
            Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-28 16:39 -0400
              Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-29 00:11 +0200
              Re: Java blunders Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2014-07-30 12:07 +0300
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-30 08:05 -0400
    Re: Java blunders Wanja Gayk <brixomatic@yahoo.com> - 2014-07-25 01:34 +0200
      Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-24 19:43 -0400
  Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-22 21:02 -0500
    Re: Java blunders Leif Roar Moldskred <leifm@huldreskog.lan> - 2014-07-23 02:01 -0500
      Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:58 -0700
      Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-25 03:55 +0000
        Re: Java blunders Leif Roar Moldskred <leifm@huldreskog.lan> - 2014-07-25 00:32 -0500
          Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-26 07:28 +0000
            Re: Java blunders "Gavino" <invalid@invalid.invalid> - 2014-07-26 19:43 +0200
        Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 06:36 -0700
          Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 15:47 +0100
            Re: Java blunders David Postill <david.postill@gmail.com> - 2014-07-25 18:29 +0200
            Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:27 -0700
        Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 06:37 -0700
    Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-23 13:17 +0200
      Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 06:27 -0700
    Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 04:44 -0700
      Re: Java blunders Silvio <silvio@internet.com> - 2014-07-23 16:23 +0200
        Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-23 12:02 -0400
          Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 11:37 +0200
            Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 22:37 +0200
        Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 09:33 -0700
          Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-25 03:57 +0000
        Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-23 21:38 -0400
          Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 18:59 -0700
            Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-24 07:33 +0000
          Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 11:47 +0200
            Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-24 19:34 -0400
              Re: Java blunders Silvio <silvio@internet.com> - 2014-07-25 08:48 +0200
                Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-25 08:07 -0400
                Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 13:54 +0100
                Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-31 22:53 -0400
            Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-25 07:04 -0700
        Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 22:01 +0200
      Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 21:56 +0200
    Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 06:28 -0700
      Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-23 08:33 -0500
    Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-23 21:34 -0400
      Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-23 19:06 -0700
      Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-23 22:11 -0500
        Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-24 07:36 +0000
          Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-24 19:39 -0400
            Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 13:40 +0100
        Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-24 19:38 -0400
          Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:30 -0700
  Re: Java blunders taqmcg@gmail.com - 2014-07-23 11:26 -0700
    Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-23 15:14 -0400
      Re: Java blunders thinbluernime <thinbluernime3@gmail.com> - 2014-07-25 04:07 +0000
        Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-25 08:35 -0400
          Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:41 -0700
        Re: Java blunders Wanja Gayk <brixomatic@yahoo.com> - 2014-08-03 16:41 +0200
          Re: Java blunders Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-08-03 11:31 -0400
    Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-23 22:41 -0500
      Re: Java blunders taqmcg@gmail.com - 2014-07-24 10:09 -0700
        Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 13:22 +0100
        Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-25 20:34 -0500
          Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-28 13:33 +0100
            Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-28 08:35 -0500
        Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 09:44 -0700
          Re: Java blunders Martin Gregorie <martin@address-in-sig.invalid> - 2014-07-26 23:36 +0000
  Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-23 20:48 -0700
    Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 11:56 +0200
      Re: Java blunders Silvio <silvio@internet.com> - 2014-07-24 16:07 +0200
        Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:38 -0700
          Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 10:02 -0700
    Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-24 19:29 -0400
      Re: Java blunders Gene Wirchenko <genew@telus.net> - 2014-07-25 13:45 -0700
    Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 10:53 -0700
  Re: Java blunders Wanja Gayk <brixomatic@yahoo.com> - 2014-07-25 01:28 +0200
  Re: Java blunders "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2014-07-25 14:16 +0100
  Re: Java blunders Joerg Meier <joergmmeier@arcor.de> - 2014-07-25 17:39 +0200
  Re: Java blunders Roedy Green <see_website@mindprod.com.invalid> - 2014-07-26 16:21 -0700
  Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-28 23:59 +0200
    Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-29 00:41 +0200
      Re: Java blunders Josip Almasi <joe@vrspace.org> - 2014-07-29 01:54 +0200
    Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-31 22:38 -0400
    Re: Java blunders Arne VajhĂžj <arne@vajhoej.dk> - 2014-07-31 22:39 -0400
  Re: Java blunders w.tom.adams@gmail.com - 2014-07-30 07:57 -0700
    Re: Java blunders Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2014-07-30 10:22 -0500

csiph-web