A változások részletes listája itt található.
A dmd programcsomag ingyenesen letölthető innen, de létezik hozzá Gentoo ebuild és Debian csomag is.
A D nyelv egy modern rendszerprogramozási nyelv, amely ötvözi a C sebességét és rugalmasságát, a modern nyelvek (Java, C#, Python, Ruby) szolgáltatásaival és hatékonyságával. Összehasonlítás a C, C++, C#, Java nyelvekkel itt.
A D nyelvet számos editor és integrált fejlesztőkörnyezet támogatja, és elérhető hozzá egy nyílt forrású fordító GDC is, Linux és MacOS X platformokra.
- A hozzászóláshoz be kell jelentkezni
- 5987 megtekintés
Hozzászólások
Aargh, slashdotted :(
- A hozzászóláshoz be kell jelentkezni
Nem volna rossz abba az összehasonlító táblázatba még néhány oszlop, ha már ezekhez is hasonlítja magát ez az "új" nyelv: Python, Ruby, netán freepascal, imagine, akármi...
- A hozzászóláshoz be kell jelentkezni
johat ezek nem az igaziak.. ha ezeket megneznenk akkor a perlt is megkene, meg az istentudja milyen fos nyelvet... :)
C/C++ az isten, D is minek...
- A hozzászóláshoz be kell jelentkezni
Gépi kód. Fordító nélkül.
- A hozzászóláshoz be kell jelentkezni
talan mert a C++ is fos, ha egy kicsit jobban megnezi az ember. Patkolasoktol hemzseg az egesz nyelv. A standard konyvtara meg eleg hurka.
Nem tudom, hogy ez a D milyen, de nagyon ideje lenne valaminek, ami levalthatja a C/C++ -t.
- A hozzászóláshoz be kell jelentkezni
Patkolás? Mi(k)re gondolsz?
Ami csúnyaságot eddig láttam, az mind a C-vel való kompatibilitás miatt volt...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Az ok az gyakorlatilag mindegy, sajnos itt az eredmenyt kell nezni. A C++ nem kepes felvenni a versenyt (fejlesztesi) hatekonysagban es eszkozokben a modern nyelvekkel, sebessegben pedig az oskovulet C-vel.
Nehany pelda:
* template szintaxis egy gany
* modern adatstrukturak nincsenek beepitve a nyelvbe, csak STL-en vagy mas konyvtarakon keresztul elerhetoek
* const ganyolas
* include hell
* RAII hianya
* a specifikacio olyan bonyolult, hogy irdatlan nehez jo forditot irni, raadasul ahany fordito annyi fele implementacio
- A hozzászóláshoz be kell jelentkezni
+
- nincs rendes szabvanyos ABI, ezert a binaris szinten egyuttmukodo komponens rendszerek (RPC, COM/DCOM, Corba) a C++ valamilyen resszolgaltatasan alapulnak (interfeszek, nincs kivetelkezeles, nincs tobbszoros oroklodes, kell a refcount).
- miert nincs szabvanyositott konyvtar a halozatkezelesre, 3D-re, GUI-ra. Miert a vector es a qsort() a legmagasabb szintu szolgaltatas a standard konyvtarban? Osszehasonlitaskeppen a .NET Framework vagy a Java library rengeteg szolgaltatast nyujt. Ennek a kovetkezmenye az is, hogy egy nagyobb programban hasznalt konyvtarak fele referenciaszamlalos, a masik fele nem. Raadasul eleg sok erofeszites megy el arra, hogy parhuzamosan keszitsenek el nyilt grafikus keszleteket (pl. Qt, GTK+, wxWidgets, ...). Ahelyett, hogy lenne egy jo es mindenki azt hasznalna es javitana.
- reflection jo lenne
- A hozzászóláshoz be kell jelentkezni
"miert nincs szabvanyositott konyvtar a halozatkezelesre..."
Mert megszűnne a választás lehetősége.
Mert a legtöbből még nem született (némelyből nem is születhet) megfelelően általános.
És mert az utolsó szabvány 98-as.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Emlékeim szerint az utolsó C++ szabvány olyan 2003 körüli, nem?
- A hozzászóláshoz be kell jelentkezni
2003-ban csak egy "technical corrigendum"-ot fogadtak el, tudtommal lényegi változás nem volt.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ahelyett, hogy lenne egy jo es mindenki azt hasznalna es javitana.
Hehe, ez egy kicsit naívan hangzott. :)
- A hozzászóláshoz be kell jelentkezni
Mert amiről te beszélsz az már nem a C++ nyelv lenne. Ne keverd össze a nyelv és a szolgáltatások/könyvtárak fogalmát!
- A hozzászóláshoz be kell jelentkezni
* template szintaxis egy gany
szubjektiv velemeny..
* modern adatstrukturak ...
stl a nyelvspecifikacio resze; miert lenne jobb, ha nem kene inkludolni mondjuk egy <map>-et?
* const ganyolas
const_cast, mutable, vagy mire gondolsz?
- A hozzászóláshoz be kell jelentkezni
"* template szintaxis egy gany
szubjektiv velemeny.."
Szubjektiv velemeny, de egyezik a C++ programozok 99%-anak szubjektiv velemenyevel. Tehat erdemes lenne kicsit megszerelni. Ismert ugye >> es a > > kozotti kulonbseg a template hasznalat soran? Es ez csak a felszin.
"
* modern adatstrukturak ...
stl a nyelvspecifikacio resze; miert lenne jobb, ha nem kene inkludolni mondjuk egy
-et?"
Az STL elavult es keves szolgaltatast nyujt. Hianyzik belole pl. a szerializacio.
- A hozzászóláshoz be kell jelentkezni
Attól, hogy a nyelv része lenne, ugyanúgy lehetne elavult, és nyújthatna kevés szolgáltatást...
- A hozzászóláshoz be kell jelentkezni
"Az STL elavult es keves szolgaltatast nyujt. Hianyzik belole pl. a szerializacio."
Ez pont az integrálás ellen érv. Mert ha a nyelv része és egy feature hiányzik, akkor újra kell specifikálni a nyelvet.
Ha külső lib, akkor meg csak meg kell írni hozzá.
ld Boost::Serialization.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
A Boost akkor lenne okos dolog, hogyha egy altalanosan hasznalhato konyvtar lenne. De tele van hianyossagokkal es a modulok egy resze abszolut experimental. En a numerikus matek reszhez ertek valamennyire es annak a szolgaltatasai maximum egy szakdolgozat megirasahoz elegek, nem egy tisztesseges program fejlesztesehez. A szalkezelo reszek detto hurkak.
Boost-os szerializacio vajon tudja szerializalni egy third party cuccos objektumait? Talan (nem tudom). Es egy third party zart forrasu lib cuccait? Szinte biztos, hogy nem, mert a nyelv hianyossagai miatt a szerializacio eleg intruziv.
Szemben pl. a C#/.NET-el, ahol ez szinte csettintesre megy (najo egy attributumot hozza kell biggyeszteni, de mukodhetne anelkul is, lasd: db4o). Es a szerializacio a .NET Framework resze. Es senki nem vagta fel az ereit, mert resze.
A C++ allapotarol jo kepet fest, hogy 98-as a szabvany es 2-3 eve jelentek meg a tobbe kevesbe szabvanyos forditoprogramok, a konyvtar meg ugy siralmas, ahogy van.
- A hozzászóláshoz be kell jelentkezni
"En a numerikus matek reszhez ertek valamennyire es annak a szolgaltatasai maximum egy szakdolgozat megirasahoz elegek"
Hja, majd ha találsz egy nyelv/lib párost, ami mindenre egyformán jó, akkor szólj, többünket érdekelne. :)
Mondtam én, hogy a Boost überjó? Nem. Csak mondtam, hogy van benne szerializáció.
Egyébként csak egy keretrendszer van megírva, azt kell igazítani a saját típusaidhoz, és működik az eredeti osztályok változtatása nélkül is. Persze egyszer meg kell írni, nem megy magától.
Végülis korrekt dolog egy néhány éves C#/.NET pároshoz hasonlítani egy több mint 10 éves rendszert, de akkor ott van neked a Managed C++/.NET.
Szérializálhatsz amennyit akarsz.
Nem tetszik a STL? Használj Qt-t. Vagy amit akarsz.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ne terelj! Arra mutattam ra, hogy a Boost:
- Nem altalanos celu
- Nem megbizhato
- Nem mukodik egyutt jol a tobbi elterjedt konyvtarral (OSG, Qt)
Ez persze nem mind a Boost hibaja. A C++ bizonyos hianyai miatt nem is igazan lehet jobban csinalni.
"Végülis korrekt dolog egy néhány éves C#/.NET pároshoz hasonlítani egy több mint 10 éves rendszert, de akkor ott van neked a Managed C++/.NET.
Szérializálhatsz amennyit akarsz."
1. Nehogymar en szegyelljem magam, mert a C++ rank rohadt meg az elozo evszazadbol. Szegyellje magat a szabvanyosito bizottsag, a vendorok es konyvtarfejlesztok...
2. Engem, mint fejlesztot az erdekel, hogy hatekonyan tudjak dolgozni. Es kepes legyek a piacon kaphato konyvtarakat, amik komoly tudast tartalmaznak egyutt hasznalni. Tobbek kozott errol szolna az objektumorientalt fejlesztes. Nem arrol, hogy hasznalhatsz Qt-t de akkor nem mukodik a boost, vagy hasznalhatok Boost-ot, de akkor nem megy jol az OSG. Rohej.
3. Szep dolog, hogy a szerializaciora hegyezed ki a bamba poent, csak az a baj, hogy legalabb ezer ilyen dolgot lehetne meg kitalalni (csak peldak: titkositas, multimedia, perzisztencia, remoting). A mult evtized elejen meg le lehetett nyugozni az embereket, hogy milyen fasza dolog a queue, de ma mar erezhetoen keveske.
"Nem tetszik a STL? Használj Qt-t. Vagy amit akarsz."
Eppen ez a sz*runk bele magatartas miatt rekedt meg a C++ fejlodese. Mert nem vallaltak fel, hogy vannak problemak, amiknek nem trivialis a megoldasa. Bedobtak a gyeplot, es szivunk mi a fejlesztok, ugyanarra a problemara ezerfele rossz- illetve felmegoldast hasznalva.
- A hozzászóláshoz be kell jelentkezni
"Bedobtak a gyeplot, es szivunk mi a fejlesztok, ugyanarra a problemara ezerfele rossz- illetve felmegoldast hasznalva."
Hat, sajnos ez igy van. :-(
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
"Ne terelj! Arra mutattam ra, hogy a Boost:
- Nem altalanos celu
- Nem megbizhato
- Nem mukodik egyutt jol a tobbi elterjedt konyvtarral (OSG, Qt)"
Ha már terelés, hogy jött ide a Boost?
Csak egy példa volt. Egy példa a felvetett példádra.
Tehát aki a "szerializaciora hegyezi ki a bamba poent" az nem én vagyok.
Onnan indultunk, hogy az STL elavult (szerintem nem) és kevés szolgáltatást nyújt.
Ez meg tény, de van helyette más.
Sőt nem is gondolom, hogy jó dolog ha minden az STL része.
Érdekes módon azért senki sem sír, hogy a C szabványnak nem része sem a hálózat sem a thread kezelés.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
"* template szintaxis egy gany
szubjektiv velemeny.."
legyen :-)
"* modern adatstrukturak ...
stl a nyelvspecifikacio resze; miert lenne jobb, ha nem kene inkludolni mondjuk egy
-et?"
Abban azert gondolom, hogy egyetertunk, hogy az STL meg az elegancia tavol vannak egymastol. Egyszeruen iszonyatosan ronda lesz a kod, amikor hasznalaod. Latszik, hogy nem integralt resze a nyelvnek.
"* const ganyolas
const_cast, mutable, vagy mire gondolsz?"
in/out parameterekre gondolok elsosorban
- A hozzászóláshoz be kell jelentkezni
"Egyszeruen iszonyatosan ronda lesz a kod, amikor hasznalaod."
Szubjektív.
Nekem két dolog nem tetszik mindössze.
1) Az iterátor megadása. Az, hogy fel kell sorolni az összes template paramétert. Persze typedef sokat segít.
(c++0x-ben lesz valami auto kulcsszó erre)
2) Functor megadása. Nem lehet helyben. Illetve csak trükközve (lásd Boost::Lambda).
(szintén c++0x)
"in/out parameterekre gondolok elsosorban"
Biztos én vagyok a perverz, de nekem így jó.
De talán nem lenne hülyeség egy "Move constructor". Valahol olvastam is hasonlót. Nem tudom elvetették-e a következő szabványból.
Addig meg smart_ptr a te barátod...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
"Az ok az gyakorlatilag mindegy"
Szerintem nem, de ezen nem veszünk össze. A C kompatibilitás olyan feature ami a többi magas szintű nyelvben nincs benne. És azért elég sokszor jól jön.
"template szintaxis egy gany"
Ha arra használod amire kitalálták, nincs vele gond. Metaprogramozásnál persze már vannak csúnya dolgok.
"modern adatstrukturak nincsenek beepitve a nyelvbe"
Nekem nem is hiányznak. És nem is logikus, hiszen az összes szóbajövő adatstruktúrát úgysem lehet a nyelvbe paszírozni. (Hány nyelvben van alapból gráf?)
Az adatstruktúrák egyforma kezelése pedig fontos, enélkül nehéz lenne általános algoritmusokat írni.
"const ganyolas"
Ezt nem értem.
"include hell"
C-ből jött. És nem értem miért Hell.
"RAII hianya"
Wiki:
"Resource Acquisition Is Initialization, often referred to by the acronym RAII, is a popular programming technique in C++ and D."
Miről is beszélünk? Ez inkább a Java-val szemben érv.
"a specifikacio olyan bonyolult, hogy irdatlan nehez jo forditot irni, raadasul ahany fordito annyi fele implementacio"
A specifikáció bonyolultsága a C miatt van.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
>"Az ok az gyakorlatilag mindegy"
> Szerintem nem, de ezen nem veszünk össze. A C kompatibilitás olyan > feature ami a többi magas szintű nyelvben nincs benne. És azért elég
> sokszor jól jön.
Nem nagyon jut most olyan pelda eszembe, ahol direkt szintaktikai kompatibilitas kellne. A D peldaul kepes C libraryket hasznalni, ez azt hiszem, hogy eleg sok mindenre eleg.
> "template szintaxis egy gany"
> Ha arra használod amire kitalálták, nincs vele gond.
> Metaprogramozásnál persze már vannak csúnya dolgok.
Masik hozzaszolasban leirtam.
> "modern adatstrukturak nincsenek beepitve a nyelvbe"
> Nekem nem is hiányznak. És nem is logikus, hiszen az összes
> szóbajövő adatstruktúrát úgysem lehet a nyelvbe paszírozni. (Hány
> nyelvben van alapból gráf?)
> Az adatstruktúrák egyforma kezelése pedig fontos, enélkül nehéz
> lenne általános algoritmusokat írni.
Nyilvan nem a beepitett grafokat szoktak hianyolni a C++-bol. Hanem mondjuk a dinamikus tomboket, mapeket, stringeket, slicingot, stb. Nem veletlenul vannak ezek az adatstrukturak _beepitve_ a modern nyelvekbe. Egyebkent nem latom, hogy egy beepitett adatstruktura miert ne biztositana egysges kezelest.
(Az STL nem beepitettsge a szintaxison mulik es nem azon, hogy resze-e a specifikacionak vagy nem.)
> "const ganyolas"
> Ezt nem értem.
Masik hozzaszolasban leirtam.
> "include hell"
> C-ből jött. És nem értem miért Hell.
Mert nincs nyelvi szinten tamogatva a linkelesi fuggosegek tulburjanzasanak megakadalyozasa, illetve az includeok egymasba agyazasanak megakadalyozasa.
> "RAII hianya"
> Wiki:
> "Resource Acquisition Is Initialization, often referred to by the acronym > RAII, is a popular programming technique in C++ and D."
> Miről is beszélünk? Ez inkább a Java-val szemben érv.
Bocs, igazad van, ez tenyleg csak a C-re igaz.
> "a specifikacio olyan bonyolult, hogy irdatlan nehez jo forditot irni,
> raadasul ahany fordito annyi fele implementacio"
> A specifikáció bonyolultsága a C miatt van.
Az eredmenyen ez sajnos nem valtoztat.
- A hozzászóláshoz be kell jelentkezni
"Nyilvan nem a beepitett grafokat szoktak hianyolni a C++-bol. Hanem mondjuk a dinamikus tomboket, mapeket, stringeket, slicingot, stb. Nem veletlenul vannak ezek az adatstrukturak _beepitve_ a modern nyelvekbe."
Ez szép és jó, csak akkor már nem tudod egységesen kezelni a beépített dinamikus tömböt, és az utólag hozzáírt gráfot.
Egységes kezelés alatt azt értem, hogy C++-ban ha definiálni tudsz egy adatszerkezetre egy bejárót, onnantól kezdve az algorithms nagy része a rendelkezésedre áll. Erről szól a generikus programozás.
Ha van n adatszerkezeted és m algoritmusod, akkor nem n*m-szer kell dolgoznod, hanem n+m-szer.
Egyébként a gondolatmenet alapján a Java pl szintén nem "modern nyelv".
Se slicing, se _beépített_ adatszerkezetek....
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ok, ertem mire gondolsz az egyseges kezelessel.
- A hozzászóláshoz be kell jelentkezni
Akad a C++ házatáján mit takarítani.
1. Próbáltál már debuggolni template hegyekkel megáldott kódot? A vérizzadás ennek egy finom minősítése.
2. Létezik olyan C++ kód, ami hiba nélkül lefordul Visual Studióval és gcc-vel is?
A C++ egyetlen előnye, hogy létezik - a C-hez viszonyítva, amiben ugye nincs OO rész. Más előnyét nem ismerem.
Én speciell meg fogom nézni a D-t, hátha ... :)
--
Kinek nem inge, ne vegye gatyára
- A hozzászóláshoz be kell jelentkezni
1.
Igen. Gyönyörű :)
Egyébként ez inkább a fordítók, és azok hibaüzeneteinek a tökéletlensége mint a nyelvé. Vagy legyen is-is.
2.
Létezik. Rengeteg.
Főleg, ha nem VC 6.0-val próbálkozol. Mert az egy szar.
De afölött már egész korrekt.
Persze ne is gcc 2.9x-el. 3.4 felett már egész korrekt. :)
Félre ne értsetek szerintem a C++ nem a lehetséges legjobb nyelv.
De az elterjedt nyelvek közül talán a legjobb. (Hogy a Java fanok is örüljenek, legyen az egyik legjobb)
Csak utálom, ha olyanok fikázzák akik sose használták. (De azért látom vannak itt értelmes lények is :) )
A D nyelv nem csak nevében a következő lépés.
Pl mikor a template-et kitalálták senki nem gondolta, hogy olyan perverz dolgokat fognak vele művelni amit manapság. A C++ azért jó, mert ha nem is szépen de meg lehet csinálni. (Hozzátenném, sehol máshol.)
A D-ben ezt tovább gondolták.
Most olvasgatom, nekem tetszik, de ha senki nem áll mögé, sosem fog elterjedni. Az, hogy mögé áll-e valaki az eléggé kérdéses a mai VM-es világban.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Nem tudom, hogy ez a D milyen, de nagyon ideje lenne valaminek, ami levalthatja a C/C++ -t.
Úgy hívják C# ;-P
- A hozzászóláshoz be kell jelentkezni
Hat persze. :)
Szep dolog a C# es a Java is, de szerintem azokon a teruletein, ahol kompetitiv a C++-al (foleg uzleti/ugyviteli/nyilvantarto szoftverek), mar atvette tole a piacot.
- A hozzászóláshoz be kell jelentkezni
Látod, a csarp nem is egy rossz nyelv, volt vele dolgom. Csak a .Net keretrendszer osztálykönyvtárai ne lennének kínosan bénák. Félő, hogy ugyanarra a bezárt sorsra jut, mint az Objective-C, a Mono se fogja megmenteni ...
--
Kinek nem inge, ne vegye gatyára
- A hozzászóláshoz be kell jelentkezni
Annyira azért nem lennék borúlátó, tekintve hogy lassan az MS a teljes kódját átírja rá és nem csak ők tolják a .Net-et, hanem most már minden magára valamit is adó platform független SDO szállító...
- A hozzászóláshoz be kell jelentkezni
Azert ott lesz neki a Vista, mint jatszoter, ami elegge ossze lesz baratkoztatva a .NET-tel. Mondjuk ugy az lesz az elsodleges programozasi felulete a WinAPI/COM/MFC helyett esetleg mellett.
- A hozzászóláshoz be kell jelentkezni
a .net a vista fejlesztése alatt megbukott mint általános c/c++ utódnyelv. miután rájöttek, hogy stabilitási problémák és hatalmas erőforrásigény miatt a .net alkalmatlan arra, hogy egy mainstream os nagyrészét ebben fejlesszék, az addigi munka nagyrésze a kukába ment 2004 körül, illetve a menthető része singularity néven, egy akadémikus kísérleti játékba. majd újrakezdték az egész munkát a régi sokat szidott c++ban. mára így legalább sikerült működőképes kódot összehozni.
.net majd egyszer valamikor a jövőben. céges alkalmazásokhoz persze már ma is jó, de nem kell túlbecsülni a lehetőségeit.
egyébként vmi ilyesmi lett volna az eredeti vista. imho ez tetszett is, nem úgy mint az, ami végül lett belőle.
- A hozzászóláshoz be kell jelentkezni
>> mint általános c/c++ utódnyelv
a .net sosem volt nyelv
>> rájöttek, hogy stabilitási problémák
például?
>> hatalmas erőforrásigény
komoly elemzők állították, hogy 2003-ra 5-6Ghz-es procik lesznek, erre készültek, gyász
>> a menthető része singularity néven
ez nem igaz
>> egy akadémikus kísérleti játékba
szeretnél te ilyen játékot látni egyszer életedben
- A hozzászóláshoz be kell jelentkezni
komoly elemzők állították, hogy 2003-ra 5-6Ghz-es procik lesznek, erre készültek, gyász
Ahah, ilyenkor röhögök jókat a szakértő urakon, akik az OOO lassúságát és erőforrásigényét hozzák fel egyik példa gyanánt a FOSS abortív mivoltával kapcsolatban.
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
mert nem úgy vizsgálod a kérdést, hogy ha van nagyságrendileg hasonló értékeket felvonultató másik szoftver, és az lényegesen gyorsabb, akkor tényleg gondolkozni kéne
- A hozzászóláshoz be kell jelentkezni
nagyságrendileg hasonló értékeket felvonultató másik szoftver
Ez egy szubjektív fogalom az esetek többségében, de ha van valami objektív öszehasonlítás (MSO vs. OOO, Windows desktop vs. Linux desktop), szeretettel várom.
Most jöhetnék worksforme-vel is, de nem teszem. ;-)
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
szerintem nincs nagyságrendi különbség a lényeges funkciók között (tehát az mso nincs fényévekkel elmaradva az ooo funkcionalitása mögött) - így értettem, és az ooo-sok saját bevallása szerint gyúrniuk kell (és teszik is) sebességre
egy -túlnyomórészt- managelt kódban lézező o/s-nek viszont nincs párja értékben, amihez hasonlíthatnám
(így az erőforrásigényén sem szánakoznék)
- A hozzászóláshoz be kell jelentkezni
egy -túlnyomórészt- managelt kódban lézező o/s-nek viszont nincs párja értékben, amihez hasonlíthatnám
(így az erőforrásigényén sem szánakoznék)
Majd tesztcéllal felrakok egy Vistát, addig én sem szívesen kommentálnám az ilyesmit, BTW a te olvasatodban mi a managelt kód?
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
egy vistát hiába raksz fel, prygme már ecsetelte fentebb, hogy nincs köze a most kiadottnak az eredeti koncepcióhoz
a managelt kód nem általam kitalált kifejezés, hogy az "olvasatomban" kelljen értelmezni ;)
- A hozzászóláshoz be kell jelentkezni
C# valoban nem rossz de azert lenne meg azon is mit csiszolni:
- relativ namespace bug feature (remalom amikor egy masik gyoker namespace-ben ugyanolyan szintek vannak)
- typedef hianya /* sealed osztalyokat ugye nem lehet leszarmaztatni */
- aprobb nyug: az egesz namespace rendszeret illene ujrarendezni, mert lassan elkorcsosodik
- nem artana mar befejezni a VS2005 beta tesztjet is es egy stabil fejlesztoeszkozt kiadni hozza...
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
Igazabol nem lett volna rossz, ha kicsit objektivebb a tablazat.
Pl kicsit santit, amikor azt allitja, hogy a Java nem tamogat asszociativ tomboket. Persze, nyelv szinten nem, de a collections framework igen, ami resze az alap API-nak.
Masreszt semmit nem mond a beepitett alap konyvtarrol, a kod hordozhatosagarol, etc, ami mondjuk pl a Java legnagyobb elonye.
Fura, hogy pl tamogatja az inline assembly-t. Ez fun volt meg anno Turbo Pascal-os idokben, de nem vagyok benne biztos, hogy a modern, kernel alapu OS-eknel ennek a hasznalata jo 5let lenne. Arrol nem is beszelve, hogy a kod portabilitasa azonnal elveszik ezzel.
Mindenesetre erdekes, egy csekkolast meger, mert vegre egy olyan nativ nyelv, amibol tudatosan kihagytak a C/C++ ganyait. (Pontosan ezert szeretem pl a Java-t)
BTW mennyire tamogatott/szabvany nyelv ez, nem tudja valaki ? Erdemes vele foglalkozni hosszu tavon ?
- A hozzászóláshoz be kell jelentkezni
rtfm, leírják, h miért támogatnak inline assemblyt.
- A hozzászóláshoz be kell jelentkezni
varjuk a d++ :)
- A hozzászóláshoz be kell jelentkezni
Még el se kezdtem megtanulni rendesen a C-t. Öt év mulva azzal jönnek, hogy nem érek vele semmit? :P
- A hozzászóláshoz be kell jelentkezni
A C még sokáig maradni fog, főleg rendszerprogramozás területén. Itt még nincs kihívója. A C++-t itt nem szívesen használják, elvétve egy-két területet (ilyen pl. a Darwin / Mac OS X IOKit-je, ami "lebutított" C++-szal van írva)
--
Kinek nem inge, ne vegye gatyára
- A hozzászóláshoz be kell jelentkezni
Ha jol tudom akkor MacOS Objective-C-t hasznal. (Ami azert nem teljesen egy lebutitott C++ szvsz)
- A hozzászóláshoz be kell jelentkezni
Nem jol tudod. Van C/C++/Obj-C is (gcc of course). Valaszthatsz mit akarsz.
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
Legyen neked igazad, legfeljebb az idő kifixálja.
- A hozzászóláshoz be kell jelentkezni
Dehogynem, lasd fentebb. ;-)
Teny, hogy az egesz iparag a C-re van beallva. Egyelore rengeteg processzorhoz (kulonosen mikrokontrollerek) hianyoznak a forditok, stb, de megsi ezen a teruleten erheti el szerintem a D a leggyorsabb sikereket.
A beagyazott rendszereken meg mindig kritikus a sebesseg, de nagyon fontos a gyors es hatekony fejlesztes is.
- A hozzászóláshoz be kell jelentkezni
Es itt jon be a fent emlitett inline asm letjogosultsaga :)
---
pontscho / fresh!mindworkz
- A hozzászóláshoz be kell jelentkezni
Garbage Collection-t szerintem nem nagyon szeretik beagyazott rendszerekben.
- A hozzászóláshoz be kell jelentkezni
mert?
- A hozzászóláshoz be kell jelentkezni
Mert amennyire én tanultam nem kiszamítható az hogy mikor kezd el futni, és hogy mennyi ideig, ami miatt real-time alkalmazásoknál nem igazan hasznalható. És beágyazott rendszereken gyakran futattnak real-time alkalmazásokat.
- A hozzászóláshoz be kell jelentkezni
pedig nem egymást kizáró fogalmak
- A hozzászóláshoz be kell jelentkezni
Akkor nézd meg a real-time Java VM-et:
- A hozzászóláshoz be kell jelentkezni
ugyanott a faqban:
Q: Does Java RTS use a real-time garbage collector?
This release of Java RTS will not include a real-time GC.
de:
We expect the first update to include real-time GC algorithms from Lund University.
- A hozzászóláshoz be kell jelentkezni
Hatekonyabb mint a manualis memoriakezeles. (nemely implementacio)
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
A GC opcionalis, kezelheted a memoriat kezzel is, raadasul ha jol tudom a GC egy plugin, tehat kicserelheto.
- A hozzászóláshoz be kell jelentkezni
igaz, nem olvastam végig, csak a táblázatot neztem meg.
Igazából amikor beágyazott rendszerekről és a java-ról beszeltünk akkor merült fel, hogy a GC miatt se használják nagyon a java-t beágyazott környezetben, bar vannak erre is törekvések :)
- A hozzászóláshoz be kell jelentkezni
Szerintem a J2ME tekintheto egy beagyazott rendszerekhez keszitett java verzionak. A memoriakezeles hasonloan GC-vel tortenik. A real-time az egy masik kerdes...
- A hozzászóláshoz be kell jelentkezni
Embedded C++ névre hallgat.
- A hozzászóláshoz be kell jelentkezni
Néhány hete kipróbáltam, hogy mit tud. Csak úgy mikorbenchmark szinten, Java vs C++ vs D: az eredmény a D szempontjából lesújtó: jóval lassabb kódot fordított, mint a C++ vagy a Java futás (amelyek egyébként elég közel voltak egymáshoz). Szóval nem győzött meg.
- A hozzászóláshoz be kell jelentkezni
Kozzetenned a reszleteket?
- A hozzászóláshoz be kell jelentkezni
Mivel a D jelentősen alulteljesített, ezért hagytam a francba. A C++ vs Java terület egy másik fórum témája lenne inkább...
- A hozzászóláshoz be kell jelentkezni
Most akkor van teszt vagy nincs? Erdekelne, hogy mit teszteltel (kod), es milyen eredmenyek jottek ki. (Mit jelent az, hogy _nagyon_ alulmaradt.) Ha kozzetenned akkor be tudnam kuldeni a digitalmars listara, hatha vmi bug vagy hianyzo optimalizacio okozza a sebessegkulonbseget.
Nem muszaj ide, lehet egy forum temaba is vagy egy kulon hirbe. Sot kerhetunk C++ vs Java flame moderlalast is, hatha trey bevallalja. ;-)
Nem vonom ketsegbe sem a szavadat, sem a szakmai tudasodat, de enelkul a hozzaszolasod nem er tul sokat.
- A hozzászóláshoz be kell jelentkezni
Itt a D kód. A Java és a C++ meglepően nehezen reprodukálható :P
(Annyi van vele, hogy Javaban azért külön metódusba kell szervezni, és 10 futás átlagát kell nézni, lásd lentebb)
int main () {
int[30000] tomb;
int i = 0, j = 0;
for (i = 0; i < 30000; i++) {
tomb[i] = i*i % 33;
}
for (i = 0; i < 30000; i++) {
for (j = i+1 ; j < 30000; j++) {
tomb[(i+j)%30000] = (i + tomb[i] + tomb[j] * 17) % 33;
}
}
return 0;
}
Ami nincs meg, az a konkrét időeredmény, mert már legyalultam arról a gépről a D-t, és semmi kedvem babrálni vele újra. Ha kiméred, érdekel az eredmény...
- A hozzászóláshoz be kell jelentkezni
Ezzel csak az a gond, hogy annyira nem használ semmit a nyelvből, hogy ha nem sorra ugyanazt az asm kódot produkálja, mint a C vagy a C++, akkor ott vmit nagyon el..sztak.
Ami egyébként nem túl hihető, főleg egy gdc esetében.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Akkor próbáld ki, mert szerintem nem ugyanazt a kódot produkálja, és szerintem - szavaiddal fogalmazva - valamit el...sztak.
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam, winen.
Gyilkos lassú, de a dmc (Digital Marc C compiler vagy mi) is.
Érdekes dolgok ezek, főleg a lentebb olvasható mérés alapján...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
"Itt a D kód. A Java és a C++ meglepően nehezen reprodukálható :P"
Amikor meg csak idaig olvastam, akkor teljesen bevettem. Azon gondolkozdtam, hogy mi lehet olyan kulonleges benne. Aztan, amikor elolvastam a kodot, akkor azon kezdtem gondolkodni, hogy syntern baratunk mit szivott. Aztan meglattam a smileyt. :-)
"Ami nincs meg, az a konkrét időeredmény, mert már legyalultam arról a gépről a D-t, és semmi kedvem babrálni vele újra. Ha kiméred, érdekel az eredmény..."
Meg fogom csinalni, de lehet, hogy csak a hetvegen jutok hozza.
- A hozzászóláshoz be kell jelentkezni
Hat nem tudom, hogy te mit mertel, de vmit nagyon benezhettel.
Itt vannak az en mereseim:
-------------------------------------------------------------------------------------------
Gep adatai:
david@fokolompos /home/data/david/dev/sandbox/benchmark $ uname -a
Linux 2.6.18.2 #1 PREEMPT Sun Nov 19 07:30:12 CET 2006 i686 Intel(R) Celeron(R) CPU 2.40GHz GenuineIntel GNU/Linux
david@fokolompos /home/data/david/dev/sandbox/benchmark $ free -m
total used free shared buffers cached
Mem: 505 478 26 0 35 232
-/+ buffers/cache: 210 294
Swap: 486 0 486
-------------------------------------------------------------------------------------------
Kod:
C:
int main(void)
{
const int arraySize = 30000;
int myArray[arraySize];
int i;
int j;
for (i = 0; i < arraySize; i++)
{
myArray[i] = i * i % 33;
}
for (i = 0; i < arraySize; i++)
{
for (j = i + 1; j < arraySize; j++)
{
myArray[(i+j)%arraySize] = (i + myArray[i] + myArray[j] * 17) % 33;
}
}
return 0;
}
C++:
int main(void)
{
const int arraySize = 30000;
int myArray[arraySize];
for (int i = 0; i < arraySize; i++)
{
myArray[i] = i * i % 33;
}
for (int i = 0; i < arraySize; i++)
{
for (int j = i + 1; j < arraySize; j++)
{
myArray[(i+j)%arraySize] = (i + myArray[i] + myArray[j] * 17) % 33;
}
}
return 0;
}
D:
int main()
{
const int arraySize = 30000;
int[arraySize] myArray;
for (int i = 0; i < arraySize; i++)
{
myArray[i] = i * i % 33;
}
for (int i = 0; i < arraySize; i++)
{
for (int j = i + 1; j < arraySize; j++)
{
myArray[(i+j)%arraySize] = (i + myArray[i] + myArray[j] * 17) % 33;
}
}
return 0;
}
-------------------------------------------------------------------------------------------
Makefile:
all:
gcc -mtune=pentium3 -O2 -pipe test_cpp.cpp -o test_cpp
gcc -mtune=pentium3 -O2 -pipe test_c.c -o test_c
dmd test_d.d -O
-------------------------------------------------------------------------------------------
Forditok:
dmd:
david@fokolompos /home/data/david/dev/sandbox/benchmark $ dmd -v
Digital Mars D Compiler v0.173
Copyright (c) 1999-2006 by Digital Mars written by Walter Bright
gcc:
david@fokolompos /home/data/david/dev/sandbox/benchmark $ gcc -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs
Configured with: /var/tmp/portage/gcc-3.4.6-r1/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)
-------------------------------------------------------------------------------------------
Meresi eredmenyek:
david@fokolompos /home/data/david/dev/sandbox/benchmark $ time ./test_c
real 0m18.017s
user 0m17.757s
sys 0m0.216s
david@fokolompos /home/data/david/dev/sandbox/benchmark $ time ./test_cpp
real 0m14.330s
user 0m14.109s
sys 0m0.180s
david@fokolompos /home/data/david/dev/sandbox/benchmark $ time ./test_d
real 0m16.843s
user 0m16.617s
sys 0m0.180s
-------------------------------------------------------------------------------------------
Megjegyzes:
Javat nem teszteltem, mert nem akarok hosszu flamet a Java optimalizalasarol. Nekem most eleg volt a C, C++, D.
-------------------------------------------------------------------------------------------
Konkluzio:
Nem latom a szignifikans kulonbseget.
- A hozzászóláshoz be kell jelentkezni
Mi lenne, ha
[code]
[/code] közé tennéd a kódot? Talán el tudnánk olvasni?
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Bocs, es koszi a javitast.
- A hozzászóláshoz be kell jelentkezni
Nem vonom kétségbe a méréseidet, de fenntartom a saját korábbi eredményeimet. Ami különbség lehet:
- verziók (már nem tudom milyen gcc-vel mértem, de van amelyik irtó pocsék kódot képes fordítani)
- disztribúció (úgy vettem észre, hogy lényeges különbség van ugyanazon gép esetében akkor, ha a háttérlibek is procira vannak optimalizálva, azaz pl. a gentoo disztribes teszt nagyon más eredményt tud adni, mint egy ubuntus)
- proci-cache méret (ha éppen kiesik valamelyik futtatásnál a cache-ből a következő hit)
- csillagállás :)
- A hozzászóláshoz be kell jelentkezni
dmd helyett gdc néztél esetleg ?
------
gentóhuszár
- A hozzászóláshoz be kell jelentkezni
Mindkettőt néztem, a gdc szóba sem jön, dmd határozottan jobb.
- A hozzászóláshoz be kell jelentkezni
Mi a gránát van itt?
A C és C++ eredmények között, miért ekkora a difi?
Csinálnál több mérést, hogy kiátlagolódjon?
------
gentóhuszár
- A hozzászóláshoz be kell jelentkezni
Termeszetesen csinaltam tobb merest, de a szoras minimalis volt.
Egyebkent nem tulajdonitok kulonosebb jelentoseget a dolognak, hiszen a meres nem reprezentativ szinte semmilyen szempotnbol, csak arra voltam kivancsi, hogy tenyleg kiderul-e vmi optimalizacios problema.
Ami viszont kiderult, hogy a gcc ebben a konkret esetben meglehetosen furcsa dolgot muvelt, mert arra almomban sem gondoltam volna, hogy ennel a kodnal a C lassabb lesz.
- A hozzászóláshoz be kell jelentkezni
"arra almomban sem gondoltam volna, hogy ennel a kodnal a C lassabb lesz"
Sok mantrát láttam már megdőlni. Ilyen pl. "A C++ lassabb mint a C", meg "A Java lassabb mint a C++"... Minden csak attól függ :)
- A hozzászóláshoz be kell jelentkezni
Nem mantra: ott van, hogy _ennel a kodnal_. En egyebkent teljesen azonos eredmenyt vartam.
- A hozzászóláshoz be kell jelentkezni
A C és C++ kódban máshogy deklarálod az i és j változókat, ezért C esetében memóriába kerülnek és ott inkrementálódgatnak, C++ esetében viszont regiszterben. C99 már engedi ezt a "C++-féle" deklarációt is, -std=c99 opcióval fordítva gyorsul is a C változat valamennyit, de még mindig elmarad a C++ változattól.
Vannak még különbségek a generált asm kódban, de azok megértéséhez én már kevés vagyok.
- A hozzászóláshoz be kell jelentkezni
Koszi a magyarazatot. En is a valtozodeklaralasra gondoltam, de nem tudtam volna megmondani, hogy ez milyen kulonbseget eredmenyez a generalt kodban.
- A hozzászóláshoz be kell jelentkezni
És most képzeljétek el azt, hogy mindezt nem fordítási időben kell eldönteni kapcsolókkal, hanem a rendszer futás közben találja ki, hogy hova is kell rakni valamit ahhoz, hogy gyors legyen. Na ezt hívják Java VM-nek :)
- A hozzászóláshoz be kell jelentkezni
Hát itt egy régi D fordító (v0.166) alázza Java 1.5 öt
Ocaml szintén figyelemre méltó, de az más kategória, bár fordító programos.
------
gentóhuszár
- A hozzászóláshoz be kell jelentkezni
Ezt ismerem, kb. ott bukik meg, hogy a Java kód akkor tudja kihasználni a -server kapcsolót, ha mondjuk legalább 10-szer lefuttatod a teljes tesztet, és mondjuk átlagolod a futásokat. Az első futásra ugyanis még nem gerjed be az optimalizáló fordító, legfeljebb interpretált módban fut. Ezt jól be is szívtam egyszer, amikor vagy 10-szeres lassulást mértem a Java-n a C++-hoz képest. Aztán kiderült, hogy a fenti módszerrel alig 10-20%...
Arról nem is beszélve, hogy ezek a tesztek a JVM startup time-ot is beleszámolják a futási időbe. Szóval megbízható :)
- A hozzászóláshoz be kell jelentkezni
Ha interetált lenne, ezen mérés akkor szerintem ~4-5 ször lassabb lenne (minimum) a jáva a C-töl, miden esetben.
"Each program was then run 3 times with program output redirected to /dev/null. We show the lowest measured CPU time and the highest memory usage, from the 3 runs."
------
gentóhuszár
- A hozzászóláshoz be kell jelentkezni
http://sourceforge.net/projects/javavscpp/files
Ezt a teljesítménymérést én és egy hallgatóm csináltuk. Meg tudod nézni a kódokat, ott van a gép és az oprendszer specifikáció, valamint az összes olyan elemzés, hogy miért _nem_lassabb_ a Jáva, sőt, miért gyorsabb bizonyos esetekben.
Persze ettől még nyugodtan lehetsz ignoráns, és mondhatod a "Java lassú" mantrát :)
- A hozzászóláshoz be kell jelentkezni
OK, majd figyelembe veszem a saját get a facts tesztemben.
------
gentóhuszár
- A hozzászóláshoz be kell jelentkezni
"get a facts teszt" - :-DDDD
--
Gentoo motto: It's worth spending eight hours trying to make something load 20ns faster.
- A hozzászóláshoz be kell jelentkezni
És akkor innen indul, hogy kb nem lehet mérni semmit.
Mert nekem a startup ugyanúgy beletartozik a futásidőbe. Persze komolyabb programnál nyilván elhanyagolható.
Illetve hajamra kenhetem az optimalizáló fordítót, ha nem futtatok valamit 10x, mondjuk egy GUI programban, és nem értem, miért kell bika gép egy eclipse-nek.
Egyszer látnék benchmarkot normálisan összemérhető és nem légbőlkapott programokkal...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Az én benchmarkom java vs cpp ügyben lásd feljebb. Mi nem azt mértük, hogy mikor indul a JVM, hanem azt, hogy mennyi ideig fut egy kód az adott nyelven. Elég sokszor ellenőriztük, és nem csak a cikkben leírt konfigurációkon.
Egyébként igazad van: egy GUI program esetén a startup beleszámít, de meg lehet ezt fogni más oldalról is: a startup általában elhanyagolható idő akkor, ha hosszabb ideig fut a program. Java-t tipikusan nem 45 ms alatt lefutó perl script helyett használsz, hanem vagy szerver oldalon egy indítással hónapokig futó alkalmazásban, vagy olyan gui-ban, amit órákon keresztül használsz.
Az Eclipse meg egyszerűen csak szar, használj helyette pl. Netbeans-t :). De van más jól megírt és responsive java gui program is...
Jah, és egy nagyon impresszív benchmark, beszédszintetizátor C kód átírva Java-ra:
http://freetts.sourceforge.net/docs/index.php#performance
- A hozzászóláshoz be kell jelentkezni
Hmmm, ezt szomorúan hallom.
Mondjuk meglepődtem volna, ha nem így van, elvégre egy ennyire új/kevéssé fejlesztett nyelv esetében nem várhatunk túl fejlett optimalizációt a fordítókban.
Meg is lepődtem a D nyelv honlapján közzétett (egyetlen) benchmarkon, ami (természetesen) a D nyelvet hozta ki győztesnek...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Miért nem?
A GCC például három rétegű: frontend (forráskód elemzés és belőle RTL felépítése), RTL optimalizáció, és backend (kódgenerálás az adott processzor, Operációs Rendszerh és kimeneti formátumnak megfelelően). Ha a D nyelvnek jól elkészítik a frontendjét és a bootstrap kódot, valamint a beépített feladatok ellátása (pl. GC megvalósítáasa) is megvan, akkor már fordítja is az új nyelvet optimalizáltan. Ráadásul a GCC már régóta tud jópár dolgot: pl. GC a java fordításkor, beágyazott függvények C/C++ nyelv esetén is, stb.
- A hozzászóláshoz be kell jelentkezni
ld. GDC (link a cikkben)
- A hozzászóláshoz be kell jelentkezni
meglep egyébként hogy a "mit tud" kipróbálása egy sebességteszből állt pont nálad, mivel gondolom egyetértesz, hogy a generált kód sebessége a nagyon sok szempont közül csupán egy
- A hozzászóláshoz be kell jelentkezni
Persze. De ha a programozási nyelvnél nem az alkalmazhatóság okoz nehézséget (mert a D-nél ezzel pl. nincs gond), hanem a teljesítmény, akkor sebességtesztet kell írni :). Pythonhoz pl. nem is írok sebességtesztet :P
Komolyabban szólva: Sok év tapasztalattal és sok programozási nyelv ismeretével egy újabb megtanulása / átlátása már nem egy nagy cucc. Ami eldöntheti, hogy érdemes-e vele foglalkozni, az kb. az, hogy
- Összemérhető-e a gyorsasága a jelenleg elterjedt platformokkal. Ha nem, akkor úgysem terjed el production környezetben.
- Ha összemérhető (legfeljebb 2x-es szorzó), akkor nyújt-e annyi plusszt, ami megnöveli a hatékonyságot annyira, hogy megérje alkalmazni.
Nos, a D számomra elbukta az elsőt, és a másodiknál eléggé alulteljesít a Javahoz képest. Szóval maradok Java programozó :)
- A hozzászóláshoz be kell jelentkezni
A BAPC volt a legkiralyabb nyel amivel eddig dolgoztam, imadtam. Gyorsvolt 1xru mint a 100-as szeg. Csak sajna mar nem fejleszi 1 A'rpi nevu emberke.....
- A hozzászóláshoz be kell jelentkezni
nna. írjanak (át) egy rendszert D-ben(be), utána beszélünk. hehe
- A hozzászóláshoz be kell jelentkezni