Article View: pl.comp.objects
Article #15268Re: O pochodzeniu Javy - Objective C a nie C++ mowia tworcy Javy...
From: Sektor van Skijlen
Date: Thu, 31 Aug 2006 18:18
Date: Thu, 31 Aug 2006 18:18
97 lines
4405 bytes
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-mailReferences:
<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