-
Data: 2013-02-08 05:05:49
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-04 15.000.000 samochodów rocznie nie dojedzie z Katowic do Chorzowa, Bytomia, Tarnowskich Gór
- 2025-06-04 Białystok => Team Lead Data Engineer (Snowflake) <=
- 2025-06-04 Pomór bydła na Białorusi? Kartofli też brakuje...
- 2025-06-04 Warszawa => Operations Support Systems (OSS) Team Leader <=
- 2025-06-04 Tajemnica estakady w Chorzowie ujawniona
- 2025-06-04 Tajemnica estakady w Chorzowie ujawniona
- 2025-06-04 Białystok => Inżynier oprogramowania .Net <=
- 2025-06-04 Rzeszów => International Freight Forwarder <=
- 2025-06-04 Warszawa => Scrum Master <=
- 2025-06-04 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-06-04 Dziś od rana trwa strajk w zakładzie Jeremias w Gnieźnie.
- 2025-06-04 "W Sosnowcu [sukcesem -przyp. JMJ] zakończył się strajk pracowników firmy Bitron Appliance Poland."
- 2025-06-04 Rzeszów => Spedytor Międzynarodowy <=
- 2025-06-04 Ten to się trzyma :-)
- 2025-06-04 Warszawa => Test Automation Engineer <=