Odpověď na příspěvek

Re: Ze života prváka na matfyzu Anicka Bernathova (30. 8. 2008 - 15:52)
> Čím konkrétně? Já je mám docela rád :)

Viděla jsem Haskell, takže vím, jak něco podobného taky může vypadat k
světu :-) Ale o věcech vkusu těžko vést disputace :-)


> Je pravda, že čisté C bude asi rychlejší, nicméně zas tak pomalé mi to
> nepřijde. Je ale potřeba psát "optimalizovaně" - především si dávat
> bacha, aby se mi někde něco zbytečně nekopírovalo a podobně. Pokud se
> o to člověk nezajímá trochu do hloubky (stejně jako o skoro jakýkoliv
> jazyk), tak to pomalé být může.
>

Jasně, takové věci člověk musí dělat i v céčku, a prostě vždycky... ale
o to vůbec nejde. Viděl jsi naší susí hackovací soutěž? Luboš tam měl
vždycky nějakou pluspluskovou úlohu, která byla tak ohyzdná, že mi
přišlo nejlepší to prostě lousknout hrubou silou. Docela jsem žasla, jak
pomalé může být něco, co dělá prostě jen opravdu hodně triviálních
operací na poli znaků. Trochu jsem si s tím pak hrála a vycházelo mi, že
obyčejné céčko je rychlejší o několik řádů - nevím, jestli to dělá
kompilátor nebo knihovna nebo co vlastně, ale nevěřila jsem svým očím.

> Tenhle názor jsem dřív zastával taky, ale ve chvíli, kdy už má člověk
> potřebné libky, umí používat STLko a podobně, se v tom píše docela
> dobře :)

:-) Coby distribuční maintainer pluspluskových programů občas žasnu, na
jaké triviality jsou schopni lidi používat STL, a program tak úplně
zbytečně neuvěřitelně zpomalit. Když můžu používat STL - nevadí mi tedy,
že můj program nebude nejrychlejší na světě, tak můžu s klidem psát i ve
spoustě dalších jazyků. (Pravda, ta zpomalení v programech dost často
nejsou jen vinou STL, "elegantní" použití STL občas vyrobí z triviálního
úkonu, jež by trval lineárně dlouho, něco pomalejšího.)

Tady mě prosím neber úplně vážně, já se v STL zas tak moc nevyznám.
Viděla jsem spíš ty horší příklady používání a sama se tomu vyhýbám,
takže do ní nijak zvlášť hluboko nevidím. Kdybych v práci nemusela,
nevím o ní vůbec nic a nenadávám :-)

S těmi knihovnami to navíc není tak růžové. Je jich sice poměrně dost,
ale ono jak je to přece jen docela těžké a nepřehledné, jejich autoři to
často moc neumějí. A tak ladíš chybu v programu a skončíš v knihovně.
(Když máš štěstí - občas skončíš taky bugreportem na kompilátor.)
Céčkových programů a knihoven mi prošlo rukama nepoměrně víc a stejně se
mi to nestávalo tak často.

To, že se jazyk podstatná část jeho uživatelů není schopná pořádně
naučit je vlastně samo o sobě taky skoro protiargument :-) Kdo chce být
machr a zvládat "těžký jazyk" může přece psát v intercalu. :-) U
pluspluska v té jeho zamotanosti ve skutečnosti přece není žádná výhoda,
prostě se jen moc nepovedlo.

> A který jazyk že to tedy preferuješ na věci, u kterých hodně záleží na
> rychlosti?

Víš, že jsem ještě nepotkala věc, u které by bylo potřeba, aby byla
strašně rychlá, a přitom byl důvod na ni používat opravdový objektový
jazyk? AFAIK obvykle stačí používat céčko s Linusovým "object
orientation is in mind, not in language" (nebo tak nějak) a psát ho
podobným způsobem, jako je psán ten kernel. To ti IMHO stejně přinese
skoro všechny výhody, která Ti dává "objektovost" pluspluska a nezpomalí
Tě. Pokud hodně záleží na rychlosti, není mi jasné, proč se části té
rychlosti nakonec vzdát výměnou za pár dost pochybných výhod :-)

Opravdový objektový jazyk se většinou hodí u různých GUI (tam se to na
ten model napasuje přirozeně) nebo když píšeš něco rozumně
rozdělitelného a potřebuješ, aby měl každý vývojář možnost něco schovat
před svými všetečnými kolegy.

Předmět:
Jméno:
E-mail:
Jak se píše L morseovkou (A by bylo .-)?

Text příspěvku: