Thread View: pl.comp.objects
19 messages
19 total messages
Started by Kamil Konieczny
Sat, 15 Dec 2007 17:10
pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Kamil Konieczny
Date: Sat, 15 Dec 2007 17:10
Date: Sat, 15 Dec 2007 17:10
692 lines
27556 bytes
27556 bytes
Posted-By: auto-faq 3.1.1.2
Archive-name: pl-comp-objects-faq
---------------------------------------------------------------------------
Zawartosc: pl.comp.objects FAQ (Frequently Asked Questions and Summary)
Data: 1998.08.18
Wersja: 3.2
Autorzy: Kuba Chabik
Kamil Konieczny kkoniec@mks.com.pl
---------------------------------------------------------------------------
Wykorzystane materialy: poprzednia (druga) edycja FAQ, opracowana przez
Maciej "MACiAS" Pilichowski, macias@vm.cc.uni.torun.pl
Data opracowania: 2.05.95 - 16.05.95
Zasoby: 6.12.94 - 12.04.95
-------
Uwagi:
[ts 2005.12.27]
To FAQ jest juz tak stare, ze chyba az przestarzale. Ale dopoki ktos
nie wymysli nowego, to z braku innego bedzie wysylane nadal. Moze ktos
sie zlituje i napisze/poprawi?
[Kamil 1998.06.24]:
Ze wzgledu na brak czasu edycja trzecia to glownie reorganizacja
i poprawienie poprzedniej edycji, autorstwa [MACiAS].
W miare wolnego czasu bede dodawal nowe tematy, zaczynajac od biezacych
listow az do zamierzchlej przeszlosci, czyli od roku 1998 do 1995.
Nie beda dodawane tematy, nie majace nic (albo niewiele) wspolnego
z tematyka grupy.
Postaram sie rowniez o usuwanie z archiwow listy spamow,
jak rowniez nieaktualnych ogloszen zwiazanych z obiektami.
[MACiAS 1995.05.16]:
W znakomitej wiekszosci wszystkie informacje zostaly wziete z listow
uczestnikow grupy. Jesli zauwazycie ponizej bledy, niescislosci, luki,
etc. to bardzo prosze o listy (jesli sprawa nie jest oczywista, to
najlepiej na adres grupy).
-------
Krotki spis tematow:
T.1 Informacje ogolne (literatura, slowniczek, pojecia).
T.2 Jezyk C++.
T.3 Jezyk Smaltalk.
T.4 Inne
-------
Spis tematow:
T.1.1 Literatura.
T.1.1.1 Literatura w jezyku angielskim.
T.1.1.2 Literatura w jezyku polskim.
T.1.2 Proponowany maly slownik terminow.
T.1.3 Co to jest klasa?
T.1.4 Co to jest metoda?
T.1.5 Co to jest atrybut?
T.1.6 Co reprezentuje dziedziczenie?
T.1.7 Co to jest polimorfizm?
T.1.8 Co zyskujemy przez polimorfizm?
T.1.9 Do czego potrzebna jest hermetyzacja?
T.1.10 Co to jest klasa abstrakcyjna?
T.1.11 Co to jest metaklasa?
T.1.12 Co to jest komponent?
T.1.13 Co to sa obiektowe bazy danych?
T.1.14 Czy obiektowe bazy danych sa gorsze od relacyjnych?
T.1.15 Co to jest CORBA?
T.1.16 Czy programy obiektowe sa wolniejsze od proceduralnych?
T.2.1 Jak w prosty sposob zrozumiec opis bledu w BC++?
T.2.2 Co zrobic jesli klasa deklarowana w pliku naglowkowym uzywa typow
T.2.3 Co to sa dziwne pliki w katalogu "/usr/g++-include/gen" z
T.2.4 Jak w C++ obsluguje sie funkcje ze zmienna liczba parametrow?
T.2.5 Czy mozna zaimplementowac funkcje wirtualne w C?
T.2.6 Czy stosowanie zaprzyjazniania klas nalezy do dobrej praktyki
T.2.7 Gdzie mozna dostac gramatyke C++ (obojetnie dla jakiego narzedzia,
T.2.8 Czy przejscie do OOP wymaga odrzucenia "balastu proceduralnego"?
T.2.9 Co to jest konstruktor kopiujacy?
T.2.10 Czy istnieje domyslny konstruktor kopiujacy?
T.2.11 Jak uniknac dolaczania metod wirtualnych, z ktorych nie korzystam, a
T.2.12 Ciekawostki z historii C++.
T.2.13 Stosowac wskaznik czy referencje?
T.2.14 Co to sa sprytne wskazniki (smart pointers)?
T.2.15 Czy wszystkie metody w mojej klasie powinny byc wirtualne?
T.2.16 Czy konstruktory moga byc wirtualne?
T.2.17 Jak tworzyc klasy abstrakcyjne?
T.3.1 Czy jest dostepna darmowa implementacja Smalltalka?
T.3.2 Czy SmallTalk jest dobry w praktyce, czy tylko w teorii?
T.3.3 Gdzie mozna dowiedziec sie o jezyku Smalltalk i jego zastosowaniach?
T.4.1 Jak powinienem zabrac sie za programowanie obiektowe?
T.4.2 Czy OOP oznacza brak optymalizacji?
T.4.3 Jak rozpoznawac, czy dany program lub projekt jest dobry ?
T.4.4 Poszukuje informacji na temat rozszerzen do jezykow obiektowych
---------------------------------------------------------------------------
-------
T.1.1 Literatura.
T.1.1.1 Literatura w jezyku angielskim.
Badouin-Lafon M., "Object-Oriented Languages"
wyd ?, ISBN ?
Brown W.H., Malveau R.C., McCormick H.W. III, Mowbray T.J.,
"AntiPatterns: Refactoring Software, Architectures,
and Projects in Crisis."
John Wiley & Sons, ISBN 0-471-19713-0
Buchmann et al., "A System of Patterns"
John Wiley & Sons, ISBN 0-471-95869-7
Budd, T., "An Introduction to Object Oriented Programming",
Addison Wesley Publishing, ISBN 0-201-54709-0
Coleman D., et al, "The Fusion Method"
wyd ?, ISBN ?
Fowler M., Scott K., "UML Distilled"
Addison-Wesley, ISBN 0-201-32563-2
Gamma E., Helm R., Johnson R., Vlissides J. "Design Patterns"
Addison-Wesley, ISBN 0-201-63361-2
Graham I., "Object-Oriented Methods" 2nd ed.
Addison-Wesley, ISBN 0-201-59371-8
http://www2.awl.com/cseng/
Jacobson I., Christerson M., Johnsson P., Overgaard G.,
"Object-Oriented Software Engineering"
Addison-Wesley, ISBN 0-201-54435-0
Lakos J., "Large-Scale C++ Software Design"
Addison-Wesley, ISBN 0-201-63362-0
Lalonde W.R., Pugh J.R., "Inside Smalltalk", Volume 1 and 2,
Prentice Hall, ISBN ?
Rumbaugh J., Blaha M., Premerlani W.,Eddy F.,Lorensen W.,
"Object-Oriented Modelling and Design"
Prentince Hall, ISBN ?
Stroustrup B., "The C++ Programming Language" 3rd. ed., 6th printing
Addison-Wesley, ISBN 0-201-88954-4
http://www.research.att.com/~bs/homepage.html
T.1.1.2 Literatura w jezyku polskim.
Barteczko K., "Praktyczne wprowadzenie do programowania w jezyku C++",
LUPUS, ISBN ISBN 83-85545-13-1
Coad P., Yourdon E., "Analiza obiektowa" (OOA),
README, ISBN 83-85769-17-X
Coad P., Yourdon E., "Projektowanie obiektowe" (OOD),
README, ISBN 83-85769-18-8
Coad P., Nicola J., "Programowanie obiektowe" (OOP),
README, ISBN 83-85769-16-1
Grebosz J., grebosz@bron.ifj.edu.pl, "Symfonia C++"
Oficyna Kallimach, ISBN 83-901689-0-1 wydanie 3,
Oficyna Kallimach, ISBN 83-901689-1-X
Grebosz J., "Pasja C++"
Oficyna Kallimach, ISBN 83-901689-2-8
Hansen T., "Zadania z jezyka C++",
WNT, ISBN 83-204-1759-7
Kliszewski M., "Inzynieria oprogramowania obiektowego - analiza obiektowa",
RESPEKT, ISBN 83-901994-0-8
Kain E., "Od C do C++"
wyd ?, ISBN ?
Lippman S.B., "Podstawy jezyka C++", Tlumaczenie z wydania 2,
WNT, ISBN 83-204-1681-7
Martin J., Odell J.J., "Podstawy metod obiektowych"
WNT, ISBN 83-204-2116-0
Stroustrup B., "Jezyk C++", Tlumaczenie wydania 2,
WNT, ISBN 83-204-1697-3
Stroustrup B., "Projektowanie i rozwoj jezyka C++",
WNT, ISBN 83-204-2042-3
-------
T.1.2 Proponowany maly slownik terminow.
garbage collector - odsmiecacz
operator overloading - przeciazanie operatora
object persistency - trwanie obiektu
persistent pointer - trwaly wskaznik
container - pojemnik
template - szablon
reference - odnosnik
dereferencing - wyluskiwanie
-----
T.1.3 Co to jest klasa?
Klasa jest abstrakcja obiektow z modelowanej dziedziny. Stanowi
wzorzec, opis, z ktorego te obiekty beda tworzone. Klasa nic nie
"robi", klasa czyms "jest". Klasy odwzorowuja przedmioty, osoby, a
takze organizacje i procesy zachodzace w swiecie rzeczywistym.
Klasa posiada jakas odpowiedzialnosc. Cos, dla czego nie potrafisz
wskazac odpowiedzialnosci, klasa nie jest (najprawdodobniej jest
jedyniem atrybutem innej klasy).
-----
T.1.4 Co to jest metoda?
Metoda, zwana takze operacja, reprezentuje czynnosc, jaka moze byc
wykonana przez dany obiekt w swiecie rzeczywistym. Metody moga
uzywane do uzyskania informacji lub do zmiany stanu danego obiektu.
-----
T.1.5 Co to jest atrybut?
Atrybut to cecha obiektu, na przyklad kolor pojazdu, dlugosc tekstu,
wzrost osoby. Atrybuty sa innymi obiektami zagniezdzonymi w danym
obiekcie.
-----
T.1.6 Co reprezentuje dziedziczenie?
Dziedziczenie reprezentuje specjalizacje. Mowimy, ze klasa
dziedziczaca (subclass) "jest rodzaju" klasy bazowej (superclass).
Innymi slowy, klasa bazowa reprezentuje pojecie bardziej ogolne, niz
klasa dziedziczaca.
-----
T.1.7 Co to jest polimorfizm?
Metody polimorficzne to takie, ktore moga zachowywac sie roznie, w
zaleznosci od tego, na rzecz jakiego konkretnego obiektu zostaly
wywolane. Metode polimorficzna mozemy przedefiniowac w klasie
implementujacej interfejs (czyli, najczesciej, dziedziczacej). Jezeli
teraz inne obiekty beda wywolywac te metode dla obiektow nowej klasy,
to bedzie wykonywala sie nowo, a nie stara metoda, choc same obiekty
wolajace nie zauwaza zmiany.
-----
T.1.8 Co zyskujemy przez polimorfizm?
Dzieki polimorfizmowi uzyskujemy elastycznosc systemow, bowiem mozemy
modyfikowac jedynie to, co rzeczywiscie nalezy zmienic, nie zas cale
"otoczenie" konkretnej metody
-----
T.1.9 Do czego potrzebna jest hermetyzacja?
Hermetyzacja, czyli ukrywanie metod i atrybutow klas, daje nam
bezpieczenstwo i przejrzystosc. Przypuscmy, ze mamy atrybut
"godzinaRozpoczecia" klasy "Wyklad". Gdyby wszyscy mieli dostep do
takiego atrybutu, mogloby sie zdarzyc, ze ktos ustawilby ja na liczbe
wieksza od 23, co oczywiscie nie ma sensu. Jednakze dzieki
hermetyzacji mozemy taka kontrole poprawnosci zawrzec w metodzie
"zmienGodzineRozpoczecia" i odmowic ustawienia nieprawidlowej
godziny.
-----
T.1.10 Co to jest klasa abstrakcyjna?
To taka klasa, ktora mozna tylko wykorzystywac przez dziedziczenie od
niej, a nie mozna tworzyc jej obiektow. Klasy abstrakcyjne
reprezentuja pojecia, ktore sa generalizacja innych pojec, ale same w
sobie nie reprezentuja zadnych obiektow w dziedzinie.
-----
T.1.11 Co to jest metaklasa?
Metaklasa to jakby klasa dla klasy, innymi slowy, egzemplarze
(instance) metaklas sa klasami. Metaklasy wystepuja nie we wszystkich
jezykach programowania, a nawet w tych, w ktorych wystepuja, trudno
wskazac ich konkretne, programistyczne zastosowanie. Jednakze czesto
stosuje sie jej nawet o tym nie wiedzac.
-----
T.1.12 Co to jest komponent?
Komponent to grupa klas, ktore sluza jednemu, konkretnemu celowi.
Klasy w komponencie charakteryzuja sie tym, ze maja silne powiazania
z innymi klasami wewnatrz tego samego komponentu i slabe poza nim.
Dzieki temu komponent moga byc rozwijane niezaleznie i podmieniane w
razie potrzeby, bez modyfikacji innych komponentow. Przykladem
komponentu moglaby byc grupa klas odpowiedzialna za obsluge wydruku.
-----
T.1.13 Co to sa obiektowe bazy danych?
Pojecie "bazy danych" nie jest szczegolnie szczesliwe. Lepiej mowic o
"obiektach trwalych". Systemy takie pozwalaja na przechowanie stanu
obiektu pomiedzy wywolaniami aplikacji, czyli tak, jak tradycyjna
baza danych przechowuje dane. Jednakze roznica miedzy nimi a takimi
bazami polega na fakcie, ze nie trzeba programowo odtwarzac stanu
aplikacji z bazy (np. zapytaniami SQL). Po prostu obiekty aplikacji i
obiekty bazy danych to to samo.
-----
T.1.14 Czy obiektowe bazy danych sa gorsze od relacyjnych?
To zalezy do czego. W przypadku odwzorowywania skomplikowanych
zaleznosci sa o niebo lepsze. W przypadku plaskich, kartotekowych
danych sa gorsze. Technologia ODBMS jest niewatpliwie mniej dojrzala
od RDBMS, jednakze swoj okres "dzieciecy" ma juz na pewno za soba.
-----
T.1.15 Co to jest CORBA?
CORBA to skrot od Common Object Request Broker Architecture. Jest to
architektura, ktore umozliwia komunikacje obiektom zlokalizowanym na
roznych maszynach, roznych systemach operacyjnych, roznych
architekturach sprzetowych komunikacje miedzy soba. W ramach
standardu CORBA istnieja takze uslugi (CORBA services), np. kolekcje,
zdarzenia (events), transakcje i inne. CORBA jest bardzo potezna
architektura, ale nie ma zbyt dobrych implementacji, szczegolnie
uslug. Ponadto organizacja OMG, ktora zdefiniowala CORBA'e, jest
cialem biurokratycznym i nieruchawym. Spowalnia to rozwoj tego
standardu.
-----
T.1.16 Czy programy obiektowe sa wolniejsze od proceduralnych?
Nie, to kompletna bzdura. Programowanie obiektowe pozwala na
zastosowanie takich technik, ktore czynia program bezpieczniejszym,
stabilniejszym, szybszym i bardziej elastycznym. Ponadto, technologia
obiektowa pozwala tworzyc system w sposob bardziej rygorystyczny, a
wiec pewniejszy i bardziej skoordynowany, niz technologia
proceduralna. Skutkiem jest generalnie wyzsza jakosc systemow,
szczegolnie tych powazniejszych, a wiec i wieksza szybkosc ich
dzialania.
Opinie taka programy obiektowe zawdzieczaja niedouczonym
programistom, ktorzy, liznawszy odrobiny C++, poczuli sie ekspertami
od obiektow i wyglaszali na prawo i lewo podobne bzdury.
---------------------------------------------------------------------------
-----
T.2.1 Jak w prosty sposob zrozumiec opis bledu w BC++?
Przeczytac opis bledu, zajrzec do "Programmer's Manual",
"Programmer's Reference", podrecznika C++.
Jesli nie pomoze, skontaktowac sie z innymi osobami piszacymi w C++.
-----
T.2.2 Co zrobic jesli klasa deklarowana w pliku naglowkowym uzywa typow
deklarowanych w innych plikach naglowkowych?
W _kazdym_ pliku naglowkowym nalezy wpisac:
#ifndef nazwapliku_h
#define nazwapliku_h
..
#endif
I mozesz bezkarnie wlaczac potrzebne ci headery.
-----
T.2.3 Co to sa dziwne pliki w katalogu "/usr/g++-include/gen" z
roszerzeniami ".ccP" oraz ".hP"?
Jest to po prostu biblioteka "libg++". Dowiedziec sie czegos wiecej mozesz
z dokumentacji. A pliki z rozszerzeniem ".ccP" i ".hP" sa wejsciowymy
plikami do programu "genclass". To sa pliki ze starej wersji kompilatora,
ktory nie mial wlaczonych templates, wiec uzywalo sie tego i "genclass"
specyfikujac jaki mial byc bazowy typ, "genclass" tworzyl z tego pliki
np. "<type>Vec.cc" i "<type>Vec.h" zastepujac <T> podanym typem.
-----
T.2.4 Jak w C++ obsluguje sie funkcje ze zmienna liczba parametrow?
W starym C stosowalo sie <varargs.h>, w nowym (ANSI C oraz C++)
stosuje sie <stdarg.h>.
Ponizej przyklad programu wykorzystujacy <stdarg.h>.
va_list - typ zmiennej pomocniczej
va_start - inicjalizacja listy
va_argptr - przesuniecie wskaznika listy na nastepny element
#include <stdio.h>
#include <stdarg.h>
void pisz(char *tekst,...)
{
va_list argptr;
va_start(argptr,tekst);
printf("\nTo sa dane : %s",tekst);
while(*(tekst=va_arg(argptr,char *))!=NULL)
printf(" %s",tekst);
va_end(argptr);
};
void main()
{
pisz("ala","ola","kot","domek na prerii","i nic",NULL);
};
Typowo to jest tak, ze pierwszy parametr zawiera informacje o liczbie
dalszych parametrow. Moze to byc liczba, ale moze byc tak jak w "printf":
printf("zmienna %s = %d",...)
Tu jest podane, ze tylko dwoch parametrow trzeba sie doszukac.
-----
T.2.5 Czy mozna zaimplementowac funkcje wirtualne w C?
Tak - mozna to zrobic poprzez umieszczenie wskaznikow do funkcji razem
z danymi, np:
struct ojciec {
int daneojca;
int *funkcjaWirtualna(char *arg);
};
struct syn {
struct ojciec o;
int danesyna;
int *mojaFunkcjaWirtualna();
};
struct syn *konstuktor_syna()
{
struct syn *s = malloc(...);
s->mojaFunkcjaWirtualna = syn_mojaFunkcja;
s->o.funkcjaWirtualna = s->mojaFunkcjaWirtualna; // podmiana wskaznika
// funkcji wirtualnej
}
czyli poprzez podmiane wskaznika do funkcji. Taka realizacja jednak
umozliwa jednak uzywanie tylko pseudo-wirtualnych funkcji. Jesli chcemy
uzywac naprawde takich funkcji uzyjmy jezyka obiektowego, gdyz w tych
jezykach funkcja/metoda wirtualna wyroznia sie tym, ze niezaleznie od
sposobu wywolania zawsze wykonana zostanie funkcja odpowiadajaca
rzeczywistemu typowi klasy. Tak jak w ponizszym przykladzie:
foobar( struct ojciec *o)
{
o->mojaFunkcjaWirtualna(); // jesli o jest wskaznikiem na syna
// to wywolane zostanie syn_mojaFunkcja
}
-----
T.2.6 Czy stosowanie zaprzyjazniania klas nalezy do dobrej praktyki
programisty?
Nie, gdyz dopuszcza do latwego dostepu do pol prywatnych i
chronionych. Narusza to zasade "jedyna aktywnosc systemu
obiektowego to przekazywanie wiadomosci (message passing)". Istnieje
roznica miedzy zapisaniem "kolo->radius=5;", a "kolo->setRadius(5);".
-----
T.2.7 Gdzie mozna dostac gramatyke C++ (obojetnie dla jakiego narzedzia,
preferowane yacc(bison), lex(flex) itp), ale koniecznie AT&T 2.0
(glownie chodzi o nested classes oraz templates)?
Powinna byc w zrodlach GNU cc.
Jest rowniez w B.Stroustrup "The C++ Programming Language", 3rd ed.,
Appendix A (niekompletna).
-----
T.2.8 Czy przejscie do OOP wymaga odrzucenia "balastu proceduralnego"?
Wczytujac sie w Stroustrupa "Jezyk C++" mozna zauwazyc jego
slowa: nowe techniki programowania nie neguja starych - uzupelniaja je.
To nie rewolucja. Tam gdzie wystarcza procedury lub moduly, nie szukamy
obiektow.
[czy ktos moze znalezc nr rozdzialu i paragrafu, lub nr strony ? Kamil]
-----
T.2.9 Co to jest konstruktor kopiujacy?
Konstruktor kopiujacy jest bardzo podobny do operatora przypisania,
tyle ze o ile operator przypisania uzywany jest dla obiektow juz
istniejacych, to konstruktor kopiujacy gdy tworzymy nowy obiekt i
jednoczesnie nadajemy mu jakas wartosc. Przyklad (bo bez przykladu
raczej malo kto zrozumie :-) ):
class A
{
private:
int data;
public:
A(int new_data=0) : data(new_data) {}; // To jest zwykly
// konstruktor
A( A& a ) : data(a.data) {}; // A to konstruktor kopiujacy
A& operator=(A &a) { data=a.data; return *this; } // a to
// operator przypisania
};
I teraz...
main()
{
A a(1); // Tu zostanie wywolany zwykly konstruktor, z argumentem 1
A b; // Podbnie, tyle ze argument zostanie domyslnie
// przyjety jako 0
A c=b; // Tutaj konstruktor kopiujacy z argumentem b
A d; // A tutaj operator przypisania z tym samym argumentem
d=b;
};
Najwazniejsze w tym wszystkim sa ostatnie trzy linijki, bo tutaj
wlasnie widac roznice, kiedy wywolywany jest operator przypisania, a
kiedy konstruktor kopiujacy. Konstruktor kopiujacy jest tylko i
wylacznie wtedy gdy przypisanie nastepuje rownoczesnie z utworzeniem.
Dlaczego to wyroznienie? Pozwala to zaoszczedzic operacji, bo
oczywiscie moglo by byc i tak ze kazda instrukcja typu "A b=c;"
bylaby rozbijana na dwie: "A b; b=c;". Ale wtedy niepotrzebnie obiekt
"b" bylby dwa razy inicjowany (w naszym przypadku najpierw "data=0",
a potem "data=c.data").
Taka instrukcja jak "A b=c;" jest rownowazna po prostu "A b(c);"
a nie (jak mogloby sie wydawac) parze instrukcji "A b; b=c;".
Ponizsze przyklady takze sa ciekawe:
class klasaA {
public:
klasaA metoda() { return (*this); };
...
};
Tutaj zostanie najpierw wykonana kopia obiektu (poprzez wywolanie
kostruktora kopiujacego) i kopia zostanie zwrocona jako wynik metody;
Trzeba bardzo uwazac na brak znaczku referencji "&"!!!
class klasaA {
public:
klasaA& metoda()
{
klasaA temp;
....
return temp;
};
....
};
Poniewaz "temp" jest obiektem o czasie zycia tylko wewnatrz metody, wiec by
moc zwrocic referencje do niego trzeba miec kopie o zasiegu wiekszym.
Kopilator wiec wola konstruktor kopiujacy z argumentem "temp" i tworzy jego
kopie na stercie i zwraca referencje do nowego obiektu.
-----
T.2.10 Czy istnieje domyslny konstruktor kopiujacy?
Tak - kopiuje poszczegolne pola. Z tego powodu nie nadaje sie
do klas zawierajacych wskazniki - w efekcie otrzymujemy dwa obiekty
wskazujace na ten sam (trzeci) obiekt. Jezeli teraz jeden z tych
obiektow zostanie usuniety, to najprawdopodobniej zostanie tez
zniszczony obiekt przez niego wskazywany, i drugi z obiektow bedzie
wskazywal cos blednego. Dlatego tez gdy uzywamy operacji przypisania,
a dana klasa zawiera wskazniki, to trzeba konstruktor kopiujacy
zdefiniowac samemu, umieszczajac w nim operacje potrzebne do
utworzenia kopii obiektu wskazywanego przez wskaznik.
-----
T.2.11 Jak uniknac dolaczania metod wirtualnych, z ktorych nie korzystam, a
sa zadeklaroawne w definicji objektu?
Pozne laczenie ("late binding"), ktore UMOZLIWIA tworzenie metod
wirtualnych, polega wlasnie na tym, ze program w momencie kompilacji
i linkowania _nie wie_, ktore metody beda mu potrzebne. Inna sprawa ze
zwyklymi metodami.
-------
T.2.12 Ciekawostki z historii C++.
Autorem C++ jest Bjarne Stroustrup. W swojej ksiazce "The Design and
Evolution of C++" skladajac wyrazy holdu za wplyw na powstanie jezyka C++,
Stroustrup wymienia m.in. nastepujace osoby: Briana Kernighana, Andrew
Koeniga, Douga McIlroya, Jonathana Shopiro. Kristen Nygaard (Simula 67)
i Dennis Ritchie (C) zajmuja na tej liscie miejsca szczegolnie eksponowane.
W pazdzierniku 1979 roku istnial 1 uzytkownik C++ (C z klasami),
w pazdzierniku 1981 C++ mial 38 uzytkownikow, w dziesiec lat pozniej -
400 000 osob przyznawalo sie do programowania w C++. A obecnie?
Obecnie trwaja prace nad normalizacja jezyka C++,
prowadzone przez kilka cial standaryzacyjnych.
Standard jest juz zatwierdzony,
i mozna go zakupic bezposrednio w ANSI.
Bjarne Stroustrup od cwiercwiecza interesuje sie filozofia i historia.
Jego sympatie do empirystow i awersja do idealistow, "uszczesliwiajacych"
ludzkosc "tym, co dla niej dobre" (slowa Stroustrupa), wplynely na
niektore decyzje i rozwiazania projektowe w C++.
-------
T.2.13 Stosowac wskaznik czy referencje?
Istnieja zasadnicze roznice miedzy wskaznikiem, a referencja:
1. Referencje nie moga byc puste
2. Raz ustawionej referencji nie mozna przeniesc na inny obiek
3. Nie mozna zrobic referencji do referencji, tak jak robi sie
wskaznik do wskaznika.
Generalnie, lepiej jest stosowac referencje. Jednakze jezeli z wyzej
wymienionych powodow jest to niemozliwe, to nalezy zastosowac
wskaznik.
-------
T.2.14 Co to sa sprytne wskazniki (smart pointers)?
Jest to szczegolny rodzaj klas, ktore definiuja operator rzutowania
na typ pierwotny (ktory opakowuja). Z tego powodu moga byc stosowane
w programie tak, jakby byly typu pierwotnego. Najbardziej znane
przyklady sprytnych wskaznikow to string (opakowujacy wskaznik do
char) i auto_ptr (szablon parametryzowany opakowywanym typem) ze
standradowej biblioteki C++.
-------
T.2.15 Czy wszystkie metody w mojej klasie powinny byc wirtualne?
W zasadzie tak. Deklarujac metode jako niewirtualna uniemozliwiasz
zmiane jej implementacji w klasie dziedziczacej, a tym samym zawezasz
elastycznosc swojego systemu.
Jednakze w przypadku metod prostych, np. jedynie zwracajacych
referencje do atrybutu, lepiej zrobic je inline, a metoda inline nie
moze byc wirtualna.
-------
T.2.16 Czy konstruktory moga byc wirtualne?
Nie. Ale mozna stworzyc odpowiednik konstruktora wirtualnego. Opisuje
to wzorzec Abstract Factory z ksiazki "Design Patterns", Gamma et al.
-------
T.2.17 Jak tworzyc klasy abstrakcyjne?
Klasa abstrakcyjna jest kazda klasa, ktora ma choc jedna metode
czysto wirtualna (abstrakcyjna), czyli zadeklarowana, a nie
zaimplementowana. Mozna klase uczynic abstrakcyjna takze deklarujac
wszystkie jej konstruktory jako prywatne lub chronione (protected).
---------------------------------------------------------------------------
-----
T.3.1 Czy jest dostepna darmowa implementacja Smalltalka?
Tak - w ramach GNU. Znalezc go mozna w wiekszosci katalogow z GNU.
-----
T.3.2 Czy SmallTalk jest dobry w praktyce, czy tylko w teorii?
W przypadku Smalltalka o teorii mogla byc mowa jakies 10 lat temu. Teraz
jest to praktyka. Niejaki Dave Thomas z Kanady odpowiedzial na to
pytanie w bardzo ciekawym referacie. Oto, co wdrozono na Smalltalku:
1. Centrale telefoniczna dla kilkudziesieciotysiecznego miasta.
2. "Zastosowania specjalne".
3. IBM zatrudnil ostatnio (pocz.'94) okolo 300 programistow w Smalltalku.
Chyba nie do podlewania kwiatkow.
4. System analizy jakosci programow napisanych w C.
Tyle pamietam. Inna sprawa, ze Smalltalk nie dorownuje C++
rozpowszechnieniu, wiec i produkty komercyjne nie sa tak czeste. Ja nie
potrafie podac zadnych, ale w C++ to chyba tez tylko te, w ktorych
pisaniu sam uczestniczylem.
Czytalem, ze zrobienie jednej klasy w Smalltalku zajmuje 1 osobodni, w
C++ trzy razy tyle. Oczywiscie slyszalem to od entuzjastki Smalltalka,
wiec trzeba wziac poprawke.
-----
T.3.3 Gdzie mozna dowiedziec sie o jezyku Smalltalk i jego zastosowaniach?
Pod nastepujacym adresem:
http://www.stic.org
Jest to adres Smalltalk Industry Council, instytucji zrzeszajacej
firmy produkujace oprogramowanie i narzedzia do Smalltalka. Pod tym
adresem znalezc mozna liste dostepnych kompilatorow (komercyjnych i
darmowych), firmy produkujace biblioteki i narzedzia, materialy do
nauki Smalltalka, informacje o wybranych projektach wykonanych przy
pomocy Smalltalka oraz porownanie sprawnosci Smalltalka z jezykami C i
C++.
---------------------------------------------------------------------------
-----
T.4.1 Jak powinienem zabrac sie za programowanie obiektowe?
Wykonac analize i projekt. Wybrac jezyk i zaimplementowac projekt.
Na poczatek doradzam kilka niewielkich projektow.
Nie zaszkodzi poczytac o analizie, projektowaniu i programowaniu
obiektowym.
-----
T.4.2 Czy OOP oznacza brak optymalizacji?
Ani tak, ani nie - zaden jezyk z gory nie zaklada braku optymalizacji. To
zalezy tylko i wylacznie od konkretnego programu.
-----
T.4.3 Jak rozpoznawac, czy dany program lub projekt jest dobry ?
Mozliwe kryteria:
o dziala - dobrze, nie dziala - zle
o stopien realizacji obiektow jako "czarnych skrzynek"
o zbyt mala lub zbyt duza wiedza klas
o czytelnosc
o podatnosc na zmiany
o powiazania miedzy modulami
o mozliwosc powtornego uzycia
-----
T.4.4 Poszukuje informacji na temat rozszerzen do jezykow obiektowych
(C++, Smalltalk, Eiffel), takich jak np. O++ do C++
O++ jest rozszerzeniem C++ pozwalajacym na tworzenie obiektow
trwalych (persistent), manipulowanie nimi, laczenie w clustery etc.
Jesli chodzi o Smalltalk, to jego rozszerzeniem jesli silnie stypizowany
Strongtalk.
---------------------------------------------------------------------------
end of pl.comp.object FAQ and Summary
---------------------------------------------------------------------------
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: andrew
Date: Sun, 16 Dec 2007 11:15
Date: Sun, 16 Dec 2007 11:15
27 lines
1959 bytes
1959 bytes
Użytkownik "Kamil Konieczny" <kkoniec@mks.com.pl> napisał w wiadomości news:pl-comp-objects-faq-1-1197738604@ict.pwr.wroc.pl... > Posted-By: auto-faq 3.1.1.2 > Archive-name: pl-comp-objects-faq > > --------------------------------------------------------------------------- > Zawartosc: pl.comp.objects FAQ (Frequently Asked Questions and Summary) > Data: 1998.08.18 > Wersja: 3.2 > Autorzy: Kuba Chabik > Kamil Konieczny kkoniec@mks.com.pl > --------------------------------------------------------------------------- > > Wykorzystane materialy: poprzednia (druga) edycja FAQ, opracowana przez > Maciej "MACiAS" Pilichowski, macias@vm.cc.uni.torun.pl > Data opracowania: 2.05.95 - 16.05.95 > Zasoby: 6.12.94 - 12.04.95 > Co do literatury po angielsku dodał bym bardzo dobrą książkę: - "Applying UML and Patterns", C. Larman'a; A do polskich: - "Język UML 2.0", Wrycza; - "Wzorce projektowa", GoF, WNT; Andrew
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Sat, 12 Jan 2008 19:54
Date: Sat, 12 Jan 2008 19:54
41 lines
2822 bytes
2822 bytes
Dnia Sun, 16 Dec 2007 12:15:19 +0100, andrew skrobie: > Użytkownik "Kamil Konieczny" <kkoniec@mks.com.pl> napisał w wiadomości > news:pl-comp-objects-faq-1-1197738604@ict.pwr.wroc.pl... > > Posted-By: auto-faq 3.1.1.2 > > Archive-name: pl-comp-objects-faq > > > > --------------------------------------------------------------------------- > > Zawartosc: pl.comp.objects FAQ (Frequently Asked Questions and Summary) > > Data: 1998.08.18 > > Wersja: 3.2 > > Autorzy: Kuba Chabik > > Kamil Konieczny kkoniec@mks.com.pl > > --------------------------------------------------------------------------- > > > > Wykorzystane materialy: poprzednia (druga) edycja FAQ, opracowana przez > > Maciej "MACiAS" Pilichowski, macias@vm.cc.uni.torun.pl > > Data opracowania: 2.05.95 - 16.05.95 > > Zasoby: 6.12.94 - 12.04.95 > > > Co do literatury po angielsku dodał bym bardzo dobrą książkę: > - "Applying UML and Patterns", C. Larman'a; > A do polskich: > - "Język UML 2.0", Wrycza; > - "Wzorce projektowa", GoF, WNT; Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie, czy właściciel tego bota jeszcze żyje. Sprawdź sobie, kiedy był robiony ostatni update, to się zdziwisz. -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "Java is answer for a question that has never been stated"
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: andrew
Date: Sun, 13 Jan 2008 08:37
Date: Sun, 13 Jan 2008 08:37
15 lines
1574 bytes
1574 bytes
> Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który > sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat > regularnie > spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie > "pl.comp.objects > FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie > wie, > czy właściciel tego bota jeszcze żyje. > > Sprawdź sobie, kiedy był robiony ostatni update, to się zdziwisz. > To mnie teraz zażyłeś ;) Andrew
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Miros/law L. Baran
Date: Tue, 15 Jan 2008 18:57
Date: Tue, 15 Jan 2008 18:57
20 lines
1897 bytes
1897 bytes
PT Sektor van Skijlen pisze:
> Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który
> sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie
> spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects
> FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie,
> czy właściciel tego bota jeszcze żyje.
Sam jesteś ciołkiem, młody człowieku. Gdybyś zwrócił uwagę na to, co
czytasz, zauważyłbyś, że bot chętnie wysyłałby nową wersję. Niestety,
użytkownicy grupy są na to za leniwi i zamiast czytać, wolą wyzywać
różne stworzenia od ciołków.
Jubal (...jeśli są chętni do stworzenia aktualnej wersji FAQ, mogą się
oni zgłosić pod adres podany w tekście FAQ).
--
[ Miroslaw L Baran | jabber id: baran-at-hell-pl | key-id: FC494FC4 | 0101010 ]
Fighting for peace is like making love for virginity.
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Tue, 15 Jan 2008 21:33
Date: Tue, 15 Jan 2008 21:33
95 lines
6197 bytes
6197 bytes
Dnia Tue, 15 Jan 2008 18:57:28 +0000 (UTC), Miros/law L. Baran skrobie: > PT Sektor van Skijlen pisze: > > Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który > > sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie > > spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects > > FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie, > > czy właściciel tego bota jeszcze żyje. > Sam jesteś ciołkiem, młody człowieku. Ile ty masz lat, że zwracasz się do mnie w ten sposób? > Gdybyś zwrócił uwagę na to, co > czytasz, zauważyłbyś, że bot chętnie wysyłałby nową wersję. Ach i och. Ależ ja wcale nie proszę bota o wysyłanie nowej wersji, nie prosi o to zresztą nikt na tej grupie, a jedyna rzecz, jaką chciałbym, aby ów bot zrobił, to aby spierdalał z tej grupy w podskokach. > Niestety, > użytkownicy grupy są na to za leniwi i zamiast czytać, wolą wyzywać > różne stworzenia od ciołków. Nie - po prostu, jeśli tego nie zauważyłeś, większość użytkowników ma jego charytatywną działalność głęboko w dupie. I sami sobie na to zasłużyliście. -> ... > Jubal (...jeśli są chętni do stworzenia aktualnej wersji FAQ, mogą się > oni zgłosić pod adres podany w tekście FAQ). Przypominam ci, że jeszcze jakieś 10 lat temu (no, 8) owo FAQ owocowało gorącą dyskusją, gdzie poszczególne punkty były omawiane, były podawane propozycje zmian, propozycje dodatków, ulepszeń. Wiele było na te tematy powiedziane, wiele się wyjaśniło, co więcej, wyszło wiele dodatkowych informacji precyzujących określone pojęcia i wydawało się, że nawet wszyscy uczestnicy grupy w wielu punktach zgadzali się co do koniecznych zmian w FAQ. I wyszło z tego jedno wielkie gówno. FAQ było potem podsyłane kilkakrotnie, znów gorąco komentowane, i znów - tradycyjnie, można rzec - równo olane. Przez długi czas dostarczaliśmy swoimi dyskusjami wiele ciekawych materiałów, którymi można by uzupełnić owo FAQ. Ile z tego zanotowaliście? O ile sobie przypominam, to sam osobiście wysłałem nawet kilka W PEŁNI OPRACOWANYCH PUNKTÓW do FAQ, takie tylko aby "wyciąć i wkleić". Żadna najmniejsza cząstka owych dyskusji nie znalazła odzwierciedlenia we wciąż na nowo wysyłanym FAQ na grupę. Przyzwyczailiście w ten sposób wszystkich użytkowników do tego, że wszelkie tego typu zmiany mogą zgłaszać "sobie a muzom". Jakiekolwiek ponaglania z naszych stron (nie wiem nawet, czy czasem ktoś nie wysyłał również bezpośrednio pod adres - wiele lat w końcu upłynęło) nie dawały żadnego rezultatu. A ty teraz nagle wyskakujesz jak Filip z konopii, że łaskawie możecie przyjąć NOWO OPRACOWANE FAQ, jeśli znajdzie się jakiś jeleń, który to zrobi. Na dodatek, wszystkie te dyskusje są dostępne w archiwum grupy na Google groups. Miałeś bardzo dużo czasu, aby tam zajrzeć, i popatrzeć o czym dyskutowało się w okolicach np. 2000 roku. Tego nie zrobiłeś również. A teraz masz jeszcze czelność wyzywać użytkowników od leni, gdy wam nie chciało się przez te 10 lat ruszyć dupy, żeby zebrać te wszystkie materiały do kupy i opracować, tylko czekacie, aż użytkownicy podadzą wam gotowe materiały na tacy, a wy łaskawie wsadzicie sobie te materiały w... bota, który będzie dalej radośnie wysyłał to na grupę pl.comp.objects. Serdeczne dzięki, jeśli będę miał ochotę na taką działalność charytatywną, jak opracowanie FAQ do pl.comp.objects, to zorganizuję to sam, żadnej łaski ni błogosławieństwa z waszej strony potrzebował nie będę. Jeśli wasz udział w tym FAQ polega wyłącznie na tym, że łaskawie wkleicie uprzednio wyszlifowane FAQ do pliku, który bot potem wyśle na grupę, to wybacz, jeśli chcesz zobaczyć prawdziwego lenia, lepiej spójrz w lustro. Zrozum to wreszcie: to jest robota po nic, nikomu nie służy, nikt jej nie chce, na sieci można znaleźć tysiące informacji znacznie lepszej jakości (o tzw. bibliotekach nie wspominając). Jeśli koniecznie chcesz trzymać to FAQ i upubliczniać, to załóż sobie własną stronę www i powieś to tam (i siebie też najlepiej przy okazji). Przestańcie wreszcie uprawiać swoją własną prywatną zabawę z grupą pl.comp.objects. Zróbcie sobie własną stronę i na niej się bawcie. > -- > [ Miroslaw L Baran | jabber id: baran-at-hell-pl | key-id: FC494FC4 | 0101010 ] > Fighting for peace is like making love for virginity. Ha! Teraz wiele się wyjaśniło. Człowiek podpisujący się taką myślą to na 99% człowiek, do którego żadne rzeczowe argumenty nie docierają. -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "Java is answer for a question that has never been stated"
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: A.L.
Date: Wed, 16 Jan 2008 00:39
Date: Wed, 16 Jan 2008 00:39
30 lines
2253 bytes
2253 bytes
On Tue, 15 Jan 2008 18:57:28 +0000 (UTC), "Miros/law L. Baran" <baran@hell.pl> wrote: >PT Sektor van Skijlen pisze: > >> Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który >> sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie >> spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects >> FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie, >> czy właściciel tego bota jeszcze żyje. > >Sam jesteś ciołkiem, młody człowieku. Gdybyś zwrócił uwagę na to, co >czytasz, zauważyłbyś, że bot chętnie wysyłałby nową wersję. Niestety, >użytkownicy grupy są na to za leniwi i zamiast czytać, wolą wyzywać >różne stworzenia od ciołków. > >Jubal (...jeśli są chętni do stworzenia aktualnej wersji FAQ, mogą się >oni zgłosić pod adres podany w tekście FAQ). "FAQ" znaczy "Frequently Asked Questions" i sie je pisze wtedy gdy jakies pytania ciagle i ciagle w kolko pojawiaja sie na grupie. Poniewaz ruch na tej grupie jest dokladnei zerowy, nie ma zadnych pytan i zadne "FAQ" nie jest potrzebne. Owo "FAQ" wysylane automatycznie (i systematycznie) przez ostatnie 10 lat to z punktu widzenia obecnej technologii stek kompletnych bzdur. Owszem, 10 lat temu to byly tematy do dyskusji, ale dzisiaj to tylko tematy do zartow. A.L.
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Miros/law L. Baran
Date: Thu, 24 Jan 2008 18:10
Date: Thu, 24 Jan 2008 18:10
30 lines
2693 bytes
2693 bytes
well founded, the people are not so foolish as is said. And so we have destroyed the opinion which destroyed that of the people. But we must now destroy this last proposition and show that it remains always true that the people are foolish, though their opinions are sound because they do not perceive the truth where it is, and, as they place it where it is not, their opinions are always very false and very unsound. 329. The reason of effects.--The weakness of man is the reason why so many things are considered fine, as to be good at playing the lute. It is only an evil because of our weakness. 330. The power of kings is founded on the reason and on the folly of the people, and specially on their folly. The greatest and most important thing in the world has weakness for its foundation, and this foundation is wonderfully sure; for there is nothing more sure than this, that the people will be weak. What is based on sound reason is very ill-founded as the estimate of wisdom. 331. We can only think of Plato and Aristotle in grand academic robes. They were honest men, like others, laughing with their friends, and, when they diverted themselves with writing their Laws and the Politics, they did it as an amusement. That part of their life was the least philosophic and the least serious; the most philosophic was to live simply and quietly. If they wrote on politics, it was as if laying down rules for a lunatic asylum; and if they presented the appearance of speaking of a great matter, it was because they knew that the madmen, to whom they spoke, thought they were kings and emperors. They entered into their principles in order to make their madness as litt
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Thu, 24 Jan 2008 19:28
Date: Thu, 24 Jan 2008 19:28
22 lines
2201 bytes
2201 bytes
from His wounds. Surely such things will not be wondered at by them who have observed how any strong affections about temporal matters will excite lively ideas and pictures of different things in the mind. The vigorous exercises of the mind, doubtless, more strongly impress it with imaginary ideas in some than others, which probably may arise from the difference of constitution, and seems evidently in some, partly to arise from their peculiar circumstances. When persons have been exercised with extreme terrors, and there is a sudden change to light and joy, the imagination seems more susceptive of strong ideas; the inferior powers, and even the frame of the body, are much more affected, than when the same persons have as great spiritual light and joy afterwards; of which it might, perhaps, be easy to give a reason. The forementioned Reverend Messrs. Lord and Owen-who, I believe, are esteemed persons of learning and discretion where they are best known-declared, that they found these impressions on persons' imaginations quite different things from what fame had before represented to them, and that they were what none need to wonder at-or to that purpose. There have indeed been some few instances of
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Thu, 24 Jan 2008 19:39
Date: Thu, 24 Jan 2008 19:39
27 lines
2318 bytes
2318 bytes
to some, it would be only during the moment that they see such demonstration; but an hour afterwards they fear they have been mistaken. Quod curiositate cognoverunt superbia amiserunt.91 This is the result of the knowledge of God obtained without Jesus Christ; it is communion without a mediator with the God whom they have known without a mediator. Whereas those who have known God by a mediator know their own wretchedness. 544. The God of the Christians is a God who makes the soul feel that He is her only good, that her only rest is in Him, that her only delight is in loving Him; and who makes her at the same time abhor the obstacles which keep her back and prevent her from loving God with all her strength. Self-love and lust, which hinder us, are unbearable to her. Thus God makes her feel that she has this root of self-love which destroys her, and which He alone can cure. 545. Jesus Christ did nothing but teach men that they loved themselves, that they were slaves, blind, sick, wretched, and sinners; that He must deliver them, enlighten, bless, and heal them; that this would be effected by hating self, and by following Him through suffering and the death on the cross. 546. Without Jesus Christ man must be in vice and misery; with Jesus Christ man is free from vice and misery; in Him is all our virtue and all our happin
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: A.L.
Date: Thu, 24 Jan 2008 19:51
Date: Thu, 24 Jan 2008 19:51
29 lines
2800 bytes
2800 bytes
ever done so. We know well enough how those who are of this mind behave. They believe they have made great efforts for their instruction when they have spent a few hours in reading some book of Scripture and have questioned some priests on the truths of the faith. After that, they boast of having made vain search in books and among men. But, verily, I will tell them what I have often said, that this negligence is insufferable. We are not here concerned with the trifling interests of some stranger, that we should treat it in this fashion; the matter concerns ourselves and our all. The immortality of the soul is a matter which is of so great consequence to us and which touches us so profoundly that we must have lost all feeling to be indifferent as to knowing what it is. All our actions and thoughts must take such different courses, according as there are or are not eternal joys to hope for, that it is impossible to take one step with sense and judgment unless we regulate our course by our view of this point which ought to be our ultimate end. Thus our first interest and our first duty is to enlighten ourselves on this subject, whereon depends all our conduct. Therefore among those who do not believe, I make a vast difference between those who strive with all their power to inform themselves and those who live without troubling or thinking about it. I can have only compassion for those who sincerely bewail their doubt, who regard it as the greatest of misfortunes, and who, sparing no effort to escape it, make of this inquiry their principal and most serious occupation. But as for those who pass their life without thinking of this ultimate end
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Thu, 24 Jan 2008 20:42
Date: Thu, 24 Jan 2008 20:42
26 lines
2266 bytes
2266 bytes
Dignare me.84 God is only bound according to His promises. He has promised to grant justice to prayers; He has never promised prayer only to the children of promise. Saint Augustine has distinctly said that strength would be taken away from the righteous. But it is by chance that he said it; for it might have happened that the occasion of saying it did not present itself. But his principles make us see that, when the occasion for it presented itself, it was impossible that he should not say it, or that he should say anything to the contrary. It is then rather that he was forced to say it, when the occasion presented itself, than that he said it, when the occasion presented itself, the one being of necessity, the other of chance. But the two are all that we can ask. 514. "Work out your own salvation with fear." Proofs of prayer. Petenti dabitur.[85] Therefore it is in our power to ask. On the other hand, there is God. So it is not in our power, since the obtaining of (the grace) to pray to Him is not in our power. For since salvation is not in us, and the obtaining of such grace is from Him, prayer is not in our power. The righteous man should then hope no more in God, for he ought no
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: andrew
Date: Thu, 24 Jan 2008 21:22
Date: Thu, 24 Jan 2008 21:22
33 lines
2840 bytes
2840 bytes
them. e 430. For Port-Royal. The beginning, after having explained the incomprehensibility.--The greatness and the wretchedness of man are so evident that the true religion must necessarily teach us both that there is in man some great source of greatness and a great source of wretchedness. It must then give us a reason for these astonishing contradictions. In order to make man happy, it must prove to him that there is a God; that we ought to love Him; that our true happiness is to be in Him, and our sole evil to be separated from Him; it must recognise that we are full of darkness which hinders us from knowing and loving Him; and that thus, as our duties compel us to love God, and our lusts turn us away from Him, we are full of unrighteousness. It must give us an explanation of our opposition to God and to our own good. It must teach us the remedies for these infirmities and the means of obtaining these remedies. Let us, therefore, examine all the religions of the world and see if there be any other than the Christian which is sufficient for this purpose. Shall it be that of the philosophers, who put forward, as the chief good, the good which is in ourselves? Is this the true good? Have they found the remedy for our ills? Is man's pride cured by placing him on an equality with God? Have those who have made us equal to the brutes, or the Mohammedans who have offered us earthly pleasures as the chief good even in eternity, produced the remedy for our lusts? What religion, then, will teach us to cure pride and lust? What religion will, in fact, teach us our good, our duties, the weakness which turns us from them, the cause of this weakness, the remedies which can cure it, and the means of obtaining these remedies? All other religions have not been able to do so. Let us see what the wisdom of God will do. "Expect neither truth," she says, "nor cons
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Jacek_P
Date: Sun, 23 Mar 2008 18:43
Date: Sun, 23 Mar 2008 18:43
19 lines
1747 bytes
1747 bytes
Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> napisal: > Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który > sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie > spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects > FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie, > czy właściciel tego bota jeszcze żyje. Ale maszyna nadajaca z botem fizycznie istnieje: > NNTP-Posting-Host: okapi.ict.pwr.wroc.pl wiec mozna sie skontaktowac z Instytutem Informatyki, Automatyki i Robotyki Politechniki Wroclawskiej i poprosic o namiary na administratora okapi. A akurat Kuby Chabika mianem "ciolka" raczej bym nie okreslal ;) -- Pozdrawiam, Jacek
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Miros/law L. Baran
Date: Sun, 23 Mar 2008 23:31
Date: Sun, 23 Mar 2008 23:31
32 lines
2298 bytes
2298 bytes
PT Jacek_P pisze:
> Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> napisal:
> > Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który
> > sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie
> > spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects
> > FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie,
> > czy właściciel tego bota jeszcze żyje.
> Ale maszyna nadajaca z botem fizycznie istnieje:
> > NNTP-Posting-Host: okapi.ict.pwr.wroc.pl
> wiec mozna sie skontaktowac z Instytutem Informatyki, Automatyki i Robotyki
> Politechniki Wroclawskiej i poprosic o namiary na administratora okapi.
> A akurat Kuby Chabika mianem "ciolka" raczej bym nie okreslal ;)
E, pan Sektor (czy jak tam się zwie) ma problem z czytaniem ze
zrozumieniem i nie rozumie, co należy zrobić, żeby nieaktualne FAQ
zniknęło (bo przecież nie będzie się wysilał, coby napisać coś
aktualniejszego).
(ale miło widzieć, jak się -- bez zrozumienia o co chodzi -- pieni i
unosi wyższością intelektualną; dobry błazen a za darmo -- rzecz
rzadko spotykana)
Jubal
--
[ Miroslaw L Baran | jabber id: baran-at-hell-pl | key-id: FC494FC4 | 0101010 ]
If at first you don't succeed, you must be a programmer.
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Tue, 25 Mar 2008 11:07
Date: Tue, 25 Mar 2008 11:07
38 lines
3123 bytes
3123 bytes
Dnia Sun, 23 Mar 2008 18:43:44 +0000 (UTC), Jacek_P skrobie: > Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> napisal: > > Olej go. To jest bot, kt?ry zosta? ustawiony przez jakiego? cio?ka, kt?ry > > sobie ubzdura?, ?e jest jakim? super-guru i od mniej wi?cej 10 lat regularnie > > spamuje t? grup? ow? stert? idiotyzm?w nazywaj?c j? szumnie "pl.comp.objects > > FAQ". Nie ma co odpowiada? na tego maila, bo na tej grupie nawet nikt nie wie, > > czy w?a?ciciel tego bota jeszcze ?yje. > Ale maszyna nadajaca z botem fizycznie istnieje: > > NNTP-Posting-Host: okapi.ict.pwr.wroc.pl > wiec mozna sie skontaktowac z Instytutem Informatyki, Automatyki i Robotyki > Politechniki Wroclawskiej i poprosic o namiary na administratora okapi. > A akurat Kuby Chabika mianem "ciolka" raczej bym nie okreslal ;) Mnie naprawdę nie interesuje, czy gościu ma jakiś konkretny dorobek naukowy i profesjonalny, czy jest byle kim. Mam jedynie poważne wątpliwości co do istoty samego FAQ. Zasada FAQ grupy usenet-owej (podobnie jak każdego innego FAQ) jest taka, że jest to aktualizowane zgodnie z aktywnymi tematami na grupie, jest poddawane dyskusji i doszlifowane, jest usłużnym zestawem informacji zebranych z doświadczeń dyskutantów. Powyższe FAQ jest całkowitym zaprzeczeniem wszelkich zasad FAQ: jest reliktem ponad 15-letniej przeszłości, jedyne dyskusje jakie wzbudza, to narzekanie na to, że maintainer tego FAQ jest głuchy jak beton komórkowy i nie zawiera ani jednej informacji, która miałaby być dla kogokolwiek użyteczna. Ktoś, kto swoim nazwiskiem firmuje takie gówno jest ciołkiem, niezależnie od tego, czy nazywa się Jakub Chabik, Wiesław Pipsztycki, czy Jan Bielecki. -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "Java is answer for a question that has never been stated"
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Sektor van Skijlen
Date: Tue, 25 Mar 2008 11:11
Date: Tue, 25 Mar 2008 11:11
43 lines
3100 bytes
3100 bytes
Dnia Sun, 23 Mar 2008 23:31:09 +0000 (UTC), Miros/law L. Baran skrobie: > PT Jacek_P pisze: > > Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> napisal: > > > Olej go. To jest bot, który został ustawiony przez jakiegoś ciołka, który > > > sobie ubzdurał, że jest jakimś super-guru i od mniej więcej 10 lat regularnie > > > spamuje tą grupę ową stertą idiotyzmów nazywając ją szumnie "pl.comp.objects > > > FAQ". Nie ma co odpowiadać na tego maila, bo na tej grupie nawet nikt nie wie, > > > czy właściciel tego bota jeszcze żyje. > > Ale maszyna nadajaca z botem fizycznie istnieje: > > > NNTP-Posting-Host: okapi.ict.pwr.wroc.pl > > wiec mozna sie skontaktowac z Instytutem Informatyki, Automatyki i Robotyki > > Politechniki Wroclawskiej i poprosic o namiary na administratora okapi. > > A akurat Kuby Chabika mianem "ciolka" raczej bym nie okreslal ;) > E, pan Sektor (czy jak tam się zwie) ma problem z czytaniem ze > zrozumieniem i nie rozumie, co należy zrobić, żeby nieaktualne FAQ > zniknęło Oczywiście, bo normalni ludzie reagują na zwykłą prośbę. > (bo przecież nie będzie się wysilał, coby napisać coś > aktualniejszego). Oczywiście, że nie mam zamiaru się wysilać, podobnie jak takowego zamiaru nie ma nikt z uczestników tej grupy, włącznie z Tobą. > (ale miło widzieć, jak się -- bez zrozumienia o co chodzi -- pieni i > unosi wyższością intelektualną; dobry błazen a za darmo -- rzecz > rzadko spotykana) Super - u normalnych ludzi to się nazywa masochizm, ale być może ty dla swoich działań masz inną nazwę, trochę poprawiającą nastrój psychiczny :) -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "Java is answer for a question that has never been stated"
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: A.L.
Date: Tue, 25 Mar 2008 11:21
Date: Tue, 25 Mar 2008 11:21
17 lines
1903 bytes
1903 bytes
On Tue, 25 Mar 2008 11:07:39 +0000 (UTC), Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> wrote: > >Powyższe FAQ jest całkowitym zaprzeczeniem wszelkich zasad FAQ: jest reliktem >ponad 15-letniej przeszłości, jedyne dyskusje jakie wzbudza, to narzekanie na >to, że maintainer tego FAQ jest głuchy jak beton komórkowy i nie zawiera ani >jednej informacji, która miałaby być dla kogokolwiek użyteczna. > >Ktoś, kto swoim nazwiskiem firmuje takie gówno jest ciołkiem, niezależnie od >tego, czy nazywa się Jakub Chabik, Wiesław Pipsztycki, czy Jan Bielecki. Slusznie. Dobrze by bylo zeby ow KTOS przestal te smeici wysylac. Wysylanie 15 letniego tekstu to zwykly spam. A.L.
Re: pl.comp.objects FAQ (Frequently Asked Questions and more)
Author: Adam Karpierz
Date: Tue, 01 Apr 2008 16:13
Date: Tue, 01 Apr 2008 16:13
16 lines
1717 bytes
1717 bytes
"Miros/law L. Baran" <baran@hell.pl> wrote: > E, pan Sektor (czy jak tam się zwie) ma problem z czytaniem ze > zrozumieniem i nie rozumie, co należy zrobić, żeby nieaktualne FAQ > zniknęło (bo przecież nie będzie się wysilał, coby napisać coś > aktualniejszego). Pan natomiast nie rozumie, ze ktos kto wysyla jakies FAQ jest za nie zwyczajnei i po ludzku _odpowiedzialny_ ! Szczytem nieodpowiedzialnosci jest smiecic przez 10 lat i nie zadac sobie _najmniejszego trudu_ aby to naprawic/poprawic. Jelsi to robi Kuba Chabik to i owszem jest w tym wzgledzie czlowiekiem zupelnie nieodpowiedzialnym. AK
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads