-
X-Received: by 10.49.95.68 with SMTP id di4mr365310qeb.0.1360296350150; Thu, 07 Feb
2013 20:05:50 -0800 (PST)
X-Received: by 10.49.95.68 with SMTP id di4mr365310qeb.0.1360296350150; Thu, 07 Feb
2013 20:05:50 -0800 (PST)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!p13no1718617qai.0!n
ews-out.google.com!k2ni19278qap.0!nntp.google.com!p13no1718614qai.0!postnews.go
ogle.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 7 Feb 2013 20:05:49 -0800 (PST)
In-Reply-To: <kf1b5r$cvj$1@somewhere.invalid>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.229.34.123;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 89.229.34.123
References: <f...@g...com>
<kem1vl$8n2$1@somewhere.invalid>
<7...@g...com>
<8...@g...com>
<6...@g...com>
<5...@g...com>
<s...@j...net>
<b...@g...com>
<s...@j...net>
<1...@g...com>
<3...@b...softax.pl>
<b...@g...com>
<k...@b...softax.pl>
<4...@g...com>
<keun5d$lsh$1@somewhere.invalid>
<f...@g...com>
<keuri4$nje$1@somewhere.invalid>
<1...@g...com>
<keuusd$ovj$1@somewhere.invalid>
<7...@g...com>
<kf1b5r$cvj$1@somewhere.invalid>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e...@g...com>
Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
From: "M.M." <m...@g...com>
Injection-Date: Fri, 08 Feb 2013 04:05:50 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:201947
[ ukryj nagłówki ]W dniu czwartek, 7 lutego 2013 23:51:34 UTC+1 użytkownik Andrzej Jarzabek napisał:
> Podobno Ada jest takim językiem.
Kiedyś tak o Perlu słyszałem. Czasami nie wiem czego słuchać :)
> 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ą.
Chodziło właśnie o te ograniczenia, a właściwie to nie tylko o nie.
Do niektórych języków napisanie dobrego kompilatora jest możliwe i język
tego nie ogranicza w żaden sposób, ale zadanie może być znacznie trudniejsze i
to pod względem implementacyjnym jak i pod względem algorytmicznym, kompilacja
mogłaby trwać za długo.
> 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.
Ciekawe zagadnienie, ja zawsze myślałem że to właśnie do takiego języka
jak C++ trudniej napisać dobry kompilator.
> Np. że możesz napisać jeden kod, który obsłuży obydwa przypadki.
Chyba nie zrozumiem tego, w C też pisze się uniwersalne procedury i
obsługuje wiele przypadków.
> 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.
Liczymy tak:
suma od 1 do N ( p_i * (c_i - a_i) )
N - ilość cech języka
p_i - prawdopodobieństwo użyca
c_i - korzyści jakie niesie wybrany język w cesze i
a_i - korzyści jakie niesie najlepszy niewybrany język w cesze i.
Jeśli do warianta nie mogę wrzucić czegoś, co przydaje się bardzo rzadko,
to mówię że mogę wrzucić tam wszytko ( p_i jest bliskie zera i nie
zmienia wartości powyższego wzoru ).
> 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.
No tak, ale ten fakt musi się jeszcze jakoś przekładać na praktyczne
korzyści, w przeciwnym razie rozmawiamy o czymś niepotrzebnym.
> O makrach i szablonach w C++ można wiele powiedzieć, ale na pewno nie
> to, że są wygodne i proste w użyciu.
Też nie przepadam, zwłaszcza za makrami. Ale jak w php świeżo dodane
pola otaczam dolarami i klamrami to też mi się robi niedobrze.
> Bo zajmuje czas, bo wprowadza szum do kodu, bo utrudnia refaktoryzację.
> Może nie zawsze, ale przynajmniej niekiedy.
Bym musiał zobaczyć przykłady w których widać jak w C++ coś robi się
trudno, a w innych językach łatwo, wygląda na to że nie zrozumiem o
czym mówicie.
> Wprowadzasz duplikację.
Jaką 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?
Dlaczego tak jest źle?
new_hashmap = old_hasmap;
new_hashmap['nowe_pole1'] = wartość1;
new_hashmap['nowe_pole2'] = wartość2;
> I tak dla każdego typu? I nie widzisz w tym nic niewygodnego?
No właśnie nie widzę.
Pozdrawiam
Następne wpisy z tego wątku
- 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
- 09.02.13 14:22 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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??
Najnowsze wątki
- 2025-02-27 Nagranie poglądowe
- 2025-02-26 Zasilacz USB na ścianę.
- 2025-02-26 Błonie => Specjalista ds. public relations <=
- 2025-02-26 Zielonka => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-26 Warszawa => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-26 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-26 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-26 Kraków => Business Development Manager - Network and Network Security
- 2025-02-26 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-02-26 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-02-26 Warszawa => Sales Assistant <=
- 2025-02-26 Rzeszów => International Freight Forwarder <=
- 2025-02-26 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-26 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-26 Warszawa => Gen AI Engineer <=