-
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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-26 zapora Zagorze
- 2024-12-26 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2024-12-26 Warszawa => Specjalista Bezpieczeństwa Informacji <=
- 2024-12-26 Wrocław => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-26 Wrocław => Programista Full Stack (.Net Core) <=
- 2024-12-26 Kraków => Software .Net Developer <=
- 2024-12-25 Wrocław => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-25 Warszawa => Sales Assistant <=
- 2024-12-25 Kraków => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-25 Lublin => System Architect (Java background) <=
- 2024-12-25 Szczecin => Specjalista ds. public relations <=
- 2024-12-25 Wrocław => Key Account Manager <=
- 2024-12-25 Kraków => Full Stack .Net Engineer <=
- 2024-12-25 Kraków => Programista Full Stack .Net <=
- 2024-12-25 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=