-
Data: 2013-02-07 23:51:34
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 07/02/2013 12:24, M.M. wrote:
>
> firr kenobi wrote:
>> Okupione jest (i to jest przynajmniej dla mnie najwazniejsze ;-)
>> znacznie nizszą wydajnoscią - udostępnia z kolei pewną (przynajmniej
>> ewentualną) prostotę
>
> Z pewnością tak jest. Nie da sie stworzyć języka, który jest zarówno
> ekstremalnie elegancki i jednocześnie wydajny. Przykładem tego jest
Podobno Ada jest takim językiem.
Poza tym "język wydajny" to poewne nieporozumienie - z cech języka mogą
wynikać pewne narzuty ograniczające czy zwiększające wydajność, ale
rzeczywista praktyczna wydajność zależy od optymalizacji kompilatora, a
te z kolei są mocno skorelowane z popularnością. Jest dużo eleganckich
języów, które teoretcznie mogłyby być równie wydajne co C++, ale w
praktyce używa ich 5 osób, więc nie jest taki szybki.
>> W Pythonie masz pelnoprawna klase/obiekt ktora zachowuje sie
>> _dokladnie_ tak samo jakby byla zadeklarowana/zdefiniowana statycznie.
> Wiem, ale nie wiem co z tego :)
Np. że możesz napisać jeden kod, który obsłuży obydwa przypadki.
> Andrzej Jarzabek wrote:
>> A więc nie moższ.
> Nie mogę tak jak wielu innych rzeczy. Dlaczego ma mi być
> smutno jeśli np. nie mogę utworzyć funkcji w C++ o nazwie
> składającej się z 10tys znaków? Cecha musi być potrzebna w
> statystycznym projekcie żeby cierpieć z jej braku.
Nie mam pojęcia do czego ci te Varianty, rozmawialiśmy o tym, że w
językach dynamicznych możesz mieć zmienne przyjmujące wartości dowolnego
typu lub funkcje zwracające wartości dowolnego typu. Pisałeś, że w C++
masz to samo dzięki typowi Variant. No więc nie masz. Co do tego, do
czego potrzebne jest przyjmowanie lub zwracanie wartości typu first
class function - nie widzę sensu tłumaczenia. Przeczytaj sobie SICP, to
będziesz wiedział.
> W językach wymagających jawnego podawania typu nie ma na to siły i
> trzeba typ podawać.
A w językach z dynamicznym systemem typów nie trzeba. I na tym polega
różnica - w C++ tego po prostu nie zrobisz i tyle, żaden QVariant czy
hashmap ci nie pomoże.
> Ułatwiają życie szablony, makra,
O makrach i szablonach w C++ można wiele powiedzieć, ale na pewno nie
to, że są wygodne i proste w użyciu.
>> Wystarczy, żeby powodować niewygodę. Bo tak czy inaczej musisz w tym
>> momencie zdefiniować odpowiednie typy.
> Nie dociera do mnie dlaczego to jest problemem. Albo problem
> jest nieistotny, albo coś ze mną nie tak :D
Bo zajmuje czas, bo wprowadza szum do kodu, bo utrudnia refaktoryzację.
Może nie zawsze, ale przynajmniej niekiedy.
> Andrzej Jarzabek wrote:
>> fun foo(p)
>> {
>> return (p.pole)/2
>> }
>
> Idealne na hashmapę lub funkcję wirtualną.
>
> foo( hash_map ) {
> return hash_map["pole"] / 2;
> }
>
> foo( *object ) {
> return object->value() / 2;
> }
Wprowadzasz duplikację. No i pojawiają się dalsze problemy, co na
przykład, jeśli chcesz skopiować structa i owej kopii dołożyć kilka
nowych pól? Piszesz konwersję kopiującą wszystkie składowe do hashmapy?
I tak dla każdego typu? I nie widzisz w tym nic niewygodnego?
Następne wpisy z tego wątku
- 08.02.13 05:05 M.M.
- 08.02.13 07:43 firr kenobi
- 08.02.13 08:30 firr kenobi
- 08.02.13 11:20 Maciej Sobczak
- 08.02.13 14:06 M.M.
- 08.02.13 14:12 Stachu 'Dozzie' K.
- 08.02.13 14:22 M.M.
- 08.02.13 17:45 darekm
- 08.02.13 17:49 Andrzej Jarzabek
- 08.02.13 18:14 Andrzej Jarzabek
- 08.02.13 18:52 M.M.
- 08.02.13 18:52 Andrzej Jarzabek
- 08.02.13 19:18 Andrzej Jarzabek
- 08.02.13 21:56 darekm
- 08.02.13 22:11 darekm
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-04 GNSS Motorola G85 vs Redmi Note 9 pro
- 2024-11-04 Katowice => SAP BTP Consultant (mid/senior) <=
- 2024-11-04 Katowice => Spedytor międzynarodowy <=
- 2024-11-04 Warszawa => Specjalista/tka ds. Zamówień publicznych <=
- 2024-11-04 Poznań => QA Engineer <=
- 2024-11-04 Poznań => QA Inżynier <=
- 2024-11-04 Polskie sądy są bardzo wyrozumiałe...
- 2024-11-04 Wrocław => SAP Project System/EPPM Consultant <=
- 2024-11-04 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-04 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-04 Kraków => Software .Net Developer <=
- 2024-11-04 Kraków => Programista Full Stack .Net <=
- 2024-11-04 Warszawa => Key Account Manager <=
- 2024-11-04 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-04 Warszawa => E-COMMERCE specialist <=