-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
OSTED!not-for-mail
From: Edek <e...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: jaki wybrac jezyk?
Date: Thu, 18 Aug 2011 00:49:14 +0200
Organization: ATMAN - ATM S.A.
Lines: 90
Message-ID: <j2hgke$jqd$1@node2.news.atman.pl>
References: <j2hb8o$ebl$1@node2.news.atman.pl>
<5...@n...onet.pl>
NNTP-Posting-Host: static-81-219-28-205.devs.futuro.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1313621454 20301 81.219.28.205 (17 Aug 2011 22:50:54
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Wed, 17 Aug 2011 22:50:54 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428
Linux/3.1.0-15 Thunderbird/3.1.0
In-Reply-To: <5...@n...onet.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:191985
[ ukryj nagłówki ]On 08/17/2011 11:56 PM, m...@t...pl wrote:
>
>> Ogólnie mam wrażenie, że niektórzy żyją w generalnym chaosie, lepiej
>> wtedy w ogóle nie używać new bo i tak się zapomni zwolnić, pointery
>> mogą wskazywać gdziekolwiek "uszkadzając inty" - też lepiej nie używać.
>> Code and pray.
> Ludzie się mylą. Lepiej przewidzieć pomyłki i zastanowić się jak łagodzić
> ich skutki, niż wierzyć że się nie popełni błędu.
>
> Języków C/C++ z reguły używam do bardzo małych programów, np. w granicach
> 500-1000 linii kodu. Są one na tyle małe i niezbyt skomplikowane że wiele
> się nie zastanawiam nad estetyką, metodyką, itd, a one dobrze działają.
> Dużych albo trudnych projektów w C/C++ mam raptem cztery. Jeden z nich był
> napisany zgodnie ze sztuką. Podczas pisania programu zabroniłem na głos
> używać określenia "będzie za wolno działało".
Brutalne rozwiązanie, szkoda że czasem tak trzeba.
Program przez wiele lat
> działa i nie stwarza problemów. Pozostałe 3 programy zostały dlatego
> napisane w C/C++ żeby dokonać optymalizacji. No i od dziś nikt nie ma
> pewności czy nie został jakiś błąd.
To ja ci powiem, że został popełniony jeden generalny. Kiedyś faktycznie
optymalizacja to assembler albo bardzo blisko. Dzisiaj, fakt, jakieś
multimedia i podobne niektórzy jeszcze rzeźbią w assemblerze, czy
też wstawki typu atomiki, których dotychczas nie było, i ok. Natomiast
większość optymalizacji - o ile wiem - to umiejętne użycie kompilatora.
Czasami wydaje mi się, że niektórzy nie uświadomili sobie, że
zarówno procki i kompilatory "deczko" się zmieniły przez ostatnie
dziesięć lat. Oczywiście, niektóre rzeczy były i są kosztowne,
trzeba kod pisać inaczej, żeby kompilator mógł go optymalizować,
bo robi tylko te przekształcenia, które może zrobić mając dostępne
założenia - zazwyczaj wystarczy mu przeszkody usunąć z drogi. Nie jest
to darmo, ale nie ma to większego wpływu na pisanie poprawnego
kodu. Range check w przypadku większych pętli zazwyczaj sprowadza się
do jednorazowego >=start <end - co i tak kompilator musi zrobić,
żeby np. wygenerować prologi przekształconych pętli, więc taki check
w kodzie źródłowym paradoksalnie ułatwia mu pracę (ok, jak to zwykle
z optymalizacjami bywa: czasami, nie zawsze, zależy, itd.).
>
> Jeśli ktoś twierdzi że w C/C++ można pisać bez błędów to ja się pod tym
> podpisuję. Ale czy np. w Javie nie jest trochę łatwiej?
>
Java ma inne zalety: jest ogólnie prostsza i ma reflection. Moim zdaniem
jest za mało ekspresywna, muszę się stanowczo dużo więcej naklepać,
żeby uzyskać ten sam efekt. Przy małym i prostym kodzie tego może nie
być widać; przy frameworkach FWIW też nie.
Co do optymalizacji i Javy, to różnie mówią. Znam testy gdzie Java i C++
były podobne. Znam takie, gdzie Java była wolniejsza. Znam też takie,
że w HPC używają Javy, ale tylko ze słyszenia - kiedyś googlnę, nie
spędza mi to snu z powiek łagodnie mówiąc.
>>>> Faktycznie, daje do myślenia. Ja np. myślę, że valgrind nie wymagałby
>>>> dwóch tygodni, a byłby wart więcej niż te testy (które można
>>>> też zrobić, ale jak rozumiem wynik wskazuje na zwykły UB). Ten test
>>>> chyba nie ma nazwy, i valgrind niestety używa tylko jednego rdzenia.
> Valgrind to dobra rzecz, ale gdy ostatnio chciałem nim sprawdzić program,
> to były błędy... w kompilatorze. Muszę jeszcze raz spróbować. Są jakieś
> alternatywne narzędzia dla valgrinda?
> Pozdrawiam
>
Są. Ale sam valgrind ma "suppresions" czy jakoś tak to się nazywa, co
obchodzi znane problemy z libami, ma też opcję "wygeneruj suppresion",
jak już nie ma innego wyjścia pod każdym upierdliwcem wypluje, jak go
wyłączyć.
Nie znam opcji pod Win, mam malutkie doświadczenie.
>> :) sprawdza, czy "genialny szachista" nie spadnie pod stół już podczas
>> otwarcia.
> To akurat był błąd typu: brak ifa :) Pomoże jedynie walidacja krzyżowa z
> innym programem który tego ifa ma :)
> Pozdrawiam
Testy tego możliwie małego kawałka kodu też. Nie pisałem algorytmów
szachowych, nie wiem, czy dają się tak podzielić. No i fakt, valgrind
braku ifa nie wyniucha - szkoda ;) Przydałby się tool, który bierze dwa
algorytmy, powiedzmy, że różniące się nie zasadą działania, tylko
użytymi strukturami danych, i mówi, czy są równoważne.
Edek
Następne wpisy z tego wątku
- 18.08.11 00:42 m...@t...pl
- 18.08.11 13:34 Jordan Szubert
- 19.08.11 09:28 Andrzej Jarzabek
- 19.08.11 11:01 Michal Kleczek
- 19.08.11 11:07 b...@n...pl
- 19.08.11 20:05 Zbigniew Malec
- 19.08.11 20:06 Zbigniew Malec
- 19.08.11 21:47 m...@t...pl
- 20.08.11 06:17 p...@p...onet.pl
- 24.08.11 09:45 Michoo
- 24.08.11 10:37 Edek
- 24.08.11 11:45 Michoo
- 24.08.11 11:55 Maciej Sobczak
- 24.08.11 11:56 Stachu 'Dozzie' K.
- 24.08.11 12:09 Paweł Kierski
Najnowsze wątki z tej grupy
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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
Najnowsze wątki
- 2025-03-16 Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 2025-03-16 Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 2025-03-16 Najlepszy akumulator 12V
- 2025-03-16 Co powinno spotkać "adwokatów dwóch" uczestniczących w przesłuchaniu świadka do którego nie dopuszczono adwokata świadka?
- 2025-03-16 Przednich p-mgielnych nie wolno bez mgły
- 2025-03-16 Co w KANADZIE wolno komercyjnie (na razie się nie czepili?)
- 2025-03-16 silnik-chwilówka
- 2025-03-16 Prokurator Wrzosek "Bezstronna" nie przyczynia się do śmierci (dowodnie) - oświadcza bodnatura [Dwie Kacze Wieże]
- 2025-03-15 kraje nieprzyjazne samochodom
- 2025-03-15 parking Auchan
- 2025-03-15 Art. 19.1 ustawy o ochronie praw autorskich
- 2025-03-15 przegląd za mną
- 2025-03-15 Na co komu okna
- 2025-03-15 Mój elektryk
- 2025-03-15 Fejk muzyczny czy nie fejk