wtorek, listopada 03, 2009

Sarkania na C++

Przyznam, że moim językiem jest Java. C# uważam za popsutą Java'ę [tak w składni jak i w wydajności], ale zawsze miałem jakiś sentyment do C i C++....

Do dziś, a właściwie do wczoraj ;-)

Postanowiłem przekompilować programik do badania wydajności procesora ["słynne" liczenie całki numerycznej z e-x2] i tym razem postanowiłem to zrobić nie w Dev-C++, a w Visual C++ 2008 Express Edition......
I oczywiście nie dało się tego zrobić przez proste przeniesienie kodu, a dokładniej to sam kod jako kod się przeniósł bez żadnych problemów, ale już np. użycie M_E jako wartości stałej e czyli liczby Eulera już się nie udało, bo w VC++ w math.h nie ma takowej.
W MinGW, czyli porcie GCC do Windows M_E w math.h istnieje, a w VC++ nie istnieje ;-)
Zapewne chodzi tu o to, że mieszam C z C++, ale mimo wszystko nie czuję się winny.

Zresztą C++ to chyba jeden z niewielu języków programowania [a z tych mainstreamowcyh na pewno] w przypadku których istnieje taka sytuacja, że ŻADEN z kompilatorów nie spełnia w 100% specyfikacji ;-)

Ale i tak jak będę miał kiedyś dłuższą chwilę to się w końcu przyuczę C++ ;-) ale denerwują takie problemy jak obecność, nieobecność stałej........ zresztą się założę, że ona tam gdzieś jest, tylko pewnie trzeba do niej inaczej sięgać.

Tak btw. kiedyś przeczytałem bardzo fajne stwierdzenie na grupie poświęconej C++, szło to mniej więcej tak: "Warto się nauczyć MFC! Wtedy człowiek dopiero docenia jaką wspaniałą robotę zrobił Borland pisząc VLC" ;-)
Ja to mogę sparafrazować tak: "Warto uczyć się C++ i C, żeby zobaczyć jak pięknie jest to zrobione w Java'ie" ;-)


Podobne postybeta
32 bity vs. 64 bity, tym razem C++ ;-)
Raspberry Pi to nie jest demon prędkości ;-)
Dysonans poznawczy roku 2017 ;-)
C# i Java okazały się szybsza od Pythona :-) [było Java okazała się szybsza od C# i Pythona]
Nadpłacanie kredytu - arkusz ;-)

2 komentarze:

  1. Mylisz się chlopczyku... zapominasz że java jest językiem dużo wyżeszego poziomu i C/C++. Zapamiętaj że java uruchamiana jest na maszynie wirtualnej a programy w C/C++ są kompilowane do kodu binarnego. Wydajność?? bez porównania? Prostota pisania? nie wiem... znam tylko C/C++. Java ma sporo gadżetów i jest przenośna ale ja i tak uważam że C/C++ jest bardziej praktyczny. Masz więkrzą kontrolę i spoczywa na Tobie wtedy więkrza odpowiedzialnosć. Pamietaj o TYM!!!

    OdpowiedzUsuń
  2. Jak bez porównania w wydajności? Java i C++ mają podobną wydajność, nawet w obliczeniach numerycznych co widać w wynikach mojego porównania.
    Sam przyznaję, że byłem zaskoczony, bo przecież JVM jest napisana w C czy C++ to wydawałoby się, że będzie dużo mniej wydajna, spodziewałbym się najmniej 1 rzędu różnicy, a tu okazuje się, że ma podobną wydajność do C++ [różnica to około 2.5 raza, gdy użyć dobrego kompilatora C++ to wtedy różnica jest między 2.8 a 4.8 raza, nadal ten sam rząd wielkości].
    A okazuje się, że przy bardziej głębokich testach te różnice są jeszcze mniejsze, o czym tutaj http://www.ddj.com/cpp/184401976;jsessionid=5B1D0OFU4PYNNQE1GHPSKHWATMY32JVN?_requestid=511138
    C++ jest świetnym językiem, ale ma straszne problemy ze standaryzacją, a przez to kod który kompiluje się na GCC może nie chcieć dobrze kompilować się na VC++ i na odwrót. Choć winą jest tu zwykle GCC bo jest mniej zgodne ze standardem C++ niż kompilator Microsoftu.

    btw. dodaj do tego IE7 którego używasz Toolbar Google, bo on ma kontrolę pisowni. Nie ma słowa "więkrza" jest "większa".

    OdpowiedzUsuń