🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.objects
10 messages
10 total messages Started by A.L. Tue, 05 Sep 2006 21:56
Jeszcze o generics...
#15418
Author: A.L.
Date: Tue, 05 Sep 2006 21:56
43 lines
2643 bytes
Generics in C#, Java, and C++
A Conversation with Anders Hejlsberg, Part VII
by Bill Venners with Bruce Eckel
January 26, 2004

http://www.artima.com/intv/generics.html

"Comparing C# Generics to C++ Templates
Bruce Eckel: How do C# generics compare with C++ templates? 

Anders Hejlsberg: To me the best way to understand the distinction
between C# generics and C++ templates is this: C# generics are
really just like classes, except they have a type parameter. C++
templates are really just like macros, except they look like
classes. 

The big difference between C# generics and C++ templates shows up in
when the type checking occurs and how the instantiation occurs.
First of all, C# does the instantiation at runtime. C++ does it at
compile time, or perhaps at link time. But regardless, the
instantiation happens in C++ before the program runs. That's
difference number one. Difference number two is C# does strong type
checking when you compile the generic type. For an unconstrained
type parameter, like List<T>, the only methods available on values
of type T are those that are found on type Object, because those are
the only methods we can generally guarantee will exist. So in C#
generics, we guarantee that any operation you do on a type parameter
will succeed. 

C++ is the opposite. In C++, you can do anything you damn well
please on a variable of a type parameter type. But then once you
instantiate it, it may not work, and you'll get some cryptic error
messages. For example, if you have a type parameter T, and variables
x and y of type T, and you say x + y, well you had better have an
operator+ defined for + of two Ts, or you'll get some cryptic error
message. So in a sense, C++ templates are actually untyped, or
loosely typed. Whereas C# generics are strongly typed...."

Oczywiscie, zeby upzredic ewentualne komantarze, zgadzam sie ze
autorzy sa niekompetentni i niechetnei nastawieni do C++. C++ jest
po prostu dla nich za trudny. Zwlaszcza "Modern C++"

A.L. 
Re: Jeszcze o generics...
#15419
Author: Maciej Sobczak
Date: Wed, 06 Sep 2006 08:20
20 lines
1581 bytes
A.L. wrote:

> C++ is the opposite. In C++, you can do anything you damn well
> please on a variable of a type parameter type. But then once you
> instantiate it, it may not work, and you'll get some cryptic error
> messages.
[...]

> Oczywiscie, zeby upzredic ewentualne komantarze, zgadzam sie ze
> autorzy sa niekompetentni i niechetnei nastawieni do C++. C++ jest
> po prostu dla nich za trudny. Zwlaszcza "Modern C++"

Zdumiewa mnie Pańska umiejętność uprzedzania ewentualnych zdażeń.

http://www.google.com/search?q=C%2B%2B+concept+checking


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Jeszcze o generics...
#15420
Author: A.L.
Date: Wed, 06 Sep 2006 12:40
31 lines
1853 bytes
On Wed, 06 Sep 2006 10:20:49 +0200, Maciej Sobczak
<no.spam@no.spam.com> wrote:

>A.L. wrote:
>
>> C++ is the opposite. In C++, you can do anything you damn well
>> please on a variable of a type parameter type. But then once you
>> instantiate it, it may not work, and you'll get some cryptic error
>> messages.
>[...]
>
>> Oczywiscie, zeby upzredic ewentualne komantarze, zgadzam sie ze
>> autorzy sa niekompetentni i niechetnei nastawieni do C++. C++ jest
>> po prostu dla nich za trudny. Zwlaszcza "Modern C++"
>
>Zdumiewa mnie Pańska umiejętność uprzedzania ewentualnych zdażeń.
>
>http://www.google.com/search?q=C%2B%2B+concept+checking

Nie wiem co Pan chcial powiedziec. Ja nie pisze o "zdarzeniach" ani
bibliotekach tylko o templates w C++. Poza tym, to "zdarzenie" na
ktore sie Pan powoluje bylo 5 lat temu.

A tutaj kolejny artykul: tym razem C++ "gurus" przyznajacych
publicznie ze C++ templates to zwykly smiec i tzreba je naprawiac
przy pomocy gumy do zucia, spinaczy biurowych i sznurka. Nie mowiac
o tym, ze dzialaja jak makroprocesor.

http://www.oonumerics.org/tmpw00/siek.pdf

A.L.
Re: Jeszcze o generics...
#15421
Author: Maciej Sobczak
Date: Wed, 06 Sep 2006 13:05
51 lines
3271 bytes
A.L. wrote:

>>> Oczywiscie, zeby upzredic ewentualne komantarze, zgadzam sie ze
>>> autorzy sa niekompetentni i niechetnei nastawieni do C++. C++ jest
>>> po prostu dla nich za trudny. Zwlaszcza "Modern C++"
>> Zdumiewa mnie Pańska umiejętność uprzedzania ewentualnych zdażeń.
>>
>> http://www.google.com/search?q=C%2B%2B+concept+checking
> 
> Nie wiem co Pan chcial powiedziec. Ja nie pisze o "zdarzeniach" ani
> bibliotekach tylko o templates w C++. Poza tym, to "zdarzenie" na
> ktore sie Pan powoluje bylo 5 lat temu.

Ja nie powołuję się na żadne zdarzenie sprze 5 lat, tylko mówię o 
Pańskiej umiejętności uprzedzania "ewentualnych komentarzy", które 
mogłyby by być efektem Pańskich postów. Wystarczyło skojarzyć frazę 
"uprzedzić ewentualne", która pojawia się powyżej dwa razy (raz w 
Pańskim poście - modulo błąd ortograficzny - i raz w moim), żeby do tego 
samodzielnie dojść. Poprzeczka była za wysoko?


> A tutaj kolejny artykul: tym razem C++ "gurus" przyznajacych
> publicznie ze C++ templates to zwykly smiec i tzreba je naprawiac
> przy pomocy gumy do zucia, spinaczy biurowych i sznurka. Nie mowiac
> o tym, ze dzialaja jak makroprocesor.
> 
> http://www.oonumerics.org/tmpw00/siek.pdf

Ciekawe jest to, że ten artykuł traktuje o "Concept Checking" i 
dokładnie należy do zbioru, który podałem powyżej jako link do Google. 
Wygląda na to, że Pan po prostu wrzucasz tu na pałę co popadnie i nawet 
nie patrzysz, co ludzie odpisują. Wygląda to tak, jakby sobie Pan zrobił 
z grupy blog.

Owszem, concept checking jest dyskutowane jako możliwe rozwiązanie 
obecnych problemów z szablonami.

BTW - nie znalazłem w tym artykule sformułowań typu "guma do żucia" czy 
"spinacz biurowy" albo "sznuerk". Czy każdy język, który się rozwija i w 
dla którego pisze się proposale i inne white papery tak Pan określa, czy 
tylko C++?

BTW2 - dlaczego autorów tego artykułu nazwał Pan "gurus" w cudzysłowach? 
Skoro dostrzegają problemy w obecnej wersji języka, to chyba coś tam się 
znają, nie? Więc dlaczego w cudzysłowach? Kim trzeba być, żeby nie było 
w cudzysłowach?


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Jeszcze o generics...
#15422
Author: A.L.
Date: Wed, 06 Sep 2006 13:39
68 lines
3946 bytes
On Wed, 06 Sep 2006 15:05:16 +0200, Maciej Sobczak
<no.spam@no.spam.com> wrote:

>A.L. wrote:
> 
>
>Ja nie powołuję się na żadne zdarzenie sprze 5 lat, tylko mówię o 
>Pańskiej umiejętności uprzedzania "ewentualnych komentarzy", które 
>mogłyby by być efektem Pańskich postów. Wystarczyło skojarzyć frazę 
>"uprzedzić ewentualne", która pojawia się powyżej dwa razy (raz w 
>Pańskim poście - modulo błąd ortograficzny - i raz w moim), żeby do tego 
>samodzielnie dojść. Poprzeczka była za wysoko?
>
Wie Pan, ja nie mam czasu ani checi analizowac podtekstow, mysli
meidzy wierszami i tak dalej.  Wiec to tu ludzie pisza traktuje
"verbatim". Widac rzeczywiscie do Panskich subtelnosci nie doroslem.

>
>> A tutaj kolejny artykul: tym razem C++ "gurus" przyznajacych
>> publicznie ze C++ templates to zwykly smiec i tzreba je naprawiac
>> przy pomocy gumy do zucia, spinaczy biurowych i sznurka. Nie mowiac
>> o tym, ze dzialaja jak makroprocesor.
>> 
>> http://www.oonumerics.org/tmpw00/siek.pdf
>
>Ciekawe jest to, że ten artykuł traktuje o "Concept Checking" i 
>dokładnie należy do zbioru, który podałem powyżej jako link do Google. 
>Wygląda na to, że Pan po prostu wrzucasz tu na pałę co popadnie i nawet 
>nie patrzysz, co ludzie odpisują. Wygląda to tak, jakby sobie Pan zrobił 
>z grupy blog.
>

Tego tez nie rozumiem i nie chce mi sie czytac meidzy wierszami.
www.oonumerics.org znam od dawna, subskrybuje liste od czasu jej
powstania, bylem jednym z organizatorow pierwszej i drugiej
Konferencji OON-SKI  (93 i 94) i jakos od tego czasu interesuje sie
OO w numeryce, nie mowiac o tym ze zrobilem w tej dziedzinei pewne
kontrybucje. Naturalna jest wiec rzecza ze znam artykul ktory
cytowalem powyzej bez Panskiej pomocy. Panu zawdzieczac zas nalezy
ze skojarzylem sobie iz warto go przedstawic w tym kontekscie (to
znaczy problemow z Templates w C++)

>Owszem, concept checking jest dyskutowane jako możliwe rozwiązanie 
>obecnych problemów z szablonami.
>

No widzi Pan. Jednak problemy jaksie sa.

>BTW - nie znalazłem w tym artykule sformułowań typu "guma do żucia" czy 
>"spinacz biurowy" albo "sznuerk". Czy każdy język, który się rozwija i w 
>dla którego pisze się proposale i inne white papery tak Pan określa, czy 
>tylko C++?
>

Pan usiluje byc zlosliwy ale brak Panu talentu literackiego. Dla
mnei rozwiazania w postaci "concept checking" to wlasnei proba
naprawienia przy pomocy gumy do zucia, spinaczy i sznurka. Jezyk
oraz kompilator powinien zapewnaic taka funkcjonalnosc, from day one
a nie inwencja uzytkownikow po ilus tam latach uzywania jezyka.

>BTW2 - dlaczego autorów tego artykułu nazwał Pan "gurus" w cudzysłowach? 
>Skoro dostrzegają problemy w obecnej wersji języka, to chyba coś tam się 
>znają, nie? Więc dlaczego w cudzysłowach? Kim trzeba być, żeby nie było 
>w cudzysłowach?

Wszystcy "gurus" sa u mnie w cudzyslowach.

A.L.
Re: Jeszcze o generics...
#15431
Author: Sektor van Skijlen
Date: Wed, 06 Sep 2006 18:59
24 lines
1978 bytes
Dnia Wed, 06 Sep 2006 10:20:49 +0200, Maciej Sobczak skrobie:
> A.L. wrote:

> > C++ is the opposite. In C++, you can do anything you damn well
> > please on a variable of a type parameter type. But then once you
> > instantiate it, it may not work, and you'll get some cryptic error
> > messages.
> [...]

> > Oczywiscie, zeby upzredic ewentualne komantarze, zgadzam sie ze
> > autorzy sa niekompetentni i niechetnei nastawieni do C++. C++ jest
> > po prostu dla nich za trudny. Zwlaszcza "Modern C++"

> Zdumiewa mnie Pańska umiejętność uprzedzania ewentualnych zdażeń.

Maciek, czy ty chcesz dostać w łeb? Teraz jedynym człowiekiem, który nie robi
błędów ortograficznych pozostał tylko Qrczak :)


-- 
//  _    ___         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"
Re: Jeszcze o generics...
#15428
Author: Sektor van Skijlen
Date: Wed, 06 Sep 2006 19:19
61 lines
4628 bytes
Dnia Wed, 06 Sep 2006 08:39:21 -0500, A.L. skrobie:
> Dla
> mnei rozwiazania w postaci "concept checking" to wlasnei proba
> naprawienia przy pomocy gumy do zucia, spinaczy i sznurka. Jezyk
> oraz kompilator powinien zapewnaic taka funkcjonalnosc, from day one
> a nie inwencja uzytkownikow po ilus tam latach uzywania jezyka.

Zaraz - skoro tak, to znaczy, że Java i C# były od początku robione z
przemyślnym zastosowaniem gumy do żucia, spinaczy i sznurka, a w C++ to
dopiero ma być?

Twórcy C++ tak założyli i tak zostało - doszli najwyraźniej do wniosku, że tak
jest wystarczająco dobrze (wyjaśnienia w "Projektowanie i rozwój języka C++",
dlaczego taką koncepcję obrano brzmią przekonująco). Można to oceniać po
latach, ale w tamtych kategoriach, a nie w dzisiejszych, kiedy wiemy o
praktyce stosowania języków znacznie więcej, bo przypomina to dyskusję dwóch
generałów, którzy doskonale wiedzą, jak należało wygrać poprzednią wojnę.

Zgodzę się nawet po części, że Java i C# skorzystały z doświadczeń C++ na
zasadzie "jak nie powinno się tego robić". Z drugiej strony, ja widzę tylko
dwa konkretne ograniczenia wynikające z braku koncepcji w C++: niemożliwość
współdzielenia wzorców między jednostkami kompilacji (słynne export, którego
nikt nie stosuje, nawet ci, co używają Comeau) oraz niemożliwość przeciążania.
Co więcej, w C++ można było sobie na takie coś pozwolić właśnie dzięki temu,
że stosuje #include (pomijając już fakt istnienia "precompiled headers"); w
Javie (ale nie w C#) byłoby to niemożliwe do zrealizowania.

Nie wiem, jak w Javie wygląda sprawa przeciążania generyków; domyślam się
(niech mnie ktoś poprawi), że tam raczej nie ma takiej możliwości z innych
przyczyn (tzn. nie z powodu takiego a nie innego sposobu przekładania się
generyków na konkrety). Skoro tak, to znaczy, że zostaje już tylko jedna
kwestia, która akurat nie jest problemem w C#, a i nie byłaby problemem w
systemie modułów, który jest aktualnie proponowany dla C++.

Czyli, inaczej mówiąc, sprawdzanie koncepcji jest dla C++ rozwiązaniem
problemów, z których żaden nie występuje w Javie, natomiast w Javie model
generyków z koncepcjami powstał tylko dlatego, że nie było innej możliwości.
Jedyną zaletą koncepcji wspólną dla wszystkich trzech jest fakt, że w
przypadku koncepcji nie wystąpią w ogóle błędy konkretyzacji, jakie są teraz w
C++ (jest to jeden z powodów, dla których nie da się konkretyzacji opartej na
drzewie wyrażeń przenieść do procesu wiązania, a już zwłaszcza wiązania
dynamicznego). Inaczej mówiąc, koncepcja zapewnia, że konkretyzacja nie
zakończy się nigdy błędem. Dzięki temu będzie mogła się odbywać w procesie
wiązania.

> >BTW2 - dlaczego autorów tego artykułu nazwał Pan "gurus" w cudzysłowach? 
> >Skoro dostrzegają problemy w obecnej wersji języka, to chyba coś tam się 
> >znają, nie? Więc dlaczego w cudzysłowach? Kim trzeba być, żeby nie było 
> >w cudzysłowach?

> Wszystcy "gurus" sa u mnie w cudzyslowach.

Odnoszę zatem wrażenie, że w pana "guru" to jest mniej więcej coś tak jak ten
karpierzowy "ajatollah".


-- 
//  _    ___         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"
Re: Jeszcze o generics...
#15432
Author: Maciej Sobczak
Date: Fri, 08 Sep 2006 10:23
12 lines
1387 bytes
Sektor van Skijlen wrote:

>> Zdumiewa mnie Pańska umiejętność uprzedzania ewentualnych zdażeń.
> 
> Maciek, czy ty chcesz dostać w łeb? Teraz jedynym człowiekiem, który nie robi
> błędów ortograficznych pozostał tylko Qrczak :)

O kurdę, ale mi ktoś podłożył świnię... :-)

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Re: Jeszcze o generics...
#15429
Author: ps
Date: Sat, 09 Sep 2006 20:37
11 lines
1149 bytes
Sektor van Skijlen wrote:

(..)
> Nie wiem, jak w Javie wygląda sprawa przeciążania generyków; domyślam się

W Javie nie ma problemów z przeciążaniem czegokolwiek. Szczególnie
systemu :D

BP, NMSP :) 

(..)
Re: Jeszcze o generics...
#15430
Author: Daniel Kos
Date: Tue, 12 Sep 2006 19:36
8 lines
1153 bytes
> W Javie nie ma problemów z przeciążaniem czegokolwiek. Szczególnie
> systemu :D

Hehe, niezle!


-- 
uno (unodgs@tlen.pl)
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