|
|
Java vs C++
In the beginning, Java was supposed to be a much simpler language than C++,
in some sense leaving out all the unnecessary complications, while keeping
the worthwhile parts.
This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
currently reading, has 684 pages. By comparison, the paper copy of “The C++
Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
longer that far off C++ in complexity.
Most of that complexity seems to be caused by the addition of generics to
Java. This was something that C++ had from the beginning. It was one of the
unnecessary complications that Java left out to start with. But now they’ve
changed their minds, and put it back in. But since they need to be backward-
compatible with existing code, they’ve had to add extra complications that
C++ never had to deal with.
Bjarne Stroustroup must be chuckling over his hot cocoa...
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/5/2011 11:15:07 AM |
|
In article <iijbfr$pb2$1@lust.ihug.co.nz>, ldo@geek-central.gen.new_zealand
says...
> Most of that complexity seems to be caused by the addition of generics to
> Java.
I have always missed generics concept in languages that did not have it, and I
had never worked in C++. :))
--
score: 40.59041%
|
|
0
|
|
|
|
Reply
|
Pitch
|
2/5/2011 12:01:07 PM
|
|
In message <MPG.27b75a6e94bcbb39989e33@news.t-com.hr>, Pitch wrote:
> I have always missed generics concept in languages that did not have it,
> and I had never worked in C++. :))
Try Python. Has no generics, and doesn’t need them.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/5/2011 12:24:01 PM
|
|
On 02/05/2011 12:15 PM, Lawrence D'Oliveiro wrote:
> In the beginning, Java was supposed to be a much simpler language than C++,
> in some sense leaving out all the unnecessary complications, while keeping
> the worthwhile parts.
>
> This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
> currently reading, has 684 pages. By comparison, the paper copy of “The C++
> Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
> longer that far off C++ in complexity.
>
> Most of that complexity seems to be caused by the addition of generics to
> Java. This was something that C++ had from the beginning. It was one of the
> unnecessary complications that Java left out to start with. But now they’ve
> changed their minds, and put it back in. But since they need to be backward-
> compatible with existing code, they’ve had to add extra complications that
> C++ never had to deal with.
>
> Bjarne Stroustroup must be chuckling over his hot cocoa...
C++ did not have generics from the beginning. It was added afterwards
and initially without any proper specification of (separate) compilation
and linkage aspects.
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/5/2011 2:02:04 PM
|
|
Lawrence D'Oliveiro wrote:
> In the beginning, Java was supposed to be a much simpler language than C++,
> in some sense leaving out all the unnecessary complications, while keeping
> the worthwhile parts.
>
> This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
> currently reading, has 684 pages. By comparison, the paper copy of “The C++
> Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
> longer that far off C++ in complexity.
>
> Most of that complexity seems to be caused by the addition of generics to
> Java. This was something that C++ had from the beginning. It was one of the
> unnecessary complications that Java left out to start with. But now they’ve
> changed their minds, and put it back in. But since they need to be backward-
> compatible with existing code, they’ve had to add extra complications that
> C++ never had to deal with.
>
> Bjarne Stroustroup must be chuckling over his hot cocoa...
Troll alert!
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/5/2011 2:24:36 PM
|
|
Lawrence D'Oliveiro wrote:
>> In the beginning, Java was supposed to be a much simpler language than C++,
>> in some sense leaving out all the unnecessary complications, while keeping
>> the worthwhile parts.
>>
>> This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
>> currently reading, has 684 pages. By comparison, the paper copy of “The C++
>> Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
>> longer that far off C++ in complexity.
>>
>> Most of that complexity seems to be caused by the addition of generics to
>> Java. This was something that C++ had from the beginning. It was one of the
>> unnecessary complications that Java left out to start with. But now they’ve
>> changed their minds, and put it back in. But since they need to be backward-
>> compatible with existing code, they’ve had to add extra complications that
>> C++ never had to deal with.
>>
>> Bjarne Stroustroup must be chuckling over his hot cocoa...
Silvio wrote:
> C++ did not have generics from the beginning. It was added afterwards and
> initially without any proper specification of (separate) compilation and
> linkage aspects.
C++ doesn't have generics. It has templates. They aren't the same thing.
C# has generics. Java has (different) generics. C++ doesn't.
Lawrence is trolling.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/5/2011 2:26:39 PM
|
|
On 05-02-2011 06:15, Lawrence D'Oliveiro wrote:
> In the beginning, Java was supposed to be a much simpler language than C++,
> in some sense leaving out all the unnecessary complications, while keeping
> the worthwhile parts.
>
> This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
> currently reading, has 684 pages. By comparison, the paper copy of “The C++
> Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
> longer that far off C++ in complexity.
C++ is a much more complex language than Java.
Complexity is more than the number of pages in the standard.
Java was designed to have well defined behavior for most things. That
requires rather detailed descriptions.
> Most of that complexity seems to be caused by the addition of generics to
> Java. This was something that C++ had from the beginning. It was one of the
> unnecessary complications that Java left out to start with.
C++ had templates before Java got generics. Java generics are obviously
very inspired by C++ templates, but are still different in many ways.
But it is correct that generics added some complexity to Java.
Every addition to a language must be carefully considered whether
the benefits outweigh the added complexity.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/5/2011 2:32:43 PM
|
|
On 05-02-2011 07:24, Lawrence D'Oliveiro wrote:
> In message<MPG.27b75a6e94bcbb39989e33@news.t-com.hr>, Pitch wrote:
>> I have always missed generics concept in languages that did not have it,
>> and I had never worked in C++. :))
>
> Try Python. Has no generics, and doesn’t need them.
Generics are not particular useful in dynamic typed
languages.
But since Java is static typed, then not so relevant
for Java.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/5/2011 2:34:47 PM
|
|
On 05-02-2011 09:02, Silvio wrote:
> On 02/05/2011 12:15 PM, Lawrence D'Oliveiro wrote:
>> Most of that complexity seems to be caused by the addition of generics to
>> Java. This was something that C++ had from the beginning. It was one
>> of the
>> unnecessary complications that Java left out to start with. But now
>> they’ve
>> changed their minds, and put it back in. But since they need to be
>> backward-
>> compatible with existing code, they’ve had to add extra complications
>> that
>> C++ never had to deal with.
>>
>> Bjarne Stroustroup must be chuckling over his hot cocoa...
>
> C++ did not have generics from the beginning. It was added afterwards
> and initially without any proper specification of (separate) compilation
> and linkage aspects.
Not from the very beginning.
But it was added to cfront pretty early.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/5/2011 2:38:26 PM
|
|
On 2011-02-05 06:15:07 -0500, Lawrence D'Oliveiro said:
> This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
> currently reading, has 684 pages. By comparison, the paper copy of “The C++
> Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
> longer that far off C++ in complexity.
This is an extremely dubious measure of complexity. The Common Lisp
specification is over a thousand pages long in some editions*, but Lisp
is generally considered a much simpler language than either C++ or Java.
You've posted extensively about things you see in Java that you don't
like, and there's a strong "C++ is better" undercurrent to your posts.
While I disagree with the undercurrent, I will defend to the death your
right to program in C++ instead. Just, please, go away.
-o
* <http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html>, which
predates the ANSI spec.
|
|
0
|
|
|
|
Reply
|
Owen
|
2/5/2011 3:42:56 PM
|
|
On 02/05/2011 06:15 AM, Lawrence D'Oliveiro wrote:
> In the beginning, Java was supposed to be a much simpler language than C++,
> in some sense leaving out all the unnecessary complications, while keeping
> the worthwhile parts.
>
> This PDF copy of “The Java Language Specification”, 3rd Edition, that I’m
> currently reading, has 684 pages. By comparison, the paper copy of “The C++
> Standard” on my bookshelf has 782 numbered pages. As you can see, Java is no
> longer that far off C++ in complexity.
My copy of the C++0x draft reference standard, i.e. the copy sent out
for a ballot by national bodies, consisted of no fewer than 1300
numbered pages. Also take into consideration the fact that the C++
standard does not try to pin stuff down into unambiguous interoperable
statements, e.g., a precise size definition for size_t. Java, on the
other hand, goes so far as to fully define the language character set, a
longish, detailed, accessible expose on the threading memory model that
takes up 30 pages, while C++ spends 3 pages on it and still leaves me
wondering what memory is guaranteed to be visible after certain operations.
So 684 pages of well-written, easily-understood text is not nearly as
complex as 1300 pages of dense, example-lacking specification text.
Maybe that's why popular C++ compilers have many more compatibility
problems than popular Java compilers?
Your statement is not up to date.
> Most of that complexity seems to be caused by the addition of generics to
> Java. This was something that C++ had from the beginning. It was one of the
> unnecessary complications that Java left out to start with. But now they’ve
> changed their minds, and put it back in. But since they need to be backward-
> compatible with existing code, they’ve had to add extra complications that
> C++ never had to deal with.
You sir have probably never met the full pain of template
metaprogramming. Indeed, templates is probably the single least
well-supported thing in C++.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/5/2011 3:49:53 PM
|
|
On 02/05/2011 03:38 PM, Arne Vajhøj wrote:
> On 05-02-2011 09:02, Silvio wrote:
>> On 02/05/2011 12:15 PM, Lawrence D'Oliveiro wrote:
>>> Most of that complexity seems to be caused by the addition of
>>> generics to
>>> Java. This was something that C++ had from the beginning. It was one
>>> of the
>>> unnecessary complications that Java left out to start with. But now
>>> they’ve
>>> changed their minds, and put it back in. But since they need to be
>>> backward-
>>> compatible with existing code, they’ve had to add extra complications
>>> that
>>> C++ never had to deal with.
>>>
>>> Bjarne Stroustroup must be chuckling over his hot cocoa...
>>
>> C++ did not have generics from the beginning. It was added afterwards
>> and initially without any proper specification of (separate) compilation
>> and linkage aspects.
>
> Not from the very beginning.
>
> But it was added to cfront pretty early.
>
> Arne
>
That just depends on what you call early. I used C-with-classes before
it was named C++ and my cfront did not know of templates...
The first "The C++ programming language" book Stroustrup published made
no mention of templates. Stroustrup described templates in his Design
and Evolution of C++ book and later in his second edition of TCPPPL.
And Lew is correct: templates and genercis are completely different beasts.
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/5/2011 5:04:34 PM
|
|
On 02/05/2011 03:26 PM, Lew wrote:
> Lawrence D'Oliveiro wrote:
>>> In the beginning, Java was supposed to be a much simpler language
>>> than C++,
>>> in some sense leaving out all the unnecessary complications, while
>>> keeping
>>> the worthwhile parts.
>>>
>>> This PDF copy of “The Java Language Specification”, 3rd Edition, that
>>> I’m
>>> currently reading, has 684 pages. By comparison, the paper copy of
>>> “The C++
>>> Standard” on my bookshelf has 782 numbered pages. As you can see,
>>> Java is no
>>> longer that far off C++ in complexity.
>>>
>>> Most of that complexity seems to be caused by the addition of
>>> generics to
>>> Java. This was something that C++ had from the beginning. It was one
>>> of the
>>> unnecessary complications that Java left out to start with. But now
>>> they’ve
>>> changed their minds, and put it back in. But since they need to be
>>> backward-
>>> compatible with existing code, they’ve had to add extra complications
>>> that
>>> C++ never had to deal with.
>>>
>>> Bjarne Stroustroup must be chuckling over his hot cocoa...
>
> Silvio wrote:
>> C++ did not have generics from the beginning. It was added afterwards and
>> initially without any proper specification of (separate) compilation and
>> linkage aspects.
>
> C++ doesn't have generics. It has templates. They aren't the same thing.
>
> C# has generics. Java has (different) generics. C++ doesn't.
>
> Lawrence is trolling.
>
Hello Lew,
You are correct, templates are a completely different thing. However,
since they try to achieve a similar goal (albeit in very different ways)
they are often compared and spoken of in combination.
I suspected he is trolling also but could not resist correcting a false
statement.
Silvio
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/5/2011 5:08:30 PM
|
|
In article <iijfh1$rk1$1@lust.ihug.co.nz>, ldo@geek-central.gen.new_zealand=
=20
says...
>=20
> In message <MPG.27b75a6e94bcbb39989e33@news.t-com.hr>, Pitch wrote:
>=20
> > I have always missed generics concept in languages that did not have it=
,
> > and I had never worked in C++. :))
>=20
> Try Python. Has no generics, and doesn?t need them.
That's like comparing Bon Jovi with Slayer. :)
--=20
score: 40.59041%
|
|
0
|
|
|
|
Reply
|
Pitch
|
2/5/2011 6:58:01 PM
|
|
On 05-02-2011 12:04, Silvio wrote:
> On 02/05/2011 03:38 PM, Arne Vajhøj wrote:
>> On 05-02-2011 09:02, Silvio wrote:
>>> On 02/05/2011 12:15 PM, Lawrence D'Oliveiro wrote:
>>>> Most of that complexity seems to be caused by the addition of
>>>> generics to
>>>> Java. This was something that C++ had from the beginning. It was one
>>>> of the
>>>> unnecessary complications that Java left out to start with. But now
>>>> they’ve
>>>> changed their minds, and put it back in. But since they need to be
>>>> backward-
>>>> compatible with existing code, they’ve had to add extra complications
>>>> that
>>>> C++ never had to deal with.
>>>>
>>>> Bjarne Stroustroup must be chuckling over his hot cocoa...
>>>
>>> C++ did not have generics from the beginning. It was added afterwards
>>> and initially without any proper specification of (separate) compilation
>>> and linkage aspects.
>>
>> Not from the very beginning.
>>
>> But it was added to cfront pretty early.
>
> That just depends on what you call early. I used C-with-classes before
> it was named C++ and my cfront did not know of templates...
>
> The first "The C++ programming language" book Stroustrup published made
> no mention of templates. Stroustrup described templates in his Design
> and Evolution of C++ book and later in his second edition of TCPPPL.
I am pretty sure that templates were introduced before 1990, which would
place them in the first 1/5 of C++ lifespan.
> And Lew is correct: templates and genercis are completely different beasts.
Yep.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/5/2011 7:42:34 PM
|
|
On 02/05/2011 08:42 PM, Arne Vajhøj wrote:
> On 05-02-2011 12:04, Silvio wrote:
>> On 02/05/2011 03:38 PM, Arne Vajhøj wrote:
>>> On 05-02-2011 09:02, Silvio wrote:
>>>> On 02/05/2011 12:15 PM, Lawrence D'Oliveiro wrote:
>>>>> Most of that complexity seems to be caused by the addition of
>>>>> generics to
>>>>> Java. This was something that C++ had from the beginning. It was one
>>>>> of the
>>>>> unnecessary complications that Java left out to start with. But now
>>>>> they’ve
>>>>> changed their minds, and put it back in. But since they need to be
>>>>> backward-
>>>>> compatible with existing code, they’ve had to add extra complications
>>>>> that
>>>>> C++ never had to deal with.
>>>>>
>>>>> Bjarne Stroustroup must be chuckling over his hot cocoa...
>>>>
>>>> C++ did not have generics from the beginning. It was added afterwards
>>>> and initially without any proper specification of (separate)
>>>> compilation
>>>> and linkage aspects.
>>>
>>> Not from the very beginning.
>>>
>>> But it was added to cfront pretty early.
>>
>> That just depends on what you call early. I used C-with-classes before
>> it was named C++ and my cfront did not know of templates...
>>
>> The first "The C++ programming language" book Stroustrup published made
>> no mention of templates. Stroustrup described templates in his Design
>> and Evolution of C++ book and later in his second edition of TCPPPL.
>
> I am pretty sure that templates were introduced before 1990, which would
> place them in the first 1/5 of C++ lifespan.
>
Pretty close. Stroustrups Annotated C++ Reference Manual was published
in 1990 and introduced templates (and exceptions). This was five years
after the first TCPPPL book.
>> And Lew is correct: templates and genercis are completely different
>> beasts.
>
> Yep.
>
> Arne
>
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/5/2011 8:28:23 PM
|
|
In message <2011020510425674637-angrybaldguy@gmailcom>, Owen Jacobson wrote:
> This is an extremely dubious measure of complexity. The Common Lisp
> specification is over a thousand pages long in some editions*, but Lisp
> is generally considered a much simpler language than either C++ or Java.
Really? By whom?
There seem to be an awful lot of language mechanisms in current LISP
dialects, e.g. multiple-value returns as distinct from lists of values,
which is a distinction that has no analogue in other languages. Add in all
that, and the resulting language cannot be described as “simple”.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 2:24:27 AM
|
|
In message <4d4d6002$0$23763$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 05-02-2011 07:24, Lawrence D'Oliveiro wrote:
>
>> In message<MPG.27b75a6e94bcbb39989e33@news.t-com.hr>, Pitch wrote:
>>
>>> I have always missed generics concept in languages that did not have it,
>>> and I had never worked in C++. :))
>>
>> Try Python. Has no generics, and doesn’t need them.
>
> Generics are not particular useful in dynamic typed
> languages.
>
> But since Java is static typed, then not so relevant
> for Java.
Java starts out with static typing, then devotes an awful lot of effort to
wiggling its way out of that. Look at “unchecked conversions”, for example.
Wouldn’t it be simpler not to pretend in the first place?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 2:26:18 AM
|
|
In message <4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
> And Lew is correct: templates and genercis are completely different
> beasts.
“Completely” as in “having nothing in common”? Or is this some usage of
“completely” that I wasn’t aware of?
Please explain.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/6/2011 3:38:26 AM
|
|
On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>
>> And Lew is correct: templates and genercis are completely different
>> beasts.
>
> “Completely” as in “having nothing in common”? Or is this some usage of
> “completely” that I wasn’t aware of?
>
> Please explain.
Templates in C++ are basically advanced macros--each invocation of a
template type regenerates the class, so a Foo<int> and a Foo<double> are
two completely different things.
Generics in Java are basically compile-time syntactic sugar to ensure
type-safety of container types at compile time instead of waiting until
you hit the code at runtime to get that dreaded ClassCastException.
About the only thing they share in common is the syntax, and even then,
C++ didn't allow A<B<C>> until C++0x (which, according to Bjarne
Stroustroup, took a bit of work to convince compiler vendors to accept).
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/6/2011 3:44:13 AM
|
|
In message <iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer wrote:
> My copy of the C++0x draft reference standard, i.e. the copy sent out
> for a ballot by national bodies, consisted of no fewer than 1300
> numbered pages.
Yeah, so C++ continues to leap ahead into even greater complexity.
> Also take into consideration the fact that the C++ standard does not try
> to pin stuff down into unambiguous interoperable statements, e.g., a
> precise size definition for size_t.
It seems to me that’s another drawback of Java, that it explicitly defines
the sizes of things from the viewpoint of 32-bit architectures like those
current in the 1990s. Some of those decisions look less wonderful on current
64-bit architectures.
> So 684 pages of well-written, easily-understood text ...
Not quite so “well-written, easily-understood”, as I have pointed out
elsewhere. The mistakes seem particularly concentrated in the parts
describing the newer language features.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 4:06:47 AM
|
|
In message <iil5ed$10m$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>
>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>
>>> ... templates and gener[ic]s are completely different beasts.
>>
>> “Completely” as in “having nothing in common”? Or is this some usage of
>> “completely” that I wasn’t aware of?
>>
>> Please explain.
>
> Templates in C++ are basically advanced macros--each invocation of a
> template type regenerates the class, so a Foo<int> and a Foo<double> are
> two completely different things.
They are different things in Java as well. The only time they become the
same thing is in “erasures” and “raw types”, which are backward-
compatibility mechanisms introduced to avoid breaking existing code that
doesn’t know about generics. The use of the name “Foo” without parameters is
explicitly deprecated, with a bold warning that says it may go away in the
future, you have been warned.
And then, of course, the language goes on to use exactly that deprecated
syntax as the recommended way of accessing static members.
(Exercise for the reader: it turns out there’s another way of accessing
static members. But that’s deprecated as well. What is it?)
> Generics in Java are basically compile-time syntactic sugar to ensure
> type-safety of container types at compile time instead of waiting until
> you hit the code at runtime to get that dreaded ClassCastException.
Same sort of thing in C++.
> About the only thing they share in common is the syntax ...
Yeah, funny that. If Java didn’t want to be seen as copying C++, why did it
reuse exactly the same syntax?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 4:13:18 AM
|
|
On Sun, 06 Feb 2011 15:24:27 +1300, Lawrence D'Oliveiro wrote:
> In message <2011020510425674637-angrybaldguy@gmailcom>, Owen Jacobson
> wrote:
>
>> This is an extremely dubious measure of complexity. The Common Lisp
>> specification is over a thousand pages long in some editions*, but Lisp
>> is generally considered a much simpler language than either C++ or
>> Java.
>
> Really? By whom?
>
> There seem to be an awful lot of language mechanisms in current LISP
> dialects, e.g. multiple-value returns as distinct from lists of values,
> which is a distinction that has no analogue in other languages. Add in
> all that, and the resulting language cannot be described as “simple”.
There's recently been a flamewar in comp.lang.lisp about that. Common
Lisp is indeed not simple, but it did spring from simple roots, and some
other lisps haven't gotten that complicated.
Here is a common way in Clojure to do multiple return:
(defn polar-to-rect [r theta]
[(* r (Math/cos theta)) (* r (Math/sin theta))])
(let [[x y] (polar-to-rect foo bar)]
(do-something-with-x-and-y))
You just bundle the results in a list or vector and return that; callers
can use sequence operations on the return or destructure it as above.
It's only common to use vectors instead of lists because it's a little
shorter and more readable than
(defn polar-to-rect [r theta]
(list (* r (Math/cos theta)) (* r (Math/sin theta))))
but destructuring would work with that too. There's no special syntax or
special types involved; just existing syntax (such as (list ...) and
vector literals and destructuring) and existing types (lists, vectors)
that are used all over the place for other things too.
In that flamewar, someone estimated the size of Clojure's documentation
by browsing its website and counting pagedown keypresses needed to reach
the bottom of each web page. Someone else had posted a list of language
specification sizes in pages that predated Java and Clojure; Common Lisp
was at the top with over 1000 pages and Scheme was near the bottom with
50, with C and C++ in between. Later posters added the size of the JLS, I
think it was near 300, and then someone counted Clojure's documentation
pages, roughly, and got a number just under 200, while pointing out that
including all of Java's java.* and javax.* API docs would make Java's
specification easily dwarf all of the others, including Common Lisp, and
maybe Wikipedia and Library of Congress too. Cue argument about the size
in pages of the documentation not being a sole indicator of complexity --
for example, the C and Common Lisp specifications both allow a lot of
undefined and implementation-defined behavior while the JLS specifies
almost everything, so the JLS arguably gets more bang for its page-count
buck, or arguably represents something simpler (specified in more detail)
than its page size would indicate.
I wonder if the size of a reference implementation would be a better
indication. JVM + javac vs. gcc vs. whatever, as binaries, on the same
platform, how many megabytes. Of course hosted languages get penalized --
the complexity of Scala or Clojure will automatically be bigger than that
of Java because it rides piggyback on Java, running on the JVM and
relying on Java libraries heavily. Another complication would be
optimization; gcc might make C look a lot more complex than it is because
it has code targeting many platforms, and many sophisticated optimization
features. Size of a minimalist compiler or even a naive interpreter could
be a better indication. Size of a grammar description would go too far
the other way; every Lisp will handily win (with Scheme winning among
Lisps) simply for lacking much syntax and having the semantic layer do
more of the heavy lifting. Then again they may not win undeservedly; the
more is moved out of prespecified syntactic constructs and into
functions, macros, and other stuff written in the language itself, the
more flexible and extensible the language is and the simpler its core
generally is. Another big question: include standard library size, or no?
Or just a certain set of functionality -- basic system types like
strings, host interop, and core I/O and collections classes, say, but
leave out things like Swing and JDBC and other languages' equivalents
where present and standardized.
There does seem to me to be a rough spectrum of languages based on how
much grammar they have versus how much is vocabulary instead, for core
behavior and control constructs. I can identify four broad categories
there:
1. Very small syntax cores: Lisp, Smalltalk. To a lesser extent, Haskell,
ML and friends. Few operator symbols or keywords.
2. Algol-like syntaxes (in size and basic structure, forming procedural
code blocks): C, C++, Java, Pascal, and most other mainstream
languages. Many specially-defined keywords and operator symbols.
3. Baroque syntaxes that try to approximate natural language; TONS of
keywords and many operator symbols: BASIC and COBOL.
4. Baroque syntaxes that don't try to approximate natural language and
instead aim for terseness; TONS of operators: Perl, Ruby.
There is necessarily some fuzziness. Shell lies between 3 and 4, on the 3
side of the middle. Perl was a solid 4 but later revisions have added
more structured, 3-like elements so it's moved toward shell from the
other side. C++ shades towards 4 from 2, especially in codebases that
heavily use operator overloading. Common Lisp shades towards 4 from *1*
when reader macros are used heavily; on the other hand its "loop" macro
shades towards 3! Python sits almost square on the 3/4 divide and always
has. Joke languages always tend to an extreme: INTERCAL is a 3, Brainfuck
is clearly a 4 with some traces of 2, and Malbolge is as solid a 4 as is
even theoretically possible. Actual, pragmatic machine languages
(including JVM bytecode) are generally 4s as binary code and somewhat
3ish as assembly, lacking the block structures of the 2s.
There's another way those categories make sense: 3 and 4 are generally
imperative, and 2 is imperative with block structure and, generally,
classes or some similar feature. 1 is mainly functional, with the major
exception of Smalltalk, which despite its small syntax core is more
firmly object oriented than Java is. What all group-1 languages have in
common that enables the small syntax core is that they have a syntax for
anonymous lambdas and had it from the get-go; the functional languages
tend to collect in this category for that reason.
The most versatile syntax here may well be Python's, because out of the
box it supports writing fairly C-like code with recognizable blocks, or
Lispy-looking functional code (modulo foo.bar(baz) and f(x) and 1 + 2
rather than (bar foo baz) and (f x) and (+ 1 2)) using lambdas and
comprehensions, or imperative scripts with little block structure more
reminiscent of typical COBOL and BASIC code from the 70s and 80s, or even
Perlesque code. Common Lisp (with reader macros) also lets you generate
all of these, but you'll have to work harder at it since the default
library of functions and macros available pulls you heavily towards Lispy
code (duh) and you'll have to write your own macros to produce the syntax
for the other three styles. On the other hand, Lisps let you go the
furthest in that direction, even as far as making (emulate-my-fictitious-
cpu 9D FF 00 00 1B 3C ...) be valid code. :)
An interesting fact is that you'll get strong partisans for languages of
all four kinds: Lisps (obviously), Java, C, and C++ (obviously), BASIC
(as a teaching tool), and Perl and (again as a teaching tool so you know
what the hardware eventually sees after gcc has done its thing) machine
languages.
Back to the complexity question: again, it depends. Obviously the syntax
(and human effort required deciphering it) grows from 1 up to 4, but code
readability takes a big hit at 3 (home of infamous spaghetti code and
COBOL) and goes right out the window at 4 (home of stuff we now mainly
deal with at arm's length, through compilers, and Brainfuck, Perl, and
Malbolge). :) On the other hand 1 usually requires wrapping your head
around the functional paradigm and familiarizing yourself with a large
library of generic functions. This may be why the 2 languages are the
most popular application languages, containing these particular four that
have been big juggernauts and resume must-haves in recent years: Pascal,
C, C++, and Java. They strike a balance between too little structure in
code block nesting (3 and 4) and too much there for most people (1).
Ultimately, though, the language syntax complexity mostly doesn't matter
until it gets complicated enough, or edge cases you need to refer to the
spec or consult a language lawyer about get common enough, for it to
really get in your way *cough*Perl*cough*. (Abusing C++ operator
overloading or Lisp macros, especially reader macros, can lead to such
problems in specific codebases, too.)
The size of the library, and especially the portion of it you must learn
to both get practical things done and understand most existing code with
only occasional lookups of (mostly) third-party calls, is much more
important, and the expressiveness.
Java's primary weakness is lack of expressiveness; it has trouble with
proliferation of boilerplate code and accompanying rituals to ward off
race conditions, leaking I/O handles when exceptions are thrown,
consuming XML configuration files, and so forth.
Lisps, and even some 4 languages like Perl, have the opposite weakness:
so many ways to do the same thing that code with the same purpose from 2
different authors can look very different. (The Clojure community has
tried to avoid this pitfall in their Lisp by encouraging particular
idiomatic ways to do things; e.g., preferring higher order functions to
the low-level loop and lazy-seq macros, using vector literals rather than
list literals for macro arguments that are treated as data rather than
instructions, so parenthesized lists (x y z) tend to mean "do x to y and
z"; avoiding macros that are "syntaxy" (like Common Lisp's loop macro) or
attach fixed meanings to symbols (again like CL's loop macro); and so on.
The maintainer is burdened there by having to deal with a much wider
variety of ways to do a given task, thus much more to learn to understand
code others have written to do that task.
The really inflexible 3 languages are basically dead. The only surviving
forms of BASIC and COBOL have added block structuring and other syntactic
features to mimic the 2 languages and are 2s rather than 3s now. Assembly
remains in widespread use -- by machines. Hardly anyone manually writes
asm anymore, not since the optimizing compilers got good enough.
And the 4 languages, excluding jokes like Malbolge, have also moved
towards the 2 languages, Perl most notably.
The interesting thing is which of 1 or 2 is "better"? The answer,
disturbingly I am sure for many of you, may be 1. Consider that Java has
been steadily encroaching on C and C++ for some time now; soon the latter
two might be primarily used to write a) operating systems, b) device
drivers, and c) a port of the JVM to a given platform. :) The growth is
in C#/.NET, Java, and (for the iFoo devices) ObjectiveC. (ObjectiveC may
eventually, improbable as it may have seemed even five years ago, finally
upset the seemingly-inevitable C++ victory among object-oriented C
variants because of that little music player Apple started selling that
turned the world upside down -- imagine that!) Of these, Java is very
widely used for network and business applications, and web apps, these
days -- and it's considering adding closures, the key feature of the 1
languages. Fast forward a decade or two to when there's a mature, widely
used library of closure-based control structures and the typical Java
codebase of that time could resemble Haskell more than it does present-
day Java code if they're used heavily in preference to the familiar fors,
whiles, and ifs, mapping and reducing over collections to generate return
values in a single expression.
In reality, Java's static types and checked exceptions will throw a fair
amount of syntactic salt into this, barring a hefty (and again Haskell-
like) infusion of type inference. Java could lose out in the long run to
JVM hosted languages designed to be functional from the ground up. Of
these the frontrunners seem to be Clojure and Scala, with Scala's non-
Lispy syntax giving it an edge in familiarity (and especially with
management) and Clojure's macros (and consequent ability to reify
boilerplate patterns into things you can name and call and not
reimplement over and over again) giving it an edge in expressivity.
Both are gaining traction even with management types, especially when
stuff coded in them can be bundled into jars and deployed on application
servers in a manner identical to deploying Java code. It doesn't look or
feel any different to management than deploying Java; the coders are
pushing different symbols around in their text editors and IDEs but
they're still using IDEA or NetBeans or Eclipse and still producing .jar
files that behave the same way when put on the server. So if the coders
are typing stuff that looks incomprehensible in a different way than it
did before, and seem a bit happier, and are suddenly making their
deadlines instead of missing them, and nothing has stopped working or
started working differently at a level management notices, management
won't rock the boat. At most they'll want to be assuaged about
intellectual property rights, mainly that a) the company still owns its
code and b) they aren't going to get sued for using this stuff. Both
languages in question have, if anything, less stringent license
requirements than Java itself.
This may be one technology battle, then, where the technological merits
themselves may actually trump politics for once. If so, it's not looking
good for Java, but it's looking positively rosy for the JVM and even Java
libraries. FP offers some advantages over OOP, especially in the highly
concurrent environment of server processes. We could soon be looking at a
divide between three sets of languages used by most human coders:
1. Objective C on the iFoo devices, until competition from Android forces
Apple to open up the platform or makes the platform irrelevant.
2. C/C++ and even Delphi and Pascal will totter on for a while on open
platforms, and C will remain a solid language for OS kernel, device
driver, and VM implementation. Other languages running on bare metal or
on non-CLR-or-JVM virtual machines will remain also-rans, including
Eiffel (metal), Smalltalk (VM), and Lisps (both). Note, versions that
run on the JVM have a rosier future if they can call Java libraries.
On the scripting language front, Python, Perl, and Ruby will totter on
for some time, especially when running on the JVM. Python's doomed to
irrelevancy long term by poor performance, the global interpreter lock,
and Clojure, which is also in a position to seriously challenge Ruby.
Perl will retain use in heavily text-oriented tasks, and shell for
that matter will retain use among unix sysadmins. Nobody else will find
much use for either.
3. JVM hosted languages, being more widely supported (and running on
a lot of smartphones!), should beat out .NET/CLR-hosted languages in
the long run. Any that can easily call into Java libraries and allow
easy deployment in a manner that's fairly transparently like deploying
normal Java will find niches, and one or both of Clojure and Scala look
to come out on top. JPython and JRuby will be also-rans in this race,
completely devastated by Clojure in particular. Java itself will
persist as the language used to implement a) Clojure and Scala and b)
libraries meant to be as broadly useful as possible, so callable from
both and from Java itself, and sometimes for c) performance-critical
code. (Yes -- Java may be relegated partly to the role of writing the
most performance-critical inner loops of applications! That's a big
reversal from when Java was slow and C would be used to write the most
performance-critical inner loops of Java applications.)
I can make a few further predictions; one is that someone will eventually
produce a Smalltalk that compiles to JVM bytecodes -- it should actually
be possible to implement Smalltalk on top of Clojure(!) efficiently --
though I don't know how much usage it would see, and another is that we
will probably eventually see an "emacs killer" emerge that gains traction
with people that cut their teeth first on GUI/CUA systems and never could
get used to emacs's way of doing things, and has comparable features and
extensibility. It will probably be JVM-hosted rather than bare metal and
stands a good chance of being derived in some way from NetBeans or
Eclipse. Jokes will be made about a kitchen-sink approach and about
memory and pagefile usage, even if the JVMs of the time are not quite as
memory-hogging as current JVMs.
What does all of this have to do with language simplicity? I'm not sure.
But the combo of the JVM abstracting aspects of the host environment and
setting uniform data type size standards and the existence of large,
generified libraries for the platform make it likely that the simplicity
wars, particularly, will be won by a functional language hosted on the
JVM. :)
|
|
0
|
|
|
|
Reply
|
Ken
|
2/6/2011 4:39:04 AM
|
|
On 02/05/2011 11:13 PM, Lawrence D'Oliveiro wrote:
> They are different things in Java as well.
The hell they aren't. In Java, there is only one instance of
LinkedList::add(T object). In C++, there are as many instances of
std::list<T>::front as times you use it.
Try, for example, implementing both List<String> and List<Character> in
the same class. Java will tell you that you cannot do it. C++, on the
other hand, wouldn't bat an eye.
> The only time they become the
> same thing is in “erasures” and “raw types”, which are backward-
> compatibility mechanisms introduced to avoid breaking existing code that
> doesn’t know about generics.
I think Java would likely have gone with much the same syntax even if
generics had been introduced in the beginning.
> And then, of course, the language goes on to use exactly that deprecated
> syntax as the recommended way of accessing static members.
It's not the same syntax. List<String> is the type of a specific
instance, while the class still remains List.
>> About the only thing they share in common is the syntax ...
>
> Yeah, funny that. If Java didn’t want to be seen as copying C++, why did it
> reuse exactly the same syntax?
Propose a different syntax for Java generics. Note that it cannot be
syntactically ambiguous with any other Java construct, and that, since
it will be used a fair amount, it must be on the shorter side. There
aren't many characters you can really use; < and > are about the only
thing that fits the bill.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Pidgeot18 (1393)
|
2/6/2011 5:01:07 AM
|
|
On 02/05/2011 11:06 PM, Lawrence D'Oliveiro wrote:
> It seems to me that’s another drawback of Java, that it explicitly defines
> the sizes of things from the viewpoint of 32-bit architectures like those
> current in the 1990s. Some of those decisions look less wonderful on current
> 64-bit architectures.
I would venture a guess that most C or C++ code isn't as easily portable
to 64-bit platforms as you would think, since people make assumptions
about the sizes of various types. If you don't define de jure type
sizes, people will follow the de facto standards (i.e., 32-bit) and will
then get horrible breakages when the platform it runs on does not match
the standards.
Also, I might add, the main benefit 64-bit holds right now is the
increased access to memory space, i.e., 64-bit addressability of
pointers. Since Java does not let you manipulate pointer addresses
directly, the implementation is easily able to adjust the size of an
Object pointer and still conform to the specification. So you basically
get access to as much memory as your host will allow without the messy
bits about the size of integral operands being essentially undefined.
> Not quite so “well-written, easily-understood”, as I have pointed out
> elsewhere. The mistakes seem particularly concentrated in the parts
> describing the newer language features.
If you think it is so difficult to understand, you must not have voyaged
deeply into the world of specifications. Java is easily understandable
compared to some of the stuff I've read.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/6/2011 5:08:38 AM
|
|
Lew wrote:
>> C++ doesn't have generics. It has templates. They aren't the same thing.
>>
>> C# has generics. Java has (different) generics. C++ doesn't.
>>
>> Lawrence is trolling.
Silvio wrote:
> Hello Lew,
>
> You are correct, templates are a completely different thing. However, since
> they try to achieve a similar goal (albeit in very different ways) they are
> often compared and spoken of in combination.
>
> I suspected he is trolling also but could not resist correcting a false
> statement.
That's funny, because the statement wasn't false and you didn't correct it.
You even said it was correct.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/6/2011 5:15:04 AM
|
|
On 02/06/2011 06:15 AM, Lew wrote:
> Lew wrote:
>>> C++ doesn't have generics. It has templates. They aren't the same thing.
>>>
>>> C# has generics. Java has (different) generics. C++ doesn't.
>>>
>>> Lawrence is trolling.
>
> Silvio wrote:
>> Hello Lew,
>>
>> You are correct, templates are a completely different thing. However,
>> since
>> they try to achieve a similar goal (albeit in very different ways)
>> they are
>> often compared and spoken of in combination.
>>
>> I suspected he is trolling also but could not resist correcting a false
>> statement.
>
> That's funny, because the statement wasn't false and you didn't correct
> it. You even said it was correct.
>
Lawrence said "C++ had this from the beginning" referring to Java having
added generics afterwards. That was a false statement.
I pointed out that in C++ this was also a later addition. I just made
the mistake of referring to templates as generics.
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/6/2011 10:14:52 AM
|
|
On 02/06/2011 05:06 AM, Lawrence D'Oliveiro wrote:
> In message<iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer wrote:
>
>> My copy of the C++0x draft reference standard, i.e. the copy sent out
>> for a ballot by national bodies, consisted of no fewer than 1300
>> numbered pages.
>
> Yeah, so C++ continues to leap ahead into even greater complexity.
>
>> Also take into consideration the fact that the C++ standard does not try
>> to pin stuff down into unambiguous interoperable statements, e.g., a
>> precise size definition for size_t.
>
> It seems to me that’s another drawback of Java, that it explicitly defines
> the sizes of things from the viewpoint of 32-bit architectures like those
> current in the 1990s. Some of those decisions look less wonderful on current
> 64-bit architectures.
>
>> So 684 pages of well-written, easily-understood text ...
>
> Not quite so “well-written, easily-understood”, as I have pointed out
> elsewhere. The mistakes seem particularly concentrated in the parts
> describing the newer language features.
Oh, I remember how well C++ and its undefined sizes of things served us
when we had to port heaps of code from 16-bit to 32-bit.
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/6/2011 10:21:39 AM
|
|
On 11-02-06 12:39 AM, Ken Wesson wrote:
[ SNIP good overview ]
> In reality, Java's static types and checked exceptions will throw a fair
> amount of syntactic salt into this, barring a hefty (and again Haskell-
> like) infusion of type inference. Java could lose out in the long run to
> JVM hosted languages designed to be functional from the ground up. Of
> these the frontrunners seem to be Clojure and Scala, with Scala's non-
> Lispy syntax giving it an edge in familiarity (and especially with
> management) and Clojure's macros (and consequent ability to reify
> boilerplate patterns into things you can name and call and not
> reimplement over and over again) giving it an edge in expressivity.
>
> Both are gaining traction even with management types, especially when
> stuff coded in them can be bundled into jars and deployed on application
> servers in a manner identical to deploying Java code. It doesn't look or
> feel any different to management than deploying Java; the coders are
> pushing different symbols around in their text editors and IDEs but
> they're still using IDEA or NetBeans or Eclipse and still producing .jar
> files that behave the same way when put on the server. So if the coders
> are typing stuff that looks incomprehensible in a different way than it
> did before, and seem a bit happier, and are suddenly making their
> deadlines instead of missing them, and nothing has stopped working or
> started working differently at a level management notices, management
> won't rock the boat. At most they'll want to be assuaged about
> intellectual property rights, mainly that a) the company still owns its
> code and b) they aren't going to get sued for using this stuff. Both
> languages in question have, if anything, less stringent license
> requirements than Java itself.
[ SNIP ]
I'm currently pushing Scala (nothing against Clojure really, I am just
considerably more familiar with Scala) quietly, in-house and also on
some client projects, with similar thinking in mind. It _is_ a fact that
management truly doesn't care that this chunk of opcodes was originally
Java source, and that other chunk of opcodes was originally Scala
source. If a project development team can incrementally introduce user
libraries into a Java EE environment that happen to be written in Scala,
and they are developed faster and we end up with more reliable code,
nobody is going to complain.
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
Arved
|
2/6/2011 1:34:52 PM
|
|
On 11-02-06 12:06 AM, Lawrence D'Oliveiro wrote:
> In message<iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer wrote:
>
>> My copy of the C++0x draft reference standard, i.e. the copy sent out
>> for a ballot by national bodies, consisted of no fewer than 1300
>> numbered pages.
>
> Yeah, so C++ continues to leap ahead into even greater complexity.
>
>> Also take into consideration the fact that the C++ standard does not try
>> to pin stuff down into unambiguous interoperable statements, e.g., a
>> precise size definition for size_t.
>
> It seems to me that’s another drawback of Java, that it explicitly defines
> the sizes of things from the viewpoint of 32-bit architectures like those
> current in the 1990s. Some of those decisions look less wonderful on current
> 64-bit architectures.
>
>> So 684 pages of well-written, easily-understood text ...
>
> Not quite so “well-written, easily-understood”, as I have pointed out
> elsewhere. The mistakes seem particularly concentrated in the parts
> describing the newer language features.
You haven't actually pointed out any mistakes. Now, if your intent is to
point out parts of the JLS that you find hard to understand, and your
argument is that if _you_ are having problems then so are many others,
then a more productive approach would be (1) to phrase it that way, and
(2) offer a suggestion or two that you think is better. But you haven't
located any flat-out mistakes yet.
I find the various versions of the JLS to be considerably better than
most other language or API specs I've had to wade through.
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
Arved
|
2/6/2011 1:43:16 PM
|
|
On 05-02-2011 23:06, Lawrence D'Oliveiro wrote:
> In message<iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> Also take into consideration the fact that the C++ standard does not try
>> to pin stuff down into unambiguous interoperable statements, e.g., a
>> precise size definition for size_t.
>
> It seems to me that’s another drawback of Java, that it explicitly defines
> the sizes of things from the viewpoint of 32-bit architectures like those
> current in the 1990s. Some of those decisions look less wonderful on current
> 64-bit architectures.
There are nothing in defining the size of the simple data types
that are tied to 32 bit architecture.
Why shoudl 8, 16, 32 and 64 bit integers be more 32 bit than
64 bit centric??
>> So 684 pages of well-written, easily-understood text ...
>
> Not quite so “well-written, easily-understood”, as I have pointed out
> elsewhere. The mistakes seem particularly concentrated in the parts
> describing the newer language features.
As far as I have seen all your so called mistakes is not problems
in the JLS but you not understanding the text, because you have
started reading the JLS without starting with a very basic tutorial
about Java.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 2:28:01 PM
|
|
On 06-02-2011 00:08, Joshua Cranmer wrote:
> On 02/05/2011 11:06 PM, Lawrence D'Oliveiro wrote:
>> It seems to me that’s another drawback of Java, that it explicitly
>> defines
>> the sizes of things from the viewpoint of 32-bit architectures like those
>> current in the 1990s. Some of those decisions look less wonderful on
>> current
>> 64-bit architectures.
>
> I would venture a guess that most C or C++ code isn't as easily portable
> to 64-bit platforms as you would think, since people make assumptions
> about the sizes of various types. If you don't define de jure type
> sizes, people will follow the de facto standards (i.e., 32-bit) and will
> then get horrible breakages when the platform it runs on does not match
> the standards.
My guess is that most portable C/C++ not using the C99 typedefs
have their own similar ifdef'ed typedefs.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 2:30:39 PM
|
|
On 06-02-2011 08:34, Arved Sandstrom wrote:
> I'm currently pushing Scala (nothing against Clojure really, I am just
> considerably more familiar with Scala) quietly, in-house and also on
> some client projects, with similar thinking in mind. It _is_ a fact that
> management truly doesn't care that this chunk of opcodes was originally
> Java source, and that other chunk of opcodes was originally Scala
> source. If a project development team can incrementally introduce user
> libraries into a Java EE environment that happen to be written in Scala,
> and they are developed faster and we end up with more reliable code,
> nobody is going to complain.
Scala is doing pretty well.
It seems to be by far the most successful functional language.
Among publicly know Scala users are the British newspaper
Guardian and EDF Trading.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 2:35:15 PM
|
|
Joshua Cranmer wrote:
> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>
>>> And Lew is correct: templates and genercis are completely different
>>> beasts.
>>
>> “Completely” as in “having nothing in common”? Or is this some usage of
>> “completely” that I wasn’t aware of?
>>
>> Please explain.
>
> Templates in C++ are basically advanced macros--each invocation of a
> template type regenerates the class, so a Foo<int> and a Foo<double> are
> two completely different things.
That's much more than a macro could do. Templates are a language of its
own, include syntax checks, etc. Quite unlike macros, they do not
substitute text patterns. Templates allow meta-programming, i.e. you can
use the compiler to generate code. And, of course, templates are quite
complex - very unlike the simple-minded preprocessor.
> Generics in Java are basically compile-time syntactic sugar to ensure
> type-safety of container types at compile time instead of waiting until
> you hit the code at runtime to get that dreaded ClassCastException.
Well, java had to take the route of type-erasure to allow generic
progamming plus type checks because it wasn't part of the language to
begin with, so it was "hacked" into the specs more or less. Generics are
considerably less powerful, but also considerably easier than C++
templates. There's no metaprogramming with generics, and generics are
mostly limited to containers which does not hold for C++ templates. They
are quite different.
> About the only thing they share in common is the syntax, and even then,
> C++ didn't allow A<B<C>> until C++0x (which, according to Bjarne
> Stroustroup, took a bit of work to convince compiler vendors to accept).
I beg your pardon? C++ allows nested templates since C++99 and before.
The only issue here is a notational one, namely that you had to write
A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
token (shifting, namely). That is the only thing that got fixed in
C++0x, not nesting templates which is part of the language since C++99.
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/6/2011 3:35:32 PM
|
|
Joshua Cranmer wrote:
> On 02/05/2011 11:13 PM, Lawrence D'Oliveiro wrote:
>> They are different things in Java as well.
>
> The hell they aren't. In Java, there is only one instance of
> LinkedList::add(T object). In C++, there are as many instances of
> std::list<T>::front as times you use it.
I would say that's an implementation detail. A compiler/optimizer could
check how many different implementations are needed and could merge
those that are identical.
Besides that, where you use an object in java, one would use a pointer
or a reference in C++, and hence the code would be identical, allowing a
good compiler to merge the implementations. C++ and java are quite
different in their tradition how to use types, or what types are. Java
has two sorts of types: First class citizens like int or double that are
copied, and second class citizens like classes that are referenced. C++
doesn't have that, objects are objects and ints and classes are handled
alike.
> Try, for example, implementing both List<String> and List<Character> in
> the same class. Java will tell you that you cannot do it. C++, on the
> other hand, wouldn't bat an eye.
True.
>> The only time they become the
>> same thing is in “erasures” and “raw types”, which are backward-
>> compatibility mechanisms introduced to avoid breaking existing code that
>> doesn’t know about generics.
>
> I think Java would likely have gone with much the same syntax even if
> generics had been introduced in the beginning.
That's really a speculation. One could also speculate that if java would
have used or required generics from the beginning, they would be closer
to C++ templates and would not use type erasure; instead, they would be
parametrized classes as they are in C++. It's really speculation.
Greetings,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/6/2011 3:45:05 PM
|
|
"Thomas Richter" <thor@math.tu-berlin.de> wrote in message
news:iimf47$soo$1@news.belwue.de...
>
> I beg your pardon? C++ allows nested templates since C++99 and before. The
> only issue here is a notational one, namely that you had to write A<B<C> >
> (note the space behind B<C>) to avoid >> being parsed as a token
> (shifting, namely). That is the only thing that got fixed in C++0x, not
> nesting templates which is part of the language since C++99.
This surprises me. Given all the difficult parsing needed to make sense of
C++, it seems like this small bit of lexical analysis should never have been
a sticking point.
|
|
0
|
|
|
|
Reply
|
Mike
|
2/6/2011 4:11:58 PM
|
|
Silvio wrote:
>>> I suspected he is trolling also but could not resist correcting a false
>>> statement.
Lew wrote:
>> That's funny, because the statement wasn't false and you didn't correct
>> it. You even said it was correct.
Silvio wrote:
> Lawrence said "C++ had this from the beginning" referring to Java having added
> generics afterwards. That was a false statement.
>
> I pointed out that in C++ this was also a later addition. I just made the
> mistake of referring to templates as generics.
Oh - *that* false statement. Yes, you were right to correct it.
C++ has never had generics, and it did not have templates from the beginning.
You are right.
I am convinced that "Lawrence" is a troll.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/6/2011 4:18:23 PM
|
|
On 02/06/2011 10:35 AM, Thomas Richter wrote:
> Joshua Cranmer wrote:
>> Templates in C++ are basically advanced macros--each invocation of a
>> template type regenerates the class, so a Foo<int> and a Foo<double>
>> are two completely different things.
>
> That's much more than a macro could do. Templates are a language of its
> own, include syntax checks, etc. Quite unlike macros, they do not
> substitute text patterns. Templates allow meta-programming, i.e. you can
> use the compiler to generate code. And, of course, templates are quite
> complex - very unlike the simple-minded preprocessor.
It is the code generation that I'm referring to as "an advanced macro".
It's a macro generator that understands types and is heavily integrated
with the syntax of C++, but it is basically a way to automatically
generate code.
> I beg your pardon? C++ allows nested templates since C++99 and before.
> The only issue here is a notational one, namely that you had to write
> A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
> token (shifting, namely). That is the only thing that got fixed in
> C++0x, not nesting templates which is part of the language since C++99.
I was specifically referring to the ability to use >> instead of > >.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/6/2011 5:57:46 PM
|
|
On 02/06/2011 11:11 AM, Mike Schilling wrote:
>
>
> "Thomas Richter" <thor@math.tu-berlin.de> wrote in message
> news:iimf47$soo$1@news.belwue.de...
>>
>> I beg your pardon? C++ allows nested templates since C++99 and before.
>> The only issue here is a notational one, namely that you had to write
>> A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
>> token (shifting, namely). That is the only thing that got fixed in
>> C++0x, not nesting templates which is part of the language since C++99.
>
> This surprises me. Given all the difficult parsing needed to make sense
> of C++, it seems like this small bit of lexical analysis should never
> have been a sticking point.
When Bjarne Stroustrup gave a talk about C++0x to my university, one of
the things he said was it took him several tries to get the compiler
vendors to agree to support that minor lexical analysis. The only way he
could convince them to do it was to point out that all the major
compilers basically had an error message in that case which said "add a
space, idiot", so all they had to do was remove that error message.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/6/2011 5:59:49 PM
|
|
We could end this entire thread right now by conceding that, yes, C++ is
clearly the superior language over Java, just like Esperanto is over English,
unless, of course, you actually want to accomplish something, but all
analogies break down somewhere, right?
Anyway, just tell the OP that he's right, C++ is wonderful and Java is crap,
and all those thousands more Java jobs out there can go to those of us
impurists. C++ invented everything and Java is a poor stepchild, and if
imitation is the sincerest form of flattery then Java just gave C++ the
finger. He's right, we're wrong - he need learn nothing new and we praise him
with angels' song and rose petals.
C++ rules, Java drools!
Can we stop talking about C++ now? You know it only makes us poor
stepchildren embarrassed and to feel clumsy, contemplating how much worse our
language of choice is than the One True Way, so stop rubbing our noses in it,
please. Let's just talk about Java as Java so we may be shielded from the
blinding light of knowledge of our insignificance compared to those of the C++
world. Leave us benighted souls to our dark Java Hades and burn us not with
the C++ Sun!
Again, C++ rules, Java drools! Done. QED. You win. Move on.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/6/2011 6:09:20 PM
|
|
"Joshua Cranmer" <Pidgeot18@verizon.invalid> wrote in message
news:iimnil$dh2$2@news.eternal-september.org...
> On 02/06/2011 11:11 AM, Mike Schilling wrote:
>>
>>
>> "Thomas Richter" <thor@math.tu-berlin.de> wrote in message
>> news:iimf47$soo$1@news.belwue.de...
>>>
>>> I beg your pardon? C++ allows nested templates since C++99 and before.
>>> The only issue here is a notational one, namely that you had to write
>>> A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
>>> token (shifting, namely). That is the only thing that got fixed in
>>> C++0x, not nesting templates which is part of the language since C++99.
>>
>> This surprises me. Given all the difficult parsing needed to make sense
>> of C++, it seems like this small bit of lexical analysis should never
>> have been a sticking point.
>
> When Bjarne Stroustrup gave a talk about C++0x to my university, one of
> the things he said was it took him several tries to get the compiler
> vendors to agree to support that minor lexical analysis. The only way he
> could convince them to do it was to point out that all the major compilers
> basically had an error message in that case which said "add a space,
> idiot", so all they had to do was remove that error message.
Like when you call a 9-digit number and the phone tells you that you need to
dial a 1 first.
|
|
0
|
|
|
|
Reply
|
Mike
|
2/6/2011 6:09:26 PM
|
|
Arne Vajhøj wrote:
> On 05-02-2011 23:06, Lawrence D'Oliveiro wrote:
>> In message<iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>> Also take into consideration the fact that the C++ standard does not try
>>> to pin stuff down into unambiguous interoperable statements, e.g., a
>>> precise size definition for size_t.
>>
>> It seems to me that’s another drawback of Java, that it explicitly
>> defines
>> the sizes of things from the viewpoint of 32-bit architectures like those
>> current in the 1990s. Some of those decisions look less wonderful on
>> current
>> 64-bit architectures.
>
> There are nothing in defining the size of the simple data types
> that are tied to 32 bit architecture.
I am aware of one issue in the simple data types that reflects 32 bit
architecture, JLS section 17.7, "Non-atomic Treatment of double and long".
The big way in which Java is tied to 32 bit architectures is not in the
simple data types. It is the maximum size of an array, String, Set, List
etc.
Patricia
|
|
0
|
|
|
|
Reply
|
Patricia
|
2/6/2011 6:55:15 PM
|
|
Joshua Cranmer wrote
>>> When Bjarne Stroustrup gave a talk about C++0x to my university, one of the
>> things he said was it took him several tries to get the compiler vendors to
>> agree to support that minor lexical analysis. The only way he could convince
>> them to do it was to point out that all the major compilers basically had an
>> error message in that case which said "add a space, idiot", so all they had
>> to do was remove that error message.
Mike Schilling wrote:
> Like when you call a 9-digit number and the phone tells you that you need to
> dial a 1 first.
Or, in the US, the same thing for a 10-digit number.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/6/2011 7:21:55 PM
|
|
Patricia Shanahan wrote:
> The big way in which Java is tied to 32 bit architectures is not in the
> simple data types. It is the maximum size of an array, String, Set, List
> etc.
I wouldn't say "tied to a 32-bit architecture" but "subject to a 32-bit
limitation". The limitation for Java is the same on any architecture. But I
take your meaning.
It is possible with current Java implementations to write a collection like
List that is not subject to the 32-bit limit, so arguably the fault for the
java.util.List limit lies not with Java itself but the API.
It would require a language change to implement an array with
larger-than-32-bit addressing, but the use case for that is narrow enough that
an API construct should serve, obviating the need for a language change.
At least for a while. I imagine that once we are unphased by exbibyte RAM
structures we can change the language.
Assuming the world hasn't all switched over to C++ by then.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/6/2011 7:30:49 PM
|
|
"Lew" <noone@lewscanon.com> wrote in message
news:iimscd$vun$2@news.albasani.net...
> Joshua Cranmer wrote
>>>> When Bjarne Stroustrup gave a talk about C++0x to my university, one of
>>>> the
>>> things he said was it took him several tries to get the compiler vendors
>>> to
>>> agree to support that minor lexical analysis. The only way he could
>>> convince
>>> them to do it was to point out that all the major compilers basically
>>> had an
>>> error message in that case which said "add a space, idiot", so all they
>>> had
>>> to do was remove that error message.
>
> Mike Schilling wrote:
>> Like when you call a 9-digit number and the phone tells you that you need
>> to
>> dial a 1 first.
>
> Or, in the US, the same thing for a 10-digit number.
That too.
|
|
0
|
|
|
|
Reply
|
Mike
|
2/6/2011 8:07:19 PM
|
|
On 06-02-2011 13:55, Patricia Shanahan wrote:
> Arne Vajhøj wrote:
>> On 05-02-2011 23:06, Lawrence D'Oliveiro wrote:
>>> In message<iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> Also take into consideration the fact that the C++ standard does not
>>>> try
>>>> to pin stuff down into unambiguous interoperable statements, e.g., a
>>>> precise size definition for size_t.
>>>
>>> It seems to me that’s another drawback of Java, that it explicitly
>>> defines
>>> the sizes of things from the viewpoint of 32-bit architectures like
>>> those
>>> current in the 1990s. Some of those decisions look less wonderful on
>>> current
>>> 64-bit architectures.
>>
>> There are nothing in defining the size of the simple data types
>> that are tied to 32 bit architecture.
>
> I am aware of one issue in the simple data types that reflects 32 bit
> architecture, JLS section 17.7, "Non-atomic Treatment of double and long".
It is somewhat related, but 32 bit architectures could
operate on 64 bit data (VAX does) and it could be implemented
atomicly.
> The big way in which Java is tied to 32 bit architectures is not in the
> simple data types. It is the maximum size of an array, String, Set, List
> etc.
Yep.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 8:20:20 PM
|
|
On 06-02-2011 10:35, Thomas Richter wrote:
> Joshua Cranmer wrote:
>> Generics in Java are basically compile-time syntactic sugar to ensure
>> type-safety of container types at compile time instead of waiting
>> until you hit the code at runtime to get that dreaded ClassCastException.
>
> Well, java had to take the route of type-erasure to allow generic
> progamming plus type checks because it wasn't part of the language to
> begin with, so it was "hacked" into the specs more or less. Generics are
> considerably less powerful, but also considerably easier than C++
> templates. There's no metaprogramming with generics, and generics are
> mostly limited to containers which does not hold for C++ templates. They
> are quite different.
Java generics are useful for more than containers.
It just get complex when used for more than containers.
>> About the only thing they share in common is the syntax, and even
>> then, C++ didn't allow A<B<C>> until C++0x (which, according to Bjarne
>> Stroustroup, took a bit of work to convince compiler vendors to accept).
>
> I beg your pardon? C++ allows nested templates since C++99 and before.
> The only issue here is a notational one, namely that you had to write
> A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
> token (shifting, namely). That is the only thing that got fixed in
> C++0x, not nesting templates which is part of the language since C++99.
Joshua did not claim otherwise.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 8:22:33 PM
|
|
On 05-02-2011 21:26, Lawrence D'Oliveiro wrote:
> In message<4d4d6002$0$23763$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 05-02-2011 07:24, Lawrence D'Oliveiro wrote:
>>> In message<MPG.27b75a6e94bcbb39989e33@news.t-com.hr>, Pitch wrote:
>>>
>>>> I have always missed generics concept in languages that did not have it,
>>>> and I had never worked in C++. :))
>>>
>>> Try Python. Has no generics, and doesn’t need them.
>>
>> Generics are not particular useful in dynamic typed
>> languages.
>>
>> But since Java is static typed, then not so relevant
>> for Java.
>
> Java starts out with static typing, then devotes an awful lot of effort to
> wiggling its way out of that. Look at “unchecked conversions”, for example.
>
> Wouldn’t it be simpler not to pretend in the first place?
????
I think unchecked conversion is a static typed features as well.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 8:23:50 PM
|
|
On 05-02-2011 23:13, Lawrence D'Oliveiro wrote:
> In message<iil5ed$10m$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>> ... templates and gener[ic]s are completely different beasts.
>>>
>>> “Completely” as in “having nothing in common”? Or is this some usage of
>>> “completely” that I wasn’t aware of?
>>>
>>> Please explain.
>>
>> Templates in C++ are basically advanced macros--each invocation of a
>> template type regenerates the class, so a Foo<int> and a Foo<double> are
>> two completely different things.
>
> They are different things in Java as well.
No. Same code.
> The only time they become the
> same thing is in “erasures” and “raw types”,
Since Java generics are always type erasured, then "the only time"
is actually "every time".
But .NET does not due type erasure and still only have one copy
of the code for generics.
>> Generics in Java are basically compile-time syntactic sugar to ensure
>> type-safety of container types at compile time instead of waiting until
>> you hit the code at runtime to get that dreaded ClassCastException.
>
> Same sort of thing in C++.
>
>> About the only thing they share in common is the syntax ...
>
> Yeah, funny that. If Java didn’t want to be seen as copying C++, why did it
> reuse exactly the same syntax?
Because beginners that just used the generic containers would not
see the big difference.
And those needing to do more advanced stuff where the difference
becomes visible is expected to read about generics.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/6/2011 8:27:29 PM
|
|
In message <b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
Shanahan wrote:
> I am aware of one issue in the simple data types that reflects 32 bit
> architecture, JLS section 17.7, "Non-atomic Treatment of double and long".
>
> The big way in which Java is tied to 32 bit architectures is not in the
> simple data types. It is the maximum size of an array, String, Set, List
> etc.
Also in the fact that array subscripts cannot be long.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 11:14:11 PM
|
|
In message <4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
> In that flamewar, someone estimated the size of Clojure's documentation
> by browsing its website and counting pagedown keypresses needed to reach
> the bottom of each web page.
Funny, I did the same thing for Python, just for comparison
<http://docs.python.org/py3k/reference/>. The figure I came up with for that
Language Reference was 92 pages. To be fair, I suppose you should include
the first 6 chapters of rhe Library Reference
<http://docs.python.org/py3k/library/>, which is another 69 pages, for a
total of 161.
For comparison, I have a couple of draft C99 specs floating around. They
total 550 pages, until you realize most of that is section 7, the standard
library. Leave that out, and you end up with 163 pages.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 11:23:12 PM
|
|
In message <4d4f042b$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 05-02-2011 23:13, Lawrence D'Oliveiro wrote:
>
>> In message<iil5ed$10m$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>
>>> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>>>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>>> ... templates and gener[ic]s are completely different beasts.
>>>>
>>>> “Completely” as in “having nothing in common”? Or is this some usage of
>>>> “completely” that I wasn’t aware of?
>>>>
>>>> Please explain.
>>>
>>> Templates in C++ are basically advanced macros--each invocation of a
>>> template type regenerates the class, so a Foo<int> and a Foo<double>
>>> are two completely different things.
>>
>> They are different things in Java as well.
>
> No. Same code.
Same code in C++ too, then.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 11:24:23 PM
|
|
In message <iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/05/2011 11:13 PM, Lawrence D'Oliveiro wrote:
>
>> They are different things in Java as well.
>
> The hell they aren't. In Java, there is only one instance of
> LinkedList::add(T object). In C++, there are as many instances of
> std::list<T>::front as times you use it.
>
> Try, for example, implementing both List<String> and List<Character> in
> the same class. Java will tell you that you cannot do it. C++, on the
> other hand, wouldn't bat an eye.
>
>> The only time they become the same thing is in “erasures” and “raw
>> types”, which are backward-compatibility mechanisms introduced to avoid
>> breaking existing code that doesn’t know about generics.
>
> I think Java would likely have gone with much the same syntax even if
> generics had been introduced in the beginning.
>
>> And then, of course, the language goes on to use exactly that deprecated
>> syntax as the recommended way of accessing static members.
>
> It's not the same syntax. List<String> is the type of a specific
> instance, while the class still remains List.
List<String> is a class, not an instance. In something like
List<String> L;
it is L that is the instance.
See, how can you try to tell me what the difference is between Java and C++,
when you don’t understand it yourself?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 11:26:36 PM
|
|
In message <iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer wrote:
> Try, for example, implementing both List<String> and List<Character> in
> the same class. Java will tell you that you cannot do it. C++, on the
> other hand, wouldn't bat an eye.
Why does Java impose such a pointless restriction?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 11:28:42 PM
|
|
Strange that Java never copied the C++ operator names "and”, “or” and “not”.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/6/2011 11:54:10 PM
|
|
Lew wrote:
> We could end this entire thread right now by conceding that, yes, C++ is
> clearly the superior language over Java, just like Esperanto is over
> English, unless, of course, you actually want to accomplish something,
> but all analogies break down somewhere, right?
Who said this, and where? I did not mean to say this implication. Java
often took the path of providing a more accessible language than C++,
maybe for good reasons since C++ has quite some complexity. But
templates are not generics, and I'm not aware that you can use them for
metaprogramming. Whether you *want* to use metaprogramming, well, that's
a different question.
So long,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/6/2011 11:55:06 PM
|
|
Arne Vajhøj wrote:
>> Well, java had to take the route of type-erasure to allow generic
>> progamming plus type checks because it wasn't part of the language to
>> begin with, so it was "hacked" into the specs more or less. Generics are
>> considerably less powerful, but also considerably easier than C++
>> templates. There's no metaprogramming with generics, and generics are
>> mostly limited to containers which does not hold for C++ templates. They
>> are quite different.
>
> Java generics are useful for more than containers.
>
> It just get complex when used for more than containers.
Well, I didn't mean to say something else (see, I wrote "mostly", not
"only"), but nevertheless, could you provide an example?
>>> About the only thing they share in common is the syntax, and even
>>> then, C++ didn't allow A<B<C>> until C++0x (which, according to Bjarne
>>> Stroustroup, took a bit of work to convince compiler vendors to accept).
>>
>> I beg your pardon? C++ allows nested templates since C++99 and before.
>> The only issue here is a notational one, namely that you had to write
>> A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
>> token (shifting, namely). That is the only thing that got fixed in
>> C++0x, not nesting templates which is part of the language since C++99.
>
> Joshua did not claim otherwise.
This was at least worded in a very misleading way.
So long,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/6/2011 11:57:45 PM
|
|
Arne Vajhøj wrote:
>>> Templates in C++ are basically advanced macros--each invocation of a
>>> template type regenerates the class, so a Foo<int> and a
>>> Foo<double> are
>>> two completely different things.
>>
>> They are different things in Java as well.
>
> No. Same code.
I don't know in how far "same code" makes sense in Java in first place.
The code that is created depends entirely on the JIT, and it may or may
not generate the same code depending on how often it is called. For
example, if it the JIT "sees" that the code is called with one specific
type most of the time, it could create separate code just for this
purpose and hence omit the type checks. And in C++, a compiler can also
merge template instances because they are identical, i.e. function
alike, i.e. for example they all operate on pointers.
Thus, I don't really see how that type of argument applies.
>>> Generics in Java are basically compile-time syntactic sugar to ensure
>>> type-safety of container types at compile time instead of waiting until
>>> you hit the code at runtime to get that dreaded ClassCastException.
>>
>> Same sort of thing in C++.
Not really. Generics are run-time checked, templates are compile-time
checked. There is no "ClassCastException" in C++. If the class doesn't
fit, the compiler will tell at compile time. Otherwise, the code will
crash at run time - there is no additional check inserted as it is in
java which tests whether the type-erased instance is of the proper type.
Greetings,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/7/2011 12:04:45 AM
|
|
In message <4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
> Java is very widely used for network and business applications, and web
> apps, these days ...
I was trying to make sense of where you were coming from with your
predictions, and then I realized—you’re primarily talking about corporate
development. Because that’s just about the only place languages like Java
and C#/Dotnet get much use. Very few mass-market or open-source apps are
written in those languages, for example.
Except, of course, for Android. Which is why I’m here.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 12:29:32 AM
|
|
In message <iincuv$ot9$1@news.belwue.de>, Thomas Richter wrote:
> There is no "ClassCastException" in C++.
Yes there is. It’s called “bad_cast”. Where do you think Java got the idea
from?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 12:32:20 AM
|
|
On 06/02/2011 7:32 PM, Lawrence D'Oliveiro wrote:
> In message<iincuv$ot9$1@news.belwue.de>, Thomas Richter wrote:
>
>> There is no "ClassCastException" in C++.
>
> Yes there is. It’s called “bad_cast”. Where do you think Java got the idea
> from?
dynamic_cast<foo>(bar) can throw this if bar is not really a foo. But
C++ lets you use the unsafe old (foo)bar cast from C, and if bar is not
really a foo, welcome to undefined behaviorville.
Java doesn't let that happen: the cast syntax is (Foo)bar but the
semantics is that of dynamic_cast: bar is a Foo or an exception gets thrown.
The only way to come close to C's unsafe cast with Java is to muck about
with serialization, to alter a serialized representation of a Bar to
claim to be of class Foo instead and then deserialize it. Most likely
you get a broken Foo and exceptions thrown, but not a VM crash. The main
reason you'd try that is to try to break some existing Java program --
hack it, crack it, virus someone's VM. There's never any use for that in
normal programming that I am aware of.
--
In <iijn58$ccs$1@news.albasani.net>, Lew admitted:
> The JLS is obfuscatory in parts
|
|
0
|
|
|
|
Reply
|
javax
|
2/7/2011 12:54:54 AM
|
|
On 06/02/2011 7:29 PM, Lawrence D'Oliveiro wrote:
> Except, of course, for Android. Which is why I’m here.
Shouldn't you be off watching football, or something?
|
|
0
|
|
|
|
Reply
|
Helium
|
2/7/2011 12:55:52 AM
|
|
On 06-02-2011 18:54, Lawrence D'Oliveiro wrote:
> Strange that Java never copied the C++ operator names "and”, “or” and “not”.
????
Java uses &&, &, ||, |, ! like C++.
(Java does not allow defining them for own types, but that
is another story)
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 12:57:50 AM
|
|
On 06-02-2011 18:28, Lawrence D'Oliveiro wrote:
> In message<iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> Try, for example, implementing both List<String> and List<Character> in
>> the same class. Java will tell you that you cannot do it. C++, on the
>> other hand, wouldn't bat an eye.
>
> Why does Java impose such a pointless restriction?
It is given by the use of type erasure.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 12:59:12 AM
|
|
Lew wrote:
>> We could end this entire thread right now by conceding that, yes, C++ is
>> clearly the superior language over Java, just like Esperanto is over
>> English, unless, of course, you actually want to accomplish something, but
>> all analogies break down somewhere, right?
Thomas Richter wrote:
> Who said this, and where? I did not mean to say this implication. Java often
> took the path of providing a more accessible language than C++, maybe for good
> reasons since C++ has quite some complexity. But templates are not generics,
> and I'm not aware that you can use them for metaprogramming. Whether you
> *want* to use metaprogramming, well, that's a different question.
When I say, "this entire thread", I'm referring to this entire thread, "Java
vs C++", as set up by the OP, not you. Nor was I replying to one of your
posts. I fail to see why you think I have an issue with anything you said.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
noone7 (3512)
|
2/7/2011 1:07:17 AM
|
|
On 06-02-2011 18:23, Lawrence D'Oliveiro wrote:
> In message<4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
>> In that flamewar, someone estimated the size of Clojure's documentation
>> by browsing its website and counting pagedown keypresses needed to reach
>> the bottom of each web page.
>
> Funny, I did the same thing for Python, just for comparison
> <http://docs.python.org/py3k/reference/>. The figure I came up with for that
> Language Reference was 92 pages. To be fair, I suppose you should include
> the first 6 chapters of rhe Library Reference
> <http://docs.python.org/py3k/library/>, which is another 69 pages, for a
> total of 161.
Either Python is a simple language or the language reference is not
very detailed.
> For comparison, I have a couple of draft C99 specs floating around. They
> total 550 pages, until you realize most of that is section 7, the standard
> library. Leave that out, and you end up with 163 pages.
I am not sure that comparing a language reference with a standard
spec gives much meaning.
And the C spec leaves a lot of things to implementations.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 1:08:19 AM
|
|
On 06-02-2011 18:24, Lawrence D'Oliveiro wrote:
> In message<4d4f042b$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 05-02-2011 23:13, Lawrence D'Oliveiro wrote:
>>> In message<iil5ed$10m$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>>>>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>>>> ... templates and gener[ic]s are completely different beasts.
>>>>>
>>>>> “Completely” as in “having nothing in common”? Or is this some usage of
>>>>> “completely” that I wasn’t aware of?
>>>>>
>>>>> Please explain.
>>>>
>>>> Templates in C++ are basically advanced macros--each invocation of a
>>>> template type regenerates the class, so a Foo<int> and a Foo<double>
>>>> are two completely different things.
>>>
>>> They are different things in Java as well.
>>
>> No. Same code.
>
> Same code in C++ too, then.
No.
C++ will generate two classes with two sets of code.
(at least that is what common compilers do - I don't know if
the standard actually requires it to)
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 1:15:45 AM
|
|
On 06-02-2011 19:04, Thomas Richter wrote:
> Arne Vajhøj wrote:
>>>> Templates in C++ are basically advanced macros--each invocation of a
>>>> template type regenerates the class, so a Foo<int> and a Foo<double>
>>>> are
>>>> two completely different things.
>>>
>>> They are different things in Java as well.
>>
>> No. Same code.
>
> I don't know in how far "same code" makes sense in Java in first place.
It does.
Only one copy of the byte code.
> The code that is created depends entirely on the JIT, and it may or may
> not generate the same code depending on how often it is called. For
> example, if it the JIT "sees" that the code is called with one specific
> type most of the time, it could create separate code just for this
> purpose and hence omit the type checks.
JIT compilers can do what they want as long as they keep semantics.
But it is not even required that a JIT compiler will be used.
> And in C++, a compiler can also
> merge template instances because they are identical, i.e. function
> alike, i.e. for example they all operate on pointers.
Possible. But if two template usages are compiled separatetly,
then it is not possible.
> Thus, I don't really see how that type of argument applies.
In Java it is as starting point one code and in C++ it is as
starting point two codes. The optimizers may do some funny things.
But I consider them different, because what optimizers may
do is not suffcient to make them identical.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 1:26:49 AM
|
|
On 06-02-2011 18:57, Thomas Richter wrote:
> Arne Vajhøj wrote:
>
>>> Well, java had to take the route of type-erasure to allow generic
>>> progamming plus type checks because it wasn't part of the language to
>>> begin with, so it was "hacked" into the specs more or less. Generics are
>>> considerably less powerful, but also considerably easier than C++
>>> templates. There's no metaprogramming with generics, and generics are
>>> mostly limited to containers which does not hold for C++ templates. They
>>> are quite different.
>>
>> Java generics are useful for more than containers.
>>
>> It just get complex when used for more than containers.
>
> Well, I didn't mean to say something else (see, I wrote "mostly", not
> "only"), but nevertheless, could you provide an example?
public static <T extends Comparable<? super T>> T Max(T a, T b) {
if (a == null) return b;
if (b == null) return a;
if (a.compareTo(b) >= 0)
return a;
else return b;
}
>>>> About the only thing they share in common is the syntax, and even
>>>> then, C++ didn't allow A<B<C>> until C++0x (which, according to Bjarne
>>>> Stroustroup, took a bit of work to convince compiler vendors to
>>>> accept).
>>>
>>> I beg your pardon? C++ allows nested templates since C++99 and before.
>>> The only issue here is a notational one, namely that you had to write
>>> A<B<C> > (note the space behind B<C>) to avoid >> being parsed as a
>>> token (shifting, namely). That is the only thing that got fixed in
>>> C++0x, not nesting templates which is part of the language since C++99.
>>
>> Joshua did not claim otherwise.
>
> This was at least worded in a very misleading way.
How can specific syntax be misleading?
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 1:29:56 AM
|
|
On 06-02-2011 19:29, Lawrence D'Oliveiro wrote:
> In message<4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
>> Java is very widely used for network and business applications, and web
>> apps, these days ...
>
> I was trying to make sense of where you were coming from with your
> predictions, and then I realized—you’re primarily talking about corporate
> development. Because that’s just about the only place languages like Java
> and C#/Dotnet get much use. Very few mass-market or open-source apps are
> written in those languages, for example.
Which is just plain wrong.
Java and C# are both very popular for open source projects.
Sometimes statistics are done for SF projects.
The last I can find for December 2007 has Java as #1 and
C# as #7 and VB.NET as #14.
So Java and .NET are very much used for open source.
Desktop market is still dominated by native apps. It may
change someday if MS starts to rewrite MFC stuff in .NET.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 1:38:59 AM
|
|
On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
> Shanahan wrote:
>> I am aware of one issue in the simple data types that reflects 32 bit
>> architecture, JLS section 17.7, "Non-atomic Treatment of double and long".
>>
>> The big way in which Java is tied to 32 bit architectures is not in the
>> simple data types. It is the maximum size of an array, String, Set, List
>> etc.
>
> Also in the fact that array subscripts cannot be long.
But that has nothing to do with simple data types.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 1:39:55 AM
|
|
On 02/06/2011 06:54 PM, Lawrence D'Oliveiro wrote:
> Strange that Java never copied the C++ operator names "and”, “or” and “not”.
Why should it have? They're just aliases for other objects. By your
reasoning, Java should also have copied the C trigraphs or the other
tokens in the "Alternative tokens". You know, for the three people in
the world who do not have { on their keyboard.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Pidgeot18 (1393)
|
2/7/2011 1:42:50 AM
|
|
On 06-02-2011 20:38, Arne Vajhøj wrote:
> On 06-02-2011 19:29, Lawrence D'Oliveiro wrote:
>> In message<4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
>>> Java is very widely used for network and business applications, and web
>>> apps, these days ...
>>
>> I was trying to make sense of where you were coming from with your
>> predictions, and then I realized—you’re primarily talking about corporate
>> development. Because that’s just about the only place languages like Java
>> and C#/Dotnet get much use. Very few mass-market or open-source apps are
>> written in those languages, for example.
>
> Which is just plain wrong.
>
> Java and C# are both very popular for open source projects.
>
> Sometimes statistics are done for SF projects.
>
> The last I can find for December 2007 has Java as #1 and
> C# as #7 and VB.NET as #14.
>
> So Java and .NET are very much used for open source.
>
> Desktop market is still dominated by native apps. It may
> change someday if MS starts to rewrite MFC stuff in .NET.
And in case somebody wants to check the list:
http://www.c2.com/cgi/wiki?ProgrammingLanguagePopularity
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 1:47:30 AM
|
|
On 06-02-2011 10:45, Thomas Richter wrote:
> Joshua Cranmer wrote:
>> On 02/05/2011 11:13 PM, Lawrence D'Oliveiro wrote:
>>> The only time they become the
>>> same thing is in “erasures” and “raw types”, which are backward-
>>> compatibility mechanisms introduced to avoid breaking existing code that
>>> doesn’t know about generics.
>>
>> I think Java would likely have gone with much the same syntax even if
>> generics had been introduced in the beginning.
>
> That's really a speculation. One could also speculate that if java would
> have used or required generics from the beginning, they would be closer
> to C++ templates and would not use type erasure; instead, they would be
> parametrized classes as they are in C++. It's really speculation.
Given how C#/.NET got generics and the discussions about
changes to generics for future Java versions, then it seems
to be a bit more than just speculation to say that if Java had
had generics from start:
- they would not use type erasure
- but they would not be like C++
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 1:50:01 AM
|
|
On 06-02-2011 00:01, Joshua Cranmer wrote:
> On 02/05/2011 11:13 PM, Lawrence D'Oliveiro wrote:
>> The only time they become the
>> same thing is in “erasures” and “raw types”, which are backward-
>> compatibility mechanisms introduced to avoid breaking existing code that
>> doesn’t know about generics.
>
> I think Java would likely have gone with much the same syntax even if
> generics had been introduced in the beginning.
I think so too.
But I believe that type erasure would have been dropped in that case.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 1:51:14 AM
|
|
In message <4d4f4387$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 18:54, Lawrence D'Oliveiro wrote:
>
>> Strange that Java never copied the C++ operator names "and”, “or” and
>> “not”.
>
> ????
>
> Java uses &&, &, ||, |, ! like C++.
But not “and”, “or” and “not”.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 1:51:20 AM
|
|
In message <iinimq$q4v$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/06/2011 06:54 PM, Lawrence D'Oliveiro wrote:
>
>> Strange that Java never copied the C++ operator names "and”, “or” and
>> “not”.
>
> Why should it have? They're just aliases for other objects.
They’re not objects, they’re operator names.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 1:51:38 AM
|
|
In message <4d4f4d64$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
>
>> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
>> Shanahan wrote:
>>> I am aware of one issue in the simple data types that reflects 32 bit
>>> architecture, JLS section 17.7, "Non-atomic Treatment of double and
>>> long".
>>>
>>> The big way in which Java is tied to 32 bit architectures is not in the
>>> simple data types. It is the maximum size of an array, String, Set, List
>>> etc.
>>
>> Also in the fact that array subscripts cannot be long.
>
> But that has nothing to do with simple data types.
What is long?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 1:52:05 AM
|
|
In message <iilaco$dd0$1@news.eternal-september.org>, Joshua Cranmer wrote:
> I would venture a guess that most C or C++ code isn't as easily portable
> to 64-bit platforms as you would think ...
Most of the C/C++ code I deal with is open-source, and essentially all of
that is portable between 32-bit and 64-bit nowadays. As well as across non-
x86 architectures, for that matter.
Ironic, isn’t it, that the early Java slogan was "write once, run
everywhere”...
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 1:53:54 AM
|
|
In message <4d4e7634$0$81475$e4fe514c@news.xs4all.nl>, Silvio wrote:
> Oh, I remember how well C++ and its undefined sizes of things served us
> when we had to port heaps of code from 16-bit to 32-bit.
By “16-bit” I take it you specifically mean “Windows/Intel 16-bit”, i.e. the
segmented 80286 architecture (spit). That was the only major 16-bit
architecture I’m aware of that made portability difficult.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 1:55:12 AM
|
|
In message <iimnes$dh2$1@news.eternal-september.org>, Joshua Cranmer wrote:
> It's a macro generator that understands types and is heavily integrated
> with the syntax of C++, but it is basically a way to automatically
> generate code.
You seem to be confusing one particular way of implementing
generics/templates with the way the language feature is specified. Java
generics could be implemented by a preprocessor that spat out first-edition
Java code, for that matter. In fact, it effectively does, since the JVM
seems to know nothing about generics. Would you then say that third-edition
Java is nothing more than a “macro generator”?
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:00:44 AM
|
|
In message <iimf47$soo$1@news.belwue.de>, Thomas Richter wrote:
> Templates allow meta-programming, i.e. you can use the compiler to
> generate code.
Why, what do compilers normally do?
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:01:26 AM
|
|
In message <iinft1$95e$1@speranza.aioe.org>, javax.swing.JSnarker wrote:
> On 06/02/2011 7:32 PM, Lawrence D'Oliveiro wrote:
>
>> In message<iincuv$ot9$1@news.belwue.de>, Thomas Richter wrote:
>>
>>> There is no "ClassCastException" in C++.
>>
>> Yes there is. It’s called “bad_cast”. Where do you think Java got the
>> idea from?
>
> dynamic_cast<foo>(bar) can throw this if bar is not really a foo. But
> C++ lets you use the unsafe old (foo)bar cast from C, and if bar is not
> really a foo, welcome to undefined behaviorville.
The fact remains, there IS an equivalent to ClassCastException in C++.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:02:17 AM
|
|
In message <4d4f47bb$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 18:24, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f042b$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 05-02-2011 23:13, Lawrence D'Oliveiro wrote:
>>>
>>>> In message<iil5ed$10m$1@news.eternal-september.org>, Joshua Cranmer
>>>> wrote:
>>>>
>>>>> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>>>>>>
>>>>>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>>>>
>>>>>>> ... templates and gener[ic]s are completely different beasts.
>>>>>>
>>>>>> “Completely” as in “having nothing in common”? Or is this some usage
>>>>>> of “completely” that I wasn’t aware of?
>>>>>>
>>>>>> Please explain.
>>>>>
>>>>> Templates in C++ are basically advanced macros--each invocation of a
>>>>> template type regenerates the class, so a Foo<int> and a Foo<double>
>>>>> are two completely different things.
>>>>
>>>> They are different things in Java as well.
>>>
>>> No. Same code.
>>
>> Same code in C++ too, then.
>
> No.
>
> C++ will generate two classes with two sets of code.
>
> (at least that is what common compilers do - I don't know if
> the standard actually requires it to)
See, it’s clear you’re hung up on specifics of particular implementations,
not on how the language feature is defined at all.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:03:11 AM
|
|
On 06-02-2011 20:52, Lawrence D'Oliveiro wrote:
> In message<4d4f4d64$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
>>> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
>>> Shanahan wrote:
>>>> I am aware of one issue in the simple data types that reflects 32 bit
>>>> architecture, JLS section 17.7, "Non-atomic Treatment of double and
>>>> long".
>>>>
>>>> The big way in which Java is tied to 32 bit architectures is not in the
>>>> simple data types. It is the maximum size of an array, String, Set, List
>>>> etc.
>>>
>>> Also in the fact that array subscripts cannot be long.
>>
>> But that has nothing to do with simple data types.
>
> What is long?
A simple data type.
But it is still a characteristics of array not of long.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 2:05:34 AM
|
|
On 06-02-2011 20:51, Lawrence D'Oliveiro wrote:
> In message<4d4f4387$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 18:54, Lawrence D'Oliveiro wrote:
>>> Strange that Java never copied the C++ operator names "and”, “or” and
>>> “not”.
>>
>> ????
>>
>> Java uses&&,&, ||, |, ! like C++.
>
> But not “and”, “or” and “not”.
True.
But since practically none uses them in C++, then ...
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 2:08:09 AM
|
|
In message <4d4f43d9$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 18:28, Lawrence D'Oliveiro wrote:
>
>> In message<iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>
>>> Try, for example, implementing both List<String> and List<Character>
>>> in the same class. Java will tell you that you cannot do it. C++, on the
>>> other hand, wouldn't bat an eye.
>>
>> Why does Java impose such a pointless restriction?
>
> It is given by the use of type erasure.
Which is purely a backward-compatibility mechanism. If I were to take two
copies of the definition of List<E>, and in one take out <E> and replace E
with String, and in the other replace it with Character, Java would have no
problem letting me declare a class that implements both interfaces. But try
doing it directly with the generic, and it won’t.
Java draws a distinction between the two cases where there really shouldn’t
be any distinction. That’s what generics are for, after all—they’re there to
save work for the programmer, not create it.
See, Java started out as not wanting to be like C++: it would take the good
stuff from C++, and leave the rest behind.
But now, with the addition of generics, it’s clear Java wants to be more
like C++ after all. The only thing holding it back is not deliberate design
choices over functionality, but the dead hand of backward compatibility.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:08:21 AM
|
|
In message <4d4f5402$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 20:51, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f4387$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 06-02-2011 18:54, Lawrence D'Oliveiro wrote:
>>>
>>>> Strange that Java never copied the C++ operator names "and”, “or” and
>>>> “not”.
>>>
>>> ????
>>>
>>> Java uses&&,&, ||, |, ! like C++.
>>
>> But not “and”, “or” and “not”.
>
> True.
>
> But since practically none uses them in C++, then ...
I use them in all my C++ code.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:10:33 AM
|
|
In message <4d4f5367$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 20:52, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f4d64$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
>>>>
>>>> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
>>>> Shanahan wrote:
>>>>>
>>>>> I am aware of one issue in the simple data types that reflects 32 bit
>>>>> architecture, JLS section 17.7, "Non-atomic Treatment of double and
>>>>> long".
>>>>>
>>>>> The big way in which Java is tied to 32 bit architectures is not in
>>>>> the simple data types. It is the maximum size of an array, String,
>>>>> Set, List etc.
>>>>
>>>> Also in the fact that array subscripts cannot be long.
>>>
>>> But that has nothing to do with simple data types.
>>
>> What is long?
>
> A simple data type.
>
> But it is still a characteristics of array not of long.
Which is a limitation that comes from a fixation on 32-bit architectures,
without a thought for 64-bit ones.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/7/2011 2:11:24 AM
|
|
On 06-02-2011 20:53, Lawrence D'Oliveiro wrote:
> In message<iilaco$dd0$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> I would venture a guess that most C or C++ code isn't as easily portable
>> to 64-bit platforms as you would think ...
>
> Most of the C/C++ code I deal with is open-source, and essentially all of
> that is portable between 32-bit and 64-bit nowadays. As well as across non-
> x86 architectures, for that matter.
Without ifdef's ????
> Ironic, isn’t it, that the early Java slogan was "write once, run
> everywhere”...
anywhere not everywhere
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/7/2011 2:12:18 AM
|
|
On 02/06/2011 06:26 PM, Lawrence D'Oliveiro wrote:
> In message<iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> It's not the same syntax. List<String> is the type of a specific
>> instance, while the class still remains List.
>
> List<String> is a class, not an instance. In something like
>
> List<String> L;
>
> it is L that is the instance.
L is an instance of a class. List<String> is an instance of a type, a
type that is distinct from List (the raw type or the class type).
If you're having this much problems understanding me, I'm sure you'll be
having lots of fun when it comes to capture conversion. Just because two
variables have type List<? extends Number> doesn't mean that they have
the same type. ;-)
> See, how can you try to tell me what the difference is between Java and C++,
> when you don’t understand it yourself?
I do very much understand it myself. My problem is that you have such a
broken understanding of Java that the terminology I normally use to
explain stuff is lost on you. Java is not C++, so don't come in with
your preconceived notions of C++ and argue that they should apply to Java.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Pidgeot18 (1393)
|
2/7/2011 2:12:52 AM
|
|
On 06-02-2011 20:55, Lawrence D'Oliveiro wrote:
> In message<4d4e7634$0$81475$e4fe514c@news.xs4all.nl>, Silvio wrote:
>> Oh, I remember how well C++ and its undefined sizes of things served us
>> when we had to port heaps of code from 16-bit to 32-bit.
It is 8086 architecture not 80286 architecture.
> By “16-bit” I take it you specifically mean “Windows/Intel 16-bit”, i.e. the
> segmented 80286 architecture (spit). That was the only major 16-bit
> architecture I’m aware of that made portability difficult.
Windows has nothing to do with CPU architecture.
And the problem Silvio talks about (undefined sizes) is
not related to segmented memory.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 2:15:28 AM
|
|
On 02/06/2011 09:03 PM, Lawrence D'Oliveiro wrote:
> In message<4d4f47bb$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> C++ will generate two classes with two sets of code.
>>
>> (at least that is what common compilers do - I don't know if
>> the standard actually requires it to)
>
> See, it’s clear you’re hung up on specifics of particular implementations,
> not on how the language feature is defined at all.
No, it's in the definition of C++ templates. And I quote §14, clause 1:
A template defines a family of classes, functions, or concept maps, or
an alias for a family of types.
As far as the standard is concerned, Foo<int> and Foo<long> would be
very distinct types. It might be that the compiler makes them one single
entity, but it can only do that under §1.9, clause 1:
The semantic descriptions in this International Standard define a
parameterized nondeterministic abstract machine. This International
Standard places no requirement on the structure of conforming
implementations. In particular, they need not copy or emulate the
structure of the abstract machine. Rather, conforming implementations
are required to emulate (only) the observable behavior of the abstract
machine as explained below.
i.e., "you don't have to actually implement this specification so long
as a valid program can't tell that you aren't."
See, it's clear you really haven't read the specs you're trying to
language lawyer with us on.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/7/2011 2:18:38 AM
|
|
On 06-02-2011 21:08, Lawrence D'Oliveiro wrote:
> In message<4d4f43d9$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 18:28, Lawrence D'Oliveiro wrote:
>>> In message<iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> Try, for example, implementing both List<String> and List<Character>
>>>> in the same class. Java will tell you that you cannot do it. C++, on the
>>>> other hand, wouldn't bat an eye.
>>>
>>> Why does Java impose such a pointless restriction?
>>
>> It is given by the use of type erasure.
>
> Which is purely a backward-compatibility mechanism.
Which does not change the fact - it just explains it.
> If I were to take two
> copies of the definition of List<E>, and in one take out<E> and replace E
> with String, and in the other replace it with Character, Java would have no
> problem letting me declare a class that implements both interfaces. But try
> doing it directly with the generic, and it won’t.
>
> Java draws a distinction between the two cases where there really shouldn’t
> be any distinction. That’s what generics are for, after all—they’re there to
> save work for the programmer, not create it.
Backward compatibility limit the available option.
> See, Java started out as not wanting to be like C++: it would take the good
> stuff from C++, and leave the rest behind.
>
> But now, with the addition of generics, it’s clear Java wants to be more
> like C++ after all.
Not really.
As explained numerous times then Java generics and C++ templates
are somewhat different.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 2:19:31 AM
|
|
On 06-02-2011 21:10, Lawrence D'Oliveiro wrote:
> In message<4d4f5402$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 20:51, Lawrence D'Oliveiro wrote:
>>> In message<4d4f4387$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>> On 06-02-2011 18:54, Lawrence D'Oliveiro wrote:
>>>>> Strange that Java never copied the C++ operator names "and”, “or” and
>>>>> “not”.
>>>>
>>>> ????
>>>>
>>>> Java uses&&,&, ||, |, ! like C++.
>>>
>>> But not “and”, “or” and “not”.
>>
>> True.
>>
>> But since practically none uses them in C++, then ...
>
> I use them in all my C++ code.
I believe that.
With your language understanding that would be a good guess.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 2:20:44 AM
|
|
On 02/06/2011 09:00 PM, Lawrence D'Oliveiro wrote:
> In message<iimnes$dh2$1@news.eternal-september.org>, Joshua Cranmer wrote:
>
>> It's a macro generator that understands types and is heavily integrated
>> with the syntax of C++, but it is basically a way to automatically
>> generate code.
>
> You seem to be confusing one particular way of implementing
> generics/templates with the way the language feature is specified. Java
> generics could be implemented by a preprocessor that spat out first-edition
> Java code, for that matter. In fact, it effectively does, since the JVM
> seems to know nothing about generics. Would you then say that third-edition
> Java is nothing more than a “macro generator”?
I make a minor distinction between syntactic sugar--a language feature
which is designed to replace specific syntax features for ease of coding
(e.g., for-each loops)--and macro processing, which is generally
unrestricted code or text generation. Generics are syntactic sugar, in
that it only generates code in a "few" select places as opposed to
wholesale code production.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/7/2011 2:20:52 AM
|
|
On 02/06/2011 09:10 PM, Lawrence D'Oliveiro wrote:
> In message<4d4f5402$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>> On 06-02-2011 20:51, Lawrence D'Oliveiro wrote:
>>
>>> In message<4d4f4387$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>
>>>> On 06-02-2011 18:54, Lawrence D'Oliveiro wrote:
>>>>
>>>>> Strange that Java never copied the C++ operator names "and”, “or” and
>>>>> “not”.
>>>>
>>>> ????
>>>>
>>>> Java uses&&,&, ||, |, ! like C++.
>>>
>>> But not “and”, “or” and “not”.
>>
>> True.
>>
>> But since practically none uses them in C++, then ...
>
> I use them in all my C++ code.
And you, sir, are why we cannot have nice things. ;-)
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/7/2011 2:22:25 AM
|
|
On 06-02-2011 21:11, Lawrence D'Oliveiro wrote:
> In message<4d4f5367$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 20:52, Lawrence D'Oliveiro wrote:
>>> In message<4d4f4d64$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>> On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
>>>>> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
>>>>> Shanahan wrote:
>>>>>>
>>>>>> I am aware of one issue in the simple data types that reflects 32 bit
>>>>>> architecture, JLS section 17.7, "Non-atomic Treatment of double and
>>>>>> long".
>>>>>>
>>>>>> The big way in which Java is tied to 32 bit architectures is not in
>>>>>> the simple data types. It is the maximum size of an array, String,
>>>>>> Set, List etc.
>>>>>
>>>>> Also in the fact that array subscripts cannot be long.
>>>>
>>>> But that has nothing to do with simple data types.
>>>
>>> What is long?
>>
>> A simple data type.
>>
>> But it is still a characteristics of array not of long.
>
> Which is a limitation that comes from a fixation on 32-bit architectures,
> without a thought for 64-bit ones.
It is not an assumption about 32 bit architecture. 32 bit
architecture limits it more than the Java rule.
It is a bad assumption about memory availability in general.
Arne
have set the limit far lower than it is
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 2:22:52 AM
|
|
On 06-02-2011 21:00, Lawrence D'Oliveiro wrote:
> In message<iimnes$dh2$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> It's a macro generator that understands types and is heavily integrated
>> with the syntax of C++, but it is basically a way to automatically
>> generate code.
>
> You seem to be confusing one particular way of implementing
> generics/templates with the way the language feature is specified. Java
> generics could be implemented by a preprocessor that spat out first-edition
> Java code, for that matter.
Java generics could have been defined that way.
But they were not.
A generic Java class get compiled to a single
set of byte code.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 2:25:30 AM
|
|
On 06-02-2011 21:03, Lawrence D'Oliveiro wrote:
> In message<4d4f47bb$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 18:24, Lawrence D'Oliveiro wrote:
>>> In message<4d4f042b$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>> On 05-02-2011 23:13, Lawrence D'Oliveiro wrote:
>>>>> In message<iil5ed$10m$1@news.eternal-september.org>, Joshua Cranmer
>>>>> wrote:
>>>>>> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>>>>>>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>>>>>
>>>>>>>> ... templates and gener[ic]s are completely different beasts.
>>>>>>>
>>>>>>> “Completely” as in “having nothing in common”? Or is this some usage
>>>>>>> of “completely” that I wasn’t aware of?
>>>>>>>
>>>>>>> Please explain.
>>>>>>
>>>>>> Templates in C++ are basically advanced macros--each invocation of a
>>>>>> template type regenerates the class, so a Foo<int> and a Foo<double>
>>>>>> are two completely different things.
>>>>>
>>>>> They are different things in Java as well.
>>>>
>>>> No. Same code.
>>>
>>> Same code in C++ too, then.
>>
>> No.
>>
>> C++ will generate two classes with two sets of code.
>>
>> (at least that is what common compilers do - I don't know if
>> the standard actually requires it to)
>
> See, it’s clear you’re hung up on specifics of particular implementations,
> not on how the language feature is defined at all.
The language feature is what allows it.
That behavior would not be allowed in Java.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 2:26:25 AM
|
|
In message <4d4f5813$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 21:00, Lawrence D'Oliveiro wrote:
>
>> In message<iimnes$dh2$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>>
>>> It's a macro generator that understands types and is heavily integrated
>>> with the syntax of C++, but it is basically a way to automatically
>>> generate code.
>>
>> You seem to be confusing one particular way of implementing
>> generics/templates with the way the language feature is specified. Java
>> generics could be implemented by a preprocessor that spat out
>> first-edition Java code, for that matter.
>
> Java generics could have been defined that way.
>
> But they were not.
See, you cannot even distinguish between “defined” and “implemented”.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 2:51:12 AM
|
|
In message <iinku4$tbg$2@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/06/2011 09:00 PM, Lawrence D'Oliveiro wrote:
>
>> In message<iimnes$dh2$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>
>>> It's a macro generator that understands types and is heavily integrated
>>> with the syntax of C++, but it is basically a way to automatically
>>> generate code.
>>
>> You seem to be confusing one particular way of implementing
>> generics/templates with the way the language feature is specified. Java
>> generics could be implemented by a preprocessor that spat out
>> first-edition Java code, for that matter. In fact, it effectively does,
>> since the JVM seems to know nothing about generics. Would you then say
>> that third-edition Java is nothing more than a “macro generator”?
>
> I make a minor distinction between syntactic sugar--a language feature
> which is designed to replace specific syntax features for ease of coding
> (e.g., for-each loops)--and macro processing, which is generally
> unrestricted code or text generation.
In that case, C++ templates are most certainly not macros.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 2:52:05 AM
|
|
In message <4d4f56ac$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> As explained numerous times then Java generics and C++ templates
> are somewhat different.
The only differences arise from limitations of Java, nothing more.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 2:53:30 AM
|
|
In message <iinkf4$qmm$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/06/2011 06:26 PM, Lawrence D'Oliveiro wrote:
>
>> In message<iil9uk$b6m$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>
>>> It's not the same syntax. List<String> is the type of a specific
>>> instance, while the class still remains List.
>>
>> List<String> is a class, not an instance. In something like
>>
>> List<String> L;
>>
>> it is L that is the instance.
>
> L is an instance of a class. List<String> is an instance of a type, a
> type that is distinct from List (the raw type or the class type).
List<String> is a type, not an instance of a type.
> If you're having this much problems understanding me ...
Use the terms as they are defined in the Java Language Spec, and we can all
get along fine.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 2:55:09 AM
|
|
On 02/06/2011 09:53 PM, Lawrence D'Oliveiro wrote:
> In message<4d4f56ac$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>> As explained numerous times then Java generics and C++ templates
>> are somewhat different.
>
> The only differences arise from limitations of Java, nothing more.
That is not an assertion you can make. Java generics and C++ templates
are different because their designers wanted them to be different. It
would totally have been possible to implement C++ templates in Java--but
the designers decided that was not what they wanted to do. I don't know
what they would have done if they had added generics from the start, but
given all of the issues seen with templates, I am willing to guess that
it would still act nothing like templates do (i.e., as Java generics do
know, just with fully reified types).
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/7/2011 3:06:05 AM
|
|
On 06-02-2011 21:51, Lawrence D'Oliveiro wrote:
> In message<4d4f5813$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 21:00, Lawrence D'Oliveiro wrote:
>>> In message<iimnes$dh2$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> It's a macro generator that understands types and is heavily integrated
>>>> with the syntax of C++, but it is basically a way to automatically
>>>> generate code.
>>>
>>> You seem to be confusing one particular way of implementing
>>> generics/templates with the way the language feature is specified. Java
>>> generics could be implemented by a preprocessor that spat out
>>> first-edition Java code, for that matter.
>>
>> Java generics could have been defined that way.
>>
>> But they were not.
>
> See, you cannot even distinguish between “defined” and “implemented”.
You does not seem to have understood how Java generics are defined.
Such an implementation would not have been compliant.
In fact I think it would have been useless.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 3:06:30 AM
|
|
On 06-02-2011 21:53, Lawrence D'Oliveiro wrote:
> In message<4d4f56ac$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> As explained numerous times then Java generics and C++ templates
>> are somewhat different.
>
> The only differences arise from limitations of Java, nothing more.
No. The differences arise from different decisions on what they
wanted.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/7/2011 3:07:46 AM
|
|
On Sun, 06 Feb 2011 10:55:15 -0800, Patricia Shanahan wrote:
> Arne Vajhøj wrote:
>> On 05-02-2011 23:06, Lawrence D'Oliveiro wrote:
>>> In message<iijrj2$i0g$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> Also take into consideration the fact that the C++ standard does not
>>>> try to pin stuff down into unambiguous interoperable statements,
>>>> e.g., a precise size definition for size_t.
>>>
>>> It seems to me that’s another drawback of Java, that it explicitly
>>> defines
>>> the sizes of things from the viewpoint of 32-bit architectures like
>>> those current in the 1990s. Some of those decisions look less
>>> wonderful on current
>>> 64-bit architectures.
>>
>> There are nothing in defining the size of the simple data types that
>> are tied to 32 bit architecture.
>
> I am aware of one issue in the simple data types that reflects 32 bit
> architecture, JLS section 17.7, "Non-atomic Treatment of double and
> long".
>
> The big way in which Java is tied to 32 bit architectures is not in the
> simple data types. It is the maximum size of an array, String, Set, List
> etc.
It was unfortunate that they didn't define the get, size, etc. methods
for the java.util collections as taking/returning longs. If they had,
they could have just quietly dropped the 2^32 size limit on them at some
point without any existing code breaking. They'd have to add a new array
supertype for long-indexed arrays, which means new bytecode and a syntax
for declaring such arrays, but the collections could then have had their
innards quietly changed.
As it stands, they'll have to introduce a parallel hierarchy of long-
indexed array types and a syntax for declaring these, and then make more
complicated changes to java.util. Making existing collections support
bigger sizes is difficult, because a lot of code likely depends on the
size method returning an accurate count. Having size clamp at
Integer.MAX_VALUE while the real size gets larger would therefore break
things. Redefining size to return a long will also break things, whether
or not they also dropped the error on implicit narrowing assignments from
long to int. (They'd have to at least keep it a warning, for obvious
reasons; I'd vote for leaving it an error.) Redefining List.get() to take
a long maintains source compatibility (the implicit conversions here will
be widening) but not binary. Overloading List.get() to accept int or long
inputs maintains both, but with the size problem it's academic anyway.
They'll have to add BigCollection, BigList, BigMap ... or else create
java.util.big or java.util2 with parallel versions of everything.
What a pain.
The funny thing is they could have anticipated this and had longs in all
these places from the outset, with a soft limit based on when OOME got
thrown or even an exception throw at runtime for exceeding
Integer.MAX_VALUE and a compile-time error for too-big literal array
indices and sizes that could later be removed, if they didn't actually
implement giant arrays yet at that point. The language could have been
designed to allow for them later. But it wasn't.
Heck, they had BigInteger from the outset and could have gone so far as
to include a true numeric tower, implicit conversions all the way up to
BigInteger and not just long, Integer an abstract class with
ShortInteger, SmallInteger, LongInteger, and BigInteger as subclasses,
and Integer the return types of size methods, allowing for potentially
unlimited growth. (BigInteger uses an array under the hood and so
presumably has a limit of 2^31-1 words of size, but in this world it
would of course be capable of being bigger because arrays would be. Of
course, the bigger everything got the slower it would get ...)
|
|
0
|
|
|
|
Reply
|
Ken
|
2/7/2011 3:38:39 AM
|
|
On Sun, 06 Feb 2011 16:35:32 +0100, Thomas Richter wrote:
> Joshua Cranmer wrote:
>> On 02/05/2011 10:38 PM, Lawrence D'Oliveiro wrote:
>>> In message<4d4d8322$0$41117$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>
>>>> And Lew is correct: templates and genercis are completely different
>>>> beasts.
>>>
>>> “Completely” as in “having nothing in common”? Or is this some usage
>>> of “completely” that I wasn’t aware of?
>>>
>>> Please explain.
>>
>> Templates in C++ are basically advanced macros--each invocation of a
>> template type regenerates the class, so a Foo<int> and a Foo<double>
>> are two completely different things.
>
> That's much more than a macro could do. Templates are a language of its
> own, include syntax checks, etc. Quite unlike macros, they do not
> substitute text patterns. Templates allow meta-programming, i.e. you can
> use the compiler to generate code. And, of course, templates are quite
> complex - very unlike the simple-minded preprocessor.
I take it by "macros" you mean the simple-minded preprocessor macros of C
and C++. Lisp has things it calls "macros" that are much more
sophisticated, including syntax checks, etc., and are able to do
everything C++ templates can do and then some. Common Lisp macros can
generate templated CLOS classes, for instance.
|
|
0
|
|
|
|
Reply
|
Ken
|
2/7/2011 3:41:46 AM
|
|
In message <4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 18:23, Lawrence D'Oliveiro wrote:
>
>> In message<4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
>>
>>> In that flamewar, someone estimated the size of Clojure's documentation
>>> by browsing its website and counting pagedown keypresses needed to reach
>>> the bottom of each web page.
>>
>> Funny, I did the same thing for Python, just for comparison
>> <http://docs.python.org/py3k/reference/>. The figure I came up with for
>> that Language Reference was 92 pages. To be fair, I suppose you should
>> include the first 6 chapters of rhe Library Reference
>> <http://docs.python.org/py3k/library/>, which is another 69 pages, for a
>> total of 161.
>
> Either Python is a simple language or the language reference is not
> very detailed.
Go on, study the references for yourself, even get some experience with the
language, then let us know your verdict.
>> For comparison, I have a couple of draft C99 specs floating around. They
>> total 550 pages, until you realize most of that is section 7, the
>> standard library. Leave that out, and you end up with 163 pages.
>
> I am not sure that comparing a language reference with a standard
> spec gives much meaning.
That’s right, I forgot there is no “standard spec” for Java, it is simply
what Sunacle says it is.
> And the C spec leaves a lot of things to implementations.
Not too much that you can’t write portable code in it.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 6:06:18 AM
|
|
In message <4d4f61fb$0$23756$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 21:53, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f56ac$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> As explained numerous times then Java generics and C++ templates
>>> are somewhat different.
>>
>> The only differences arise from limitations of Java, nothing more.
>
> No. The differences arise from different decisions on what they
> wanted.
The Java designers wanted everything that C++ templates offered. The only
parts they omitted were the ones they couldn’t have.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 6:07:51 AM
|
|
In message <4d4f4a54$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 19:04, Thomas Richter wrote:
>
>> And in C++, a compiler can also> merge template instances because they
>> are identical, i.e. function alike, i.e. for example they all operate on
>> pointers.
>
> Possible. But if two template usages are compiled separatetly,
> then it is not possible.
Exercise for the reader: explain why Arne Vajhøj is wrong. For extra credit,
list the implicit preconceptions that might have led to such a wrong
conclusion.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 6:09:50 AM
|
|
"Lawrence D'Oliveiro" <ldo@geek-central.gen.new_zealand> wrote in message
news:iio27n$g2f$2@lust.ihug.co.nz...
> In message <4d4f61fb$0$23756$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>> On 06-02-2011 21:53, Lawrence D'Oliveiro wrote:
>>
>>> In message<4d4f56ac$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj
>>> wrote:
>>>
>>>> As explained numerous times then Java generics and C++ templates
>>>> are somewhat different.
>>>
>>> The only differences arise from limitations of Java, nothing more.
>>
>> No. The differences arise from different decisions on what they
>> wanted.
>
> The Java designers wanted everything that C++ templates offered.
"God, if only we could have gotten code bloat and terminally confused the
separation between compiler and linker!"
|
|
0
|
|
|
|
Reply
|
Mike
|
2/7/2011 6:42:34 AM
|
|
"Lawrence D'Oliveiro" <ldo@geek-central.gen.new_zealand> wrote in message
news:iio2be$g2f$3@lust.ihug.co.nz...
> In message <4d4f4a54$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>> On 06-02-2011 19:04, Thomas Richter wrote:
>>
>>> And in C++, a compiler can also> merge template instances because they
>>> are identical, i.e. function alike, i.e. for example they all operate on
>>> pointers.
>>
>> Possible. But if two template usages are compiled separatetly,
>> then it is not possible.
>
> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra
> credit,
> list the implicit preconceptions that might have led to such a wrong
> conclusion.
Arne is assuming that compilation and linking are separate phases. This was
one of the original design goals of C++, as you might recall from
Stroustrup's _Design and Evolution of C++_: that the C++ compiler produce
object code that the standard system linker could process. . It's no longer
true in many C++ development systems, precisely because templates make that
impossible to achieve with any efficiency.
|
|
0
|
|
|
|
Reply
|
Mike
|
2/7/2011 6:52:14 AM
|
|
On 2/7/11 2:52 PM, Mike Schilling wrote:
> [...]
>>> Possible. But if two template usages are compiled separatetly,
>>> then it is not possible.
>>
>> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra
>> credit,
>> list the implicit preconceptions that might have led to such a wrong
>> conclusion.
>
> Arne is assuming that compilation and linking are separate phases. This
> was one of the original design goals of C++, as you might recall from
> Stroustrup's _Design and Evolution of C++_: that the C++ compiler
> produce object code that the standard system linker could process. .
> It's no longer true in many C++ development systems, precisely because
> templates make that impossible to achieve with any efficiency.
I agree with Arne's statement from a practical point of view. However,
note that there's not really any theoretical reason a linker could not
inspect the object files for redundant code and optimize template usages
where possible.
A long time ago, I worked on a project that used a form of interpreted
byte code in which the linker did exactly that. In that situation, the
reason we were using the byte code in the first place was for
compression, to help the program fit in memory (it was a relatively
large program, running on Mac and Windows computers without virtual
memory). So the "quoting" feature was important enough to make it worth
doing.
In fact, that feature did not rely on C++ templates at all. We were
coding in plain C, and it detected any code that was essentially
copy/paste or nearly so.
Pete
|
|
0
|
|
|
|
Reply
|
Peter
|
2/7/2011 7:54:30 AM
|
|
On 2/7/11 3:54 PM, Peter Duniho wrote:
> [...]
> A long time ago, I worked on a project that used a form of interpreted
> byte code in which the linker did exactly that. In that situation, the
> reason we were using the byte code in the first place was for
> compression, to help the program fit in memory (it was a relatively
> large program, running on Mac and Windows computers without virtual
> memory). So the "quoting" feature was important enough to make it worth
> doing.
>
> In fact, that feature did not rely on C++ templates at all. We were
> coding in plain C, and it detected any code that was essentially
> copy/paste or nearly so.
I guess I should also mention that the interpreter itself supported the
quoting feature, so it was a lot simpler to rewrite any code that needed
to be shared: just remove the actual code and replace with the "quote"
instruction referring to the quoted code. There also was no
multi-threading for the code back in those days.
It'd be a bit more complicated for a linker to accomplish a similar
feature, but it's not like it's an intractable problem. I think turning
the quote into a function call would solve most issues, if not
everything, and of course if you quote an entire function, that's even
easier.
Pete
|
|
0
|
|
|
|
Reply
|
Peter
|
2/7/2011 8:21:49 AM
|
|
"Lawrence D'Oliveiro" spat:
>> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra credit,
>> list the implicit preconceptions that might have led to such a wrong
>> conclusion.
"Exercise for the reader" because the writer couldn't come up with any logical
or reasoned arguments, so he waves his hands and exercises trollishness instead.
What a maroon!
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/7/2011 12:29:29 PM
|
|
On 02/07/2011 01:06 AM, Lawrence D'Oliveiro wrote:
> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> And the C spec leaves a lot of things to implementations.
>
> Not too much that you can’t write portable code in it.
Writing portable code in C pretty much requires you to do hefty
compatibility layers. Many projects use typedefs to get proper-sized int
variables (you can't use stdint.h, as MSVC doesn't implement it, as of
MSVC 9.0). Anything more complex than basic I/O requires the use of
other, largely incompatible layers, for common things like
multithreading, asynchronous I/O, network I/O, etc. Let's not even get
into basic GUIs.
And even then, a careful reading of the C standard would reveal that it
gives very few absolute requirements of stuff, so that I could make
size_t be an 800-bit integer and still follow the standard, as well as
probably breaking everyone's so-called "portable C" code.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/7/2011 12:37:26 PM
|
|
Lawrence D'Oliveiro wrote:
> In message <iimf47$soo$1@news.belwue.de>, Thomas Richter wrote:
>
>> Templates allow meta-programming, i.e. you can use the compiler to
>> generate code.
>
> Why, what do compilers normally do?
Generate source code, or rather, evaluate expressions at compile time
rather than run time. Compilers usually take the source code and create
executable code from that, but the C++ template system allows you to
instruct the compiler to do parts of this evaluation while compiling.
So long,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/7/2011 1:53:02 PM
|
|
Lawrence D'Oliveiro wrote:
> In message <iinft1$95e$1@speranza.aioe.org>, javax.swing.JSnarker wrote:
>
>> On 06/02/2011 7:32 PM, Lawrence D'Oliveiro wrote:
>>
>>> In message<iincuv$ot9$1@news.belwue.de>, Thomas Richter wrote:
>>>
>>>> There is no "ClassCastException" in C++.
>>> Yes there is. It’s called “bad_cast”. Where do you think Java got the
>>> idea from?
>> dynamic_cast<foo>(bar) can throw this if bar is not really a foo. But
>> C++ lets you use the unsafe old (foo)bar cast from C, and if bar is not
>> really a foo, welcome to undefined behaviorville.
>
> The fact remains, there IS an equivalent to ClassCastException in C++.
The fact remains that this is irrelevant to the discussion. Templates
aren't used like this in C++, and the C++ compiler doesn't insert a type
check into the binary to see whether the types match. The type check is
done at compile time. Besides, dynamic_cast<> only throws if the
involved objects have virtual functions, and thus have run time type
information available, and the types are not compatible. It thus also
works quite different.
Greetings,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/7/2011 1:57:40 PM
|
|
Lew wrote:
> "Lawrence D'Oliveiro" spat:
>>> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra
>>> credit,
>>> list the implicit preconceptions that might have led to such a wrong
>>> conclusion.
>
> "Exercise for the reader" because the writer couldn't come up with any
> logical or reasoned arguments, so he waves his hands and exercises
> trollishness instead.
Not at all. The reason is exactly as already stated, namely that people
seem to assume that the linker has no intelligence, or that there is a
linker in first place. Nevertheless, the C++ standard doesn't even
define linking, and the world is no longer that simple. Thus, I still
don't see how this argument applies. Surely the C++ world works
different from the java world, but saying that there is no duplicate
code in Java or that there is always code duplication in C++ is surely
wrong.
Greetings,
Thomas
|
|
0
|
|
|
|
Reply
|
Thomas
|
2/7/2011 2:01:35 PM
|
|
On 02/07/2011 03:15 AM, Arne Vajhøj wrote:
> On 06-02-2011 20:55, Lawrence D'Oliveiro wrote:
>> In message<4d4e7634$0$81475$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>> Oh, I remember how well C++ and its undefined sizes of things served us
>>> when we had to port heaps of code from 16-bit to 32-bit.
>
> It is 8086 architecture not 80286 architecture.
>
>> By “16-bit” I take it you specifically mean “Windows/Intel 16-bit”,
>> i.e. the
>> segmented 80286 architecture (spit). That was the only major 16-bit
>> architecture I’m aware of that made portability difficult.
>
> Windows has nothing to do with CPU architecture.
>
> And the problem Silvio talks about (undefined sizes) is
> not related to segmented memory.
>
> Arne
>
>
>
Absolutely correct. It is very easy to write potentially broken C++
programs that run perfectly fine on a certain architecture compiled with
a certain C++ compiler using a certain set of compiler options.
Bad programs may depend on different types of invalid assumptions. To
name a few: assume sizeof(T)==sizeof(U), assume char is signed/unsigned,
assume bitfields are signed/unsigned, make assumptions about struct
alignment.
For certain APIs (MS Windows conatins lots of them) struct layout
assumpations are essential. Since there was no standard way of
expressing such assumtions code could easily break just by changing some
compiler options. For that reason, each C++ distro came with its own
Windows header files.
Perhaps things have improved since I moved away from C++ in '99.
|
|
0
|
|
|
|
Reply
|
Silvio
|
2/7/2011 5:58:00 PM
|
|
In message <iiop28$8jj$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/07/2011 01:06 AM, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>> And the C spec leaves a lot of things to implementations.
>>
>> Not too much that you can’t write portable code in it.
>
> Writing portable code in C pretty much requires you to do hefty
> compatibility layers.
Not really. Sticking to standard POSIX types like size_t, time_t etc gets
you a lot of the way there.
> Many projects use typedefs to get proper-sized int variables (you can't
> use stdint.h, as MSVC doesn't implement it, as of MSVC 9.0).
How sad for MSVC...
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 8:22:24 PM
|
|
In message <iiotfv$2i3$1@news.belwue.de>, Thomas Richter wrote:
> Lawrence D'Oliveiro wrote:
>
>> In message <iimf47$soo$1@news.belwue.de>, Thomas Richter wrote:
>>
>>> Templates allow meta-programming, i.e. you can use the compiler to
>>> generate code.
>>
>> Why, what do compilers normally do?
>
> Generate source code ...
Really??
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 8:22:54 PM
|
|
In message <4d4f693f@news.x-privat.org>, Ken Wesson wrote:
> Heck, they had BigInteger from the outset and could have gone so far as
> to include a true numeric tower, implicit conversions all the way up to
> BigInteger ...
Which is what Python did.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 8:47:29 PM
|
|
In message <4d4f5774$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 21:11, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f5367$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 06-02-2011 20:52, Lawrence D'Oliveiro wrote:
>>>
>>>> In message<4d4f4d64$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj
>>>> wrote:
>>>>
>>>>> On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
>>>>>
>>>>>> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
>>>>>> Shanahan wrote:
>>>>>>>
>>>>>>> I am aware of one issue in the simple data types that reflects 32
>>>>>>> bit architecture, JLS section 17.7, "Non-atomic Treatment of double
>>>>>>> and long".
>>>>>>>
>>>>>>> The big way in which Java is tied to 32 bit architectures is not in
>>>>>>> the simple data types. It is the maximum size of an array, String,
>>>>>>> Set, List etc.
>>>>>>
>>>>>> Also in the fact that array subscripts cannot be long.
>>>>>
>>>>> But that has nothing to do with simple data types.
>>>>
>>>> What is long?
>>>
>>> A simple data type.
>>>
>>> But it is still a characteristics of array not of long.
>>
>> Which is a limitation that comes from a fixation on 32-bit architectures,
>> without a thought for 64-bit ones.
>
> It is not an assumption about 32 bit architecture. 32 bit
> architecture limits it more than the Java rule.
But the Java rule is the limitation now.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/7/2011 8:48:14 PM
|
|
On 02/07/2011 03:22 PM, Lawrence D'Oliveiro wrote:
> In message<iiotfv$2i3$1@news.belwue.de>, Thomas Richter wrote:
>
>> Lawrence D'Oliveiro wrote:
>>
>>> In message<iimf47$soo$1@news.belwue.de>, Thomas Richter wrote:
>>>
>>>> Templates allow meta-programming, i.e. you can use the compiler to
>>>> generate code.
>>>
>>> Why, what do compilers normally do?
>>
>> Generate source code ...
>
> Really??
You trimmed the part where he elaborated on what that phrase meant.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/7/2011 10:25:23 PM
|
|
On 11-02-06 08:29 PM, Lawrence D'Oliveiro wrote:
> In message<4d4e25e8@news.x-privat.org>, Ken Wesson wrote:
>
>> Java is very widely used for network and business applications, and web
>> apps, these days ...
>
> I was trying to make sense of where you were coming from with your
> predictions, and then I realized—you’re primarily talking about corporate
> development. Because that’s just about the only place languages like Java
> and C#/Dotnet get much use.
You make "corporate" software sound like a niche market. Yeah, software
for business and governments is such a little category, ain't it.
> Very few mass-market or open-source apps are
> written in those languages, for example.
Holy fuck. You're officially completely detached from reality.
[ SNIP ]
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
Arved
|
2/7/2011 11:14:57 PM
|
|
On 7/02/2011 5:07 PM, Lawrence D'Oliveiro wrote:
> The Java designers wanted everything that C++ templates offered.
It should be obvious from the design that they wanted a great deal more
than that. They wanted a coherent type system for a start, which C++
templates don't have, and they wanted compile-time safety, which
*requires* a coherent type system. That's what all the T super X and T
extends Y stuff is for - so the compiler can do type algebra. None of
this appears in C++ whatsoever.
It is totally and utterly wrong misleading to think of Java Generics and
C++ templates as similar. They are really polar opposites. C++ templates
generate new types. Java Generics restrict existing types.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/7/2011 11:26:01 PM
|
|
On 07-02-2011 01:07, Lawrence D'Oliveiro wrote:
> In message<4d4f61fb$0$23756$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 21:53, Lawrence D'Oliveiro wrote:
>>> In message<4d4f56ac$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>> As explained numerous times then Java generics and C++ templates
>>>> are somewhat different.
>>>
>>> The only differences arise from limitations of Java, nothing more.
>>
>> No. The differences arise from different decisions on what they
>> wanted.
>
> The Java designers wanted everything that C++ templates offered. The only
> parts they omitted were the ones they couldn’t have.
Why do you think that?
They implemented something very different.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/8/2011 12:44:25 AM
|
|
On 07-02-2011 09:01, Thomas Richter wrote:
> Lew wrote:
>> "Lawrence D'Oliveiro" spat:
>>>> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra
>>>> credit,
>>>> list the implicit preconceptions that might have led to such a wrong
>>>> conclusion.
>>
>> "Exercise for the reader" because the writer couldn't come up with any
>> logical or reasoned arguments, so he waves his hands and exercises
>> trollishness instead.
>
> Not at all. The reason is exactly as already stated, namely that people
> seem to assume that the linker has no intelligence, or that there is a
> linker in first place. Nevertheless, the C++ standard doesn't even
> define linking, and the world is no longer that simple. Thus, I still
> don't see how this argument applies. Surely the C++ world works
> different from the java world, but saying that there is no duplicate
> code in Java or that there is always code duplication in C++ is surely
> wrong.
It how the simple implementations do it.
It is what the common implementations do it.
What various super smart optimizers may do is pretty
far fetched.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/8/2011 12:49:03 AM
|
|
On 06-02-2011 10:35, Thomas Richter wrote:
> Joshua Cranmer wrote:
>> Templates in C++ are basically advanced macros--each invocation of a
>> template type regenerates the class, so a Foo<int> and a Foo<double>
>> are two completely different things.
>
> That's much more than a macro could do. Templates are a language of its
> own, include syntax checks, etc. Quite unlike macros, they do not
> substitute text patterns. Templates allow meta-programming, i.e. you can
> use the compiler to generate code. And, of course, templates are quite
> complex - very unlike the simple-minded preprocessor.
C++ templates are like many other C++ features very powerful.
You can create some very elegant solution or make a big hole
in your foot with it.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 12:52:48 AM
|
|
On 07-02-2011 01:06, Lawrence D'Oliveiro wrote:
> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 18:23, Lawrence D'Oliveiro wrote:
>>> For comparison, I have a couple of draft C99 specs floating around. They
>>> total 550 pages, until you realize most of that is section 7, the
>>> standard library. Leave that out, and you end up with 163 pages.
>>
>> I am not sure that comparing a language reference with a standard
>> spec gives much meaning.
>
> That’s right, I forgot there is no “standard spec” for Java, it is simply
> what Sunacle says it is.
What do you think the S in JLS stands for?
>> And the C spec leaves a lot of things to implementations.
>
> Not too much that you can’t write portable code in it.
Real C apps that will run predictable on any platform is
pretty rare.
Real C apps that support a wide range of platforms via
ifdef's are common.
C apps that the programmer think is portable but is not
are also common.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 12:56:01 AM
|
|
On 07-02-2011 15:22, Lawrence D'Oliveiro wrote:
> In message<iiop28$8jj$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> On 02/07/2011 01:06 AM, Lawrence D'Oliveiro wrote:
>>> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>> And the C spec leaves a lot of things to implementations.
>>>
>>> Not too much that you can’t write portable code in it.
>>
>> Writing portable code in C pretty much requires you to do hefty
>> compatibility layers.
>
> Not really. Sticking to standard POSIX types like size_t, time_t etc gets
> you a lot of the way there.
POSIX does not cover all aspects.
And not all platforms are POSIX compliant.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 12:57:30 AM
|
|
On 07-02-2011 12:58, Silvio wrote:
> On 02/07/2011 03:15 AM, Arne Vajhøj wrote:
>> On 06-02-2011 20:55, Lawrence D'Oliveiro wrote:
>>> In message<4d4e7634$0$81475$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>> Oh, I remember how well C++ and its undefined sizes of things served us
>>>> when we had to port heaps of code from 16-bit to 32-bit.
>>
>> It is 8086 architecture not 80286 architecture.
>>
>>> By “16-bit” I take it you specifically mean “Windows/Intel 16-bit”,
>>> i.e. the
>>> segmented 80286 architecture (spit). That was the only major 16-bit
>>> architecture I’m aware of that made portability difficult.
>>
>> Windows has nothing to do with CPU architecture.
>>
>> And the problem Silvio talks about (undefined sizes) is
>> not related to segmented memory.
> Absolutely correct. It is very easy to write potentially broken C++
> programs that run perfectly fine on a certain architecture compiled with
> a certain C++ compiler using a certain set of compiler options.
>
> Bad programs may depend on different types of invalid assumptions. To
> name a few: assume sizeof(T)==sizeof(U), assume char is signed/unsigned,
> assume bitfields are signed/unsigned, make assumptions about struct
> alignment.
>
> For certain APIs (MS Windows conatins lots of them) struct layout
> assumpations are essential. Since there was no standard way of
> expressing such assumtions code could easily break just by changing some
> compiler options. For that reason, each C++ distro came with its own
> Windows header files.
>
> Perhaps things have improved since I moved away from C++ in '99.
The current C and C++ standards are from 99 and 98, so not
that much has changed.
I think that compiler support for the standards has improved some.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 12:59:16 AM
|
|
On 07-02-2011 15:48, Lawrence D'Oliveiro wrote:
> In message<4d4f5774$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>> On 06-02-2011 21:11, Lawrence D'Oliveiro wrote:
>>
>>> In message<4d4f5367$0$23761$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>
>>>> On 06-02-2011 20:52, Lawrence D'Oliveiro wrote:
>>>>
>>>>> In message<4d4f4d64$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj
>>>>> wrote:
>>>>>
>>>>>> On 06-02-2011 18:14, Lawrence D'Oliveiro wrote:
>>>>>>
>>>>>>> In message<b5GdnQ-xIKYHc9PQnZ2dnUVZ_vCdnZ2d@earthlink.com>, Patricia
>>>>>>> Shanahan wrote:
>>>>>>>>
>>>>>>>> I am aware of one issue in the simple data types that reflects 32
>>>>>>>> bit architecture, JLS section 17.7, "Non-atomic Treatment of double
>>>>>>>> and long".
>>>>>>>>
>>>>>>>> The big way in which Java is tied to 32 bit architectures is not in
>>>>>>>> the simple data types. It is the maximum size of an array, String,
>>>>>>>> Set, List etc.
>>>>>>>
>>>>>>> Also in the fact that array subscripts cannot be long.
>>>>>>
>>>>>> But that has nothing to do with simple data types.
>>>>>
>>>>> What is long?
>>>>
>>>> A simple data type.
>>>>
>>>> But it is still a characteristics of array not of long.
>>>
>>> Which is a limitation that comes from a fixation on 32-bit architectures,
>>> without a thought for 64-bit ones.
>>
>> It is not an assumption about 32 bit architecture. 32 bit
>> architecture limits it more than the Java rule.
>
> But the Java rule is the limitation now.
I think everybody agrees with that.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 1:00:13 AM
|
|
On 02/07/2011 01:07 AM, Lawrence D'Oliveiro wrote:
> The Java designers wanted everything that C++ templates offered. The only
> parts they omitted were the ones they couldn’t have.
No, it is very possible to have fully implemented C++ templates. As C++
templates are basically a semantically-aware macro processor whose code
is created at instantiation as opposed to definition, you just have to
generate the class files at template instantiation as opposed to class
definition. That basically boils down to "twiddle a few bits in the
class file", so it's no more invasive than generics was.
If you argue that wasn't an option because they didn't want to rewrite
the collections API (which .NET decided to do), it's still possible to
leverage roughly the same effect with more invasive modifications to the
bytecode. You can get reified types by creating a new method info
structure which captures the generic arguments passed into the method
(for constructors, this would be the generic class passed in), which you
could store in an appropriate synthetic variable. You could even get the
duck typing nature of templates with invokedynamic (well, it wouldn't
work for primitive types, but generics already through those out the
window).
They could have had all of C++ templates. Clearly, they did not feel the
benefits of full template support would be worth the cost of implementation.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Joshua
|
2/8/2011 2:20:49 AM
|
|
In message <4d4f55ba$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 20:55, Lawrence D'Oliveiro wrote:
>
>> In message<4d4e7634$0$81475$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>
>>> Oh, I remember how well C++ and its undefined sizes of things served us
>>> when we had to port heaps of code from 16-bit to 32-bit.
>
> It is 8086 architecture not 80286 architecture.
>
>> By “16-bit” I take it you specifically mean “Windows/Intel 16-bit”, i.e.
>> the segmented 80286 architecture (spit). That was the only major 16-bit
>> architecture I’m aware of that made portability difficult.
>
> Windows has nothing to do with CPU architecture.
DOS/Windows is the only reason 8086/80286 segmented architectures became
popular.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 2:57:13 AM
|
|
In message <4d5032a8$0$41114$e4fe514c@news.xs4all.nl>, Silvio wrote:
> For certain APIs (MS Windows conatins lots of them) struct layout
> assumpations are essential.
POSIX manages such things in a portable way. Windows not only doesn’t, it
manages to saddle Win64 APIs with all kinds of 32-bit compatibility baggage
from Win32.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 2:59:04 AM
|
|
In message <4d4f54fc$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 06-02-2011 20:53, Lawrence D'Oliveiro wrote:
>
>> In message<iilaco$dd0$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>
>>> I would venture a guess that most C or C++ code isn't as easily portable
>>> to 64-bit platforms as you would think ...
>>
>> Most of the C/C++ code I deal with is open-source, and essentially all of
>> that is portable between 32-bit and 64-bit nowadays. As well as across
>> non- x86 architectures, for that matter.
>
> Without ifdef's ????
Relevance being?
>> Ironic, isn’t it, that the early Java slogan was "write once, run
>> everywhere”...
>
> anywhere not everywhere
Is Java for anyone, or everyone?
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 3:00:01 AM
|
|
In message <4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 07-02-2011 01:06, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 06-02-2011 18:23, Lawrence D'Oliveiro wrote:
>>>>
>>>> For comparison, I have a couple of draft C99 specs floating around.
>>>> They total 550 pages, until you realize most of that is section 7, the
>>>> standard library. Leave that out, and you end up with 163 pages.
>>>
>>> I am not sure that comparing a language reference with a standard
>>> spec gives much meaning.
>>
>> That’s right, I forgot there is no “standard spec” for Java, it is simply
>> what Sunacle says it is.
>
> What do you think the S in JLS stands for?
Not “standard”.
>>> And the C spec leaves a lot of things to implementations.
>>
>> Not too much that you can’t write portable code in it.
>
> Real C apps that will run predictable on any platform is
> pretty rare.
Really?? We have them coming out our ears. I have thousands of them
installed on my system alone. Let’s see, the Linux kernel, 15 million lines
of source code, almost entirely in C, portable across about two dozen
different major processor architectures. GCC, Apache, Python, Blender (a
million lines of C, plus about 220 thousand lines of C++), Gimp ... the list
goes on and on.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 3:06:08 AM
|
|
In message <4d5094f2$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 07-02-2011 15:22, Lawrence D'Oliveiro wrote:
>
>> In message<iiop28$8jj$1@news.eternal-september.org>, Joshua Cranmer
>> wrote:
>>>
>>> On 02/07/2011 01:06 AM, Lawrence D'Oliveiro wrote:
>>>
>>>> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj
>>>> wrote:
>>>>> And the C spec leaves a lot of things to implementations.
>>>>
>>>> Not too much that you can’t write portable code in it.
>>>
>>> Writing portable code in C pretty much requires you to do hefty
>>> compatibility layers.
>>
>> Not really. Sticking to standard POSIX types like size_t, time_t etc gets
>> you a lot of the way there.
>
> POSIX does not cover all aspects.
Well, you need tools like autoconf as well to handle the more complicated
cases.
> And not all platforms are POSIX compliant.
All the ones worth using are.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 3:06:53 AM
|
|
On 07-02-2011 22:00, Lawrence D'Oliveiro wrote:
> In message<4d4f54fc$0$23753$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 20:53, Lawrence D'Oliveiro wrote:
>>> In message<iilaco$dd0$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> I would venture a guess that most C or C++ code isn't as easily portable
>>>> to 64-bit platforms as you would think ...
>>>
>>> Most of the C/C++ code I deal with is open-source, and essentially all of
>>> that is portable between 32-bit and 64-bit nowadays. As well as across
>>> non- x86 architectures, for that matter.
>>
>> Without ifdef's ????
>
> Relevance being?
That it is not portable - it just support a number of platforms.
>>> Ironic, isn’t it, that the early Java slogan was "write once, run
>>> everywhere”...
>>
>> anywhere not everywhere
>
> Is Java for anyone, or everyone?
The slogan used "anywhere".
(which is why the acronym is WORA not WORE)
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 3:07:01 AM
|
|
In message <iiprgj$1h4$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/07/2011 03:22 PM, Lawrence D'Oliveiro wrote:
>
>> In message<iiotfv$2i3$1@news.belwue.de>, Thomas Richter wrote:
>>
>>> Lawrence D'Oliveiro wrote:
>>>
>>>> In message<iimf47$soo$1@news.belwue.de>, Thomas Richter wrote:
>>>>
>>>>> Templates allow meta-programming, i.e. you can use the compiler to
>>>>> generate code.
>>>>
>>>> Why, what do compilers normally do?
>>>
>>> Generate source code ...
>>
>> Really??
>
> You trimmed the part where he elaborated on what that phrase meant.
You mean, where he explained “generate” didn’t mean “generate”, or “source
code” didn’t mean “source code”?
Black is white. Let me alaborate on that: no it isn’t.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 3:08:10 AM
|
|
On 07-02-2011 21:57, Lawrence D'Oliveiro wrote:
> In message<4d4f55ba$0$23758$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 06-02-2011 20:55, Lawrence D'Oliveiro wrote:
>>> In message<4d4e7634$0$81475$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>
>>>> Oh, I remember how well C++ and its undefined sizes of things served us
>>>> when we had to port heaps of code from 16-bit to 32-bit.
>>
>> It is 8086 architecture not 80286 architecture.
>>
>>> By “16-bit” I take it you specifically mean “Windows/Intel 16-bit”, i.e.
>>> the segmented 80286 architecture (spit). That was the only major 16-bit
>>> architecture I’m aware of that made portability difficult.
>>
>> Windows has nothing to do with CPU architecture.
>
> DOS/Windows is the only reason 8086/80286 segmented architectures became
> popular.
That does not make Windows part of the CPU architecture.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 3:09:07 AM
|
|
On 8/02/2011 1:57 PM, Lawrence D'Oliveiro wrote:
> DOS/Windows is the only reason 8086/80286 segmented architectures became
> popular.
Another blanket statement ex cathedra.
That's not what the guys at Intel think, or the guys at Motorola either.
They will tell you that despite its ugliness at the point of code
generation the Intel segmented architecture yielded very significant
cost and performance benefits that basically drove Motorola out of the
market.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/8/2011 3:13:31 AM
|
|
On 07-02-2011 21:59, Lawrence D'Oliveiro wrote:
> In message<4d5032a8$0$41114$e4fe514c@news.xs4all.nl>, Silvio wrote:
>> For certain APIs (MS Windows conatins lots of them) struct layout
>> assumpations are essential.
>
> POSIX manages such things in a portable way.
No.
POSIX does the same thing as Windows.
Use compiler specific header files to get the correct
physical layout.
(POSIX uses fewer structs than Windows, but ...)
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 3:13:50 AM
|
|
In message <iiotom$2ml$1@news.belwue.de>, Thomas Richter wrote:
> Lawrence D'Oliveiro wrote:
>
>> In message <iinft1$95e$1@speranza.aioe.org>, javax.swing.JSnarker wrote:
>>
>>> On 06/02/2011 7:32 PM, Lawrence D'Oliveiro wrote:
>>>
>>>> In message<iincuv$ot9$1@news.belwue.de>, Thomas Richter wrote:
>>>>
>>>>> There is no "ClassCastException" in C++.
>>>>
>>>> Yes there is. It’s called “bad_cast”. Where do you think Java got the
>>>> idea from?
>>>>
>>> dynamic_cast<foo>(bar) can throw this if bar is not really a foo. But
>>> C++ lets you use the unsafe old (foo)bar cast from C, and if bar is not
>>> really a foo, welcome to undefined behaviorville.
>>
>> The fact remains, there IS an equivalent to ClassCastException in C++.
>
> The fact remains that this is irrelevant to the discussion.
The fact remains, the poster said “There is no "ClassCastException" in C++”,
which I understood to mean “There is no equivalent to "ClassCastException"
in C++”, which is wrong.
> Templates aren't used like this in C++ ...
Templates are orthogonal to the business of class casts.
> ... and the C++ compiler doesn't insert a type check into the binary to
> see whether the types match.
It does for the C++ equivalent to the Java subclass cast.
> Besides, dynamic_cast<> only throws if the involved objects have virtual
> functions, and thus have run time type information available, and the
> types are not compatible.
I went over section 5.2.7 “Dynamic cast” of the C++ standard very carefully,
and I can find no such proviso. It’s only a page and a half, so I think it’s
unlikely I missed anything.
Have a look for yourself and see if I’m right or wrong.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/8/2011 3:15:31 AM
|
|
In message <4d507f8a$0$32793$c30e37c6@exi-reader.telstra.net>, Esmond Pitt
wrote:
> On 7/02/2011 5:07 PM, Lawrence D'Oliveiro wrote:
>
>> The Java designers wanted everything that C++ templates offered.
>
> It should be obvious from the design that they wanted a great deal more
> than that. They wanted a coherent type system for a start, which C++
> templates don't have ...
In that case, they went backwards. Because the whole “raw types” concept
detracts from and weakens the coherence of the type system.
> That's what all the T super X and T extends Y stuff is for - so the
> compiler can do type algebra. None of this appears in C++ whatsoever.
What one hand giveth, the other taketh away...
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 3:17:05 AM
|
|
On 07-02-2011 22:06, Lawrence D'Oliveiro wrote:
> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>> On 07-02-2011 01:06, Lawrence D'Oliveiro wrote:
>>
>>> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>
>>>> On 06-02-2011 18:23, Lawrence D'Oliveiro wrote:
>>>>>
>>>>> For comparison, I have a couple of draft C99 specs floating around.
>>>>> They total 550 pages, until you realize most of that is section 7, the
>>>>> standard library. Leave that out, and you end up with 163 pages.
>>>>
>>>> I am not sure that comparing a language reference with a standard
>>>> spec gives much meaning.
>>>
>>> That’s right, I forgot there is no “standard spec” for Java, it is simply
>>> what Sunacle says it is.
>>
>> What do you think the S in JLS stands for?
>
> Not “standard”.
specification
It is the specification for Java.
>>>> And the C spec leaves a lot of things to implementations.
>>>
>>> Not too much that you can’t write portable code in it.
>>
>> Real C apps that will run predictable on any platform is
>> pretty rare.
>
> Really?? We have them coming out our ears. I have thousands of them
> installed on my system alone. Let’s see, the Linux kernel, 15 million lines
> of source code, almost entirely in C, portable across about two dozen
> different major processor architectures. GCC, Apache, Python, Blender (a
> million lines of C, plus about 220 thousand lines of C++), Gimp ... the list
> goes on and on.
No. I don't think many of those apps are portable C. Most likely
none of them are. Those apps are just ported to a number of platforms.
Ported by someone adding #ifdef sections etc. to make them work
on a specific platform.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 3:17:34 AM
|
|
On 07-02-2011 22:06, Lawrence D'Oliveiro wrote:
> In message<4d5094f2$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 07-02-2011 15:22, Lawrence D'Oliveiro wrote:
>>> In message<iiop28$8jj$1@news.eternal-september.org>, Joshua Cranmer
>>> wrote:
>>>> On 02/07/2011 01:06 AM, Lawrence D'Oliveiro wrote:
>>>>> In message<4d4f45fc$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj
>>>>> wrote:
>>>>>> And the C spec leaves a lot of things to implementations.
>>>>>
>>>>> Not too much that you can’t write portable code in it.
>>>>
>>>> Writing portable code in C pretty much requires you to do hefty
>>>> compatibility layers.
>>>
>>> Not really. Sticking to standard POSIX types like size_t, time_t etc gets
>>> you a lot of the way there.
>>
>> POSIX does not cover all aspects.
>
> Well, you need tools like autoconf as well to handle the more complicated
> cases.
The existence of that tool is an indication that there is a
portability problem.
But autoconf does not solve all problems.
>> And not all platforms are POSIX compliant.
>
> All the ones worth using are.
Well - I don't think anyone defines portability as
running unchanged on the platform one specific
person considers worth using.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/8/2011 3:20:35 AM
|
|
"Lawrence D'Oliveiro" wrote:
>> DOS/Windows is the only reason 8086/80286 segmented architectures became
>> popular.
Esmond Pitt wrote:
> Another blanket statement ex cathedra.
>
> That's not what the guys at Intel think, or the guys at Motorola either. They
> will tell you that despite its ugliness at the point of code generation the
> Intel segmented architecture yielded very significant cost and performance
> benefits that basically drove Motorola out of the market.
Intel brought quite a few innovations in quite early, many of which went
nearly unnoticed for a while. The '286 and up have privilege rings and
support for multitasking in the hardware, for example. Only a couple of OSes
really used that stuff back then.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/8/2011 4:19:38 AM
|
|
Joshua Cranmer wrote :
> On 02/06/2011 06:54 PM, Lawrence D'Oliveiro wrote:
>> Strange that Java never copied the C++ operator names "and”, “or” and
>> “not”.
>
> Why should it have? They're just aliases for other objects. By your
> reasoning, Java should also have copied the C trigraphs or the other tokens
> in the "Alternative tokens". You know, for the three people in the world who
> do not have { on their keyboard.
Actually trigraphs are more for environments that do not have []^~ and
a few other characters in their character set. Such as IBM mainframe
OSs.
I had to write a standard C to IBM mainframe converter a few years ago
(yikes, 1990!). Things like variable names need to be upper case, limit
of 8 characters for variables, methods, etc.
--
Wojtek :-)
|
|
0
|
|
|
|
Reply
|
Wojtek
|
2/8/2011 4:43:44 AM
|
|
"Wojtek" <nowhere@a.com> wrote in message
news:mn.3cdb7db26ff3ad18.70216@a.com...
>
> I had to write a standard C to IBM mainframe converter a few years ago
> (yikes, 1990!).
Good! (That I'm not the only one who does that.)
|
|
0
|
|
|
|
Reply
|
Mike
|
2/8/2011 5:03:52 AM
|
|
On 8/02/2011 2:17 PM, Lawrence D'Oliveiro wrote:
> In that case, they went backwards. Because the whole “raw types” concept
> detracts from and weakens the coherence of the type system.
It provides backwards compatibility. Without that the product would be
unusable. It is possible to wish that the entire product was designed at
the same time, but it wasn't. In any case your contention was mistaken.
The designers also went forwards a very considerable distance by
providing generic classes that have provable type relationships among
them. C++ simply doesn't have that. You need to stop overlooking this point.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/8/2011 5:51:53 AM
|
|
On 8/02/2011 3:19 PM, Lew wrote:
> Intel brought quite a few innovations in quite early, many of which went
> nearly unnoticed for a while. The '286 and up have privilege rings and
> support for multitasking in the hardware, for example. Only a couple of
> OSes really used that stuff back then.
Exactly, and neither DOS nor Windows 2/3 being in that list.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/8/2011 5:53:49 AM
|
|
In message <4d50b4dc$0$32795$c30e37c6@exi-reader.telstra.net>, Esmond Pitt
wrote:
> On 8/02/2011 1:57 PM, Lawrence D'Oliveiro wrote:
>
>> DOS/Windows is the only reason 8086/80286 segmented architectures became
>> popular.
>
> That's not what the guys at Intel think, or the guys at Motorola either.
> They will tell you that despite its ugliness at the point of code
> generation the Intel segmented architecture yielded very significant
> cost and performance benefits that basically drove Motorola out of the
> market.
Intel had the volume advantage, that’s all. And it got the volume from
DOS/Windows, nothing else.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 7:31:31 AM
|
|
In message <4d50da6e$0$32794$c30e37c6@exi-reader.telstra.net>, Esmond Pitt
wrote:
>> The '286 and up have privilege rings and support for multitasking in the
>> hardware, for example. Only a couple of OSes really used that stuff back
>> then.
>
> Exactly, and neither DOS nor Windows 2/3 being in that list.
Nobody seriously used that stuff, because none of it was of any use.
The only OS designed to try to make use of it, OS/2, flopped.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/8/2011 7:32:38 AM
|
|
Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> wrote:
> Because the whole “raw types” concept detracts from and weakens
> the coherence of the type system.
The "problem" about type-erasure is over-rated.
Suppose, an instance created so: Object o = new ArrayList<String>();
actually "knew" that it was an ArrayList of Strings (and not just
that it was an ArrayList, as it does now).
Then you would get a *runtime*-Error, if you tried to cast "o" to
ArrayList<Integer>, later. But generics aren't about runtime errors.
They are about being able to prevent some runtime-errors, by turning
them into compile-time errors. So, giving *still runtime*-errors for
casting between generic types of incompatible parametrizations is only
little win over giving runtime-errors on element-use.
|
|
0
|
|
|
|
Reply
|
Andreas
|
2/8/2011 10:25:51 AM
|
|
Andreas Leitgeb wrote:
> The "problem" about type-erasure is over-rated.
>
> Suppose, an instance created so: Object o = new ArrayList<String>();
> actually "knew" that it was an ArrayList of Strings (and not just
> that it was an ArrayList, as it does now).
> Then you would get a *runtime*-Error, if you tried to cast "o" to
> ArrayList<Integer>, later. But generics aren't about runtime errors.
> They are about being able to prevent some runtime-errors, by turning
> them into compile-time errors. So, giving *still runtime*-errors for
> casting between generic types of incompatible parametrizations is only
> little win over giving runtime-errors on element-use.
I'm very glad you made that point. I am glad we have type erasure in Java.
It forces you to deal with type assertions at compile time.
The problem with reifiable types is that it's too easy to do a half-assed job
of your type analysis, thus resulting in the runtime errors to which Andreas
alludes. Besides, all you need to do to get runtime typing is to include a
runtime type token as a final member of your class and Bob's your uncle. Like
so much else in Java, that just means you have to *think* and act for
yourself, and type a few extra lines of code. Don't sprain your finger with
that extra typing, whiners!
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/8/2011 12:53:32 PM
|
|
Lawrence D'Oliveiro <ldo@geek-central.gen.new_zealand> wrote:
>DOS/Windows is the only reason 8086/80286 segmented architectures became
>popular.
That's a bit backwards! The architecture existed, the OS had to deal
with it.
--
Tim Slattery
Slattery_T@bls.gov
http://members.cox.net/slatteryt
|
|
0
|
|
|
|
Reply
|
Tim
|
2/8/2011 2:00:36 PM
|
|
On 2/8/11 8:53 PM, Lew wrote:
> The problem with reifiable types is that it's too easy to do a
> half-assed job of your type analysis, thus resulting in the runtime
> errors to which Andreas alludes. Besides, all you need to do to get
> runtime typing is to include a runtime type token as a final member of
> your class and Bob's your uncle. Like so much else in Java, that just
> means you have to *think* and act for yourself, and type a few extra
> lines of code. Don't sprain your finger with that extra typing, whiners!
I agree that type erasure is not a huge liability in Java. As long as
you always use the generic type as a generic rather than raw type,
compile time checking will do the job.
However, type erasure does limit what you can do via reflection, which
is something very important at times. Another advantage of reified
types is the ability to use generics efficiently with value types,
rather than having to box them.
Of course, Java doesn't have user-defined value types, but it would be
potentially useful even for the built-in ones.
As in all cases, it's not _universally_ useful. But they are worth
having reified types, IMHO.
Pete
|
|
0
|
|
|
|
Reply
|
Peter
|
2/8/2011 5:07:12 PM
|
|
On 11-02-07 11:06 PM, Lawrence D'Oliveiro wrote:
> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
[ SNIP ]
>> Real C apps that will run predictable on any platform is
>> pretty rare.
>
> Really?? We have them coming out our ears. I have thousands of them
> installed on my system alone. Let’s see, the Linux kernel, 15 million lines
> of source code, almost entirely in C, portable across about two dozen
> different major processor architectures. GCC, Apache, Python, Blender (a
> million lines of C, plus about 220 thousand lines of C++), Gimp ... the list
> goes on and on.
>
You've got a very optimistic definition of "portable" happening there.
It may come as a surprise to you, but all sorts of #ifdefs and
platform-specific configure scripts and makefiles don't mean that you've
got portable code - all of that is a response to the fact that you've
got _non-portable_ code.
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
Arved
|
2/8/2011 11:46:49 PM
|
|
On 8/02/2011 6:32 PM, Lawrence D'Oliveiro wrote:
> Nobody seriously used that stuff, because none of it was of any use.
Windows 95 used it, ditto 98, and every version of NT. Ditto NetWare 4.
> The only OS designed to try to make use of it, OS/2, flopped.
For that reason?
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/9/2011 4:48:40 AM
|
|
Lawrence D'Oliveiro wrote:
>> Nobody seriously used that stuff, because none of it was of any use.
Esmond Pitt wrote:
> Windows 95 used it, ditto 98, and every version of NT. Ditto NetWare 4.
Lawrence D'Oliveiro wrote:
>> The only OS designed to try to make use of it, OS/2, flopped.
Esmond Pitt wrote:
> For that reason?
That quote is out of context, but if "Lawrence D'Oliveiro" was saying that use
of clever Intel tricks like hardware multitasking and privilege rings were
used only by OS/2 (is that what he said? I missed his post.), the other OSes
you cite aren't the only ones, either. QNX, for example, was doing that on
the '286, and they're still very much in business, too.
They also leveraged the segmented architecture quite nicely. Typically,
multiple instances of the same program shared the code segment and only
allocated individual data segments. We put three simultaneous users on
terminals into the same application on a '386 with 2 MB of RAM and it ran like
a bat out of hell and never felt pinched for memory.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/9/2011 5:15:05 AM
|
|
On 09/02/2011 12:15 AM, Lew wrote:
> Esmond Pitt wrote:
>> Lawrence D'Oliveiro wrote:
>>> Esmond Pitt wrote:
>>>> Lawrence D'Oliveiro wrote:
>>> Nobody seriously used that stuff, because none of it was of any use.
>>> The only OS designed to try to make use of it, OS/2, flopped.
>> For that reason?
>
> That quote is out of context, but if "Lawrence D'Oliveiro" was saying
> that use of clever Intel tricks like hardware multitasking and privilege
> rings were used only by OS/2 (is that what he said? I missed his post.),
> the other OSes you cite aren't the only ones, either. QNX, for example,
> was doing that on the '286, and they're still very much in business, too.
QNX? That's even more obscure than OS/2 is!
Fact is, nothing with non-micoscopic market share used those features of
the 80286.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/9/2011 5:23:56 AM
|
|
Number of pages is not a perfect indicator of complexity, but gives a
good estimation.
The main problem of your comparison is that the C++ standard refers a
lot to the C standard. A standalone C++ standard would be a lot
bigger.
A second point to take into account in your comparison is that the C++
standard contains nothing about threads and concurrency. This subject
is a significant part of java standard. It will be a huge part of next
C++ standard.
Java is definitively a much simpler language than C++, even with
generics and huge standard libraries.
|
|
0
|
|
|
|
Reply
|
Jef
|
2/9/2011 12:34:27 PM
|
|
Lew wrote:
>> That quote is out of context, but if "Lawrence D'Oliveiro" was saying
>> that use of clever Intel tricks like hardware multitasking and privilege
>> rings were used only by OS/2 (is that what he said? I missed his post.),
>> the other OSes you cite aren't the only ones, either. QNX, for example,
>> was doing that on the '286, and they're still very much in business, too.
Sulfide Eater wrote:
> QNX? That's even more obscure than OS/2 is!
How is still in business and thriving more obscure than historic only and no
longer used?
> Fact is, nothing with non-micoscopic market share used those features of the
> 80286.
That was essentially what I said to start off this sub-thread: "Only a couple
of OSes really used that stuff back then." Glad to see agreement in this
often contentious newsgroup.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/9/2011 12:46:04 PM
|
|
On 09/02/11 05:23, Sulfide Eater wrote an attempted troll:
Watch out for the stupid troll attempt in the previous post which was
x-posted to an OS/2 advocacy group.
|
|
0
|
|
|
|
Reply
|
Nigel
|
2/9/2011 1:12:22 PM
|
|
On 02/09/2011 08:12 AM, Nigel Wade wrote:
> On 09/02/11 05:23, Sulfide Eater wrote an attempted troll:
>
> Watch out for the stupid troll attempt in the previous post which was
> x-posted to an OS/2 advocacy group.
Damn, and I answered him without noticing! Now both the denizens of the OS/2
group will be so bummed out.
--
Lew
Ceci n'est pas une fenêtre.
..___________.
|###] | [###|
|##/ | *\##|
|#/ * | \#|
|#----|----#|
|| | * ||
|o * | o|
|_____|_____|
|===========|
|
|
0
|
|
|
|
Reply
|
Lew
|
2/9/2011 1:22:46 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
121> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
121> QNX? That's even more obscure than OS/2 is!
Classic erroneous presupposition. College football fans, of which
there
are plenty, were treated to the IBM OS/2 Fiesta Bowl back in the 90s,
Eater.
121> Fact is, nothing with non-micoscopic market share used those
features of
121> the 80286.
Classic erroneous presupposition. OS/2 had far more than a
microscopic
market share, Eater.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/9/2011 3:41:16 PM
|
|
Lew <noone@lewscanon.com> writes:
8> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
8> How is still in business and thriving more obscure than historic
only and no
8> longer used?
Classic erroneous presupposition. OS/2 is still used, Lew.
8> That was essentially what I said to start off this sub-thread:
"Only a couple
8> of OSes really used that stuff back then." Glad to see agreement
in this
8> often contentious newsgroup.
Are you claiming that OS/2 no longer uses it, Lew? Or are
you really saying that the 80286 is no longer used?
|
|
0
|
|
|
|
Reply
|
tholen
|
2/9/2011 3:43:34 PM
|
|
On 09/02/2011 10:41 AM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
>
> 121> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
>
> 121> QNX? That's even more obscure than OS/2 is!
>
> Classic erroneous presupposition.
Are you claiming, then, that OS/2 is more obscure than QNX?
> 121> Fact is, nothing with non-micoscopic market share used those
> features of
> 121> the 80286.
>
> Classic erroneous presupposition. OS/2 had far more than a
> microscopic
> market share, Eater.
In your wildest dreams, perhaps, tholenbot.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/9/2011 9:03:51 PM
|
|
On 09/02/2011 8:12 AM, Nigel Wade wrote:
> On 09/02/11 05:23, Sulfide Eater wrote an attempted troll:
>
> Watch out for the [insult deleted] in the previous post which was
> x-posted to an OS/2 advocacy group.
It's perfectly on topic there, jerkwad. We were dicsussing OS/2's use of
the 80286's multitasking support features, which few other operating
systems did at the time. If that isn't a useful bit of information for
OS/2 advocates I don't know what is. :)
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/9/2011 9:28:36 PM
|
|
On 09/02/2011 8:22 AM, Lew wrote:
> On 02/09/2011 08:12 AM, Nigel Wade wrote:
>> On 09/02/11 05:23, Sulfide Eater [false accusation deleted]:
>>
>> Watch out for the [insult deleted] in the previous post which was
>> x-posted to an OS/2 advocacy group.
It's perfectly on topic there. We were dicsussing OS/2's use of the
80286's multitasking support features, which few other operating systems
did at the time. If that isn't a useful bit of information for OS/2
advocates I don't know what is. :)
> Damn, and I answered him without noticing! Now both the denizens of the
> OS/2 group will be so bummed out.
By the first on-topic traffic they've had in ages?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/9/2011 9:29:47 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
122> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
122> Are you claiming, then, that OS/2 is more obscure than QNX?
Still suffering from reading comprehension problems, Eater? The
sentence that you decided not to quote addresses your question.
122> In your wildest dreams, perhaps, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
123> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
123> It's perfectly on topic there, jerkwad. We were dicsussing OS/2's
use of
123> the 80286's multitasking support features, which few other
operating
123> systems did at the time. If that isn't a useful bit of
information for
123> OS/2 advocates I don't know what is. :)
Then why don't you read some of the OS/2 newsgroups to find out
what sort of questions people ask that represent useful bits of
information, Eater?
124> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
124> It's perfectly on topic there. We were dicsussing OS/2's use of
the
124> 80286's multitasking support features, which few other operating
systems
124> did at the time. If that isn't a useful bit of information for OS/
2
124> advocates I don't know what is. :)
Then why don't you read some of the OS/2 newsgroups to find out
what sort of questions people ask that represent useful bits of
information, Eater?
124> By the first on-topic traffic they've had in ages?
Classic erroneous presupposition.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/9/2011 9:52:49 PM
|
|
On 09/02/2011 4:52 PM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
>
> 122> Are you claiming, then, that OS/2 is more obscure than QNX?
>
> Still suffering from reading comprehension problems, Eater?
Classic erroneous presupposition, tholenbot.
I said that QNX was more obscure than OS/2, tholian. You claimed that
that was "erroneous", trollen. That implies that you believe that OS/2
is more obscure than QNX, tholenoid.
> 123> It's perfectly on topic there, jerkwad. We were dicsussing OS/2's
> 123> use of the 80286's multitasking support features, which few other
> 123> operating systems did at the time. If that isn't a useful bit of
> 123> information for OS/2 advocates I don't know what is. :)
>
> Then why don't you read some of the OS/2 newsgroups to find out
> what sort of questions people ask that represent useful bits of
> information, Eater?
Failure to recognize a common rhetorical question format noted, thallium.
> 124> It's perfectly on topic there. We were discussing OS/2's use of
> 124> the 80286's multitasking support features, which few other
> 124> operating systems did at the time. If that isn't a useful bit
> 124> of information for OS/2 advocates I don't know what is. :)
>
> Then why don't you read some of the OS/2 newsgroups to find out
> what sort of questions people ask that represent useful bits of
> information, Eater?
Failure to recognize a common rhetorical question format noted, thalidomide
Stuck record behavior also noted, trillium.
> 124> By the first on-topic traffic they've had in ages?
>
> Classic erroneous presupposition.
On your part, tholenbot.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/9/2011 10:02:14 PM
|
|
On 10/02/2011 8:03 AM, Sulfide Eater wrote:
> In your wildest dreams, perhaps, tholenbot.
No 'wildest dreams' about it. I made a very good living out of OS/2 for
ten consecutive years. IBM stated at some stage that the OS/2 project
had showed a considerable profit.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/10/2011 10:58:20 AM
|
|
On 10/02/2011 5:58 AM, Esmond Pitt wrote:
> On 10/02/2011 8:03 AM, Sulfide Eater wrote:
>> In your wildest dreams, perhaps, tholenbot.
>
> No 'wildest dreams' about it. I made a very good living out of OS/2 for
> ten consecutive years. IBM stated at some stage that the OS/2 project
> had showed a considerable profit.
In some niche area. The fact remains that its market share does not hold
a candle to that of even OS X, let alone Linux or Windows.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/10/2011 12:00:13 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
125> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
125> Classic erroneous presupposition, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
125> I said that QNX was more obscure than OS/2, tholian.
Who is "tholian", Eater? There is nobody in this newsgroup
using that alias.
125> You claimed that that was "erroneous", trollen.
Who is "trollen", Eater? There is nobody in this newsgroup
using that alias.
125> That implies that you believe that OS/2
125> is more obscure than QNX, tholenoid.
Who is "tholenoid", Eater? There is nobody in this newsgroup
using that alias.
125> Failure to recognize a common rhetorical question format noted,
thallium.
Who is "thallium", Eater? There is nobody in this newsgroup
using that alias.
125> Failure to recognize a common rhetorical question format noted,
thalidomide
Who is "thalidomide", Eater? There is nobody in this newsgroup
using that alias.
125> Stuck record behavior also noted, trillium.
Who is "trillium", Eater? There is nobody in this newsgroup
using that alias.
125> On your part, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
126> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
126> In some niche area. The fact remains that its market share does
not hold
126> a candle to that of even OS X, let alone Linux or Windows.
Classic pontification. Of course, Mercedes' market share doesn't hold
a candle to Chevrolet. The significance of that comparison will
undoubtedly be lost on someone who can't even keep attributions
straight.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/10/2011 2:28:17 PM
|
|
Esmond Pitt <esmond.pitt@bigpond.com> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
1> No 'wildest dreams' about it. I made a very good living out of OS/2
for
1> ten consecutive years. IBM stated at some stage that the OS/2
project
1> had showed a considerable profit.
Trolls like Sulfide Eater never let the facts get in the way of a good
rant, Pitt.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/10/2011 2:29:36 PM
|
|
On 10/02/2011 9:28 AM, tholen@antispam.ham wrote:
> 126> In some niche area. The fact remains that its market share does
> not hold
> 126> a candle to that of even OS X, let alone Linux or Windows.
>
> Classic pontification. Of course, Mercedes' market share doesn't hold
> a candle to Chevrolet.
Nor does the market share of the Edsel, trollium.
> The significance of that comparison will undoubtedly be lost on
> someone who can't even keep attributions straight.
Non sequitur; to whom are you referring, tholenator? There is nobody in
this newsgroup who "can't even keep attributions straight", thingamabob.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/10/2011 2:32:42 PM
|
|
On 10/02/2011 9:32 AM, Sulfide Eater wrote:
> On 10/02/2011 9:29 AM, tholen@antispam.ham wrote:
>> Esmond Pitt <esmond.pitt@bigpond.com> writes:
>>
>> 1> No 'wildest dreams' about it. I made a very good living out of OS/2
>> for
>> 1> ten consecutive years. IBM stated at some stage that the OS/2
>> project
>> 1> had showed a considerable profit.
>>
>> [insult deleted] like Sulfide Eater [false accusation deleted], Pitt.
>
> What do your classic erroneous presuppositions have to do with OS/2, tholen?
Whack tholen bot!
|
|
0
|
|
|
|
Reply
|
Heike
|
2/10/2011 2:35:19 PM
|
|
In message <JBk4p.101614$ZS4.35831@newsfe07.iad>, Arved Sandstrom wrote:
> On 11-02-07 11:06 PM, Lawrence D'Oliveiro wrote:
>
>> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>
>>> Real C apps that will run predictable on any platform is
>>> pretty rare.
>>
>> Really?? We have them coming out our ears. I have thousands of them
>> installed on my system alone. Let’s see, the Linux kernel, 15 million
>> lines of source code, almost entirely in C, portable across about two
>> dozen different major processor architectures. GCC, Apache, Python,
>> Blender (a million lines of C, plus about 220 thousand lines of C++),
>> Gimp ... the list goes on and on.
>>
> You've got a very optimistic definition of "portable" happening there.
> It may come as a surprise to you, but all sorts of #ifdefs and
> platform-specific configure scripts and makefiles don't mean that you've
> got portable code - all of that is a response to the fact that you've
> got _non-portable_ code.
It is more portable than any Java code you can point to. QED.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/10/2011 10:40:29 PM
|
|
In message <4d50b67b$0$23754$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 07-02-2011 22:06, Lawrence D'Oliveiro wrote:
>
>> In message<4d5094f2$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 07-02-2011 15:22, Lawrence D'Oliveiro wrote:
>>>>
>>>> In message<iiop28$8jj$1@news.eternal-september.org>, Joshua Cranmer
>>>> wrote:
>>>>>
>>>>> Writing portable code in C pretty much requires you to do hefty
>>>>> compatibility layers.
>>>>
>>>> Not really. Sticking to standard POSIX types like size_t, time_t etc
>>>> gets you a lot of the way there.
>>>
>>> POSIX does not cover all aspects.
>>
>> Well, you need tools like autoconf as well to handle the more complicated
>> cases.
>
> The existence of that tool is an indication that there is a
> portability problem.
Which it solves.
> But autoconf does not solve all problems.
Enough of them to fulfil the needs of hundreds of thousands of portable
software packages.
>>> And not all platforms are POSIX compliant.
>>
>> All the ones worth using are.
>
> Well - I don't think anyone defines portability as running unchanged on
> the platform one specific person considers worth using.
Except I’m talking about an order of magnitude more different platforms than
you are.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/11/2011 12:08:48 AM
|
|
In message <4d50b4e8$0$23754$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 07-02-2011 21:59, Lawrence D'Oliveiro wrote:
>
>> In message<4d5032a8$0$41114$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>
>>> For certain APIs (MS Windows conatins lots of them) struct layout
>>> assumpations are essential.
>>
>> POSIX manages such things in a portable way.
>
> No.
>
> POSIX does the same thing as Windows.
POSIX is designed for portability in a way that Windows is not. Where Win32
uses explicitly-sized types of 32 bits or 16 bits or whatever, POSIX uses
symbolic names that can be handled differently by different implementations.
Consider why there was even a need for a Win64, when there is no “POSIX64”.
|
|
0
|
|
|
|
Reply
|
Lawrence
|
2/11/2011 12:11:27 AM
|
|
Heike Svensson <hsvensson.1093x1_q@hotmail.nospam.com.please> writes:
42> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
42> Whack tholen bot!
Who is "bot", Svensson? There is nobody in this newsgroup using
that alias. And what does your desire for that "bot" to whack tholen
have to do with OS/2, Svensson?
|
|
0
|
|
|
|
Reply
|
tholen
|
2/11/2011 1:21:44 AM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
127> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
127> Nor does the market share of the Edsel, trollium.
Who is "trollium", Eater? There is nobody in this newsgroup
using that alias.
127> Non sequitur;
Classic unsubstantiated and erroneous claim.
127> to whom are you referring, tholenator?
Case in point.
127> There is nobody in
127> this newsgroup who "can't even keep attributions straight",
thingamabob.
Who is "thingamabob", Eater? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/11/2011 1:23:34 AM
|
|
On 11-02-10 06:40 PM, Lawrence D'Oliveiro wrote:
> In message<JBk4p.101614$ZS4.35831@newsfe07.iad>, Arved Sandstrom wrote:
>
>> On 11-02-07 11:06 PM, Lawrence D'Oliveiro wrote:
>>
>>> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>>> Real C apps that will run predictable on any platform is
>>>> pretty rare.
>>>
>>> Really?? We have them coming out our ears. I have thousands of them
>>> installed on my system alone. Let’s see, the Linux kernel, 15 million
>>> lines of source code, almost entirely in C, portable across about two
>>> dozen different major processor architectures. GCC, Apache, Python,
>>> Blender (a million lines of C, plus about 220 thousand lines of C++),
>>> Gimp ... the list goes on and on.
>>>
>> You've got a very optimistic definition of "portable" happening there.
>> It may come as a surprise to you, but all sorts of #ifdefs and
>> platform-specific configure scripts and makefiles don't mean that you've
>> got portable code - all of that is a response to the fact that you've
>> got _non-portable_ code.
>
> It is more portable than any Java code you can point to. QED.
Right. So one of the main J2EE apps I have helped maintain for a few
years, about 500 KLOC of Java that interfaces with databases, SAP,
message queues, the file system, other J2EE apps like FileNet, that can
have its EAR deployed (with tiny changes to some configuration files) to
any of Windows, Mac OS X, Linux or Solaris with zero code changes and no
OS dependencies in the code, what you're saying is that I could
translate all that into C and not worry about what OS I'm writing it for?
Is that what you're saying? It sure sounds like that's what you're saying.
Portable is epitomized (not exclusively so) by JVM-based languages and
..NET/CLR-based languages. C is on the other end of that spectrum, dude.
To use another example, I can write C#.NET and run it without code
changes on Windows, Linux, Mac OS X and Solaris, using Mono. _That_ is
code portability, not the GNU Build System. The latter attempts
(often/usually successfully) to compensate for _not_ having code
portability by making the _build_ portable. Serious difference.
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
Arved
|
2/11/2011 1:56:17 AM
|
|
On 10/02/2011 8:23 PM, tholen@antispam.ham wrote:
> 127> Non sequitur;
>
> Classic unsubstantiated and erroneous claim.
On your part, tholenbot.
> 127> to whom are you referring, tholenator?
>
> Case in point.
Non sequitur.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/12/2011 10:40:07 AM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
128> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
128> On your part, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
128> Non sequitur.
What does your classic unsubstantiated and erroneous claim
have to do with OS/2, Eater?
|
|
0
|
|
|
|
Reply
|
tholen
|
2/12/2011 1:43:57 PM
|
|
On 12/02/2011 8:43 AM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
> 128> Non sequitur.
>
> classic unsubstantiated and erroneous claim
On your part, tholenoid.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/13/2011 12:00:09 AM
|
|
On 08-02-2011 23:48, Esmond Pitt wrote:
> On 8/02/2011 6:32 PM, Lawrence D'Oliveiro wrote:
>> Nobody seriously used that stuff, because none of it was of any use.
>
> Windows 95 used it, ditto 98, and every version of NT. Ditto NetWare 4.
95/98/NT did not run on 286'es.
The 386 may be identical to 286 for the features described, but the CPU
mentioned was 286.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/13/2011 12:35:00 AM
|
|
On 10-02-2011 07:00, Sulfide Eater wrote:
> On 10/02/2011 5:58 AM, Esmond Pitt wrote:
>> On 10/02/2011 8:03 AM, Sulfide Eater wrote:
>>> In your wildest dreams, perhaps, tholenbot.
>>
>> No 'wildest dreams' about it. I made a very good living out of OS/2 for
>> ten consecutive years. IBM stated at some stage that the OS/2 project
>> had showed a considerable profit.
>
> In some niche area. The fact remains that its market share does not hold
> a candle to that of even OS X, let alone Linux or Windows.
Today.
OS/2 was pretty widely used once.
And since Esmond did use past tense, then the past seems
more relevant than the current.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/13/2011 12:36:57 AM
|
|
On 12/02/2011 7:36 PM, Arne Vajh�j wrote:
> On 10-02-2011 07:00, Sulfide Eater wrote:
>> On 10/02/2011 5:58 AM, Esmond Pitt wrote:
>>> On 10/02/2011 8:03 AM, Sulfide Eater wrote:
>>>> In your wildest dreams, perhaps, tholenbot.
>>>
>>> No 'wildest dreams' about it. I made a very good living out of OS/2 for
>>> ten consecutive years. IBM stated at some stage that the OS/2 project
>>> had showed a considerable profit.
>>
>> In some niche area. The fact remains that its market share does not hold
>> a candle to that of even OS X, let alone Linux or Windows.
>
> Today.
>
> OS/2 was pretty widely used once.
Where, in West Rectum, Rajikistan? I can't recall ever stumbling upon a
single person using it as their desktop OS even during its so-called
heyday. Maybe the odd dedicated-function terminal, like an ATM or a cash
register, was running it under the hood. Nothing normal people do their
web browsing, word processing, and gaming on, though, that I ever ran
across.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/13/2011 12:41:20 AM
|
|
On 08-02-2011 05:25, Andreas Leitgeb wrote:
> Lawrence D'Oliveiro<ldo@geek-central.gen.new_zealand> wrote:
>> Because the whole “raw types” concept detracts from and weakens
>> the coherence of the type system.
>
> The "problem" about type-erasure is over-rated.
>
> Suppose, an instance created so: Object o = new ArrayList<String>();
> actually "knew" that it was an ArrayList of Strings (and not just
> that it was an ArrayList, as it does now).
> Then you would get a *runtime*-Error, if you tried to cast "o" to
> ArrayList<Integer>, later. But generics aren't about runtime errors.
> They are about being able to prevent some runtime-errors, by turning
> them into compile-time errors. So, giving *still runtime*-errors for
> casting between generic types of incompatible parametrizations is only
> little win over giving runtime-errors on element-use.
There are other reasons to not have type erasure.
new T
general reflection
method overload
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/13/2011 1:03:19 AM
|
|
On 08-02-2011 07:53, Lew wrote:
> Andreas Leitgeb wrote:
>> The "problem" about type-erasure is over-rated.
>>
>> Suppose, an instance created so: Object o = new ArrayList<String>();
>> actually "knew" that it was an ArrayList of Strings (and not just
>> that it was an ArrayList, as it does now).
>> Then you would get a *runtime*-Error, if you tried to cast "o" to
>> ArrayList<Integer>, later. But generics aren't about runtime errors.
>> They are about being able to prevent some runtime-errors, by turning
>> them into compile-time errors. So, giving *still runtime*-errors for
>> casting between generic types of incompatible parametrizations is only
>> little win over giving runtime-errors on element-use.
>
> I'm very glad you made that point. I am glad we have type erasure in
> Java. It forces you to deal with type assertions at compile time.
>
> The problem with reifiable types is that it's too easy to do a
> half-assed job of your type analysis, thus resulting in the runtime
> errors to which Andreas alludes. Besides, all you need to do to get
> runtime typing is to include a runtime type token as a final member of
> your class and Bob's your uncle. Like so much else in Java, that just
> means you have to *think* and act for yourself, and type a few extra
> lines of code. Don't sprain your finger with that extra typing, whiners!
Can you give an example of where introduction of reifiable type
would cause not getting a compile time error but a runtime error
instead?
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/13/2011 1:06:14 AM
|
|
On 12-02-2011 19:41, Sulfide Eater wrote:
> On 12/02/2011 7:36 PM, Arne Vajh�j wrote:
>> On 10-02-2011 07:00, Sulfide Eater wrote:
>>> On 10/02/2011 5:58 AM, Esmond Pitt wrote:
>>>> On 10/02/2011 8:03 AM, Sulfide Eater wrote:
>>>>> In your wildest dreams, perhaps, tholenbot.
>>>>
>>>> No 'wildest dreams' about it. I made a very good living out of OS/2 for
>>>> ten consecutive years. IBM stated at some stage that the OS/2 project
>>>> had showed a considerable profit.
>>>
>>> In some niche area. The fact remains that its market share does not hold
>>> a candle to that of even OS X, let alone Linux or Windows.
>>
>> Today.
>>
>> OS/2 was pretty widely used once.
>
> Where, in West Rectum, Rajikistan? I can't recall ever stumbling upon a
> single person using it as their desktop OS even during its so-called
> heyday. Maybe the odd dedicated-function terminal, like an ATM or a cash
> register, was running it under the hood. Nothing normal people do their
> web browsing, word processing, and gaming on, though, that I ever ran
> across.
I don't know about who you know.
OS/2 was used by many large organizations in both the private
and the public sector.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/13/2011 1:38:47 AM
|
|
On 12/02/2011 8:38 PM, Arne Vajh�j wrote:
> OS/2 was used by many large organizations in both the private
> and the public sector.
I'm more interested in client-side. Who among the general public ever
used it much?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/13/2011 2:02:10 AM
|
|
On 12-02-2011 21:02, Sulfide Eater wrote:
> On 12/02/2011 8:38 PM, Arne Vajh�j wrote:
>> OS/2 was used by many large organizations in both the private
>> and the public sector.
>
> I'm more interested in client-side. Who among the general public ever
> used it much?
This was client side - desktop computers.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/13/2011 2:03:29 AM
|
|
On 12/02/2011 9:03 PM, Arne Vajh�j wrote:
> On 12-02-2011 21:02, Sulfide Eater wrote:
>> On 12/02/2011 8:38 PM, Arne Vajh�j wrote:
>>> OS/2 was used by many large organizations in both the private
>>> and the public sector.
>>
>> I'm more interested in client-side. Who among the general public ever
>> used it much?
>
> This was client side
You said "used by many large corporations", rather than by individuals
on their personal computers.
I am asking who actually used it. Having 3 adopters all of which were
large organizations is still having 3 adopters and a tiny sliver of
market share.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/13/2011 2:08:42 AM
|
|
On 12-02-2011 21:08, Sulfide Eater wrote:
> On 12/02/2011 9:03 PM, Arne Vajh�j wrote:
>> On 12-02-2011 21:02, Sulfide Eater wrote:
>>> On 12/02/2011 8:38 PM, Arne Vajh�j wrote:
>>>> OS/2 was used by many large organizations in both the private
>>>> and the public sector.
>>>
>>> I'm more interested in client-side. Who among the general public ever
>>> used it much?
>>
>> This was client side
>
> You said "used by many large corporations", rather than by individuals
> on their personal computers.
The computers on the employees desktops are client side.
Personally owned computers were not that common in those times.
> I am asking who actually used it. Having 3 adopters all of which were
> large organizations is still having 3 adopters and a tiny sliver of
> market share.
It is a lot more than 3.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/13/2011 2:18:01 AM
|
|
On 12/02/2011 9:18 PM, Arne Vajh�j wrote:
> On 12-02-2011 21:08, Sulfide Eater wrote:
>> I am asking who actually used it. Having 3 adopters all of which were
>> large organizations is still having 3 adopters and a tiny sliver of
>> market share.
>
> It is a lot more than 3.
Wow, was it 6? Maybe even 10? Maybe even as many as 100? Out of what,
millions? :)
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/13/2011 3:17:01 AM
|
|
On 09/02/2011 2:02 PM, Sulfide Eater wrote:
> On 09/02/2011 4:52 PM, tholen@antispam.ham wrote:
>> Sulfide Eater<zaxx1108@example.com> writes:
>>
>> 122> Are you claiming, then, that OS/2 is more obscure than QNX?
>>
>> Still suffering from reading comprehension problems, Eater?
>
> Classic erroneous presupposition, tholenbot.
>
> I said that QNX was more obscure than OS/2, tholian. You claimed that
> that was "erroneous", trollen. That implies that you believe that OS/2
> is more obscure than QNX, tholenoid.
>
>> 123> It's perfectly on topic there, jerkwad. We were dicsussing OS/2's
>> 123> use of the 80286's multitasking support features, which few other
>> 123> operating systems did at the time. If that isn't a useful bit of
>> 123> information for OS/2 advocates I don't know what is. :)
>>
>> Then why don't you read some of the OS/2 newsgroups to find out
>> what sort of questions people ask that represent useful bits of
>> information, Eater?
>
> Failure to recognize a common rhetorical question format noted, thallium.
>
>> 124> It's perfectly on topic there. We were discussing OS/2's use of
>> 124> the 80286's multitasking support features, which few other
>> 124> operating systems did at the time. If that isn't a useful bit
>> 124> of information for OS/2 advocates I don't know what is. :)
>>
>> Then why don't you read some of the OS/2 newsgroups to find out
>> what sort of questions people ask that represent useful bits of
>> information, Eater?
>
> Failure to recognize a common rhetorical question format noted, thalidomide
>
> Stuck record behavior also noted, trillium.
>
>> 124> By the first on-topic traffic they've had in ages?
>>
>> Classic erroneous presupposition.
>
> On your part, tholenbot.
Oh joy, a new thread to killfile.
|
|
0
|
|
|
|
Reply
|
largemouse
|
2/13/2011 8:16:12 AM
|
|
On 13/02/2011 3:16 AM, narf_the_mouse wrote:
> On 09/02/2011 2:02 PM, Sulfide Eater wrote:
>> On 09/02/2011 4:52 PM, tholen@antispam.ham wrote:
>>> Sulfide Eater<zaxx1108@example.com> writes:
>>> 124> By the first on-topic traffic they've had in ages?
>>>
>>> Classic erroneous presupposition.
>>
>> On your part, tholenbot.
>
> Oh joy, [implied insult deleted].
Not.
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/13/2011 8:45:02 AM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
129> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
129> On your part, tholenoid.
Who is "tholenoid", Eater? There is nobody in this newsgroup
using that alias.
130> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
130> Where, in West Rectum, Rajikistan? I can't recall ever stumbling
upon a
130> single person using it as their desktop OS even during its so-
called
130> heyday.
Suffering from memory problems, Eater?
130> Maybe the odd dedicated-function terminal, like an ATM or a cash
130> register, was running it under the hood. Nothing normal people do
their
130> web browsing, word processing, and gaming on, though, that I ever
ran
130> across.
Don't get out much, eh Eater?
131> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
131> I'm more interested in client-side. Who among the general public
ever
131> used it much?
I have, Eater.
132> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
132> You said "used by many large corporations", rather than by
individuals
132> on their personal computers.
Large corporations are client-side users, Eater.
132> I am asking who actually used it. Having 3 adopters all of which
were
132> large organizations is still having 3 adopters and a tiny sliver
of
132> market share.
Irrelevant, given that there were far more than 3 adopters, Eater.
133> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
133> Wow, was it 6?
No, Eater.
133> Maybe even 10?
Not even, Eater.
133> Maybe even as many as 100?
Even more, Eater.
133> Out of what, millions? :)
Now you're getting warm, Eater.
134> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
134> Not.
What does your negation have to do with OS/2, Eater?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/13/2011 10:47:19 AM
|
|
narf_the_mouse <largemouse@gmail.com> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
1> Oh joy, a new thread to killfile.
What does your joy have to do with OS/2, narf?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/13/2011 10:48:11 AM
|
|
=?ISO-8859-1?Q?Arne_Vajh=F8j?= <arne@vajhoej.dk> writes:
17> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
17> Today.
17> OS/2 was pretty widely used once.
17> And since Esmond did use past tense, then the past seems
17> more relevant than the current.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Arne.
18> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
18> I don't know about who you know.
18> OS/2 was used by many large organizations in both the private
18> and the public sector.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Arne.
19> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
19> This was client side - desktop computers.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Arne.
20> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
20> The computers on the employees desktops are client side.
20> Personally owned computers were not that common in those times.
Classic unsubstantiated and erroneous claim.
20> It is a lot more than 3.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Arne.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/13/2011 10:50:54 AM
|
|
At 10:27 AM, Sulfide Eater <zaxx1108@example.com> wrote:
> On 13/02/2011 5:50 AM, tholen@antispam.ham wrote:
>> =?ISO-8859-1?Q?Arne_Vajh=F8j?=<arne@vajhoej.dk> writes:
>> 17> OS/2 was pretty widely used once.
>
> Bullshit.
Smack!
>> [insult deleted]s like Sulfide Eater [false accusation
>> deleted], Arne.
>
> What do your classic erroneous presuppositions have to do with
> OS/2, tholenbot?
Pow!
>> 18> OS/2 was used by many large organizations in both the private
>> 18> and the public sector.
>
> How many is "many"? 3? 6? 10? Maybe even 100? Even 100 adopters
> would have been tiny market share.
Blam!
>> [insult deleted]s like Sulfide Eater [false accusation
>> deleted], Arne.
>
> What do your classic erroneous presuppositions have to do with
> OS/2, tholenator?
Whack!
>> 19> This was client side - desktop computers.
>
> It wasn't home computers.
>
>> [insult deleted]s like Sulfide Eater [false accusation
>> deleted], Arne.
>
> What do your classic erroneous presuppositions have to do with
> OS/2, thalidomide?
Bam!
Boink!
Slap!
>> 20> The computers on the employees desktops are client side.
>
> To the employees. Not to anyone back home.
Zoink!
>> 20> It is a lot more than 3.
>> [insult deleted]s like Sulfide Eater [false accusation
>> deleted], Arne.
>
> What do your classic erroneous presuppositions have to do with
> OS/2, tholenbot?
Kablooie!
I love a good Internet argument. :)
|
|
0
|
|
|
|
Reply
|
hsvensson.1093x1_q (61)
|
2/13/2011 4:04:17 PM
|
|
On 13/02/2011 5:47 AM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
> 130> Where, in West Rectum, Rajikistan? I can't recall ever stumbling
> 130> upon a single person using it as their desktop OS even during
> 130> its so-called heyday.
>
> Suffering from memory problems, Eater?
No, but thanks for your concern, tholenbot.
But I gotta ask: What does your question have to do with OS/2, trollen?
> 130> Maybe the odd dedicated-function terminal, like an ATM or a cash
> 130> register, was running it under the hood. Nothing normal people do
> 130> their web browsing, word processing, and gaming on, though, that
> 130> I ever ran across.
>
> Don't get out much, eh Eater?
What does your classic erroneous presupposition have to do with OS/2,
thallium?
> 131> I'm more interested in client-side. Who among the general public
> 131> ever used it much?
>
> I have, Eater.
You don't exactly have much of a choice, though, do you, thalien, unless
your author chooses someday to port you to another platform, tholenbot.
So you don't count, thalidomide.
> 132> You said "used by many large corporations", rather than by
> 132> individuals on their personal computers.
>
> Large corporations are client-side users, Eater.
Not to their own users, the general public, trollium.
> 132> I am asking who actually used it. Having 3 adopters all of which
> 132> were large organizations is still having 3 adopters and a tiny
> 132> sliver of market share.
>
> Irrelevant
What does your classic unsubstantiated and erroneous claim have to do
with OS/2, trillium?
> given that there were far more than 3 adopters, Eater.
How many is "far more than 3", trellis? 30, tholenbot? Perhaps even as
many as 100, tholian?
> 133> Wow, was it 6?
>
> No, Eater.
Perhaps 7, then, tholenbot.
> 133> Maybe even 10?
>
> Not even, Eater.
Not even ten, trollenbot? Aww, poor OS/2. Nine or fewer users makes
thallium a sad, sad bot. Why, tholenbot's in danger of the only platform
he's supported on going extinct! If someone doesn't port him to Windows
or Linux, trollen could actually *die*!
> 133> Maybe even as many as 100?
>
> Even more, Eater.
Classic contradiction, tholenbot; you just said not even 10, tholoon.
> Now you're getting warm, Eater.
What does the temperature becoming milder in the Northeast have to do
with OS/2, thallium?
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/13/2011 4:40:25 PM
|
|
Heike Svensson <hsvensson.1093x1_q@hotmail.nospam.com.please> writes:
43> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
43> Smack!
43> Pow!
43> Blam!
43> Whack!
43> Bam!
43> Boink!
43> Slap!
43> Zoink!
43> Kablooie!
What do your sound effects have to do with OS/2, Svensson?
43> I love a good Internet argument. :)
Do you often argue with yourself, Svensson?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/13/2011 9:29:10 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
135> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
135> No,
Then why are you have problems with your recollection, Eater?
135> but thanks for your concern, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
135> But I gotta ask: What does your question have to do with OS/2,
trollen?
Who is "trollen", Eater? There is nobody in this newsgroup
using that alias.
135> What does your classic erroneous presupposition have to do with
OS/2,
135> thallium?
Who is "thallium", Eater? There is nobody in this newsgroup
using that alias.
135> You don't exactly have much of a choice, though, do you, thalien,
Who is "thalien", Eater? There is nobody in this newsgroup
using that alias.
135> unless
135> your author chooses someday to port you to another platform,
tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
135> So you don't count, thalidomide.
Who is "thalidomide", Eater? There is nobody in this newsgroup
using that alias.
135> Not to their own users, the general public, trollium.
Who is "trollium", Eater? There is nobody in this newsgroup
using that alias.
135> What does your classic unsubstantiated and erroneous claim have
to do
135> with OS/2, trillium?
Who is "trillium", Eater? There is nobody in this newsgroup
using that alias.
135> How many is "far more than 3", trellis?
Who is "trellis", Eater? There is nobody in this newsgroup
using that alias.
135> 30, tholenbot?
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
135> Perhaps even as many as 100, tholian?
Who is "tholian", Eater? There is nobody in this newsgroup
using that alias.
135> Perhaps 7, then, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
135> Not even ten, trollenbot?
Who is "trollenbot", Eater? There is nobody in this newsgroup
using that alias.
135> Aww, poor OS/2. Nine or fewer users makes
135> thallium a sad, sad bot.
Who is "thallium", Eater? There is nobody in this newsgroup
using that alias.
135> Why, tholenbot's in danger of the only platform
135> he's supported on going extinct!
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
135> If someone doesn't port him to Windows
135> or Linux, trollen could actually *die*!
Who is "trollen", Eater? There is nobody in this newsgroup
using that alias.
135> Classic contradiction, tholenbot;
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
135> you just said not even 10, tholoon.
Who is "tholoon", Eater? There is nobody in this newsgroup
using that alias.
135> What does the temperature becoming milder in the Northeast have
to do
135> with OS/2, thallium?
Who is "thallium", Eater? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/13/2011 9:34:18 PM
|
|
On 13/02/2011 4:29 PM, tholen@antispam.ham wrote:
> Heike Svensson <hsvensson.1093x1_q@hotmail.nospam.com.please> writes:
> 43> I love a good Internet argument. :)
>
> Do you often argue with yourself, Svensson?
What does your question have to do with OS/2, tholenbot?
And for the record the answer is "no", trollen; in fact I never do,
thallium. But it can be fun to watch others argue, thalidomide, like
you, Sulfide Eater, and Arne Vajh�j were doing, tholoon.
|
|
0
|
|
|
|
Reply
|
hsvensson.1093x1_q (61)
|
2/13/2011 10:25:24 PM
|
|
On 13/02/2011 4:34 PM, tholen@antispam.ham wrote:
> Sulfide Eater <zaxx1108@example.com> writes:
> 135> No,
>
> Then why are you have problems with your recollection, Eater?
Classic erroneous presupposition, trollen.
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/13/2011 10:27:33 PM
|
|
In message <6H05p.146$7a4.45@newsfe01.iad>, Arved Sandstrom wrote:
> On 11-02-10 06:40 PM, Lawrence D'Oliveiro wrote:
>> In message<JBk4p.101614$ZS4.35831@newsfe07.iad>, Arved Sandstrom wrote:
>>
>>> On 11-02-07 11:06 PM, Lawrence D'Oliveiro wrote:
>>>
>>>> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj
>>>> wrote:
>>>
>>>>> Real C apps that will run predictable on any platform is
>>>>> pretty rare.
>>>>
>>>> Really?? We have them coming out our ears. I have thousands of them
>>>> installed on my system alone. Let’s see, the Linux kernel, 15 million
>>>> lines of source code, almost entirely in C, portable across about two
>>>> dozen different major processor architectures. GCC, Apache, Python,
>>>> Blender (a million lines of C, plus about 220 thousand lines of C++),
>>>> Gimp ... the list goes on and on.
>>>>
>>> You've got a very optimistic definition of "portable" happening there.
>>> It may come as a surprise to you, but all sorts of #ifdefs and
>>> platform-specific configure scripts and makefiles don't mean that you've
>>> got portable code - all of that is a response to the fact that you've
>>> got _non-portable_ code.
>>
>> It is more portable than any Java code you can point to. QED.
>
> Right. So one of the main J2EE apps I have helped maintain for a few
> years, about 500 KLOC of Java that interfaces with databases, SAP,
> message queues, the file system, other J2EE apps like FileNet, that can
> have its EAR deployed (with tiny changes to some configuration files) to
> any of Windows, Mac OS X, Linux or Solaris with zero code changes and no
> OS dependencies in the code, what you're saying is that I could
> translate all that into C and not worry about what OS I'm writing it for?
Think about the fact that 1) the examples I mentioned are bigger than that,
and 2) the Java compilers and run-times that you used to build and run your
“portable” code on all those different systems were most likely written in C
anyway.
In other words, Java code cannot be ported to a system until C has been
ported to that system. Or, in other other words:
Java portability ≤ C portability
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/13/2011 10:28:40 PM
|
|
In message <4d5092f7$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 07-02-2011 09:01, Thomas Richter wrote:
>>
>> "Lawrence D'Oliveiro" spat:
>>>
>>> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra
>>> credit, list the implicit preconceptions that might have led to such a
>>> wrong conclusion.
>>
>> The reason is ... that people seem to assume that the linker has no
>> intelligence, or that there is a linker in first place. Nevertheless, the
>> C++ standard doesn't even define linking, and the world is no longer that
>> simple. Thus, I still don't see how this argument applies. Surely the C++
>> world works different from the java world, but saying that there is no
>> duplicate code in Java or that there is always code duplication in C++ is
>> surely wrong.
>
> It how the simple implementations do it.
Where are there any “simple implementations” of C++?
> It is what the common implementations do it.
By “common” do you mean Microsoft?
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/14/2011 12:59:18 AM
|
|
In message <iinkpv$tbg$1@news.eternal-september.org>, Joshua Cranmer wrote:
> On 02/06/2011 09:03 PM, Lawrence D'Oliveiro wrote:
>
>> In message<4d4f47bb$0$23760$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>
>>> C++ will generate two classes with two sets of code.
>>>
>>> (at least that is what common compilers do - I don't know if
>>> the standard actually requires it to)
>>
>> See, it’s clear you’re hung up on specifics of particular
>> implementations, not on how the language feature is defined at all.
>
> No, it's in the definition of C++ templates.
No, it isn’t.
> i.e., "you don't have to actually implement this specification so long
> as a valid program can't tell that you aren't."
My point exactly.
> See, it's clear you really haven't read the specs you're trying to
> language lawyer with us on.
So where did it say whether distinct types had to be implemented with the
same or different code?
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/14/2011 1:01:07 AM
|
|
So, how do you all like my usenet troll bots? They were actually not
that hard to program, the basic underlying principle is a Markov chain
of configuarble response scraps that are stitched together based upon
a hierarchy of rules. On top of that I built a string analyzer - it
usually handles one sentence at a time, but can analyze up to 30 lines
of text at once (30 is just an arbitrary #, by the way, it can easily
be expanded to more). This is the most complicated part of the bot, as
it is here that it determines whether it will arbitrarially declare
the analyzed sentence a "fallacious argument" and state the
"determined" (I use that term _very_ loosely) fallacious argument as a
complete & valid response to the statement, whether it will randomly
add a totally unrelated newsgroup to the header file, or any of the
other 5 generic troll responses. I am especially proud of my
"nicknamesult analyzer" It uses a noise analysis algorithm, of my own
devising, on each word to determine whether the non-bot poster is
attempting a "nicknamesult" or whether the replier is just a poor
speller, technically braindead, etc. (For example, a "nicknamesult"
for Arnold would be Assnold or some crap). I will be happy to sell you
my botLib for $50usd. It works on usenet and all html-based forums and
includes a Bot Manager to easily permit fine-tuning of targets,
direction of trolling and personalized responses for all deployed bots
through one, while not simple, at least reasonably clear and beginner
friendly interface. Flash-based forum targeting is coming soon.
$2,000.00usd to remove your newsgroup from the bot's reply list.
|
|
0
|
|
|
|
Reply
|
delmurgatroid (1)
|
2/14/2011 2:09:38 AM
|
|
On 12-02-2011 22:17, Sulfide Eater wrote:
> On 12/02/2011 9:18 PM, Arne Vajh�j wrote:
>> On 12-02-2011 21:08, Sulfide Eater wrote:
>>> I am asking who actually used it. Having 3 adopters all of which were
>>> large organizations is still having 3 adopters and a tiny sliver of
>>> market share.
>>
>> It is a lot more than 3.
>
> Wow, was it 6? Maybe even 10? Maybe even as many as 100? Out of what,
> millions? :)
Most of the financial sector world wide.
Good chunks of accounting firms, retail and
public sector systems.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/14/2011 2:13:48 AM
|
|
On 13-02-2011 17:28, Lawrence D'Oliveiro wrote:
> In message<6H05p.146$7a4.45@newsfe01.iad>, Arved Sandstrom wrote:
>
>> On 11-02-10 06:40 PM, Lawrence D'Oliveiro wrote:
>>> In message<JBk4p.101614$ZS4.35831@newsfe07.iad>, Arved Sandstrom wrote:
>>>
>>>> On 11-02-07 11:06 PM, Lawrence D'Oliveiro wrote:
>>>>
>>>>> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj
>>>>> wrote:
>>>>
>>>>>> Real C apps that will run predictable on any platform is
>>>>>> pretty rare.
>>>>>
>>>>> Really?? We have them coming out our ears. I have thousands of them
>>>>> installed on my system alone. Let’s see, the Linux kernel, 15 million
>>>>> lines of source code, almost entirely in C, portable across about two
>>>>> dozen different major processor architectures. GCC, Apache, Python,
>>>>> Blender (a million lines of C, plus about 220 thousand lines of C++),
>>>>> Gimp ... the list goes on and on.
>>>>>
>>>> You've got a very optimistic definition of "portable" happening there.
>>>> It may come as a surprise to you, but all sorts of #ifdefs and
>>>> platform-specific configure scripts and makefiles don't mean that you've
>>>> got portable code - all of that is a response to the fact that you've
>>>> got _non-portable_ code.
>>>
>>> It is more portable than any Java code you can point to. QED.
>>
>> Right. So one of the main J2EE apps I have helped maintain for a few
>> years, about 500 KLOC of Java that interfaces with databases, SAP,
>> message queues, the file system, other J2EE apps like FileNet, that can
>> have its EAR deployed (with tiny changes to some configuration files) to
>> any of Windows, Mac OS X, Linux or Solaris with zero code changes and no
>> OS dependencies in the code, what you're saying is that I could
>> translate all that into C and not worry about what OS I'm writing it for?
>
> Think about the fact that 1) the examples I mentioned are bigger than that,
> and 2) the Java compilers and run-times that you used to build and run your
> “portable” code on all those different systems were most likely written in C
> anyway.
>
> In other words, Java code cannot be ported to a system until C has been
> ported to that system. Or, in other other words:
>
> Java portability ≤ C portability
????
Some parts of JVM and JRE need to be native. And for all
common platforms that is C/C++.
But that tells nothing about portability of C.
In fact it proves that C is not portable by the fact
that it is not easy to port JVM and JRE to a new platform.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/14/2011 2:16:16 AM
|
|
On 10-02-2011 17:40, Lawrence D'Oliveiro wrote:
> In message<JBk4p.101614$ZS4.35831@newsfe07.iad>, Arved Sandstrom wrote:
>
>> On 11-02-07 11:06 PM, Lawrence D'Oliveiro wrote:
>>
>>> In message<4d50949a$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>>> Real C apps that will run predictable on any platform is
>>>> pretty rare.
>>>
>>> Really?? We have them coming out our ears. I have thousands of them
>>> installed on my system alone. Let’s see, the Linux kernel, 15 million
>>> lines of source code, almost entirely in C, portable across about two
>>> dozen different major processor architectures. GCC, Apache, Python,
>>> Blender (a million lines of C, plus about 220 thousand lines of C++),
>>> Gimp ... the list goes on and on.
>>>
>> You've got a very optimistic definition of "portable" happening there.
>> It may come as a surprise to you, but all sorts of #ifdefs and
>> platform-specific configure scripts and makefiles don't mean that you've
>> got portable code - all of that is a response to the fact that you've
>> got _non-portable_ code.
>
> It is more portable than any Java code you can point to. QED.
Nonsense.
C code depending on ifdes requires changes to the source code
to be moved.
Java code does not require changes to the source code - actually
not even recompile: you can just move the byte code over.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/14/2011 2:19:09 AM
|
|
On 10-02-2011 19:08, Lawrence D'Oliveiro wrote:
> In message<4d50b67b$0$23754$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 07-02-2011 22:06, Lawrence D'Oliveiro wrote:
>>> In message<4d5094f2$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>> On 07-02-2011 15:22, Lawrence D'Oliveiro wrote:
>>>>>
>>>>> In message<iiop28$8jj$1@news.eternal-september.org>, Joshua Cranmer
>>>>> wrote:
>>>>>>
>>>>>> Writing portable code in C pretty much requires you to do hefty
>>>>>> compatibility layers.
>>>>>
>>>>> Not really. Sticking to standard POSIX types like size_t, time_t etc
>>>>> gets you a lot of the way there.
>>>>
>>>> POSIX does not cover all aspects.
>>>
>>> Well, you need tools like autoconf as well to handle the more complicated
>>> cases.
>>
>> The existence of that tool is an indication that there is a
>> portability problem.
>
> Which it solves.
No.
>> But autoconf does not solve all problems.
>
> Enough of them to fulfil the needs of hundreds of thousands of portable
> software packages.
Very few of them are portable. They just support a number
of platforms, which is completely different from portable.
>>>> And not all platforms are POSIX compliant.
>>>
>>> All the ones worth using are.
>>
>> Well - I don't think anyone defines portability as running unchanged on
>> the platform one specific person considers worth using.
>
> Except I’m talking about an order of magnitude more different platforms than
> you are.
Since I am talking about all platforms, then that is impossible.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/14/2011 2:20:39 AM
|
|
On 10-02-2011 19:11, Lawrence D'Oliveiro wrote:
> In message<4d50b4e8$0$23754$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 07-02-2011 21:59, Lawrence D'Oliveiro wrote:
>>> In message<4d5032a8$0$41114$e4fe514c@news.xs4all.nl>, Silvio wrote:
>>>
>>>> For certain APIs (MS Windows conatins lots of them) struct layout
>>>> assumpations are essential.
>>>
>>> POSIX manages such things in a portable way.
>>
>> No.
>>
>> POSIX does the same thing as Windows.
>
> POSIX is designed for portability in a way that Windows is not.
Windows is actually running on multiple platforms.
For obvious reasons it does not run on multiple OS'es.
> Where Win32
> uses explicitly-sized types of 32 bits or 16 bits or whatever, POSIX uses
> symbolic names that can be handled differently by different implementations.
Have you considered learning anything about the topics you talk about?
Win32 API has a gazillion typdefs.
> Consider why there was even a need for a Win64, when there is no “POSIX64”.
Win64 API is the same as Win32 API just with a few different typedefs,
so what are you talking about????
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/14/2011 2:25:35 AM
|
|
On 13-02-2011 19:59, Lawrence D'Oliveiro wrote:
> In message<4d5092f7$0$23755$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 07-02-2011 09:01, Thomas Richter wrote:
>>> "Lawrence D'Oliveiro" spat:
>>>>
>>>> Exercise for the reader: explain why Arne Vajhøj is wrong. For extra
>>>> credit, list the implicit preconceptions that might have led to such a
>>>> wrong conclusion.
>>>
>>> The reason is ... that people seem to assume that the linker has no
>>> intelligence, or that there is a linker in first place. Nevertheless, the
>>> C++ standard doesn't even define linking, and the world is no longer that
>>> simple. Thus, I still don't see how this argument applies. Surely the C++
>>> world works different from the java world, but saying that there is no
>>> duplicate code in Java or that there is always code duplication in C++ is
>>> surely wrong.
>>
>> It how the simple implementations do it.
>
> Where are there any “simple implementations” of C++?
Regarding this then I believe almost all are simple.
>> It is what the common implementations do it.
>
> By “common” do you mean Microsoft?
No.
MS, *nix, VMS etc..
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/14/2011 2:26:36 AM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
136> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
136> Classic erroneous presupposition, trollen.
Who is "trollen", Eater? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 2:28:26 AM
|
|
Del Murgatroid <delmurgatroid@gmail.com> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
1> So, how do you all like my usenet troll bots? They were actually
not
1> that hard to program, the basic underlying principle is a Markov
chain
1> of configuarble response scraps that are stitched together based
upon
1> a hierarchy of rules. On top of that I built a string analyzer - it
1> usually handles one sentence at a time, but can analyze up to 30
lines
1> of text at once (30 is just an arbitrary #, by the way, it can
easily
1> be expanded to more). This is the most complicated part of the bot,
as
1> it is here that it determines whether it will arbitrarially declare
1> the analyzed sentence a "fallacious argument" and state the
1> "determined" (I use that term _very_ loosely) fallacious argument
as a
1> complete & valid response to the statement, whether it will
randomly
1> add a totally unrelated newsgroup to the header file, or any of the
1> other 5 generic troll responses. I am especially proud of my
1> "nicknamesult analyzer" It uses a noise analysis algorithm, of my
own
1> devising, on each word to determine whether the non-bot poster is
1> attempting a "nicknamesult" or whether the replier is just a poor
1> speller, technically braindead, etc. (For example, a "nicknamesult"
1> for Arnold would be Assnold or some crap). I will be happy to sell
you
1> my botLib for $50usd. It works on usenet and all html-based forums
and
1> includes a Bot Manager to easily permit fine-tuning of targets,
1> direction of trolling and personalized responses for all deployed
bots
1> through one, while not simple, at least reasonably clear and
beginner
1> friendly interface. Flash-based forum targeting is coming soon.
1> $2,000.00usd to remove your newsgroup from the bot's reply list.
What does your question have to do with OS/2, Murgatroid?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 2:30:17 AM
|
|
=?ISO-8859-1?Q?Arne_Vajh=F8j?= <arne@vajhoej.dk> writes:
21> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
21> Most of the financial sector world wide.
21> Good chunks of accounting firms, retail and
21> public sector systems.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Arne.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 2:31:11 AM
|
|
Heike Svensson <hsvensson.1093x1_q@hotmail.nospam.com.please> writes:
44> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
44> What does your question have to do with OS/2, tholenbot?
Who is "tholenbot", Svensson? There is nobody in this newsgroup
using that alias.
44> And for the record the answer is "no", trollen;
Who is "trollen", Svensson? There is nobody in this newsgroup
using that alias.
44> in fact I never do, thallium.
Who is "thallium", Svensson? There is nobody in this newsgroup
using that alias.
44> But it can be fun to watch others argue, thalidomide,
Who is "thalidomide", Svensson? There is nobody in this newsgroup
using that alias.
44> like you, Sulfide Eater, and Arne Vajh=F8j were doing, tholoon.
Who is "tholoon", Svensson? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 2:33:28 AM
|
|
On 02/13/2011 08:01 PM, Lawrence D'Oliveiro wrote:
> In message<iinkpv$tbg$1@news.eternal-september.org>, Joshua Cranmer wrote:
>> No, it's in the definition of C++ templates.
>
> No, it isn’t.
You need to brush up on your reading skills then.
>> i.e., "you don't have to actually implement this specification so long
>> as a valid program can't tell that you aren't."
>
> My point exactly.
You failed to completely comprehend what I was getting at.
The specification requires them to be distinct classes--which implies
with distinct code implementations; an implementation can only forgo
that requirement if and only if the code does not actually check to make
sure that it is the case.
>> See, it's clear you really haven't read the specs you're trying to
>> language lawyer with us on.
>
> So where did it say whether distinct types had to be implemented with the
> same or different code?
"Every program shall contain exactly one definition of every non-inline
function or object that is used in that program; no diagnostic
required." (§3.2, clause 3) The specification also goes so far as to
specifically call out that "It is unspecified whether such a variable
has an address distinct from that of any other object in the program."
Given such a statement, it is reasonable to assume that the spec intends
for distinct definitions to correspond to distinct objects unless
otherwise mentioned.
Suffice to say, it is required, in Java, for two instantiations of a
generic type with the same raw type to share the same code, whereas in
C++, there are cases where this simply cannot be the case, and the spec
intends for it to never be the case, so far as the program can tell.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Pidgeot18 (1393)
|
2/14/2011 3:24:28 AM
|
|
Arne Vajhøj <arne@vajhoej.dk> wrote:
> On 13-02-2011 17:28, Lawrence D'Oliveiro wrote:
>> In other words, Java code cannot be ported to a system until C has been
>> ported to that system. Or, in other other words:
>> Java portability ≤ C portability
What's so dubious about that statement? Looks perfectly valid to me.
In case you saw a question-mark in his last line, that was a "smaller
or equal"-sign.
The whole discussion resolves quickly, when you distinguish two
separate points:
1) availability of a language on a platform
2) The actual effort of making a particular set of code
run on a particular platform once it fulfills "1)"
Obviously, Lawrence talks about "1)", while you (Arne) seem to
have "2)" in mind.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/14/2011 8:51:38 AM
|
|
Arne Vajhøj <arne@vajhoej.dk> wrote:
> On 08-02-2011 05:25, Andreas Leitgeb wrote:
>> The "problem" about type-erasure is over-rated.
> There are other reasons to not have type erasure.
> new T
Generics are also about not knowing the parameter types
beforehand (except that it derives from some upper bound
class). Thus, the compiler wouldn't be able to determine
availability of an appropriate constructor at compile-time.
Thus, it would once again be a runtime-thing.
If generics were re-compiled for each used parametrisation,
like C++'s templates are, then this argument would be voided,
but I don't know if any current proposals for getting
reifiability into Java go all that far.
> general reflection
is a runtime-thing.
> method overload
If this is a problem, then there was a problem in design
phase. Such overloaded methods would just as well prohibit
using abstract base types for variables. (i.o.w.: would be
bad even aside of generics)
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/14/2011 9:18:46 AM
|
|
Arne Vajhøj <arne@vajhoej.dk> wrote:
> On 08-02-2011 07:53, Lew wrote:
>> Andreas Leitgeb wrote:
>>> The "problem" about type-erasure is over-rated.
>> I'm very glad you made that point. I am glad we have type erasure in
>> Java. It forces you to deal with type assertions at compile time.
> Can you give an example of where introduction of reifiable type
> would cause not getting a compile time error but a runtime error
> instead?
Bad programmers :-)
They might then (without other need) cast a List<String> to a bare List,
relying on runtime-checks to prevent non-Strings to get actually added.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/14/2011 9:23:05 AM
|
|
On 2/14/11 5:23 PM, Andreas Leitgeb wrote:
> Arne Vajhøj<arne@vajhoej.dk> wrote:
>> On 08-02-2011 07:53, Lew wrote:
>>> Andreas Leitgeb wrote:
>>>> The "problem" about type-erasure is over-rated.
>>> I'm very glad you made that point. I am glad we have type erasure in
>>> Java. It forces you to deal with type assertions at compile time.
>
>> Can you give an example of where introduction of reifiable type
>> would cause not getting a compile time error but a runtime error
>> instead?
>
> Bad programmers :-)
> They might then (without other need) cast a List<String> to a bare List,
But that's the point. With reifiable types, that cast would fail. The
code would never get as far as trying to add non-Strings to the list.
Pete
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/14/2011 9:51:23 AM
|
|
On 13/02/2011 9:13 PM, Arne Vajh�j wrote:
> On 12-02-2011 22:17, Sulfide Eater wrote:
>> On 12/02/2011 9:18 PM, Arne Vajh�j wrote:
>>> On 12-02-2011 21:08, Sulfide Eater wrote:
>>>> I am asking who actually used it. Having 3 adopters all of which were
>>>> large organizations is still having 3 adopters and a tiny sliver of
>>>> market share.
>>>
>>> It is a lot more than 3.
>>
>> Wow, was it 6? Maybe even 10? Maybe even as many as 100? Out of what,
>> millions? :)
>
> Most of the financial sector world wide.
Get real. They were using COBOL on Vaxen. Half of them still are.
Everybody knows this.
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/14/2011 10:44:27 AM
|
|
"Sulfide Eater" <zaxx1108@example.com> writes:
> On 13/02/2011 9:31 PM, tholen@antispam.ham wrote:
>> =?ISO-8859-1?Q?Arne_Vajh=F8j?=<arne@vajhoej.dk> writes:
>> 21> Good chunks of accounting firms, retail and
>> 21> public sector systems.
>
> Get real. Those were using COBOL on Vaxen. Half of them
> still are. Everybody knows this.
Smack that brutish Arne around a bit!
>> [insult deleted]s like Sulfide Eater [false accusation
>> deleted], Arne.
>
> What does your classic erroneous presupposition have to
> do with OS/2, trolloon?
Give that nasty tholenbot a taste of its own medicine!
|
|
0
|
|
|
|
Reply
|
hsvensson.1093x1_q (61)
|
2/14/2011 10:47:45 AM
|
|
On 13/02/2011 9:09 PM, Del Murgatroid wrote:
> So, how do you all like my usenet troll bots? They were actually not
> that hard to program, the basic underlying principle is a Markov chain
> of configuarble response scraps that are stitched together based upon
> a hierarchy of rules.
Ah. About what I figured. The tholenbot never struck me as being
particularly sophisticated. Aye, with 23rd-century technology a child
could cobble it together.
> On top of that I built a string analyzer - it usually handles one
> sentence at a time, but can analyze up to 30 lines of text at once
> (30 is just an arbitrary #, by the way, it can easily be expanded
> to more).
That'd be the threshold between "what does that have to do with OS/2"
and "what does any of that have to do with OS/2", I take it?
> I am especially proud of my "nicknamesult analyzer" It uses a noise
> analysis algorithm, of my own devising, on each word to determine
> whether the non-bot poster is attempting a "nicknamesult" or whether
> the replier is just a poor speller, technically braindead, etc.
Aye, it seems to be not too bad at recognizing "trollenbot" etc. as insults.
> (For example, a "nicknamesult" for Arnold would be Assnold or some
> crap).
"Arnhole" would seem to be a bit more clever. It implies, you see,
without quite stooping to explicit vulgarity.
> I will be happy to sell you my botLib for $50usd.
Sell me? Up your shaft. I could write something like that in me sleep!
Open source the wee bugger and then I may be interested.
> It works on usenet and all html-based forums
Aye, it's been sighted at a blog called Against Monopoly as well as
hereabouts.
> includes a Bot Manager to easily permit fine-tuning of targets,
> direction of trolling and personalized responses for all deployed bots
> through one, while not simple, at least reasonably clear and beginner
> friendly interface. Flash-based forum targeting is coming soon.
How did ye get it to recognize certain, er, pop culture references,
laddie? That's the one bit that's a wee bit sophisticated.
> $2,000.00usd to remove your newsgroup from the bot's reply list.
Why, ye low-down, extortionate, bollocks-licking numpty scrote sack! I
ought ta report ya tae Scotland Yard, ye wee miserable nyaff! Now git
outta me sight, ye bum-scratching bampot, before I start makin' phone calls!
Del Murgatroid, indeed -- more like Dull Murkytroll, if ye ask me.
*shakes head*
--
I know this ship like the back of my hand.
<CLANG!>
|
|
0
|
|
|
|
Reply
|
m_scott.19477b (18)
|
2/14/2011 10:59:48 AM
|
|
On 11-02-14 04:51 AM, Andreas Leitgeb wrote:
> Arne Vajhøj<arne@vajhoej.dk> wrote:
>> On 13-02-2011 17:28, Lawrence D'Oliveiro wrote:
>>> In other words, Java code cannot be ported to a system until C has been
>>> ported to that system. Or, in other other words:
>>> Java portability ≤ C portability
>
> What's so dubious about that statement? Looks perfectly valid to me.
> In case you saw a question-mark in his last line, that was a "smaller
> or equal"-sign.
>
> The whole discussion resolves quickly, when you distinguish two
> separate points:
> 1) availability of a language on a platform
> 2) The actual effort of making a particular set of code
> run on a particular platform once it fulfills "1)"
>
> Obviously, Lawrence talks about "1)", while you (Arne) seem to
> have "2)" in mind.
>
I also (rather clearly I thought) have (2) in mind. Code portability to
me is a measure of the amount of modifications that have to be made to a
corpus of user code (application, library etc) written in language X in
order to execute it successfully on a number of different platforms. No
modifications -> completely portable code, few modifications -> highly
portable code, extensive modifications -> nearly unportable code.
In the case of the .NET CLR and the JVM and scripting language
interpreters, those _are_ the platforms. Question (1) then translates to
the availability of the platform on a given OS. But question (2) for
languages based on the CLR and JVM and scripting language interpreters
is very black and white - code portability with respect to OS A is zero
while the language platform is unavailable, and then becomes close to
100% when the language platform _is_ available.
In essence your question (1) has to do with _language_ portability.
Question (2) has to do with _code_ portability, which is what I thought
we were talking about.
C, OTOH, has been very good wrt question (1) for a long time. But it
requires varying degrees of work wrt question (2), on a _case by case_
basis, which means that
Java _code_ portability > C _code_ portability
I don't think Lawrence is consciously talking about (1), I suspect he
does not understand the distinctions here. Unless he's an infrastructure
programmer (and based on other threads I hope to God he's not) he ought
to be concerned about code portability first and foremost.
As another example, I've been writing fairly complicated C# 3.0/C# 4.0
apps on Mac OS X 10.6 (mono 2.8), Ubuntu 10.10 (mono 2.6.7) and Windows
XP (latest stuff from MS), including ASP.NET MVC stuff and doing lots of
DB access. The various apps are as close to WORA between the platforms
as one can imagine, in terms of _code_ portability. I would not expect
to be writing C code that accomplishes the same things, and be able to
plunk it into gcc or VS on all those platforms, and watch it compile and
link without any mods.
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
asandstrom3minus1 (421)
|
2/14/2011 11:12:32 AM
|
|
On Mon, 14 Feb 2011 17:51:23 +0800, Peter Duniho wrote:
> On 2/14/11 5:23 PM, Andreas Leitgeb wrote:
>> Arne Vajhøj<arne@vajhoej.dk> wrote:
>>> On 08-02-2011 07:53, Lew wrote:
>>>> Andreas Leitgeb wrote:
>>>>> The "problem" about type-erasure is over-rated.
>>>> I'm very glad you made that point. I am glad we have type erasure in
>>>> Java. It forces you to deal with type assertions at compile time.
>>
>>> Can you give an example of where introduction of reifiable type would
>>> cause not getting a compile time error but a runtime error instead?
>>
>> Bad programmers :-)
>> They might then (without other need) cast a List<String> to a bare
>> List,
>
> But that's the point. With reifiable types, that cast would fail. The
> code would never get as far as trying to add non-Strings to the list.
Reifyable types wouldn't make a compile time difference in the case of
unsafe use of the raw type. At run time, the effect would be to throw
when the code tried to add a non-String, rather than the non-String
lurking in the list like a roadside bomb and blowing up later in some
innocent traversing method's face, masking the true source of the bug.
|
|
0
|
|
|
|
Reply
|
zjkg3d9gj56 (26)
|
2/14/2011 11:14:04 AM
|
|
On 14/02/2011 6:12 AM, Arved Sandstrom wrote:
> As another example, I've been writing fairly complicated C#
To the devil with you, then, you ... you ... you traitor to the JVM! ;)
|
|
0
|
|
|
|
Reply
|
thermos (2)
|
2/14/2011 11:20:20 AM
|
|
On 02/14/2011 03:51 AM, Andreas Leitgeb wrote:
> Arne Vajhøj<arne@vajhoej.dk> wrote:
>> On 13-02-2011 17:28, Lawrence D'Oliveiro wrote:
>>> In other words, Java code cannot be ported to a system until C has been
>>> ported to that system. Or, in other other words:
>>> Java portability ≤ C portability
>
> What's so dubious about that statement? Looks perfectly valid to me.
> In case you saw a question-mark in his last line, that was a "smaller
> or equal"-sign.
>
> The whole discussion resolves quickly, when you distinguish two
> separate points:
> 1) availability of a language on a platform
> 2) The actual effort of making a particular set of code
> run on a particular platform once it fulfills "1)"
>
> Obviously, Lawrence talks about "1)", while you (Arne) seem to
> have "2)" in mind.
>
There is also point 3) The effort of getting a binary to run on many
different platforms.
Java excels quite nicely at 3, while I'd love to see someone try to get
a C-based i386 Win16 program to run on my shiny ARM7 processor running
Linux.
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
|
|
0
|
|
|
|
Reply
|
Pidgeot18 (1393)
|
2/14/2011 1:06:06 PM
|
|
Arved Sandstrom <asandstrom3minus1@eastlink.ca> wrote:
> In the case of the .NET CLR and the JVM and scripting language
> interpreters, those _are_ the platforms.
That's funny, because by that definition, Java apps (and .NET and scripts)
would be entirely *unportable* - i.e., work only on that one "platform" ;)
> C, OTOH, has been very good wrt question (1) for a long time. But it
> requires varying degrees of work wrt question (2), on a _case by case_
> basis...
I do have the impression of a violent agreement here.
Lawrence perhaps sees the difference not all that large as many
others do, though.
> I would not expect
> to be writing C code that accomplishes the same things, and be able to
> plunk it into gcc or VS on all those platforms, and watch it compile and
> link without any mods.
Depends on what libs you build upon in C (or C++).
Those libs likely have lots of #ifdef'ery inside,
but just as likely so do the native methods in the JSL.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/14/2011 1:22:10 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
137> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
137> Get real. They were using COBOL on Vaxen. Half of them still
are.
137> Everybody knows this.
On what basis do you speak for "everybody", Eater?
By the way, you don't speak for me, Eater.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 1:22:25 PM
|
|
Heike Svensson <hsvensson.1093x1_q@hotmail.nospam.com.please> writes:
45> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
45> Smack that brutish Arne around a bit!
What does your directive have to do with OS/2, Svensson?
45> Give that nasty tholenbot a taste of its own medicine!
Who is "tholenbot", Svensson? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 1:23:35 PM
|
|
Mister Scott <m_scott.19477b@noggles.corn> writes:
12> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
12> Ah. About what I figured. The tholenbot never struck me as being
12> particularly sophisticated. Aye, with 23rd-century technology a
child
12> could cobble it together.
Who is "tholenbot", Mister Scott? There is nobody in this
newsgroup using that alias.
12> That'd be the threshold between "what does that have to do with OS/
2"
12> and "what does any of that have to do with OS/2", I take it?
Your take it wrong, Mister Scott.
12> Aye, it seems to be not too bad at recognizing "trollenbot" etc.
as insults.
Who is "trollebot", Mister Scott? There is nobody in this
newsgroup using that alias.
12> "Arnhole" would seem to be a bit more clever. It implies, you
see,
12> without quite stooping to explicit vulgarity.
What does that have to do with OS/2, Mister Scott?
12> Sell me? Up your shaft. I could write something like that in me
sleep!
12> Open source the wee bugger and then I may be interested.
What does your question have to do with OS/2, Mister Scott?
12> Aye, it's been sighted at a blog called Against Monopoly as well
as
12> hereabouts.
What does that have to do with OS/2, Mister Scott?
12> How did ye get it to recognize certain, er, pop culture
references,
12> laddie? That's the one bit that's a wee bit sophisticated.
What does your question have to do with OS/2, Mister Scott?
12> Why, ye low-down, extortionate, bollocks-licking numpty scrote
sack! I
12> ought ta report ya tae Scotland Yard, ye wee miserable nyaff! Now
git
12> outta me sight, ye bum-scratching bampot, before I start makin'
phone calls!
What does that have to do with OS/2, Mister Scott?
12> Del Murgatroid, indeed -- more like Dull Murkytroll, if ye ask
me.
12> *shakes head*
What does that have to do with OS/2, Mister Scott?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 1:28:17 PM
|
|
Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
> On 2/14/11 5:23 PM, Andreas Leitgeb wrote:
>> Arne Vajhøj<arne@vajhoej.dk> wrote:
>>> Can you give an example of where introduction of reifiable type
>>> would cause not getting a compile time error but a runtime error
>>> instead?
>> Bad programmers :-)
>> They might then (without other need) cast a List<String> to a bare List,
> But that's the point. With reifiable types, that cast would fail.
Would it, or would it not? Who can tell?
I agree, that for certian implementations of reifyability there may not
exist an example as requested by Arne, or at least not one that I could
anticipate now without knowing the actual implementation.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/14/2011 1:45:51 PM
|
|
On 2/14/11 9:45 PM, Andreas Leitgeb wrote:
> Peter Duniho<NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>> On 2/14/11 5:23 PM, Andreas Leitgeb wrote:
>>> Arne Vajhøj<arne@vajhoej.dk> wrote:
>>>> Can you give an example of where introduction of reifiable type
>>>> would cause not getting a compile time error but a runtime error
>>>> instead?
>>> Bad programmers :-)
>>> They might then (without other need) cast a List<String> to a bare List,
>> But that's the point. With reifiable types, that cast would fail.
>
> Would it, or would it not? Who can tell?
I don't understand the question. By definition, a reified generic
incorporates the entire type (generic type along with type parameters)
within the type. See the C# generic system for an example.
> I agree, that for certian implementations of reifyability there may not
> exist an example as requested by Arne, or at least not one that I could
> anticipate now without knowing the actual implementation.
It would help if you could explain how your definition of "reified"
still allows for raw types. How do you get a reified generic type
system where the instance of one concrete generic type is still
assignable to a variable that's declared as a completely different
concrete generic type, or even a completely different raw type?
Please note that "reified" doesn't simply mean you have access to the
type parameter. It means that you get a specific and unique, _concrete_
instance of the abstract generic type. Being a unique type in and of
itself, it would be subject to all the same rules of casting and
assignment that every other type has in Java.
Thanks,
Pete
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/14/2011 2:07:07 PM
|
|
On 14/02/2011 8:22 AM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
>
> 137> Newsgroups:
> comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
>
> 137> Get real. They were using COBOL on Vaxen. Half of them still
> are.
> 137> Everybody knows this.
>
> On what basis do you speak for "everybody", Eater?
I am not claiming to do so, tholenoid; merely making a statement of fact
regarding a particular other fact being common knowledge, trollen.
> By the way, you don't speak for me, Eater.
You don't speak at all, thalidomide, nor will you until your developer
decides to add a voice synthesis feature to your program, tholenbot.
Though I can't imagine why he would, thallium -- perhaps to turn you
loose on an unsuspecting VOIP-using populace, trillium?
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/14/2011 2:25:41 PM
|
|
On 14/02/2011 8:28 AM, tholen@antispam.ham wrote:
> Mister Scott<m_scott.19477b@noggles.corn> writes:
> 12> That'd be the threshold between "what does that have to do with OS/
> 12> 2" and "what does any of that have to do with OS/2", I take it?
>
> Your take it wrong, Mister Scott.
Well, I'll be -- Dull Murkytroll even programmed ye to lie, tholenbot!
--
I know this ship like the back of my hand.
<CLANG!>
|
|
0
|
|
|
|
Reply
|
m_scott.19477b (18)
|
2/14/2011 2:27:54 PM
|
|
Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
> On 2/14/11 9:45 PM, Andreas Leitgeb wrote:
>> Would it, or would it not? Who can tell?
> I don't understand the question. By definition, a reified generic
> incorporates the entire type (generic type along with type parameters)
> within the type.
I admit maybe being a bit naive about this. Just like you could
probably still assign an ArrayList<String> to an Object-typed
variable, I meant, that you could also assign it to a bare List
type as being some sort of imaginary superclass/interface of the
correctly parameterized one.
> See the C# generic system for an example.
Learning C# is currently not on my todo-list, and all I know
about it happens to be what I gathered here in c.l.j.p
> ... Being a unique type in and of
> itself, it would be subject to all the same rules of casting and
> assignment that every other type has in Java.
yep, had that in mind.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/14/2011 5:43:10 PM
|
|
On 2/15/11 1:43 AM, Andreas Leitgeb wrote:
> Peter Duniho<NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>> On 2/14/11 9:45 PM, Andreas Leitgeb wrote:
>>> Would it, or would it not? Who can tell?
>> I don't understand the question. By definition, a reified generic
>> incorporates the entire type (generic type along with type parameters)
>> within the type.
>
> I admit maybe being a bit naive about this. Just like you could
> probably still assign an ArrayList<String> to an Object-typed
> variable, I meant, that you could also assign it to a bare List
> type as being some sort of imaginary superclass/interface of the
> correctly parameterized one.
Ah, I see. And the answer is, well…yes. That could happen in theory.
It happens in .NET too. With the introduction of generics, the old
interfaces such as IEnumerable, IList, ICollection, etc. got new
counterparts IEnumerable<T>, IList<T>, ICollection<T>. In some cases,
such as for IEnumerable<T>, the new interface inherits the old one.
But note that IList<T> and ICollection<T> do _not_ inherit their old
counter-part. IEnumerable<T> can do it because it's essentially
covariant with respect to its type parameter T and IEnumerable is itself
equivalent to IEnumerable<object>. Assigning an IEnumerable<T> to an
IEnumerable can't harm anything because you can only get things _out_ of
IEnumerable, not put them into it.
But for similar reasoning, it would not be safe to assign IList<T> to an
IList, in the same way you point out it would not be safe to assign (for
example) List<T> to List. IList<T> can't have variance with respect to
the type parameter T because it's used both as input and output to the type.
The way to deal with this is to not have IList<T> inherit IList in the
first place, and presumably reified generics in Java would follow a
similar approach.
In other words, yes…it's true that you could in fact design a screwed up
type hierarchy in which bad things were possible. The solution? Don't
do that! :)
Pete
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/14/2011 6:27:39 PM
|
|
On 11-02-14 09:22 AM, Andreas Leitgeb wrote:
> Arved Sandstrom<asandstrom3minus1@eastlink.ca> wrote:
>> In the case of the .NET CLR and the JVM and scripting language
>> interpreters, those _are_ the platforms.
>
> That's funny, because by that definition, Java apps (and .NET and scripts)
> would be entirely *unportable* - i.e., work only on that one "platform" ;)
[ SNIP ]
In a weird kind of way that's quite true - good point. :-) I guess we
could argue whether Java has either zero portability or very high
portability, depending on how you define "platform".
AHS
--
We must recognize the chief characteristic of the modern era - a
permanent state of what I call violent peace.
-- James D. Watkins
|
|
0
|
|
|
|
Reply
|
asandstrom3minus1 (421)
|
2/14/2011 10:54:07 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
138> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
138> I am not claiming to do so,
Classic contradiction:
"Everybody knows this."
--Sulfide Eater
138> tholenoid;
Who is "tholennoid", Eater? There is nobody in this newsgroup
using that alias.
138> merely making a statement of fact
138> regarding a particular other fact being common knowledge,
trollen.
Classic erroneous presupposition.
138> You don't speak at all, thalidomide,
Who is "thalidomide", Eater? There is nobody in this newsgroup
using that alias.
138> nor will you until your developer
138> decides to add a voice synthesis feature to your program,
tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
138> Though I can't imagine why he would, thallium
Who is "thallium", Eater? There is nobody in this newsgroup
using that alias.
138> -- perhaps to turn you loose on an unsuspecting VOIP-using
populace,
138> trillium?
Who is "trillium", Eater? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 11:54:18 PM
|
|
Mister Scott <m_scott.19477b@noggles.corn> writes:
13> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
13> Well, I'll be -- Dull Murkytroll even programmed ye to lie,
tholenbot!
Who is "tholenbot", Mister Scott? There is nobody in this
newsgroup using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/14/2011 11:55:24 PM
|
|
Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
> Ah, I see. And the answer is, well…yes. That could happen in theory.
> It happens in .NET too.
I notice I digressed unnecessarily by throwing in bare types.
Lew's claim was, that reifyability may even be bad. Then someone
asked, how reifyability could ever possibly hurt.
Then I *should* have said the following:
With reifyable types, lazy programmers might prefer to assign an
ArrayList<Foo<Bar,Snafu>> just to an Object variable at some point,
relying on reifyability for having any later cast properly checked.
But if something was wrong, those checks would only bomb at runtime!
You're free to choose not to accept arguments like "a lazy programmer
might ...". If so, then so be it. For me this subthread is closed.
Perhaps Lew picks up the ball himself and posts a better argument...
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/15/2011 12:21:40 AM
|
|
Joshua Cranmer <Pidgeot18@verizon.invalid> wrote:
> ..., while I'd love to see someone try to get
> a C-based i386 Win16 program to run on my shiny
> ARM7 processor running
Not sure... dosemu? vmware? ... ;-)
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/15/2011 12:25:51 AM
|
|
On 2/15/11 8:21 AM, Andreas Leitgeb wrote:
> Peter Duniho<NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>> Ah, I see. And the answer is, well…yes. That could happen in theory.
>> It happens in .NET too.
>
> I notice I digressed unnecessarily by throwing in bare types.
>
> Lew's claim was, that reifyability may even be bad. Then someone
> asked, how reifyability could ever possibly hurt.
>
> Then I *should* have said the following:
> With reifyable types, lazy programmers might prefer to assign an
> ArrayList<Foo<Bar,Snafu>> just to an Object variable at some point,
> relying on reifyability for having any later cast properly checked.
> But if something was wrong, those checks would only bomb at runtime!
I guess I'm confused as to what point you're trying to make. Is your
goal to support or refute what Lew wrote? Because the above appears to
me to refute Lew's assertion that reifiable types could have negative
consequences and implication that there are no useful benefits.
Note that even without reifiable types, lazy programmers might prefer to
assign an ArrayList<Foo<Bar, Snafu>> to Object. Then, casting back to
anything other than an ArrayList would fail. But in Java, the cast
could be to _any_ ArrayList, and on top of that, any addition, even
something not a Foo<Bar, Snafu>, to the list would also succeed.
Any run-time failure would occur later, when code tried to retrieve an
object from the list and cast it to Foo<Bar, Snafu>, leaving the
programmer trying to figure out how the non-Foo<Bar, Snafu> got into the
list in the first place.
With a reifiable generic system, you'd get the type-cast failure as soon
as the Object was cast back to anything other than ArrayList<Foo<Bar,
Snafu>>, leaving no doubt as to the precise point of failure. You would
not even get as far as being able to try to add something other than a
Foo<Bar, Snafu> to the list; that would be checked at compile time
(because you can only add Foo<Bar, Snafu> to lists that support those
types, and an ArrayList<Foo<Bar, Snafu>> would support only interfaces
that explicitly allow that type).
> You're free to choose not to accept arguments like "a lazy programmer
> might ...". If so, then so be it.
I have no idea what that's supposed to mean. I am actually very fond of
language features that prevent a lazy programmer from doing the wrong
thing. It's one of the reasons I like Java (and its heir to the throne,
C#) so much: it's much harder (though not impossible) for laziness to
result in incorrect code.
Just the other day, a coworker accidentally wrote (essentially) this
sequence of code in C++, using C++'s template feature and the STL vector
template:
void function(int n)
{
vector<bool> vf;
vf.resize(n);
const bool *pf = (const bool *)&vf[0];
// do some stuff with pf
}
I failed to notice the problem myself. In C++, while vector<T> is a
general-purpose template, C++ also allows "template specialization", of
which vector<bool> is one. While the normal vector<T> implementation
stores each T element in a plain array, the vector<bool> implementation
is "fancy" and stores the flags more compactly, as a bit array. Taking
the address of the first element is not really even allowed.
Except that two C++ features conspired to allow the above code. The
first was that it was a Microsoft compiler (trolls feel free to insert
standard snarky anti-Microsoft comment here), with Microsoft language
extensions enabled. The second was that C++ figures if you write an
explicit cast, you know what the heck you're doing and carries on
without complaint.
The "lazy" comes in, in that even with Microsoft extensions enabled, the
above code did not compile without the cast (even though were it legal
to take the address of the 0th element, it would have), and rather than
figuring out what the error message was saying, they just stuck a cast
in to get the compiler to shut up.
While I was happy to be reminded about the vector<bool> trap, I was even
happier to be reminded that in my current languages of preference, one
could not even have accomplished that particular mistake.
Anyway, that's a long way of saying that I'm not against "it prevents
lazy programmers from being mistakes" as a justification for or against
language features. I just don't see how reifiable generics would
somehow enable, never mind encourage, laziness.
> For me this subthread is closed.
> Perhaps Lew picks up the ball himself and posts a better argument...
Does that mean that you are in agreement with Lew? If so, does that
mean you are unable to actually explain _why_ you agree with Lew?
Pete
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/15/2011 2:39:23 AM
|
|
In message <4d58929a$0$23756$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
> On 10-02-2011 19:11, Lawrence D'Oliveiro wrote:
>
>> In message<4d50b4e8$0$23754$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>
>>> On 07-02-2011 21:59, Lawrence D'Oliveiro wrote:
>>>
>> POSIX is designed for portability in a way that Windows is not.
>
> Windows is actually running on multiple platforms.
All but one of which are now defunct.
> For obvious reasons it does not run on multiple OS'es.
I thought Windows WAS an OS.
>> Where Win32 uses explicitly-sized types of 32 bits or 16 bits or
>> whatever, POSIX uses symbolic names that can be handled differently by
>> different implementations.
>
> Have you considered learning anything about the topics you talk about?
Have you?
> Win32 API has a gazillion typdefs.
Which are tied to specific sizes like 16 and 32 bits.
>> Consider why there was even a need for a Win64, when there is no
>> “POSIX64”.
>
> Win64 API is the same as Win32 API just with a few different typedefs,
> so what are you talking about????
The fact that it needs to exist.
|
|
0
|
|
|
|
Reply
|
ldo (2144)
|
2/15/2011 7:01:15 AM
|
|
Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
> On 2/15/11 8:21 AM, Andreas Leitgeb wrote:
>> Peter Duniho<NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>>> Ah, I see. And the answer is, well…yes. That could happen in theory.
>>> It happens in .NET too.
>> I notice I digressed unnecessarily by throwing in bare types.
>> Lew's claim was, that reifyability may even be bad. Then someone
>> asked, how reifyability could ever possibly hurt.
>> Then I *should* have said the following:
>> With reifyable types, lazy programmers might prefer to assign an
>> ArrayList<Foo<Bar,Snafu>> just to an Object variable at some point,
>> relying on reifyability for having any later cast properly checked.
> I guess I'm confused as to what point you're trying to make. Is your
> goal to support or refute what Lew wrote?
It's amazing how something that - even on second reading - sounds
crystal clear to me, seems to be suahili to others...
Lets try a completely different parable: Safety nets.
Java already has a safety net: Even if I accidentally get an
ArrayList<String> instance into a List<Integer>-typed reference,
I won't crush into the ground ... ahem, won't be able to access
any of its non-null elements as Integers.
Reifyable generics would raise this net a notch higher, so falling
into it would be somewhat more comfortable - but that still doesn't
change the fact of "falling".
The ultimate goal is *not* falling into the net, rather than
falling more comfortably!
> Does that mean that you are in agreement with Lew? If so, does that
> mean you are unable to actually explain _why_ you agree with Lew?
I do hope, my point became clearer, now.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/15/2011 11:08:15 AM
|
|
On 2/15/11 7:08 PM, Andreas Leitgeb wrote:
> [...]
>> Does that mean that you are in agreement with Lew? If so, does that
>> mean you are unable to actually explain _why_ you agree with Lew?
>
> I do hope, my point became clearer, now.
Unfortunately, no. And your failure to actually answer my question
directly didn't help matters.
Lew wrote: "The problem with reifiable types is that it's too easy to do
a half-assed job of your type analysis, thus resulting in the runtime
errors to which Andreas alludes." Since reified generics doesn't
_reduce_ any of the compile-time protections that Java's generic
provide, it's unclear to me what "half-assed job" Lew's talking about here.
And if that point _does_ have some validity, then I wonder what any of
us are doing wasting our time with Java in the first place. Java does
all sorts of things that remove the need for the programmer to focus on
certain kinds of program correctness. This even includes the generics
feature. If that was justification for eschewing features, we would
still be programming computers with front panel switches.
As far as your "safety net" example goes, for that particular example,
the important consideration there is that while you can't extract
objects of the wrong type should they happen to get into the list, the
error will be far removed from the section of code where the actual bug
exists. That is definitely a poorer way to deal with the error than for
it to occur immediately.
But really, that whole scenario doesn't seem relevant to me. The point
is that reified generics offer _other_ benefits besides that one. I
really don't see how it's a bad thing for the run-time errors to be more
precise, but even if we decided that was true, that does not speak to
the other advantages reified generics provide.
It seems to me that the crux of the problem is in your statement that
"But generics aren't about runtime errors. They are about being able to
prevent some runtime-errors, by turning them into compile-time errors".
If you _believe_ that statement, then I agree…it's true that any
run-time benefit is irrelevant. But that truth is a trivial,
tautological outcome of the assumption.
My belief is that stronger compile-time correctness is but _one_ benefit
of generics, and that it's a mistake to think that's the _only_ benefit,
or that that's all "they are about". I can see how someone focused on
Java would think that's all they are about. In Java, that _is_ all they
are about, because Java generics disappear after the compiler is done
with them. But that doesn't mean the same is true of the concept of
generics. It just means that's Java's particular implementation of them.
If you start with the assumption that Java's current implementation of
generics is the end-all, be-all to generics then yes, you will conclude
that there is nothing to be gained by adding new features to Java
generics. But making language design decisions on such circular logic
seems pretty short-sighted to me.
Pete
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/15/2011 11:30:11 AM
|
|
Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
> On 2/15/11 7:08 PM, Andreas Leitgeb wrote:
>> I do hope, my point became clearer, now.
> Unfortunately, no.
Then I give up. Sorry for all your unanswered questions.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/15/2011 12:06:50 PM
|
|
Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> wrote:
> Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>> On 2/15/11 7:08 PM, Andreas Leitgeb wrote:
>>> I do hope, my point became clearer, now.
>> Unfortunately, no.
> Then I give up. Sorry for all your unanswered questions.
Well, not yet. Just one more line:
My point is, that the higher safety net may *discourage*
people from investing more brain into "not-falling."
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/15/2011 12:24:38 PM
|
|
On 2/15/11 8:24 PM, Andreas Leitgeb wrote:
> Andreas Leitgeb<avl@gamma.logic.tuwien.ac.at> wrote:
>> Peter Duniho<NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>>> On 2/15/11 7:08 PM, Andreas Leitgeb wrote:
>>>> I do hope, my point became clearer, now.
>>> Unfortunately, no.
>> Then I give up. Sorry for all your unanswered questions.
>
> Well, not yet. Just one more line:
> My point is, that the higher safety net may *discourage*
> people from investing more brain into "not-falling."
And my point is, why is that a bad thing? I have only a limited amount
of brain to apply to any particular problem. I would prefer to apply
that limited amount of brain to the _interesting_ parts of the problem
rather than wasting time applying it to parts of the problem that a
computer can just as easily figure out on its own.
I am particularly amused at the irony of _any_ regular posting to a
_Java_ forum complaining about any feature that makes it _harder_ to
make mistakes. That really is too rich.
Pete
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/15/2011 12:51:09 PM
|
|
Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>> My point is, that the higher safety net may *discourage*
>> people from investing more brain into "not-falling."
> And my point is, why is that a bad thing?
This is kind of an "axiom" for me, so I can't support it with
further arguments.
|
|
0
|
|
|
|
Reply
|
avl1 (2656)
|
2/15/2011 1:37:37 PM
|
|
On 2/15/11 9:37 PM, Andreas Leitgeb wrote:
> Peter Duniho<NpOeStPeAdM@NnOwSlPiAnMk.com> wrote:
>>> My point is, that the higher safety net may *discourage*
>>> people from investing more brain into "not-falling."
>>
>> And my point is, why is that a bad thing?
>
> This is kind of an "axiom" for me, so I can't support it with
> further arguments.
You have an _axiom_ that states that a certain kind of safety net is bad
while another kind of safety net is fine?
That's pretty damn specific for an axiom. Around here, we call that
"dogma".
|
|
0
|
|
|
|
Reply
|
NpOeStPeAdM (1107)
|
2/15/2011 4:11:26 PM
|
|
On 2/13/2011 9:09 PM, Del Murgatroid wrote:
> So, how do you all like my usenet troll bots?
!()#%* off, and let's never meet in person!
|
|
0
|
|
|
|
Reply
|
eyenot (1)
|
2/15/2011 11:49:17 PM
|
|
On 15-02-2011 02:01, Lawrence D'Oliveiro wrote:
> In message<4d58929a$0$23756$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>> On 10-02-2011 19:11, Lawrence D'Oliveiro wrote:
>>> In message<4d50b4e8$0$23754$14726298@news.sunsite.dk>, Arne Vajhøj wrote:
>>>
>>>> On 07-02-2011 21:59, Lawrence D'Oliveiro wrote:
>>>>
>>> POSIX is designed for portability in a way that Windows is not.
>>
>> Windows is actually running on multiple platforms.
>
> All but one of which are now defunct.
Which is not correct. x86, x86-64 and IA-64. And ARM on its way.
>> For obvious reasons it does not run on multiple OS'es.
>
> I thought Windows WAS an OS.
Yes. Single OS not multiple OS:
>>> Where Win32 uses explicitly-sized types of 32 bits or 16 bits or
>>> whatever, POSIX uses symbolic names that can be handled differently by
>>> different implementations.
>>
>> Have you considered learning anything about the topics you talk about?
>
> Have you?
>
>> Win32 API has a gazillion typdefs.
>
> Which are tied to specific sizes like 16 and 32 bits.
No - they can be changed if needed.
Exactly like POSIX.
>>> Consider why there was even a need for a Win64, when there is no
>>> “POSIX64”.
>>
>> Win64 API is the same as Win32 API just with a few different typedefs,
>> so what are you talking about????
>
> The fact that it needs to exist.
Windows did the same thing as POSIX.
You change a few typedefs and then it is 64 bit.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/16/2011 2:55:12 AM
|
|
On 14-02-2011 03:51, Andreas Leitgeb wrote:
> Arne Vajhøj<arne@vajhoej.dk> wrote:
>> On 13-02-2011 17:28, Lawrence D'Oliveiro wrote:
>>> In other words, Java code cannot be ported to a system until C has been
>>> ported to that system. Or, in other other words:
>>> Java portability ≤ C portability
>
> What's so dubious about that statement? Looks perfectly valid to me.
> In case you saw a question-mark in his last line, that was a "smaller
> or equal"-sign.
>
> The whole discussion resolves quickly, when you distinguish two
> separate points:
> 1) availability of a language on a platform
> 2) The actual effort of making a particular set of code
> run on a particular platform once it fulfills "1)"
>
> Obviously, Lawrence talks about "1)", while you (Arne) seem to
> have "2)" in mind.
But #1 has nothing to do with portability.
http://en.wikipedia.org/wiki/Software_portability
If we have a C++ app running on Windows using MFC, ATL and COM,
then considering that being portable to Linux because Linux has
C++ is absurd.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/16/2011 2:59:11 AM
|
|
On 14-02-2011 08:22, Andreas Leitgeb wrote:
> Arved Sandstrom<asandstrom3minus1@eastlink.ca> wrote:
>> In the case of the .NET CLR and the JVM and scripting language
>> interpreters, those _are_ the platforms.
>
> That's funny, because by that definition, Java apps (and .NET and scripts)
> would be entirely *unportable* - i.e., work only on that one "platform" ;)
Stroustrup once said that Java is not cross-platform but instead it
is a platform itself.
And that is a bit funny.
But the practical impact is not that big.
You can move your jar file to Windows, Linux, Solaris, MacOS X,
OpenVMS, z/OS and run it unchanged.
>> C, OTOH, has been very good wrt question (1) for a long time. But it
>> requires varying degrees of work wrt question (2), on a _case by case_
>> basis...
>
> I do have the impression of a violent agreement here.
> Lawrence perhaps sees the difference not all that large as many
> others do, though.
Maybe not, but it is pretty easy to look at some of that C/C++ code
and see the ifdefs.
>> I would not expect
>> to be writing C code that accomplishes the same things, and be able to
>> plunk it into gcc or VS on all those platforms, and watch it compile and
>> link without any mods.
>
> Depends on what libs you build upon in C (or C++).
> Those libs likely have lots of #ifdef'ery inside,
1) That is relative rarely the case
2) It does not make the app portable - it just make the app
run on the platforms the lib is supporting
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/16/2011 3:03:34 AM
|
|
On 14-02-2011 05:44, Sulfide Eater wrote:
> On 13/02/2011 9:13 PM, Arne Vajh�j wrote:
>> On 12-02-2011 22:17, Sulfide Eater wrote:
>>> On 12/02/2011 9:18 PM, Arne Vajh�j wrote:
>>>> On 12-02-2011 21:08, Sulfide Eater wrote:
>>>>> I am asking who actually used it. Having 3 adopters all of which were
>>>>> large organizations is still having 3 adopters and a tiny sliver of
>>>>> market share.
>>>>
>>>> It is a lot more than 3.
>>>
>>> Wow, was it 6? Maybe even 10? Maybe even as many as 100? Out of what,
>>> millions? :)
>>
>> Most of the financial sector world wide.
>
> Get real. They were using COBOL on Vaxen. Half of them still are.
> Everybody knows this.
I doubt that everybody is so much wrong.
I guess you are more unique in that regards.
VAX'es were never that widely used client side.
And even though some did use COBOL on VAX'es, then
COBOL and PL/I on IBM mainframe was a lot more common.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/16/2011 3:06:22 AM
|
|
On 13/02/2011 11:41 AM, Sulfide Eater wrote:
>> OS/2 was pretty widely used once.
>
> Where, in West Rectum, Rajikistan? I can't recall ever stumbling upon a
> single person using it as their desktop OS even during its so-called
> heyday.
The entire banking industry, for a start. But if this question is going
to come down to your personal experience of desktop operating systems it
retains zero interest.
|
|
0
|
|
|
|
Reply
|
esmond.pitt2810 (33)
|
2/16/2011 7:34:07 AM
|
|
"Gabriel Arthur Petrie (eyenot)" <eyenot@gmail.com> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,rec.games.roguelike.development
1> !()#%* off, and let's never meet in person!
What does your aversion to Murgatroid have to do with OS/2, eyenot?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/16/2011 1:10:55 PM
|
|
=?ISO-8859-1?Q?Arne_Vajh=F8j?= <arne@vajhoej.dk> writes:
22> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
22> I doubt that everybody is so much wrong.
Sulfide Eater apparently thinks that Digital Equipment had the
entire finanical sector wrapped up. Must not do much shopping
either, else an IBM point of sale terminal would have been
encountered sooner or later.
22> I guess you are more unique in that regards.
Sulfide Eater is unique in other ways as well, but
his online persona certainly is not.
22> VAX'es were never that widely used client side.
VAXes were popular in scientific circles. Digital was one of
the leading suppliers of Fortran compiler technology.
22> And even though some did use COBOL on VAX'es, then
22> COBOL and PL/I on IBM mainframe was a lot more common.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Arne.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
2/16/2011 1:17:57 PM
|
|
On 14/02/2011 6:54 PM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
>
> 138> Newsgroups:
> comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
>
> 138> I am not claiming to do so,
>
> Classic contradiction
What does your classic unsubstantiated and erroneous claim have to do
with OS/2, tholenbot?
> 138> merely making a statement of fact
> 138> regarding a particular other fact being common knowledge,
> trollen.
>
> Classic erroneous presupposition.
What does your classic unsubstantiated and erroneous claim have to do
with OS/2, trollen?
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/17/2011 3:30:13 AM
|
|
On 15/02/2011 10:06 PM, Arne Vajh�j wrote:
> On 14-02-2011 05:44, Sulfide Eater wrote:
>> Get real. They were using COBOL on Vaxen. Half of them still are.
>> Everybody knows this.
>
> I doubt that everybody is so much [insult deleted].
The only one here who seems to be [insult deleted] is you, Vajh�j.
> I guess you are more unique in that regards.
The only one here who seems to be [insult deleted] is you, Vajh�j.
> VAX'es were never that widely used client side.
We were discussing what large financial companies run their number
crunching software on, Vajh�j. That is not "client side", Vajh�j.
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/17/2011 3:32:45 AM
|
|
On 16/02/2011 8:17 AM, tholen@antispam.ham wrote:
> =?ISO-8859-1?Q?Arne_Vajh=F8j?=<arne@vajhoej.dk> writes:
> 22> I doubt that everybody is so much wrong.
No, just Vajh�j.
> Sulfide Eater apparently thinks that Digital Equipment had the
> entire finanical sector wrapped up.
What does your classic erroneous presupposition have to do with OS/2,
tholenbot?
> Must not do much shopping either
What does your classic erroneous presupposition have to do with OS/2,
tholenator?
> else an IBM point of sale terminal would have been
> encountered sooner or later.
What do IBM point of sale terminals in stores have to do with the
identity of the manufacturer of the mainframes at a large financial
firm, thalidomide? As long as both ends support a common communications
protocol, they do not need to be the same, tholian.
> 22> I guess you are more unique in that regards.
>
> Sulfide Eater is unique in other ways as well, but
> his online persona certainly is not.
What does your agreement with Vajh�j's classic erroneous presupposition
have to do with OS/2, tholoon?
> 22> VAX'es were never that widely used client side.
>
> VAXes were popular in scientific circles. Digital was one of
> the leading suppliers of Fortran compiler technology.
What does that have to do with the mainframes at large financial firms,
thalien?
> Trolls like Sulfide Eater
What does your classic erroneous presupposition have to do with OS/2,
trollenbot?
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/17/2011 3:37:59 AM
|
|
On 16/02/2011 2:34 AM, Esmond Pitt wrote:
> On 13/02/2011 11:41 AM, Sulfide Eater wrote:
>>> OS/2 was pretty widely used once.
>>
>> Where, in West Rectum, Rajikistan? I can't recall ever stumbling upon a
>> single person using it as their desktop OS even during its so-called
>> heyday.
>
> The entire banking industry, for a start.
What do VAX mainframes running COBOL software have to do with OS/2, Pitt?
> But if this question is going to come down to your personal experience
> of desktop operating systems it retains zero interest.
What does that have to do with OS/2, Pitt?
And a rather ironic statement, Pitt, considering that you evidently
found it interesting enough to not only read it but post a followup.
|
|
0
|
|
|
|
Reply
|
zaxx1108 (116)
|
2/17/2011 3:39:43 AM
|
|
On 16-02-2011 22:39, Sulfide Eater wrote:
> On 16/02/2011 2:34 AM, Esmond Pitt wrote:
>> On 13/02/2011 11:41 AM, Sulfide Eater wrote:
>>>> OS/2 was pretty widely used once.
>>>
>>> Where, in West Rectum, Rajikistan? I can't recall ever stumbling upon a
>>> single person using it as their desktop OS even during its so-called
>>> heyday.
>>
>> The entire banking industry, for a start.
>
> What do VAX mainframes running COBOL software have to do with OS/2, Pitt?
VAX is a minicomputer not a mainframe.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/18/2011 3:27:44 AM
|
|
On 16-02-2011 22:32, Sulfide Eater wrote:
>> VAX'es were never that widely used client side.
>
> We were discussing what large financial companies run their number
> crunching software on, Vajh�j. That is not "client side", Vajh�j.
12-02-2011 21:02 you wrote:
#I'm more interested in client-side.
So I tried to answer your question.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/18/2011 3:29:33 AM
|
|
On 16-02-2011 08:17, tholen@antispam.ham wrote:
> =?ISO-8859-1?Q?Arne_Vajh=F8j?=<arne@vajhoej.dk> writes:
> 22> VAX'es were never that widely used client side.
>
> VAXes were popular in scientific circles.
True.
But they were also common in various other areas.
> Digital was one of
> the leading suppliers of Fortran compiler technology.
Yep.
"VAX extensions" were the de-facto standard once for
Fortran.
Arne
|
|
0
|
|
|
|
Reply
|
arne6 (9487)
|
2/18/2011 3:31:28 AM
|
|
On 17/02/2011 10:27 PM, Arne Vajh�j wrote:
> On 16-02-2011 22:39, Sulfide Eater wrote:
>> What do VAX mainframes running COBOL software have to do with OS/2, Pitt?
>
> VAX is a minicomputer not a mainframe.
Classic illogic. VAX is an operating system, Vajh�j.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 3:37:44 AM
|
|
On 17-02-2011 22:37, Sulfide Eater wrote:
> On 17/02/2011 10:27 PM, Arne Vajh�j wrote:
>> On 16-02-2011 22:39, Sulfide Eater wrote:
>>> What do VAX mainframes running COBOL software have to do with OS/2,
>>> Pitt?
>>
>> VAX is a minicomputer not a mainframe.
>
> Classic illogic. VAX is an operating system, Vajh�j.
No - VAX is a computer. VMS is an operating system.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/18/2011 3:44:17 AM
|
|
On 17/02/2011 10:29 PM, Arne Vajh�j wrote:
> On 16-02-2011 22:32, Sulfide Eater wrote:
>>> VAX'es were never that widely used client side.
>>
>> We were discussing what large financial companies run their number
>> crunching software on, Vajh�j. That is not "client side", Vajh�j.
>
> 12-02-2011 21:02 you wrote:
>
> #I'm more interested in client-side.
>
> So I tried to answer your question.
Yes, but then you started discussing the number crunching needs of large
financial companies, Vajh�j.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 3:51:46 AM
|
|
On 17/02/2011 10:44 PM, Arne Vajh�j wrote:
> On 17-02-2011 22:37, Sulfide Eater wrote:
>> On 17/02/2011 10:27 PM, Arne Vajh�j wrote:
>>> On 16-02-2011 22:39, Sulfide Eater wrote:
>>>> What do VAX mainframes running COBOL software have to do with OS/2,
>>>> Pitt?
>>>
>>> VAX is a minicomputer not a mainframe.
>>
>> Classic illogic. VAX is an operating system, Vajh�j.
>
> [calls me a liar]
What does your classic unsubstantiated and erroneous claim have to do
with Java, Vajh�j?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 3:53:05 AM
|
|
"Sulfide Eater" <zaxx1108@example.com> wrote in message
news:ijkpi8$kfc$2@speranza.aioe.org...
> On 17/02/2011 10:27 PM, Arne Vajh�j wrote:
>> On 16-02-2011 22:39, Sulfide Eater wrote:
>>> What do VAX mainframes running COBOL software have to do with OS/2,
>>> Pitt?
>>
>> VAX is a minicomputer not a mainframe.
>
> Classic illogic. VAX is an operating system, Vajh�j.
Nope. An architecture and a series of computers that implemented it, but
not an operating system.
|
|
0
|
|
|
|
Reply
|
Mike
|
2/18/2011 4:38:48 AM
|
|
On 17/02/2011 11:38 PM, Mike Schilling wrote:
> "Sulfide Eater" <zaxx1108@example.com> wrote in message
> news:ijkpi8$kfc$2@speranza.aioe.org...
>> Classic illogic. VAX is an operating system, Vajh�j.
>
> [calls me a liar]
What does your classic unsubstantiated and erroneous claim have to do
with Java, Schilling?
And it's classic redundancy, too. Vajh�j had made the exact same claim
nearly an hour earlier, Schilling.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 5:42:42 AM
|
|
=?ISO-8859-1?Q?Arne_Vajh=F8j?= <arne@vajhoej.dk> writes:
23> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
23> VAX is a minicomputer not a mainframe.
What does that have to do with OS/2, Arne?
24> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
24> True.
Glad you agree.
24> But they were also common in various other areas.
Doesn't change the fact that VAXes were widely used on the
client side, Arne.
24> Yep.
Glad you agree.
24> "VAX extensions" were the de-facto standard once for
24> Fortran.
Other compiler vendors had to provide them to maintain some
amount of compatibility with existing code bases.
25> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
25> No - VAX is a computer. VMS is an operating system.
What does Sulfide Eater's ignorance have to do with OS/2, Arne?
|
|
0
|
|
|
|
Reply
|
tholen
|
2/18/2011 12:29:03 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
144> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
144> In response to Pitt doing so, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
144> In response to Pitt doing so, trollenbot.
Who is "trollenbot", Eater? There is nobody in this newsgroup
using that alias.
144> Pitt included this group in the distribution of his post, so I
included
144> it in the distribution of my followup, tholian.
Who is "tholian", Eater? There is nobody in this newsgroup
using that alias.
144> He did talk about it, via the quoted text in his post, tholoon.
Who is "tholoon", Eater? There is nobody in this newsgroup
using that alias.
144> He did talk about it, via the quoted text in his post,
thalidomide.
Who is "thalidomide", Eater? There is nobody in this newsgroup
using that alias.
144> On your part, trillium.
Who is "trillium", Eater? There is nobody in this newsgroup
using that alias.
144> On your part, thalien.
Who is "thalien", Eater? There is nobody in this newsgroup
using that alias.
144> On your part, trollium.
Who is "trollium", Eater? There is nobody in this newsgroup
using that alias.
144> No.
On what basis do you make that claim, Eater?
144> Oh, you DID want your questions answered?
What does your question have to do with OS/2, Eater?
144> I assumed they were all rhetorical,
What does your assumption have to do with OS/2, Eater?
144> since you kept setting followups to alt.test when you asked
144> them.
Your postings are on-topic there, Eater.
145> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
145> Classic illogic.
On your part, Eater.
145> VAX is an operating system, Vajh=F8j.
What does your classic unsubstantiated and erroneous claim
have to do with OS/2, Eater?
146> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
146> What does your classic unsubstantiated and erroneous claim have
to do
146> with Java, Vajh=F8j?
What does your classic erroneous presupposition that Arne's correct
claim is erroneous have to do with OS/2, Eater?
147> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
147> What does your classic unsubstantiated and erroneous claim have
to do
147> with Java, Schilling?
What does your classic erroneous presupposition that Mike's correct
claim is erroneous have to do with OS/2, Eater?
147> And it's classic redundancy, too. Vajh=F8j had made the exact same
claim
147> nearly an hour earlier, Schilling.
And you're too stupid to realize that you're wrong, Eater.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/18/2011 12:35:38 PM
|
|
"Mike Schilling" <mscottschilling@hotmail.com> writes:
2> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
2> Nope. An architecture and a series of computers that implemented
it, but
2> not an operating system.
Trolls like Sulfide Eater never let the facts get in the way
of a good rant, Schilling.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/18/2011 12:36:38 PM
|
|
On 18/02/2011 7:29 AM, tholen@antispam.ham wrote:
> What does Sulfide Eater's ignorance have to do with OS/2, Arne?
What does your classic erroneous presupposition have to do with OS/2,
tholianbot?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 3:39:01 PM
|
|
On 18/02/2011 7:35 AM, tholen@antispam.ham wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
> 144> No.
>
> On what basis do you make that claim, Eater?
What does your question have to do with OS/2, tholenbot?
> 144> since you kept setting followups to alt.test when you asked
> 144> them.
>
> Your postings are on-topic there, Eater.
So are yours, tholenbot.
> 145> Classic illogic.
>
> On your part, Eater.
What does your classic unsubstantiated and erroneous claim have to do
with OS/2, tholoon?
> 145> VAX is an operating system, Vajh�j.
>
> classic unsubstantiated and erroneous claim
On your part, trollian.
> 146> What does your classic unsubstantiated and erroneous claim have
> 146> to do with Java, Vajh�j?
>
> classic erroneous presupposition
On your part, thingamajig.
> 147> What does your classic unsubstantiated and erroneous claim have
> 147> to do with Java, Schilling?
>
> classic erroneous presupposition
On your part, trolloon.
> 147> And it's classic redundancy, too. Vajh�j had made the exact same
> 147> claim nearly an hour earlier, Schilling.
>
> And you're too stupid to realize that you're wrong, Eater.
What does your pair of classic unsubstantiated and erroneous claims have
to do with OS/2, thalidomide?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 3:43:04 PM
|
|
On 18/02/2011 7:36 AM, tholen@antispam.ham wrote:
> "Mike Schilling" <mscottschilling@hotmail.com> writes:
[calls me a liar]
Classic unsubstantiated and erroneous claim.
> Trolls like Sulfide Eater never let the facts get in the way
> of a good rant, Schilling.
What does your classic unsubstantiated and erroneous claim have to do
with OS/2, thingamabob?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 3:44:37 PM
|
|
On 18-02-2011 00:42, Sulfide Eater wrote:
> On 17/02/2011 11:38 PM, Mike Schilling wrote:
>> "Sulfide Eater" <zaxx1108@example.com> wrote in message
>> news:ijkpi8$kfc$2@speranza.aioe.org...
>>> Classic illogic. VAX is an operating system, Vajh�j.
>>
>> Nope. An architecture and a series of computers that implemented it, but not an operating system.
>
> What does your classic unsubstantiated and erroneous claim have to do
> with Java, Schilling?
You tell us - you posted it to a Java group.
> And it's classic redundancy, too. Vajh�j had made the exact same claim
> nearly an hour earlier, Schilling.
You did not seem to get it the first time.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/18/2011 4:31:54 PM
|
|
On 18/02/2011 11:31 AM, Arne Vajh�j wrote:
> On 18-02-2011 00:42, Sulfide Eater wrote:
>> What does your classic unsubstantiated and erroneous claim have to do
>> with Java, Schilling?
>
> You tell us - you posted it to a Java group.
Classic unsubstantiated and erroneous claim. Schilling posted it to a
Java group, Vajh�j -- I only quoted it.
>> And it's classic redundancy, too. Vajh�j had made the exact same claim
>> nearly an hour earlier, Schilling.
>
> You did not seem to get it the first time.
What does your classic illogic have to do with Java, Vajh�j?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 5:02:02 PM
|
|
2011-02-18 17:31, Arne Vajh�j skrev:
> On 18-02-2011 00:42, Sulfide Eater wrote:
>> On 17/02/2011 11:38 PM, Mike Schilling wrote:
>>> "Sulfide Eater" <zaxx1108@example.com> wrote in message
>>> news:ijkpi8$kfc$2@speranza.aioe.org...
>>>> Classic illogic. VAX is an operating system, Vajh�j.
>>>
>>> Nope. An architecture and a series of computers that implemented it,
>>> but not an operating system.
>>
>> What does your classic unsubstantiated and erroneous claim have to do
>> with Java, Schilling?
>
> You tell us - you posted it to a Java group.
>
>> And it's classic redundancy, too. Vajh�j had made the exact same claim
>> nearly an hour earlier, Schilling.
>
> You did not seem to get it the first time.
Don't bother replying to the troll. It's just Twisted, playing his old
boring games. He will never learn.
|
|
0
|
|
|
|
Reply
|
Lars
|
2/18/2011 5:09:40 PM
|
|
On 18/02/2011 12:09 PM, Lars Enderin wrote:
> 2011-02-18 17:31, Arne Vajh�j skrev:
>> On 18-02-2011 00:42, Sulfide Eater wrote:
>>> What does your classic unsubstantiated and erroneous claim have to do
>>> with Java, Schilling?
>>
>> You tell us - you posted it to a Java group.
Classic unsubstantiated and erroneous claim. Schilling posted it to a
Java group -- I only quoted it.
>>> And it's classic redundancy, too. Vajh�j had made the exact same claim
>>> nearly an hour earlier, Schilling.
>>
>> You did not seem to get it the first time.
Classic illogic.
> Don't bother replying to the troll.
Who's "the troll", Enderin? There is nobody in this newsgroup using that
alias. I note though that the recipient of your advice was replying to
Schilling, Enderin.
> It's just Twisted, playing his old boring games.
Who is "Twisted", Enderin? There is nobody in this newsgroup using that
alias.
> He will never learn.
Classic unsubstantiated and erroneous claim.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 5:12:44 PM
|
|
On Feb 18, 12:09=A0pm, Lars Enderin <lars.ende...@telia.com> wrote:
> Don't bother replying to the [insult deleted]. It's just Twisted,
> [false accusation deleted]. He [insult deleted].
No. None of the nasty things that you have said or implied about me
are at all true.
P.S. Is there a reason why every couple of weeks somebody
spontaneously flames me in cljp? It has been years since I made any
post here *except* to correct a spontaneous, unprovoked attack like
yours.
|
|
0
|
|
|
|
Reply
|
Jerry
|
2/18/2011 5:46:41 PM
|
|
On 17-02-2011 22:53, Sulfide Eater wrote:
> On 17/02/2011 10:44 PM, Arne Vajh�j wrote:
>> On 17-02-2011 22:37, Sulfide Eater wrote:
>>> On 17/02/2011 10:27 PM, Arne Vajh�j wrote:
>>>> On 16-02-2011 22:39, Sulfide Eater wrote:
>>>>> What do VAX mainframes running COBOL software have to do with OS/2,
>>>>> Pitt?
>>>>
>>>> VAX is a minicomputer not a mainframe.
>>>
>>> Classic illogic. VAX is an operating system, Vajh�j.
>>
>> No - VAX is a computer. VMS is an operating system.
>
> What does your classic unsubstantiated and erroneous claim have to do
> with Java, Vajh�j?
It is pretty easy to substantiate.
Let me give you a little hint: some people have put
up a free encyclopedia on the internet called wikipedia.
http://en.wikipedia.org/wiki/VAX
http://en.wikipedia.org/wiki/OpenVMS
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/18/2011 9:24:44 PM
|
|
On 18/02/2011 4:24 PM, Arne Vajh�j wrote:
> [misquotes me and calls me a liar]
I didn't write that, Vajh�j, yet you attributed it to
me anyway. Classic dishonesty on your part, Vajh�j.
>> What does your classic unsubstantiated and erroneous claim have to do
>> with Java, Vajh�j?
>
> It is pretty easy to substantiate.
What does your classic unsubstantiated and erroneous claim have to do
with Java, Vajh�j?
> Let me give you a little hint
Let me give you a little hint: your tone of voice is rude and
condescending. Be more polite to others, or else.
> some people have put up a free encyclopedia on the internet called
> wikipedia.
What does that have to do with Java, Vajh�j?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 10:51:16 PM
|
|
On Feb 18, 12:12=A0pm, Sulfide Eater <zaxx1...@example.com> wrote:
> On 18/02/2011 12:09 PM, Lars Enderin wrote:
[snip]
NO FEEDBACK LOOPS!!
> > It's just Twisted, [false accusation deleted].
None of the nasty things that Lars has said or implied about me are at
all true.
> Who is "Twisted", Enderin? There is nobody in this newsgroup using that
> alias.
I used to use that name here, years ago. I bested Lars in some
argument or another and he's been carrying a grudge ever since. Every
so often he randomly flames me out of the blue, usually by comparing
someone else he's flaming to me and both of us to something
unpleasant.
> > [insult deleted].
>
> Classic unsubstantiated and erroneous claim.
Indeed. None of the nasty things that Lars has said or implied about
me are at all true.
|
|
0
|
|
|
|
Reply
|
Jerry
|
2/18/2011 10:59:39 PM
|
|
On 18/02/2011 5:59 PM, Jerry Gerrone wrote:
> On Feb 18, 12:12 pm, Sulfide Eater <zaxx1...@example.com> wrote:
>> On 18/02/2011 12:09 PM, Lars Enderin wrote:
> [snip]
>
> NO FEEDBACK LOOPS!!
I beg your pardon?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/18/2011 11:20:53 PM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
> On 12/02/2011 7:36 PM, Arne Vajhøj wrote:
>> On 10-02-2011 07:00, Sulfide Eater wrote:
>>> On 10/02/2011 5:58 AM, Esmond Pitt wrote:
>>>> On 10/02/2011 8:03 AM, Sulfide Eater wrote:
>>>>> In your wildest dreams, perhaps, tholenbot.
>>>>
>>>> No 'wildest dreams' about it. I made a very good living out of OS/2 for
>>>> ten consecutive years. IBM stated at some stage that the OS/2 project
>>>> had showed a considerable profit.
>>>
>>> In some niche area. The fact remains that its market share does not hold
>>> a candle to that of even OS X, let alone Linux or Windows.
>>
>> Today.
>>
>> OS/2 was pretty widely used once.
>
> Where, in West Rectum, Rajikistan?
As an OS/2 refugee, it seems to me that the operating system in the
1990s was not really "marginal" at all, any more than Mac then was. At
work there was a migration from VAX to DOS and finally to a GUI
interface, and a decision had to be made between Windows tacked onto
DOS, Mac, or NeXT, and OS/2 was seriously considered. OS/2 borrowed from
Xerox's research on the GUI to create an operating system for the PS/2,
the first really popular machine. The superiority of OS/2 over the
Windows hack job was well known, but my administration was only familiar
with DOS, and so Windows prevailed.
I don't recall that OS/2 was at all obscure, and my rough impression is
that it was better known then than linux is today. There were
enthusiastic OS/2 supporter groups in mid 1990s, including an active
group in my own city, which had a much larger attendence than the
current linux group here. It seems to me there was at least one journal
dedicated to OS/2, but I don't recall the titles.
IBM abandoned OS/2 because of internal politics, in part because IBM
wanted to focus on its own unix-based operating system, AIX. However,
IBM maintained some relation with OS/2's new existence as Serendity
Systems' eComStation (eCS-OS2). It is still supported. There is
OpenOffice for it and a new version is in the works. See the journal,
OS/2 World (http://www.os2world.com/).
I thought highly of OS/2 (and DOS) because, like Mac, it did well on the
hardware for which it was designed. But I always work with words, and so
for me the keyboard and mouse always compete. Linux allows me ignore the
mouse for the most part.
Haines Brown
|
|
0
|
|
|
|
Reply
|
Haines
|
2/19/2011 1:55:41 PM
|
|
On 18-02-2011 17:51, Sulfide Eater wrote:
> On 18/02/2011 4:24 PM, Arne Vajh�j wrote:
>> Let me give you a little hint
>
> Let me give you a little hint: your tone of voice is rude and
> condescending. Be more polite to others, or else.
Or what? Or you will start spamming cljp?? Not much threat any longer!
>> some people have put up a free encyclopedia on the internet called
>> wikipedia.
>
> What does that have to do with Java, Vajh�j?
Nothing, but if you read it then you will be able
to see that you were wrong about VAX.
Arne
|
|
0
|
|
|
|
Reply
|
ISO
|
2/19/2011 10:38:44 PM
|
|
On 19-02-2011 08:55, Haines Brown wrote:
> Sulfide Eater<zaxx1108@example.com> writes:
>
>> On 12/02/2011 7:36 PM, Arne Vajhøj wrote:
>>> On 10-02-2011 07:00, Sulfide Eater wrote:
>>>> On 10/02/2011 5:58 AM, Esmond Pitt wrote:
>>>>> On 10/02/2011 8:03 AM, Sulfide Eater wrote:
>>>>>> In your wildest dreams, perhaps, tholenbot.
>>>>>
>>>>> No 'wildest dreams' about it. I made a very good living out of OS/2 for
>>>>> ten consecutive years. IBM stated at some stage that the OS/2 project
>>>>> had showed a considerable profit.
>>>>
>>>> In some niche area. The fact remains that its market share does not hold
>>>> a candle to that of even OS X, let alone Linux or Windows.
>>>
>>> Today.
>>>
>>> OS/2 was pretty widely used once.
>>
>> Where, in West Rectum, Rajikistan?
>
> As an OS/2 refugee, it seems to me that the operating system in the
> 1990s was not really "marginal" at all, any more than Mac then was. At
> work there was a migration from VAX to DOS and finally to a GUI
> interface, and a decision had to be made between Windows tacked onto
> DOS, Mac, or NeXT, and OS/2 was seriously considered. OS/2 borrowed from
> Xerox's research on the GUI to create an operating system for the PS/2,
> the first really popular machine. The superiority of OS/2 over the
> Windows hack job was well known, but my administration was only familiar
> with DOS, and so Windows prevailed.
>
> I don't recall that OS/2 was at all obscure, and my rough impression is
> that it was better known then than linux is today. There were
> enthusiastic OS/2 supporter groups in mid 1990s, including an active
> group in my own city, which had a much larger attendence than the
> current linux group here. It seems to me there was at least one journal
> dedicated to OS/2, but I don't recall the titles.
I don't think anyone except mr. sulfide disagree.
> IBM abandoned OS/2 because of internal politics, in part because IBM
> wanted to focus on its own unix-based operating system, AIX.
Now you are talking server not desktop.
Arne
|
|
0
|
|
|
|
Reply
|
UTF
|
2/19/2011 10:57:13 PM
|
|
Haines Brown <haines@historicalmaterialism.info> wrote:
<snip>
> IBM abandoned OS/2 because of internal politics, in part because IBM
> wanted to focus on its own unix-based operating system, AIX.
A family member was part of the management group that ran OS/2, and a vice
president at IBM. It's been well over 10 years since we discussed what
happened, and I've forgotten most of the details. (He's also deceased so I
can't confirm my recollection.) But what I remember distinctly was that,
according to him, Microsoft was the most responsible for the demise of OS/2.
A large part of OS/2 was a joint development project with Microsoft, who
wanted a new flagship 32-bit operating system. Long story short, after
learning all they needed during the experience, Microsoft pulled out very
late in development. Microsoft had several parallel projects going, and IBM
was naive enough to think that they really had Microsoft's commitment.
Microsoft ultimately decided that it could take what it learned from OS/2
and apply it internally to create a sufficiently capable product that they
could ditch the partnership and do without IBM's expertise. IBM was
apoplectic. (My uncle had fire in his eyes when discussing the topic.)
Needless to say IBM and Microsoft's relationship soured considerably after
that.
OS/2 continued for years afterward, but it was never going to become the
pervasive product IBM had originally envisioned.
There was some other project at IBM I was told about, which came after OS/2.
Maybe it was Monterrey. Anyhow, there's a very interesting arc through the
1990s which ended with IBM adopting Linux and ceasing all the crazy OS
partnerships.
|
|
0
|
|
|
|
Reply
|
William
|
2/20/2011 12:29:31 AM
|
|
On 17/02/2011 2:39 PM, Sulfide Eater wrote:
> On 16/02/2011 2:34 AM, Esmond Pitt wrote:
>> On 13/02/2011 11:41 AM, Sulfide Eater wrote:
>>>> OS/2 was pretty widely used once.
>>>
>>> Where, in West Rectum, Rajikistan? I can't recall ever stumbling upon a
>>> single person using it as their desktop OS even during its so-called
>>> heyday.
>>
>> The entire banking industry, for a start.
>
> What do VAX mainframes running COBOL software have to do with OS/2, Pitt?
I don't know. You're the one who mentioned Vaxes, which are not
mainframes, and Cobol. You seem to be having short term memory problems.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/20/2011 6:52:48 AM
|
|
Jerry Gerrone <scuzwalla@gmail.com> writes:
59> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
59> No. None of the nasty things that you have said or implied about
me
59> are at all true.
What does your denial of Enderin's accusations have to
do with OS/2, Gerrone?
59> P.S. Is there a reason why every couple of weeks somebody
59> spontaneously flames me in cljp? It has been years since I made
any
59> post here *except* to correct a spontaneous, unprovoked attack
like
59> yours.
What does your question have to do with OS/2, Gerrone?
60> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
60> [snip]
What does your sound effect have to do with OS/2, Gerrone?
60> NO FEEDBACK LOOPS!!
What does your demand have to do with OS/2, Gerrone?
60> None of the nasty things that Lars has said or implied about me
are at
60> all true.
What does your denial of Lars' accusations have to do
with OS/2, Gerrone?
60> I used to use that name here, years ago. I bested Lars in some
60> argument or another and he's been carrying a grudge ever since.
Every
60> so often he randomly flames me out of the blue, usually by
comparing
60> someone else he's flaming to me and both of us to something
60> unpleasant.
What does one of your many aliases have to do with OS/2,
Gerrone?
60> Indeed. None of the nasty things that Lars has said or implied
about
60> me are at all true.
What does your denial of Lars' accusations have to do
with OS/2, Gerrone?
|
|
0
|
|
|
|
Reply
|
tholen
|
2/21/2011 1:01:25 AM
|
|
=?ISO-8859-1?Q?Arne_Vajh=F8j?= <arne@vajhoej.dk> writes:
26> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
26> You tell us - you posted it to a Java group.
Sulfide Eater will find a way to avoid admitting that VAX
is not an operating system.
26> You did not seem to get it the first time.
Sulfide Eater didn't get it the second time either.
27> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
27> It is pretty easy to substantiate.
27> Let me give you a little hint: some people have put
27> up a free encyclopedia on the internet called wikipedia.
Sorry, Arne, but wikipedia is hardly what I would rely on
for substantiation. I find errors in wikipedia frequently.
28> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
28> Or what? Or you will start spamming cljp?? Not much threat any
longer!
What do your questions of Sulfide Eater have to do with OS/2,
Arne?
28> Nothing, but if you read it then you will be able
28> to see that you were wrong about VAX.
That would require the assumption that wikipedia is correct,
Arne, but wikipedia often isn't correct. However, I know from
first-hand experience that VAX is not an operating system,
contrary to Sulfide Eater's claim.
29> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
29> I don't think anyone except mr. sulfide disagree.
What makes you think that Sulfide Eater is a "Mr.", Arne?
29> Now you are talking server not desktop.
AIX can be used on the desktop, Arne, just like Linux.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/21/2011 1:09:28 AM
|
|
On 19/02/2011 8:55 AM, Haines Brown wrote:
> As an OS/2 refugee, it seems to me that the operating system in the
> 1990s was not really "marginal" at all, any more than Mac then was.
So, it was as marginal as MacOS, then -- barely even nibbling at the
edges of Windows's market share. ;)
> At work there was a migration from VAX to DOS and finally to a GUI
> interface, and a decision had to be made between Windows tacked onto
> DOS, Mac, or NeXT, and OS/2 was seriously considered. OS/2 borrowed from
> Xerox's research on the GUI to create an operating system for the PS/2,
> the first really popular machine. The superiority of OS/2 over the
> Windows hack job was well known, but my administration was only familiar
> with DOS, and so Windows prevailed.
This story repeated itself all over the world: OS/2 was seriously
considered. And that's as far as it got.
> I don't recall that OS/2 was at all obscure, and my rough impression is
> that it was better known then than linux is today.
But not nearly as widely used.
> There were enthusiastic OS/2 supporter groups in mid 1990s, including an
> active group in my own city, which had a much larger attendence than the
> current linux group here.
And now all it has in the home team's bleachers is one lonely little
tholenbot ...
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/21/2011 5:36:15 AM
|
|
On 19/02/2011 5:57 PM, Arne Vajhøj wrote:
> On 19-02-2011 08:55, Haines Brown wrote:
>> I don't recall that OS/2 was at all obscure, and my rough impression is
>> that it was better known then than linux is today. There were
>> enthusiastic OS/2 supporter groups in mid 1990s, including an active
>> group in my own city, which had a much larger attendence than the
>> current linux group here. It seems to me there was at least one journal
>> dedicated to OS/2, but I don't recall the titles.
>
> I don't think anyone except mr. sulfide disagree.
I don't disagree with that; only with the claim that it got very much
actual traction on ordinary end-user desktops.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/21/2011 5:38:06 AM
|
|
On 20/02/2011 8:09 PM, tholen@antispam.ham wrote:
> 26> You tell us - you posted it to a Java group.
>
> Sulfide Eater will find a way to avoid admitting
There is nothing to admit, tholenbot.
> 26> You did not seem to get it the first time.
>
> Sulfide Eater didn't get it the second time either.
There was nothing to get, tholoon.
> 27> It is pretty easy to substantiate.
>
> 27> Let me give you a little hint: some people have put
> 27> up a free encyclopedia on the internet called wikipedia.
>
> Sorry, Arne, but wikipedia is hardly what I would rely on
> for substantiation. I find errors in wikipedia frequently.
Not to mention that kind of condescending tone is the surest way to get
people to ignore you, trillium.
> 28> Or what? Or you will start spamming cljp?? Not much threat any
> longer!
>
> What do your questions of Sulfide Eater have to do with OS/2,
> Arne?
Besides, if anyone's been spamming cljp lately it's been Arne, thallium.
More posts than anyone else in the past couple of weeks, thalien -- and
a lot of them repetitive drumbeats with undertones of hostility,
trollen. Roughly half of them not on the topic of Java, tholenoid.
> 28> Nothing, but if you read it then you will be able
> 28> to see that you were wrong
What does Arne's classic unsubstantiated and erroneous claim have to do
with Java, I wonder?
> That would require the assumption that wikipedia is correct,
> Arne, but wikipedia often isn't correct.
Why am I not surprised that the tholenbot is anti-Wikipedia?
> contrary to Sulfide Eater's claim.
Any sentence ending with that is guaranteed to be a classic
unsubstanti9ated and erroneous claim, tholian.
> 29> I don't think anyone except mr. sulfide disagree.
>
> What makes you think that Sulfide Eater is a "Mr.", Arne?
There is a 97% probability that any randomly selected computer geek is
male, thalidomide -- simple statistics.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/21/2011 5:42:45 AM
|
|
On 20/02/2011 1:52 AM, Esmond Pitt wrote:
> On 17/02/2011 2:39 PM, Sulfide Eater wrote:
>> What do VAX mainframes running COBOL software have to do with OS/2, Pitt?
>
> I don't know. You're the one who mentioned Vaxes
In reply to other posts on the tholenbot-bedeviled topic, Pitt.
> which are not mainframes
What does your classic tholenoid-like and erroneous claim have to do
with OS/2, Pitt?
> and Cobol.
What does COBOL, which was probably used to implement the tholenbot,
have to do with OS/2, Pitt?
> You seem to be having short term memory problems.
What does your classic tholenator-like and erroneous claim have to do
with OS/2, Pitt?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/21/2011 5:51:29 AM
|
|
On Feb 20, 8:01=A0pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> Jerry Gerrone <scuzwa...@gmail.com> writes:
> 60> I used to use that name here, years ago. I bested Lars in some
> 60> argument or another and he's been carrying a grudge ever since.
> Every
> 60> so often he randomly flames me out of the blue, usually by
> comparing
> 60> someone else he's flaming to me and both of us to something
> 60> unpleasant.
>
> What does one of your many aliases have to do with OS/2,
> Gerrone?
What does your classic erroneous presupposition have to do with OS/2,
tholenbot?
|
|
0
|
|
|
|
Reply
|
Jerry
|
2/21/2011 6:01:37 AM
|
|
On 19/02/2011 5:38 PM, Arne Vajh�j wrote:
> On 18-02-2011 17:51, Sulfide Eater wrote:
>> On 18/02/2011 4:24 PM, Arne Vajh�j wrote:
>>> Let me give you a little hint
>>
>> Let me give you a little hint: your tone of voice is rude and
>> condescending. Be more polite to others, or else.
>
> Or what? Or you will start spamming cljp??
Of course not. That would be evil.
>>> some people have put up a free encyclopedia on the internet called
>>> wikipedia.
>>
>> What does that have to do with Java, Vajh�j?
>
> Nothing, but if you read it then you will be able
> to see that you were wrong
What does your classic tholian-excrement-like and erroneous claim have
to do with Java, Vajh�j?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/21/2011 6:08:32 AM
|
|
On 21/02/2011 4:51 PM, Sulfide Eater wrote:
> In reply to other posts on the tholenbot-bedeviled topic, Pitt.
You're the one who mentioned Vaxes and Cobol *first*. Contrary to your lie.
|
|
0
|
|
|
|
Reply
|
Esmond
|
2/21/2011 9:21:02 AM
|
|
Sulfide Eater <zaxx1108@example.com> writes:
158> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
158> That's about the only place it made big inroads. ;)
Classic pontification.
159> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
159> So, it was as marginal as MacOS, then -- barely even nibbling at
the
159> edges of Windows's market share. ;)
Windows' market share was the result of monopolistic practices, Eater,
such as giving hardware vendors good deals on Windows if they agreed
to pre-install ONLY Windows and no competing operating systems. Those
that failed to agree were charged a substantially higher price for
Windows, which means that in a market with so-called "razor-thin"
margins, one who didn't agree couldn't compete on price with those who
did. That all came to light in the trial against Microsoft.
Of course, Rolls Royce barely nibbles at the edges of Chevrolet's
market share. So what?
159> This story repeated itself all over the world: OS/2 was
seriously
159> considered. And that's as far as it got.
Classic unsubstantiated and erroneous claim.
159> But not nearly as widely used.
Classic pontification.
159> And now all it has in the home team's bleachers is one lonely
little
159> tholenbot ...
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
160> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
160> I don't disagree with that; only with the claim that it got very
much
160> actual traction on ordinary end-user desktops.
Exactly who do you think attended all those OS/2 users meetings,
Eater?
161> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
161> There is nothing to admit, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
161> There was nothing to get, tholoon.
Who is "tholoon", Eater? There is nobody in this newsgroup
using that alias.
161> Not to mention that kind of condescending tone is the surest way
to get
161> people to ignore you, trillium.
Who is "trillium", Eater? There is nobody in this newsgroup
using that alias.
161> Besides, if anyone's been spamming cljp lately it's been Arne,
thallium.
Who is "thallium", Eater? There is nobody in this newsgroup
using that alias.
161> More posts than anyone else in the past couple of weeks, thalien
Who is "thalien", Eater? There is nobody in this newsgroup
using that alias.
161> -- and a lot of them repetitive drumbeats with undertones of
hostility,
161> trollen.
Who is "trollen", Eater? There is nobody in this newsgroup
using that alias.
161> Roughly half of them not on the topic of Java, tholenoid.
Who is "tholenoid", Eater? There is nobody in this newsgroup
using that alias.
161> What does Arne's classic unsubstantiated and erroneous claim have
to do
161> with Java, I wonder?
Who is "I wonder", Eater? There is nobody in this newsgroup
using that alias.
161> Why am I not surprised that the tholenbot is anti-Wikipedia?
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
161> Any sentence ending with that is guaranteed to be a classic
161> unsubstanti9ated and erroneous claim, tholian.
Who is "tholian", Eater? There is nobody in this newsgroup
using that alias.
161> There is a 97% probability that any randomly selected computer
geek is
161> male, thalidomide -- simple statistics.
Who is "thalidomide", Eater? There is nobody in this newsgroup
using that alias.
162> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
162> In response to others, tholenbot.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
162> What does your classic unsubstantiated and erroneous claim have
to do
162> with OS/2, thalidomide?
Who is "thalidomide", Eater? There is nobody in this newsgroup
using that alias.
162> What does your classic unsubstantiated and erroneous claim have
to do
162> with OS/2, thingamabob?
Who is "thingamabob", Eater? There is nobody in this newsgroup
using that alias.
162> What does your classic unsubstantiated and erroneous claim have
to do
162> with OS/2, telomerase?
Who is "telomerase", Eater? There is nobody in this newsgroup
using that alias.
162> I'd rather not, tholian.
Who is "tholian", Eater? There is nobody in this newsgroup
using that alias.
162> I'd rather not, technicolor.
Who is "technicolor", Eater? There is nobody in this newsgroup
using that alias.
162> Classic erroneous presupposition that I have a problem in that
area,
162> trolloon.
Who is "trolloon", Eater? There is nobody in this newsgroup
using that alias.
162> On his part, tholoon.
Who is "tholoon", Eater? There is nobody in this newsgroup
using that alias.
162> What does your classic erroneous presupposition have to do with
OS/2,
162> thudbrain?
Who is "thudbrain", Eater? There is nobody in this newsgroup
using that alias.
162> What does your classic unsubstantiated and erroneous claim have
to do
162> with OS/2, trollface?
Who is "trollface", Eater? There is nobody in this newsgroup
using that alias.
162> As a reply, technetium.
Who is "technetium", Eater? There is nobody in this newsgroup
using that alias.
163> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
163> In reply to other posts on the tholenbot-bedeviled topic, Pitt.
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
163> What does your classic tholenoid-like and erroneous claim have to
do
163> with OS/2, Pitt?
Who is "tholenoid", Eater? There is nobody in this newsgroup
using that alias.
163> What does COBOL, which was probably used to implement the
tholenbot,
163> have to do with OS/2, Pitt?
Who is "tholenbot", Eater? There is nobody in this newsgroup
using that alias.
163> What does your classic tholenator-like and erroneous claim have
to do
163> with OS/2, Pitt?
Who is "tholenator", Eater? There is nobody in this newsgroup
using that alias.
164> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
164> What does your classic tholenbotty and erroneous claim have to do
with
164> OS/2, Pitt?
Who is "tholenbotty", Eater? There is nobody in this newsgroup
using that alias.
165> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
165> What does your classic tholenoid-inspired and erroneous claim
have to do
165> with OS/2, Pitt?
Who is "tholenoid", Eater? There is nobody in this newsgroup
using that alias.
166> Newsgroups: comp.lang.java.programmer,comp.os.os2.advocacy
166> Of course not. That would be evil.
Hasn't stopped you before, Eater.
166> What does your classic tholian-excrement-like and erroneous claim
have
166> to do with Java, Vajh=F8j?
Who is "tholian", Eater? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen
|
2/21/2011 1:53:25 PM
|
|
I was challenged by the point that IBM's AIX was intended for use on a
server. Here I must ask, based on my ignorance, what's the fundamental
difference? My only experience with AIX was to play with it very briefly
on a stand-alone PC and it seemed to handle applications. I get
impression that you can compile Linux apps on an AIX machine.
More relevant to the groups to which this thread is distributed, would
AIX be a satisfactory platform for TeX markup and Java programming?
Sulfide Eater <zaxx1108@example.com> writes:
> I don't disagree with that; only with the claim that it got very much
> actual traction on ordinary end-user desktops.
What are un-ordinary end-user desktops? If Sulfide's point is that the
percentage of OS/2 end-users was low, I don't dispute that. On the other
hand, if the percentage was neglible, that as not my experience. Given
the factors determining market share, I would not be inclined to
evaluate the intrinsic merits of an operating system on market share.
Haines Brown
|
|
0
|
|
|
|
Reply
|
Haines
|
2/21/2011 8:31:24 PM
|
|
On 21/02/2011 8:53 AM, tholen@antispam.ham wrote:
> Sulfide Eater <zaxx1108@example.com> writes:
> 159> So, it was as marginal as MacOS, then -- barely even nibbling at
> 159> the edges of Windows's market share. ;)
>
> Windows' market share was the result of monopolistic practices, Eater
Nobody claimed otherwise, thalidomide.
> Of course, Rolls Royce barely nibbles at the edges of Chevrolet's
> market share.
Of course, Edsel barely nibbled at the edges of Chevrolet's market
share, tholoon.
> 159> This story repeated itself all over the world: OS/2 was
> 159> seriously considered. And that's as far as it got.
>
> Classic unsubstantiated and erroneous claim.
On your part, thallium.
> 160> I don't disagree with that; only with the claim that it got very
> 160> much actual traction on ordinary end-user desktops.
>
> Exactly who do you think attended all those OS/2 users meetings,
> Eater?
OS/2 users, thalien -- all two of them.
> 161> What does Arne's classic unsubstantiated and erroneous claim have
> 161> to do with Java, I wonder?
>
> Who is "I wonder", Eater? There is nobody in this newsgroup
> using that alias.
OMFG, he's gone completely 'round the bend now.
> 166> Of course not. That would be evil.
>
> Hasn't stopped you before, Eater.
What does your classic unsubstantiated and erroneous claim have to do
with OS/2, thiol?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/22/2011 9:53:24 AM
|
|
On 21/02/2011 4:21 AM, Esmond Pitt wrote:
> On 21/02/2011 4:51 PM, Sulfide Eater wrote:
>> In reply to other posts on the tholenbot-bedeviled topic, Pitt.
>
> You're the one who mentioned Vaxes and Cobol *first*. Contrary to your lie.
What does your classic tholenbotty and erroneous claim have to do with
OS/2, Pitt?
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/22/2011 9:54:24 AM
|
|
On 21/02/2011 3:31 PM, Haines Brown wrote:
> What are un-ordinary end-user desktops? If Sulfide's point is that the
> percentage of OS/2 end-users was low, I don't dispute that. On the other
> hand, if the percentage was neglible, that as not my experience. Given
> the factors determining market share, I would not be inclined to
> evaluate the intrinsic merits of an operating system on market share.
The intrinsic merits were not at issue; only its desktop penetration --
or lack thereof.
|
|
0
|
|
|
|
Reply
|
Sulfide
|
2/22/2011 9:55:25 AM
|
|
On 21/02/2011 20:31, Haines Brown wrote:
> More relevant to the groups to which this thread is distributed,
Newsgroups trimmed.
>would
> AIX be a satisfactory platform for ... Java programming?
Only if someone (IBM?) provide up-to date SDK and JRE for AIX.
It would be useful if Eclipse or Netbeans was available.
I don't know if these conditions are satisfied by AIX.
(I suspect TeX is easier as I imagine TeX and many associated tools are
relatively easy for mortals to compile on AIX)
--
RGB
|
|
0
|
|
|
|
Reply
|
RedGrittyBrick
|
2/24/2011 2:13:02 PM
|
|
In article <a217f13e-c64b-4f77-b838-684d64c57973@k38g2000vbn.googlegroups.com>,
Jerry Gerrone <scuzwalla@gmail.com> wrote:
> On Feb 18, 12:12 pm, Sulfide Eater <zaxx1...@example.com> wrote:
> > On 18/02/2011 12:09 PM, Lars Enderin wrote:
> [snip]
>
> NO FEEDBACK LOOPS!!
>
> > > It's just Twisted, [false accusation deleted].
>
> None of the nasty things that Lars has said or implied about me are at
> all true.
>
> > Who is "Twisted", Enderin? There is nobody in this newsgroup using that
> > alias.
>
> I used to use that name here, years ago. I bested Lars in some
> argument or another and he's been carrying a grudge ever since.
Long-time readers of this group will probably be able to form
their own opinions about this claim. (They should also be advised
that I don't intend to pursue this discussion beyond this single
post.)
Others might want to review the record of previous interactions
between you and Lars [1] before forming an opinion. Any reasonable
person might resent some of the debating tactics you have employed
on occasion, here and in other newsgroups.
[1] I may be misremembering, but I think it all began in a thread
with subject line "Great SWT program", which eventually turned into
huge [2] sprawling debate on any number of off-topic subjects.
[2] 5000+ posts. "You have been warned" ?
> Every
> so often he randomly flames me out of the blue, usually by comparing
> someone else he's flaming to me and both of us to something
> unpleasant.
>
> > > [insult deleted].
> >
> > Classic unsubstantiated and erroneous claim.
>
> Indeed. None of the nasty things that Lars has said or implied about
> me are at all true.
--
B. L. Massingill
ObDisclaimer: I don't speak for my employers; they return the favor.
|
|
0
|
|
|
|
Reply
|
blmblm
|
2/26/2011 4:45:48 PM
|
|
blmblm@myrealbox.com <blmblm@myrealbox.com> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
1> Long-time readers of this group will probably be able to form
1> their own opinions about this claim.
Which group?
1> (They should also be advised
1> that I don't intend to pursue this discussion beyond this single
1> post.)
Famous Last Words.
1> Others might want to review the record of previous interactions
1> between you and Lars [1] before forming an opinion. Any reasonable
1> person might resent some of the debating tactics you have employed
1> on occasion, here and in other newsgroups.
What does Gerrone's debating tactics have to do with OS/2, blm?
1> [1] I may be misremembering, but I think it all began in a thread
1> with subject line "Great SWT program", which eventually turned into
1> huge [2] sprawling debate on any number of off-topic subjects.
Gerrone's debating tactics are off-topic in an OS/2 newsgroup, blm.
1> [2] 5000+ posts. "You have been warned" ?
Only 5000?
|
|
0
|
|
|
|
Reply
|
tholen
|
2/26/2011 9:02:40 PM
|
|
On Feb 26, 11:45=A0am, blm...@myrealbox.com <blm...@myrealbox.com>
wrote:
> In article <a217f13e-c64b-4f77-b838-684d64c57...@k38g2000vbn.googlegroups=
..com>,
> Jerry Gerrone =A0<scuzwa...@gmail.com> wrote:
> > On Feb 18, 12:12 pm, Sulfide Eater <zaxx1...@example.com> wrote:
> > > Who is "Twisted", Enderin? There is nobody in this newsgroup using th=
at
> > > alias.
>
> > I used to use that name here, years ago. I bested Lars in some
> > argument or another and he's been carrying a grudge ever since.
>
> [implied insult deleted].
No. None of the nasty things that you have said or implied about me
are at all true.
>=A0(They should also be advised that I don't intend to pursue this
> discussion beyond this single post.)
I've heard that before.
> [implied that I've been dishonest]. [insult deleted]
No! None of the nasty things that you have said or implied about me
are at all true.
> [1] I may be misremembering, but I think it all began in a thread
> with subject line "Great SWT program", which eventually turned into
> huge [2] sprawling debate on any number of off-topic subjects. =A0
That much is true.
> [2] 5000+ posts. =A0"You have been warned" ?
The flamers in this newsgroup can be extremely tenacious. Several,
notably Larshole, Arnehole, and Wildemar, cross the line into
obsessive-compulsive behavior. And after crossing it Arne keeps going
for miles, as another unfortunate victim is apparently now in the
process of finding out to judge from the rapid inflation of the
"reading last line from text file" thread and it usually showing Arne
as the most recent poster.
|
|
0
|
|
|
|
Reply
|
Jerry
|
2/27/2011 7:26:07 AM
|
|
On Feb 26, 4:02=A0pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> blm...@myrealbox.com <blm...@myrealbox.com> writes:
> 1> [implied insult deleted].
No. None of the nasty things that blmblm has said or implied about me
are at all true.
> Which group?
comp.lang.java.programmer, presumably.
> 1> [implies that I've been dishonest]. [insult deleted].
No! None of the nasty things that blmblm has said or implied about me
are at all true.
> What does [implied insult deleted] have to do with OS/2, blm?
Nothing, and none of the nasty things that blmblm has said or implied
about me are at all true.
> 1> [1] I may be misremembering, but I think it all began in a thread
> 1> with subject line "Great SWT program", which eventually turned into
> 1> huge [2] sprawling debate on any number of off-topic subjects.
>
> [implied insult deleted] are off-topic in an OS/2 newsgroup, blm.
None of the nasty things that blmblm has said or implied about me are
at all true.
> 1> [2] 5000+ posts. =A0"You have been warned" ?
>
> Only 5000?
What does your question have to do with OS/2, tholen?
|
|
0
|
|
|
|
Reply
|
Jerry
|
2/27/2011 7:28:40 AM
|
|
On Sat, 26 Feb 2011 23:28:40 -0800, Jerry Gerrone wrote:
> On Feb 26, 4:02 pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu> wrote:
>> blm...@myrealbox.com <blm...@myrealbox.com> writes: 1> [implied insult
>> deleted].
>
> No. None of the nasty things that blmblm has said or implied about me
> are at all true.
>
>> Which group?
>
> comp.lang.java.programmer, presumably.
>
>> 1> [implies that I've been dishonest]. [insult deleted].
>
> No! None of the nasty things that blmblm has said or implied about me
> are at all true.
>
>> What does [implied insult deleted] have to do with OS/2, blm?
>
> Nothing, and none of the nasty things that blmblm has said or implied
> about me are at all true.
>
>> 1> [1] I may be misremembering, but I think it all began in a thread 1>
>> with subject line "Great SWT program", which eventually turned into 1>
>> huge [2] sprawling debate on any number of off-topic subjects.
>>
>> [implied insult deleted] are off-topic in an OS/2 newsgroup, blm.
>
> None of the nasty things that blmblm has said or implied about me are at
> all true.
>
>> 1> [2] 5000+ posts. "You have been warned" ?
>>
>> Only 5000?
>
> What does your question have to do with OS/2, tholen?
To everyone in these newsgroups: the troll that has plagued you for some
time now is David J. Tholen. Tholen is a notorious Usenet kook who has
won KOTM once (March 1998) and Clueless Newbie of the Month *twice* (in
February 2003 as himself -- despite being on usenet for at *least* five
years by that point -- and again in April 2009 as "Seamus MacRae" as an
ELEVEN year Usenet veteran).
Tholen has been active under a wide variety of aliases for over a dozen
years and is recognizable by a distinct pattern of OCD-like ritualized
responses once under attack. He has a few such patterns, one of which is
the "what does X have to do with <newsgroup topic>/classic
unsubstantiated and erroneous claim" most closely associated with his
real-world identity. Then there's the "[insult deleted]"/"none of the
nasty things" pattern, and others.
Tholen is not actually a reply-bot, but he might as well be one. The only
recourse with Tholen is your killfile. If you want Tholen to shut up, do
not reply to Tholen.
This will be my only post to this thread.
HTH.
|
|
0
|
|
|
|
Reply
|
s.calvin (16)
|
3/10/2011 10:58:38 PM
|
|
Susan Calvin <s.calvin@usr.invalid> wrote in
news:ilbl2u$ru2$3@news.eternal-september.org:
> On Sat, 26 Feb 2011 23:28:40 -0800, Jerry Gerrone wrote:
>
>> On Feb 26, 4:02 pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
>> wrote:
>>> blm...@myrealbox.com <blm...@myrealbox.com> writes: 1> [implied
>>> insult deleted].
>>
>> No. None of the nasty things that blmblm has said or implied about me
>> are at all true.
>>
>>> Which group?
>>
>> comp.lang.java.programmer, presumably.
>>
>>> 1> [implies that I've been dishonest]. [insult deleted].
>>
>> No! None of the nasty things that blmblm has said or implied about me
>> are at all true.
>>
>>> What does [implied insult deleted] have to do with OS/2, blm?
>>
>> Nothing, and none of the nasty things that blmblm has said or implied
>> about me are at all true.
>>
>>> 1> [1] I may be misremembering, but I think it all began in a thread
>>> 1> with subject line "Great SWT program", which eventually turned
>>> into 1> huge [2] sprawling debate on any number of off-topic
>>> subjects.
>>>
>>> [implied insult deleted] are off-topic in an OS/2 newsgroup, blm.
>>
>> None of the nasty things that blmblm has said or implied about me are
>> at all true.
>>
>>> 1> [2] 5000+ posts. "You have been warned" ?
>>>
>>> Only 5000?
>>
>> What does your question have to do with OS/2, tholen?
>
> To everyone in these newsgroups: the troll that has plagued you for
> some time now is David J. Tholen. Tholen is a notorious Usenet kook
> who has won KOTM once (March 1998) and Clueless Newbie of the Month
> *twice* (in February 2003 as himself -- despite being on usenet for at
> *least* five years by that point -- and again in April 2009 as "Seamus
> MacRae" as an ELEVEN year Usenet veteran).
Rubbish. Tholen posts through google and has a Hawaii IP, and Seamus
(real name Paul Derbyshire) has a Ottawa IP when he posts through
google.
> Tholen has been active under a wide variety of aliases for over a
> dozen years and is recognizable by a distinct pattern of OCD-like
> ritualized responses once under attack. He has a few such patterns,
> one of which is the "what does X have to do with <newsgroup
> topic>/classic unsubstantiated and erroneous claim" most closely
> associated with his real-world identity.
That's Tholen's idiosyncrasy.
Then there's the "[insult
> deleted]"/"none of the nasty things" pattern, and others.
And that is Seamus's idiosyncrasy, though he has started copying Tholen.
Must be love, or hero worship.
> Tholen is not actually a reply-bot, but he might as well be one. The
> only recourse with Tholen is your killfile. If you want Tholen to shut
> up, do not reply to Tholen.
>
> This will be my only post to this thread.
Good. Now fuck off.
>
> HTH.
>
|
|
0
|
|
|
|
Reply
|
Juniper
|
3/10/2011 11:53:45 PM
|
|
On Mar 10, 11:53=A0pm, Juniper <no.spam@here> wrote:
> Susan Calvin <s.cal...@usr.invalid> wrote innews:ilbl2u$ru2$3@news.eterna=
l-september.org:
> > To everyone in these newsgroups: the troll that has plagued you for
> > some time now is David J. Tholen. Tholen is a notorious Usenet kook
> > who has won KOTM once (March 1998) and Clueless Newbie of the Month
> > *twice* (in February 2003 as himself -- despite being on usenet for at
> > *least* five years by that point -- and again in April 2009 as "Seamus
> > MacRae" as an ELEVEN year Usenet veteran).
>
> Rubbish. =A0Tholen posts through google and has a Hawaii IP, and Seamus
> (real name Paul Derbyshire) has a Ottawa IP when he posts through
> google.
Was that tongue in cheek, or were you serious? The IP address the
server sees doesn't tell you much about the person's location.
|
|
0
|
|
|
|
Reply
|
paul.cager (63)
|
3/11/2011 12:16:18 AM
|
|
On Mar 10, 5:58=A0pm, Susan Calvin <s.cal...@usr.invalid> wrote:
> To everyone in these newsgroups: the troll that has plagued you for some
> time now is David J. Tholen. Tholen is a notorious Usenet kook who has
> won KOTM once (March 1998) and Clueless Newbie of the Month *twice* (in
> February 2003 as himself -- despite being on usenet for at *least* five
> years by that point -- and again in April 2009 as "Seamus MacRae" as an
> ELEVEN year Usenet veteran).
>
> Tholen has been active under a wide variety of aliases for over a dozen
> years and is recognizable by a distinct pattern of OCD-like ritualized
> responses once under attack. He has a few such patterns, one of which is
> the "what does X have to do with <newsgroup topic>/classic
> unsubstantiated and erroneous claim" most closely associated with his
> real-world identity.
All of this is quite interesting to kookologists, I am sure, but none
of it seems to have anything whatsoever to do with Java. And this
thread that tholen and equally-kooky dizzy infected seemed to have
died until you posted this earlier tonight. What did you think you
were going to accomplish in the way of anything useless?
> Then there's [paranoia deleted]
I am not tholen and none of the nasty things that you have said or
implied about me are at all true.
> Tholen is not actually a reply-bot, but he might as well be one. The only
> recourse with Tholen is your killfile. If you want Tholen to shut up, do
> not reply to Tholen.
All of this is quite interesting to kookologists, I am sure, but none
of it seems to have anything whatsoever to do with Java.
> This will be my only post to this thread.
Good.
> HTH.
It does not.
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 12:38:09 AM
|
|
On Mar 10, 6:53=A0pm, Juniper <no.spam@here> wrote:
> Rubbish. =A0Tholen posts through google and has a Hawaii IP, and Seamus
> (real name Paul Derbyshire) has a Ottawa IP when he posts through
> google.
Who are "Seamus" and "Paul Derbyshire", Juniper? There is nobody in
this newsgroup using either alias.
> > Tholen has been active under a wide variety of aliases for over a
> > dozen years and is recognizable by a distinct pattern of OCD-like
> > ritualized responses once under attack. He has a few such patterns,
> > one of which is the "what does X have to do with <newsgroup
> > topic>/classic unsubstantiated and erroneous claim" most closely
> > associated with his real-world identity.
>
> That's Tholen's idiosyncrasy.
What does that have to do with Java, Juniper?
> Then there's the "[insult
> deleted]"/"none of the nasty things" pattern, and others.
>
> And that is Seamus's idiosyncrasy, though he has started copying Tholen. =
=A0
What does your classic unsubstantiated and erroneous claim have to do
with Java, Juniper?
> Must be love, or hero worship.
What does your classic unsubstantiated and erroneous claim have to do
with Java, Juniper?
> > Tholen is not actually a reply-bot, but he might as well be one. The
> > only recourse with Tholen is your killfile. If you want Tholen to shut
> > up, do not reply to Tholen.
>
> > This will be my only post to this thread.
>
> Good. =A0Now fuck off.
What does your foul language have to do with Java, Juniper?
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 12:40:59 AM
|
|
On Mar 10, 7:16=A0pm, Paul Cager <paul.ca...@googlemail.com> wrote:
> On Mar 10, 11:53=A0pm, Juniper <no.spam@here> wrote:
>
> > Susan Calvin <s.cal...@usr.invalid> wrote innews:ilbl2u$ru2$3@news.eter=
nal-september.org:
> > > To everyone in these newsgroups: the troll that has plagued you for
> > > some time now is David J. Tholen. Tholen is a notorious Usenet kook
> > > who has won KOTM once (March 1998) and Clueless Newbie of the Month
> > > *twice* (in February 2003 as himself -- despite being on usenet for a=
t
> > > *least* five years by that point -- and again in April 2009 as "Seamu=
s
> > > MacRae" as an ELEVEN year Usenet veteran).
>
> > Rubbish. =A0Tholen posts through google and has a Hawaii IP, and Seamus
> > (real name Paul Derbyshire) has a Ottawa IP when he posts through
> > google.
>
> Was that tongue in cheek, or were you serious?
Unfortunately, he probably actually believes that utter nonsense.
> The IP address the server sees doesn't tell you much about the person's
> location.
Indeed.
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 12:41:30 AM
|
|
Paul Cager <paul.cager@googlemail.com> wrote in
news:e01f286e-1f09-46e4-9676-1081d5b0e7dd@r17g2000vbc.googlegroups.com:
> On Mar 10, 11:53�pm, Juniper <no.spam@here> wrote:
>> Susan Calvin <s.cal...@usr.invalid> wrote
>> innews:ilbl2u$ru2$3@news.eterna
> l-september.org:
>> > To everyone in these newsgroups: the troll that has plagued you for
>> > some time now is David J. Tholen. Tholen is a notorious Usenet kook
>> > who has won KOTM once (March 1998) and Clueless Newbie of the Month
>> > *twice* (in February 2003 as himself -- despite being on usenet for
>> > at *least* five years by that point -- and again in April 2009 as
>> > "Seamus MacRae" as an ELEVEN year Usenet veteran).
>>
>> Rubbish. �Tholen posts through google and has a Hawaii IP, and Seamus
>> (real name Paul Derbyshire) has a Ottawa IP when he posts through
>> google.
>
> Was that tongue in cheek, or were you serious? The IP address the
> server sees doesn't tell you much about the person's location.
For someone as stupid as Seamus/Paul it does.
The clod is blissfully unaware that he could shield his true IP and I'm not
about to tell him how.
This is his latest sock's IP (Jerry Gerrone) and it shows his Ottawa
location. Whenever he posts through Google he has an Ottawa IP.
http://oi53.tinypic.com/2yubkig.jpg
|
|
0
|
|
|
|
Reply
|
Juniper
|
3/11/2011 1:36:02 AM
|
|
On Mar 10, 8:36=A0pm, Juniper <no.spam@here> wrote:
> For someone as stupid as Seamus/Paul it does.
Who is "Seamus/Paul", Juniper? There is nobody in this newsgroup using
that alias.
> The clod is blissfully unaware that he could shield his true IP and I'm n=
ot
> about to tell him how.
Who is "the clod", Juniper? There is nobody in this newsgroup using
that alias.
> This is his latest [insult deleted]'s IP (Jerry Gerrone)
No. None of the nasty things that you have said or implied about me
are at all true.
> and it shows his Ottawa location.
What does your Ottawa location have to do with Java, Juniper?
>=A0Whenever he posts through Google he has an Ottawa IP.
What does your pontification have to do with Java, Juniper?
> http://oi53.tinypic.com/2yubkig.jpg
What does that have to do with Java, Juniper?
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 1:49:05 AM
|
|
Susan Calvin <s.calvin@usr.invalid> writes:
4> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
4> To everyone in these newsgroups: the troll that has plagued you for
some
4> time now is David J. Tholen.
What does your classic erroneous presupposition have to do with
OS/2, Calvin?
4> Tholen is a notorious Usenet kook who has
4> won KOTM once (March 1998) and Clueless Newbie of the Month *twice*
(in
4> February 2003 as himself -- despite being on usenet for at *least*
five
4> years by that point -- and again in April 2009 as "Seamus MacRae"
as an
4> ELEVEN year Usenet veteran).
What does your classic unsubstantiated and erroneous claim have
to do with OS/2, Calvin? I have never used the "Seamus MacRae"
alias. Of course, others have used my alias, and one or more
of those others could have used the "Seamus MacRae" alias, but
if you had better research skills, you'd be able to distinguish
those cases, Calvin.
4> Tholen has been active under a wide variety of aliases for over a
dozen
4> years and is recognizable by a distinct pattern of OCD-like
ritualized
4> responses once under attack.
What does your classic unsubstantiated and erroneous claim have
to do with OS/2, Calvin? I have not used a wide variety of aliases.
Of course, others have used my alias, and one or more of those others
could have used a wide variety of aliases, but if you had better
research skills, you'd be able to distinguish those cases, Calvin.
4> He has a few such patterns, one of which is
4> the "what does X have to do with <newsgroup topic>/classic
4> unsubstantiated and erroneous claim" most closely associated with
his
4> real-world identity. Then there's the "[insult deleted]"/"none of
the
4> nasty things" pattern, and others.
What does your classic unsubstantiated and erroneous claim have
to do with OS/2, Calvin? I have never used the "[insult deleted]"
pattern. Of course, others have used my alias, and one or more of
those others could have used that pattern, but if you had better
research skills, you'd be able to distinguish those cases, Calvin.
4> Tholen is not actually a reply-bot, but he might as well be one.
How ironic, coming from someone who might as well be one, considering
your poor research skills, Calvin.
4> The only recourse with Tholen is your killfile.
What is the recourse with you, Calvin? Will you ever post something
relevant to OS/2 in an OS/2 newsgroup, Calvin?
4> If you want Tholen to shut up, do not reply to Tholen.
What does it take for you to shut up, Calvin?
4> This will be my only post to this thread.
Famous Last Words. And how convenient, considering all the false
claims you made, Calvin. Hit and run tactics.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
3/11/2011 3:09:21 AM
|
|
Juniper <no.spam@here> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
1> Rubbish. Tholen posts through google and has a Hawaii IP, and
Seamus
1> (real name Paul Derbyshire) has a Ottawa IP when he posts through
1> google.
What does your demonstration of the kind of research that Calvin
could have done, but didn't do, have to do with OS/2, Juniper?
1> That's Tholen's idiosyncrasy.
On what basis do you either you or Calvin claim to know anything
of my "real-world identity", Juniper?
1> And that is Seamus's idiosyncrasy, though he has started copying
Tholen.
1> Must be love, or hero worship.
What does your speculation ahve to do with OS/2, Juniper?
1> Good. Now fuck off.
What does your foul language have to do with OS/2, Juniper?
2> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
2> For someone as stupid as Seamus/Paul it does.
2> The clod is blissfully unaware that he could shield his true IP and
I'm not
2> about to tell him how.
2> This is his latest sock's IP (Jerry Gerrone) and it shows his
Ottawa
2> location. Whenever he posts through Google he has an Ottawa IP.
What does Seamus' stupidity and latest sock have to do with OS/2,
Juniper?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
3/11/2011 3:15:15 AM
|
|
Paul Cager <paul.cager@googlemail.com> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
1> Was that tongue in cheek, or were you serious? The IP address the
1> server sees doesn't tell you much about the person's location.
It does say something about the location of the computer that the
person is using, Cager. How do you think those customized ads
work? And what does your claim have to do with OS/2, Cager?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
3/11/2011 3:17:30 AM
|
|
Jerry Gerrone <scuzwalla@gmail.com> writes:
61> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
61> What does your classic erroneous presupposition have to do with OS/
2,
61> tholenbot?
Who is "tholenbot", Gerrone? There is nobody in this
newsgroup using that alias.
62> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
62> No. None of the nasty things that you have said or implied about
me
62> are at all true.
62> I've heard that before.
62> No! None of the nasty things that you have said or implied about
me
62> are at all true.
62> That much is true.
62> The flamers in this newsgroup can be extremely tenacious. Several,
62> notably Larshole, Arnehole, and Wildemar, cross the line into
62> obsessive-compulsive behavior. And after crossing it Arne keeps
going
62> for miles, as another unfortunate victim is apparently now in the
62> process of finding out to judge from the rapid inflation of the
62> "reading last line from text file" thread and it usually showing
Arne
62> as the most recent poster.
What does any of that have to do with OS/2, Gerrone?
63> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
63> No. None of the nasty things that blmblm has said or implied about
me
63> are at all true.
63> comp.lang.java.programmer, presumably.
63> No! None of the nasty things that blmblm has said or implied about
me
63> are at all true.
63> Nothing,
Then why did you post about it in an OS/2 newsgroup, Gerrone?
63> and none of the nasty things that blmblm has said or implied
63> about me are at all true.
63> None of the nasty things that blmblm has said or implied about me
are
63> at all true.
What does that have to do with OS/2, Gerrone?
63> What does your question have to do with OS/2, tholen?
You should know, Gerrone, given that you made your "threat"
about the number of postings in an OS/2 newsgroup.
64> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
64> All of this is quite interesting to kookologists, I am sure, but
none
64> of it seems to have anything whatsoever to do with Java. And this
64> thread that tholen and equally-kooky dizzy infected seemed to have
64> died until you posted this earlier tonight. What did you think you
64> were going to accomplish in the way of anything useless?
What does your question have to do with OS/2, Gerrone?
64> I am not tholen and none of the nasty things that you have said or
64> implied about me are at all true.
What does the fact that you aren't me have to do with OS/2,
Gerrone?
64> All of this is quite interesting to kookologists, I am sure, but
none
64> of it seems to have anything whatsoever to do with Java.
As if it does have something to do with OS/2, eh Gerrone?
64> Good.
If only you could follow Calvin's lead, Gerrone.
64> It does not.
What does that have to do with OS/2, Gerrone?
65> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
65> Who are "Seamus" and "Paul Derbyshire", Juniper? There is nobody
in
65> this newsgroup using either alias.
On what basis do you make that claim, Gerrone? In which newsgroup
have you used the "Seamus" alias?
65> What does that have to do with Java, Juniper?
What does your question have to do with OS/2, Gerrone?
65> What does your classic unsubstantiated and erroneous claim have to
do
65> with Java, Juniper?
What does your question have to do with OS/2, Gerrone?
65> What does your classic unsubstantiated and erroneous claim have to
do
65> with Java, Juniper?
What does your question have to do with OS/2, Gerrone?
65> What does your foul language have to do with Java, Juniper?
What does your question have to do with OS/2, Gerrone?
66> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
66> Unfortunately, he probably actually believes that utter nonsense.
What does Juniper's alleged nonsense have to do with OS/2,
Gerrone?
66> Indeed.
What about the location of the computer being used, Gerrone?
67> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
67> Who is "Seamus/Paul", Juniper? There is nobody in this newsgroup
using
67> that alias.
What does your question of Juniper have to do with OS/2, Gerrone?
67> Who is "the clod", Juniper? There is nobody in this newsgroup
using
67> that alias.
What does your question of Juniper have to do with OS/2, Gerrone?
67> No. None of the nasty things that you have said or implied about
me
67> are at all true.
What do the allegedly nasty things Juniper said about you have to
do with OS/2, Gerrone?
67> What does your Ottawa location have to do with Java, Juniper?
What does your question of Juniper have to do with OS/2, Gerrone?
67> What does your pontification have to do with Java, Juniper?
What does your question of Juniper have to do with OS/2, Gerrone?
67> What does that have to do with Java, Juniper?
What does your question of Juniper have to do with OS/2, Gerrone?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
3/11/2011 3:35:03 AM
|
|
On Thu, 10 Mar 2011 19:09:21 -0800, tholen@antispam.ham wrote:
> What does your classic unsubstantiated and erroneous claim have to do
> with OS/2, Calvin? I have never used the "Seamus MacRae" alias. Of
> course, others have used my alias, and one or more of those others could
> have used the "Seamus MacRae" alias, but if you had better research
> skills, you'd be able to distinguish those cases, Calvin.
Deny, deny, deny ...
|
|
0
|
|
|
|
Reply
|
snorkmeier._10b (2)
|
3/11/2011 4:02:07 AM
|
|
On Mar 10, 10:15=A0pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> Juniper <no.spam@here> writes:
>
> 2> For someone as stupid as Seamus/Paul it does.
> 2> The clod is blissfully unaware that he could shield his true IP and
> I'm not
> 2> about to tell him how.
> 2> This is his latest sock's IP (Jerry Gerrone) and it shows his
> Ottawa
> 2> location. =A0Whenever he posts through Google he has an Ottawa IP.
>
> What does Seamus' [insult deleted] and latest [implied insult deleted]
> have to do with OS/2, Juniper?
Who is "Seamus", tholenbot? There is nobody in this newsgroup using
that alias. ;)
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 6:06:52 AM
|
|
On Mar 10, 10:35=A0pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> Jerry Gerrone <scuzwa...@gmail.com> writes:
> 64> Good.
>
> [implied insult deleted], Gerrone.
No. None of the nasty things that you have said or implied about me
are at all true.
> 65> Who are "Seamus" and "Paul Derbyshire", Juniper? There is nobody
> in
> 65> this newsgroup using either alias.
>
> On what basis do you make that claim, Gerrone? =A0In which newsgroup
> have you used the "Seamus" alias?
None, tholenbot, and there seem to be no active posters in
comp.lang.java.programmer calling themselves by either name. As for
the other two groups you're crossposting this shit to, I simply
wouldn't know, thoolen.
> 65> What does that have to do with Java, Juniper?
>
> What does your question have to do with OS/2, Gerrone?
How ironic, tholenbot.
> 66> Indeed.
>
> What about the location of the computer being used, Gerrone?
What does your question have to do with Java OR OS/2, tholenbot?
> 67> Who is "the clod", Juniper? There is nobody in this newsgroup
> using
> 67> that alias.
>
> What does your question of Juniper have to do with OS/2, Gerrone?
The same thing your "who is 'tholenbot', Gerrone?" question did,
tholenbot.
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 6:11:29 AM
|
|
Jerry Gerrone <scuzwalla@gmail.com> writes:
68> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
68> Who is "Seamus", tholenbot? There is nobody in this newsgroup
using
68> that alias. ;)
Who is "tholenbot", Gerrone? There is nobody in this newsgroup
using that alias.
69> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
69> No. None of the nasty things that you have said or implied about
me
69> are at all true.
What does your classic erroneous presupposition have to do with
OS/2, Gerrone?
69> None, tholenbot, and there seem to be no active posters in
69> comp.lang.java.programmer calling themselves by either name. As
for
69> the other two groups you're crossposting this shit to, I simply
69> wouldn't know, thoolen.
Who is "tholenbot", Gerrone? There is nobody in this newsgroup
using that alias.
69> How ironic, tholenbot.
Who is "tholenbot", Gerrone? There is nobody in this newsgroup
using that alias.
69> What does your question have to do with Java OR OS/2, tholenbot?
Who is "tholenbot", Gerrone? There is nobody in this newsgroup
using that alias.
69> The same thing your "who is 'tholenbot', Gerrone?" question did,
69> tholenbot.
Who is "tholenbot", Gerrone? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
3/11/2011 7:51:26 AM
|
|
Snorkmeier <snorkmeier._10b@gmail.invalid> writes:
1> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
1> Deny, deny, deny ...
What does your repetition have to do with OS/2, Snorkmeier?
|
|
0
|
|
|
|
Reply
|
tholen (16649)
|
3/11/2011 7:52:48 AM
|
|
On Mar 11, 2:51=A0am, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> Jerry Gerrone <scuzwa...@gmail.com> writes:
> 69> No. None of the nasty things that you have said or implied about
> 69> me are at all true.
[calls me a liar]
No, you're the liar, thoolen.
None of the nasty things that you have said or implied about me are at
all true, trollen.
|
|
0
|
|
|
|
Reply
|
scuzwalla (311)
|
3/11/2011 12:07:19 PM
|
|
Jerry Gerrone <scuzwalla@gmail.com> writes:
70> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
70> [calls me a liar]
What does your reading comprehension problem have to
do with OS/2, Gerrone?
70> No, you're the liar, thoolen.
Who is "thoolen", Gerrone? There is nobody in this newsgroup
using that alias.
70> None of the nasty things that you have said or implied about me
are at
70> all true, trollen.
Who is "trollen", Gerrone? There is nobody in this newsgroup
using that alias.
|
|
0
|
|
|
|
Reply
|
tholen
|
3/18/2011 12:01:33 AM
|
|
On Mar 17, 8:01=A0pm, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> Jerry Gerrone <scuzwa...@gmail.com> writes:
> 70> [calls me a liar]
>
> What does your [insult deleted] have to do with OS/2, Gerrone?
None of the nasty things that you have said or implied about me are at
all true.
|
|
0
|
|
|
|
Reply
|
Jerry
|
3/19/2011 4:09:56 AM
|
|
Jerry Gerrone <scuzwalla@gmail.com> writes:
71> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.text.tex
71> > What does your [insult deleted] have to do with OS/2, Gerrone?
I didn't write the above, Gerrone, yet you attributed it to me
anyway. Classic dishonesty on your part, Gerrone.
71> None of the nasty things that you have said or implied about me
are at
71> all true.
What does your classic erroneous presupposition have to do
with OS/2, Gerrone?
|
|
0
|
|
|
|
Reply
|
tholen
|
3/19/2011 10:30:52 AM
|
|
On Mar 19, 6:30=A0am, "tho...@antispam.ham" <tho...@ifa.hawaii.edu>
wrote:
> Jerry Gerrone <scuzwa...@gmail.com> writes:
> 71> > What does your [insult deleted] have to do with OS/2, Gerrone?
[calls me a liar]
No, you're the liar, tholoon. None of the nasty things that you have
said or implied about me are at all true, tholenbot.
> 71> None of the nasty things that you have said or implied about me
> are at
> 71> all true.
[insult deleted]
No. None of the nasty things that you have said or implied about me
are at all true, thoolen.
|
|
0
|
|
|
|
Reply
|
Jerry
|
3/19/2011 11:27:29 AM
|
|
Jerry Gerrone <scuzwalla@gmail.com> writes:
72> Newsgroups:
comp.lang.java.programmer,comp.os.os2.advocacy,comp.t | | | |