Thread View: pl.comp.objects
10 messages
10 total messages
Started by A.L.
Tue, 05 Sep 2006 21:56
Jeszcze o generics...
Author: A.L.
Date: Tue, 05 Sep 2006 21:56
Date: Tue, 05 Sep 2006 21:56
43 lines
2643 bytes
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...
Author: Maciej Sobczak
Date: Wed, 06 Sep 2006 08:20
Date: Wed, 06 Sep 2006 08:20
20 lines
1581 bytes
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...
Author: A.L.
Date: Wed, 06 Sep 2006 12:40
Date: Wed, 06 Sep 2006 12:40
31 lines
1853 bytes
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...
Author: Maciej Sobczak
Date: Wed, 06 Sep 2006 13:05
Date: Wed, 06 Sep 2006 13:05
51 lines
3271 bytes
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...
Author: A.L.
Date: Wed, 06 Sep 2006 13:39
Date: Wed, 06 Sep 2006 13:39
68 lines
3946 bytes
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...
Author: Sektor van Skijlen
Date: Wed, 06 Sep 2006 18:59
Date: Wed, 06 Sep 2006 18:59
24 lines
1978 bytes
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...
Author: Sektor van Skijlen
Date: Wed, 06 Sep 2006 19:19
Date: Wed, 06 Sep 2006 19:19
61 lines
4628 bytes
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...
Author: Maciej Sobczak
Date: Fri, 08 Sep 2006 10:23
Date: Fri, 08 Sep 2006 10:23
12 lines
1387 bytes
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...
Author: ps
Date: Sat, 09 Sep 2006 20:37
Date: Sat, 09 Sep 2006 20:37
11 lines
1149 bytes
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...
Author: Daniel Kos
Date: Tue, 12 Sep 2006 19:36
Date: Tue, 12 Sep 2006 19:36
8 lines
1153 bytes
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