🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #15268

Re: O pochodzeniu Javy - Objective C a nie C++ mowia tworcy Javy...

#15268
From: Sektor van Skijlen
Date: Thu, 31 Aug 2006 18:18
97 lines
4405 bytes
Dnia Thu, 31 Aug 2006 11:20:39 -0500, A.L. skrobie:
> Poniewaz rozni eksperci wypowiadaja sie jakony Java powstala jako
> "C++ dla ubogich", wypada zbadac co twierdza jej tworcy. A tworcy
> twierdza:

> Java Was Strongly Influenced by Objective-C

Być może. To nie zaprzecza, że była równie strongly influenced przez C++.

Co mnie obchodzą stanowcze stwierdzenia choćby i samych autorów Javy, które
przeczą oczywistym faktom.

> As it turns out, Sean and Tom are both absolutely correct.  Usually,
> this kind of urban legend stuff turns out to be completely
> inaccurate, but in this case, they are right on.  When I left Sun to
> go to NeXT, I thought Objective-C was the coolest thing since sliced
> bread, and I hated C++.  So, naturally when I stayed to start the
> (eventually) Java project, Obj-C had a big influence.  James
> Gosling, being much older than I was, he had  lots of experience
> with SmallTalk and Simula68,  which we also borrowed
> from liberally.

Taaa... no to popatrzmy:

>> Java's *syntax* may resemble C++, but it has no similarity to C++
>> as a language. Java's chief *semantics* are

No, powiedzmy. Ale:

>> dynamically-bound

Tak? To może spróbujmy sobie następującej konstrukcji:

Object o = new String( "kot" );
char c = o.at(1);

Skompiluje się? Oczywiście nie. I oczywiście podobnego typu konstrukcja
skompiluje się w Smalltalku:

o := 'kot'.
c := o indexOf:1.

w Objective-C:

id o = @"kot";
char c = [o characterAtIndex:1];

w Incr Tcl (zakładając hipotetycznie oczywiście istnienie klasy
SomeStringClass - tylko na użytek przykładu, bo tam taka klasa nie jest do
niczego potrzebna):

set o [SomeStringClass #auto kot]
set c [$o at 1]

i w każdym innym języku, w którym nie ma statycznej typizacji.

>> and
>> use single inheritance,

Buhahaha i co z tego? W Javie byłoby to możliwe do zrobienia - tyle że po
prostu skomplikowałoby język.

>> class objects,

Owszem. Tyle że o ile Smalltalk rzeczywiście używa tych class objects w
zasadniczych celach, o tyle w Javie są one jedynie miłym dodatkiem. Obiekty
klasowe np. nie służą do tworzenia obiektów, jak to ma miejsce w Smalltalku,
czy nawet Incr Tcl.

>> and an extensive runtime system.

To też nie ma większego znaczenia. Świadczy o tym najwyżej, że te rzeczy po
prostu z owych języków zaczerpnięto.

>> C++ and Modula-3 are as far away from this model as any object-oriented
>> language can be.

As Java do, niestety, i żadne chrzanienie głupot tego nie zmieni.

Jeśli już chcemy mieć prawdziwą obiektowość, czyli właśnie taką, jaką
reprezentuje Smalltalk, to musimy mieć:

 - wyłącznie dynamiczną typizację
 - możliwość wywołania dowolnej metody mając "po prostu referencję" na obiekt
   (jako zupełnie naturalną i jedyną istniejącą składnię wywołania metody)
 - wszystkie dane (również liczby całkowite) zrealizowane jako obiekty
   określonych klas

Tych warunków Java nie spełnia, więc żeby się zesrała, jest i zawsze będzie
tak samo "częściowo obiektowa", jak C++.


-- 
//  _    ___         Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `|  /^\ ,()                         <ethouris(O)gmail.com>
// \_ |\  \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"I am allergic to Java because programming in Java reminds me casting spells"
Technical Details
Message-ID: <ed796c$aun$1@kujawiak.man.lodz.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
References: <7j2ef2p498v57j8f401eqgicmkkqbju490@4ax.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.objects
Subject: Re: O pochodzeniu Javy - Objective C a nie C++ mowia tworcy Javy...
Date: Thu, 31 Aug 2006 18:18:52 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 97
Sender: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Message-ID: <ed796c$aun$1@kujawiak.man.lodz.pl>
References: <7j2ef2p498v57j8f401eqgicmkkqbju490@4ax.com>
NNTP-Posting-Host: zly.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1157048332 11223 212.191.89.2 (31 Aug 2006 18:18:52 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Thu, 31 Aug 2006 18:18:52 +0000 (UTC)
User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (SunOS/5.9 (sun4u))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit