Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[D] D Programming Language

[es] :: Ostali programski jezici :: [D] D Programming Language

Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 29335 | Odgovora: 130 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon [D] D Programming Language12.09.2003. u 19:05 - pre 250 meseci
Poodavno sam čuo za programski jezik D

http://www.digitalmars.com/d/

ali ga nisam ozbiljno shvatao, dok juče nisam u C/C++ User Journal-u pročitao uporedni prikaz identity vs equality objekata na jezicima C++, Java, C#, Python i D. Kako vam se sviđa ovo čudo?
 
Odgovor na temu

DDMM
Dejan D. M. Milosavljevic
Danguba
Gajba, ali ne piva.

Član broj: 2544
Poruke: 89
*.vdial.verat.net

Sajt: www.ddmrm.com


Profil

icon Re: [D] D Programming Language16.09.2003. u 18:42 - pre 249 meseci
Na prvi pogled zakljucujem:

Smuti pa prospi jezik!

Npr.
1. Ima templejtove a napravili su string i niz kao tip.
2. Nacrnise #define.


Jezik treba da bude ko formalna teorija: minimalan, neprotivurecan i potpun.
Ostalo su teoreme ( biblioteke, pr. STL u C++).
Ma ko da je pisao D bolje da ga nije pisao.


X
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [D] D Programming Language18.01.2007. u 21:27 - pre 209 meseci
ovo je matora tema, ali ja sam skoro cuo za D programski jezik i resio da ga isprobam. Isprobao sam ga, svideo mi se i samo sam hteo da vidim da li se na es-u pisalo o ovome...

D je jezik po mom ukusu, izbaceno je sve ono iz c++ zbog cega ne volim c++, a posto sam ja svoje prve programerske korake imao u vb-u (znam, recicete da je los izbor za pocetnika, ali ja tad nisam nameravao da se ozbiljno bavim programiranjem) postojanje string tipa i dinamicnih nizova ugradjenih u jezik mi mnogo olaksavaju posao, takodje izbacen je preprocessor (jesu nacrnili #define, ali po meni je to sa razlogom :D) zbog koga nikad nisam voleo da citam tudji c++ kod.
a postojanje garbage collectora u mnogome olaksava rad sa memorijom (tj, ne moram vise da se brinem da li sam oslobodio svu memoriju koju sam zauzeo)...

mislim da cu se drazti D-a odsad, a da c++ vise necu uzimati u ruke :)

preporucio bih svima koji nisu probali D, da urade to jer ne mogu nista da izgube, samo da dobiju!
 
Odgovor na temu

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
67.151.201.*

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: [D] D Programming Language18.01.2007. u 22:20 - pre 209 meseci
Citat:
preporucio bih svima koji nisu probali D, da urade to jer ne mogu nista da izgube, samo da dobiju!

Mogu da izgube, šansu da nauče jezik za koji postoje plaćeni poslovi.
Ako ti je C++ težak drži se VB, jer od D nema 'leba. :)

 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [D] D Programming Language19.01.2007. u 15:28 - pre 209 meseci
ma nije meni tezak c++, samo ga ne volim jer je (za mene) mnoooogo ne citljiv, jeste da je najplaceniji posao c++ programera, ali nije sve u parama :)
bar ja tako gledam na programiranje (i mogu tako da posmatram stvari jer tek treba da upishem fax, tako da me jos uvek moji izdrzavaju), a i ja mislim da se i na programske jezike moze primeniti ono "covek vredi onoliko koliko jezika poznaje", mozda ce i D jednog dana (kazem mozda) biti zastupljeniji, ko zna...
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: [D] D Programming Language19.01.2007. u 15:47 - pre 209 meseci
Razgledao sam D dosta puta i čak imao prili-ke da raspravljam sa autorom jezika Walterom, ali sam došao do zaključka da je učenje D-a gubljenje vremena. Niti ćeš naći posao sa njim, niti može da te nauči modernim programskim stilovima i tehnikama. Ako već imaš vremena za učenje jezika koji ne mora da ti se obavezno isplati, pogledaj npr Haskell ili Boo.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [D] D Programming Language19.01.2007. u 18:27 - pre 209 meseci
Ja sam se tek "sreo" sa D-om, tako da cu provesti malo vremena uceci ga jer (kao sto sam vec rekao) je jezik po mom ukusu. Znam da je znanje c++-a A MUST, ali sasvim sam siguran da cu za neke svoje licne potrebe (ili open source projektem a jedan sam vec zapoceo u D-u) radije programirati u D-u nego u C++u, a mozda i sve ovo pricam jer nikako da nateram sebe da uzmem c++ i da radim samo u njemu nekih 5-6 meseci dok se ne naviknem...
sto se tice Haskell-a i Boo-a, pogledacu ih mada koliko sam video (samo preleteo pogledom) Haskell ne podrzava oop a Boo je baziran na Phytonu (a Phyton i Perl su jedini jezici u kojim ZNAM da nikad necu raditi, mnogo su "ruzni", perl pogotovu :D)
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: [D] D Programming Language19.01.2007. u 19:02 - pre 209 meseci
C++ uopšte nije "A MUST" - sve zavisi čime želiš da se baviš.

Haskell naravno nije OO, to je "čist" funkcionalan jezik i baš zato ti savetujem da ga pogledaš.

Boo ima sintaksu baziranu na Pythonu ali je suštinski vrlo različit od njega. Boo ima statički sistem tipova, za razliku od Pythona. Što se "lepote" tiče, to je naravno stvar ukusa, ali priznajem da je ovo prvi put da vidim da neko stavlja Perl i Python u isti koš kad se tiče lepote sintakse.
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: [D] D Programming Language19.01.2007. u 21:07 - pre 209 meseci
Citat:
krckoorascic: sto se tice Haskell-a i Boo-a, pogledacu ih mada koliko sam video (samo preleteo pogledom) Haskell ne podrzava oop


Postoje neke OO ekstenzije Haskella (Haskell++, O'Haskell), a i razne emulacije unutar Haskellovog sustava tipova koji je pak dovoljno moćan da prodrži većinu onog što se uobičajeno podrazumijeva pod sintagmom "OO" (a bome i štošta što ni D niti C++ neće imati tako brzo):

http://homepages.cwi.nl/~ralf/OOHaskell/

Citat:
To deliver a faithful, convenient and comprehensive object system, several techniques had to be discovered and combined. Proper effort was needed to preserve Haskell’s type inference for OO programming idioms (as opposed to explicit type declarations or type constraints for classes, methods, and up-casts). The obtained result, OOHaskell, delivers an amount of polymorphism and type inference that is unprecedented. Proper effort was also needed in order to deploy value recursion for closing object generators. Achieving safety of this approach was a known challenge (Remy, 1994). In order to fully appreciate the object system of OOHaskell, we also review less sophisticated, less favourable encoding alternatives.

Not only OOHaskell provides the conventional OO idioms; we have also language-engineered several features that are either bleeding-edge or unattainable in mainstream OO languages: for example, first-class classes and class closures; statically type-checked collection classes with bounded polymorphism of implicit collection arguments; multiple inheritance with user-controlled sharing; safe co-variant argument subtyping. It is remarkable that these and more familiar object-oriented features are not introduced by fiat — we get them for free. For example, the type of a collection with bounded polymorphism of elements is inferred automatically by the compiler. Also, abstract classes are uninstantiatable not because we say so but because the program will not typecheck otherwise. Co- and contra-variant subtyping rules and the safety conditions for the co-variant method argument types are checked automatically without any programming on our part. These facts suggest that (OO)Haskell lends itself as prime environment for typed object-oriented language design.


Naravno, smisao istraživačkih jezika kao što su Boo ili Haskell nije da se koriste u produkciji ili da rješavaju neke "konkretne" probleme - tu su da radi mentalne tjelovježbe (pogledaj primjere za quick sort ili računanje Hammingovih ili Fibonaccijevih brojevima u Haskell one-linerima), ili da guraju granice nedolazećih tehnologija u mainstream jezicima (ukoliko ih ne razvijaju programeri-hobisti već korporativni istraživački labovi).

Ako imaš dovoljno slobodnog vremena definitivno se posveti barem jednoj "nestardardnoj" paradigmi, u jezicima kao što su Scheme, Haskell ili O'Caml. Trenutno je stanje stvari da mainstream jezici evoluiraju brže nego ikad prije, do-jučer nepojmljve featurez u roku par godina postanu standardni idiomi korištenja. Recimo, vrlo je moguće da sljedeća iteracija Jave bude pružala neki shit zvan "poopćena sučelja" (generalized interfaces), a koja bi bila mahom bazirana na Haskellovim "klasama tipova" (type classes - ovako Haskell ostvaruje ad-hoc polimorfizam):

http://lambda-the-ultimate.org/node/1939

Također ni ja ne bih trpao u isti koš Python i Perl po ljepoti sintakse. Python ipak nije write-only jezik ;)

Što se tiče D-a: za moj je ukus previše high-level i low-level koncepata nakalemljeno u jedan jezik. D izgleda pokušava biti "Katica za sve", pri čemu ne uspijeva ekscelirati ni u čemu posebnom. Java i LISP su odavno pokazali da skup featurea jezika nema nužno korelacije sa tržišnim uspjehom, svaki sa svoje strane ljestvice naravno. Walter Bright me neodoljivo podsjeća na križara koji vodi rat koji ne može dobiti, i koji je odavno izgubio papinu encikliku u kojoj piše protiv koga se "bori" :)
 
Odgovor na temu

alexione
Aleksa Todorovic
Sremski Karlovci

Član broj: 46927
Poruke: 29
*.dialup.neobee.net.



Profil

icon Re: [D] D Programming Language19.01.2007. u 22:47 - pre 209 meseci
D je zaista dobar programski jezik za ucenje modernih tehnologija u programiranju. Jednom kada covek nauci sta su zapravo template-ovi (a sta bi trebalo da budu - hate No1 na C++), ili kako zapravo treba da izgleda cisto i lepo nasledjivanje (bez brljavstina koje nastaju zbog virtual-a - hate No2 na C++), najbitnije od svega izostanak include fajlova (hate No3 na C++ i tu stajem). Licno bih mnogo pre uveo da se u nastavi na nasim fakultetima (pmf, ftn, ...) uci D nego Java ili C++.

Takodje, istina je da u D-u ne leze pare, bar ne kao jeziku u kome ce biti pisana aplikacija. S druge strane, savladavanjem D-a, verujem da bi velikoj vecini programera pomoglo da dobiju pravu sliku o OO programiranju, koje zaista jeste neophodno.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [D] D Programming Language19.01.2007. u 23:16 - pre 209 meseci
@alexione: konacno neko da "stane na moju stranu" (sala naravno) :)

sto se tice toga sto sam pomenuo Perl i Phyton "u istom kosu", ja sam mislio na "kos necitljivih jezika", Phyton jeste dosta citljiviji od Perla, ali po meni je zasluzio da se nadje u istoj grupi sa Perlom (sto se tice lepote koda) iz razloga sto su blokovi komandi u Phytonu odvojeni whitespaceom (tj istim nivoom whitespacea), to je koliko ja znam o Phytonu, nisam ni pokusavao da ga ucim jer sam prvo pogledao neke primere u Phytonu i nisam mogao lako da ih procitam... moguce je da gresim, ali to je moje misljenje...

jos jedan + kod D-a u odnosu na C/C++ je u brzini kompajliranja, D kompajler kod od 10-ak modula (ukupno oko 3000 loc) kompajlira za nekih 10-ak sekundi na 400MHz dok recimo VC++ slican kod moze da kompajlira i do 1 minut (na 400MHz)


i ja bih voleo da postoji mogucnost da se D uci na fakultetima, ali o tome mozemo samo da mastamo, bar za sada...


offtopic:
da li neko zna kakav je izbor jezika na FON-u?
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: [D] D Programming Language19.01.2007. u 23:44 - pre 209 meseci
Citat:
alexione: D je zaista dobar programski jezik za ucenje modernih tehnologija u programiranju.


Ne samo da se ja ne slažem, već se ni Walter Bright ne slaže: http://www.digitalmars.com/d/overview.html

Citat:

Basic or Java is more suitable for beginners. D makes an excellent second language for intermediate to advanced programmers.


Moram da dodam da se ne slažem ni sa Walterom da su Basic i Java dobri jezici za početnike (ili za bilo koga drugog :) ), a ni da je D posebno dobar za iskusne programere.

Citat:
cynique
Što se tiče D-a: za moj je ukus previše high-level i low-level koncepata nakalemljeno u jedan jezik. D izgleda pokušava biti "Katica za sve", pri čemu ne uspijeva ekscelirati ni u čemu posebnom. Java i LISP su odavno pokazali da skup featurea jezika nema nužno korelacije sa tržišnim uspjehom, svaki sa svoje strane ljestvice naravno. Walter Bright me neodoljivo podsjeća na križara koji vodi rat koji ne može dobiti, i koji je odavno izgubio papinu encikliku u kojoj piše protiv koga se "bori" :)


Upravo tako. Dojadio je i Bogu i ljudima na comp.lang.c++.moderated listi sa svojom glupavom propagandom. Što je najsmešnije, on sam živi od prodaje C++ kompajlera :)


 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: [D] D Programming Language19.01.2007. u 23:48 - pre 209 meseci
Citat:
alexione: D je zaista dobar programski jezik za ucenje modernih tehnologija u programiranju.


Kao što je već par puta spomenuto - za učenje modernih, najmodernijih i cutting-edge tehnologija postoje neusporedivo superiorniji akademski (i raznorazni "skriptni" dinamički tipizirani jezici koji niču kao gljive poslije kiše) jezici :) Stvarno ne vidim gdje se tu D uklapa.

Citat:
Jednom kada covek nauci sta su zapravo template-ovi


Turing-potpun (vrijeme kompajliranja je neodlučivo :) metajezik sa najružnijom i nagadnijom moguće zamislivom sintaksom, rame uz rame sa Brainfuckom i Intercalom? :)

Citat:
ili kako zapravo treba da izgleda cisto i lepo nasledjivanje (bez brljavstina koje nastaju zbog virtual-a - hate No2 na C++),


Što točno želiš ovim reći? Da su java-style po defaultu virtualne metode u D-u Dobra Stvar (TM) ? :)

Citat:
Phyton jeste dosta citljiviji od Perla, ali po meni je zasluzio da se nadje u istoj grupi sa Perlom (sto se tice lepote koda) iz razloga sto su blokovi komandi u Phytonu odvojeni whitespaceom (tj istim nivoom whitespacea), to je koliko ja znam o Phytonu, nisam ni pokusavao da ga ucim jer sam prvo pogledao neke primere u Phytonu i nisam mogao lako da ih procitam... moguce je da gresim, ali to je moje misljenje...


To je tzv. off-side pravilo i predstavlja jedan od featurea koje je Python maznuo od Haskella. Pravila možeš nabrojati na prste jedne ruke i vrlo su intuitivna. Inače, u Haskellu možeš i eksplicitno pisati {, } i ; kao separatore izraza, no prije ili kasnije ćeš shvatiti da je to ružniji način :)

Citat:
jos jedan + kod D-a u odnosu na C/C++ je u brzini kompajliranja, D kompajler kod od 10-ak modula (ukupno oko 3000 loc) kompajlira za nekih 10-ak sekundi na 400MHz dok recimo VC++ slican kod moze da kompajlira i do 1 minut (na 400MHz)


Možda je brži (iako je gornja izjava o odnosu brzina kompajliranja sumnjivo nesrazmjerna :), ali sumnjam da D kompajler emitira nativni kod po performansama imalo usporedivim sa VC++. Koliko vidim ima i jedna implementacija sa GCC back-endom, ali vjerojatno o njoj ne pričaš pošto je GCC dosta spor inače :)
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: [D] D Programming Language20.01.2007. u 00:10 - pre 209 meseci
Citat:

sumnjam da D kompajler emitira nativni kod po performansama imalo usporedivim sa VC++

to je verovatno tacno, mada DMD (D kompajler) ima i -optimize switch sa kojim proces kompajliranja se po duzini trajanja priblizava onom VC++a, tako da verovatno (sigurno) ispegla malo generisani kod sa tim switchom (postojanje opcije za optimizovanje je nesto sto ja volim kod kompajlera, nisam do sada video ni jedan c++ kompajler u kom mozes da iskljucis optimizaciju, ali nisam mnogo ni razgledao, da budem iskren)

Citat:

Walter Bright me neodoljivo podsjeća na križara koji vodi rat koji ne može dobiti, i koji je odavno izgubio papinu encikliku u kojoj piše protiv koga se "bori" :)

ja mislim da ipak nije lepo tako govoriti o nekome ko je ulozio trud i vreme u nesto sto je pre svega besplatno a i nekome korisno, ja sam uvek bio na strani open source-a i free softwarea i uvek cu ceniti ljude koji proizvode besplatan (i open source) softver, jer sam ja dosta naucio iz open source projekata i resio sam da se oduzim open source zajednici tako sto cu i sam postatio deo nje (naravno, ja sebe jos uvek smatram pocetnikom, ali ima vremena, tek mi je 19 godina :D)


Citat:

Koliko vidim ima i jedna implementacija sa GCC back-endom, ali vjerojatno o njoj ne pričaš pošto je GCC dosta spor inače :)

ne pricam o GDC-u jer ga nisam probao :D
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.adsl.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: [D] D Programming Language20.01.2007. u 14:02 - pre 209 meseci
Citat:
krckoorascic: ja mislim da ipak nije lepo tako govoriti o nekome ko je ulozio trud i vreme u nesto sto je pre svega besplatno a i nekome korisno, ja sam uvek bio na strani open source-a i free softwarea i uvek cu ceniti ljude koji proizvode besplatan (i open source) softver, jer sam ja dosta naucio iz open source projekata i resio sam da se oduzim open source zajednici tako sto cu i sam postatio deo nje (naravno, ja sebe jos uvek smatram pocetnikom, ali ima vremena, tek mi je 19 godina :D)
Inace za C++ ne postoje besplatni kompajleri i alati...??

Citat:
cynique: Turing-potpun (vrijeme kompajliranja je neodlučivo :) metajezik sa najružnijom i nagadnijom moguće zamislivom sintaksom, rame uz rame sa Brainfuckom i Intercalom? :)
Zasto, meni su template-i uredni i EFIKASNI.

Citat:
krckoorascic: i ja bih voleo da postoji mogucnost da se D uci na fakultetima, ali o tome mozemo samo da mastamo, bar za sada...
I sta bi time studenti dobili?


D mi izgleda kao da se nalazi izmedju C++ i C# (Jave), sta je po meni jako lose. Time se nalazi nigdje. C++ ce opet ostati konkurentan u svom podrucju, a C# (Java) u svome, nemoguce im je parirati iz sredine.

Lijepo je sto se covjek potrudio napraviti tako nesto i sto jos se trudi propagirati svoj proizvod, ali ruku na srce moje misljenje je da D nikada nece zazivjeti.
Ono sto mene veseli je novi C++ standard.
 
Odgovor na temu

alexione
Aleksa Todorovic
Sremski Karlovci

Član broj: 46927
Poruke: 29
80.74.160.*



Profil

icon Re: [D] D Programming Language20.01.2007. u 14:40 - pre 209 meseci
Citat:
Kao što je već par puta spomenuto - za učenje modernih, najmodernijih i cutting-edge tehnologija postoje neusporedivo superiorniji akademski (i raznorazni "skriptni" dinamički tipizirani jezici koji niču kao gljive poslije kiše) jezici :) Stvarno ne vidim gdje se tu D uklapa.


Stvar kompromisa. Da ne govorim uopsteno, na pmf-u u ns-u, veliki broj studenata koji zavrse jednostavno nemaju pravu sliku o tome sta je OO i sta su zapravo svi mehanizmi koji u njemu postoje (uci se Java). Racunaj i da veliki broj njih jednostavno nikad ranije nije programirao (iz hobija, ako nista drugo). U takvoj situaciji, Eiffel, Ocaml, Haskell bi bili prevelik zalogaj. U takvoj situaciji, D bi bio mnogo bolji od drugih jezika.

Citat:
Što točno želiš ovim reći? Da su java-style po defaultu virtualne metode u D-u Dobra Stvar (TM) ? :)


C++ ima najgore moguce resenje. Provero u praksi, potkrepljeni dokaz gomile znoja i nerava. Da, veoma je dobro da su sve metode po defaultu virtualne. To je inace Java/C#/D/Eiffel-style. Ono sto fali u Javi je sto nikad ne znas da li metodu prvi put definises ili je redefinises. U Eiffel-u za to postoji redefine, u C#-u i u D-u tu je override. Cak i Delphi poseduje override (mada je lose sto moras da navedes da je funkcija virtualna).

Citat:
Turing-potpun (vrijeme kompajliranja je neodlučivo :) metajezik sa najružnijom i nagadnijom moguće zamislivom sintaksom, rame uz rame sa Brainfuckom i Intercalom? :)


LOL Da li pricao o istom jeziku, istim template-ovima?

Citat:
Moram da dodam da se ne slažem ni sa Walterom da su Basic i Java dobri jezici za početnike (ili za bilo koga drugog :) ), a ni da je D posebno dobar za iskusne programere.


Koji je tvoj predlog?
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: [D] D Programming Language20.01.2007. u 14:45 - pre 209 meseci
Citat:
NrmMyth: Zasto, meni su template-i uredni i EFIKASNI.


C++ template metaprogramiranje je "uredno" samo mazohistima. Zar te gledajući npr. ovaj ne prolaze trnci duž leđne moždine? :)

Ako pod "efiksasnost" podrazumijevaš compile-time instancijaciju koja uključuje gubitak svih informacija o generičkom tipu i tako prisiljava kompilator da emitira bloatan unshearable međukod, potencijalno neodlučivno mnogo dugo odgađa završetak kompilacije, daje opskurne stranice i stranice grešaka za mismatched tipove nad generičkim algoritmima (koliko ono dugo čekamo na Stepanovljeve "koncepte"?) i uskraćuje bilo kakve mogućnosti runtime optimiranja - onda da, C++ templates su "efikasni".
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: [D] D Programming Language20.01.2007. u 16:04 - pre 209 meseci
Citat:
alexione:Stvar kompromisa. Da ne govorim uopsteno, na pmf-u u ns-u, veliki broj studenata koji zavrse jednostavno nemaju pravu sliku o tome sta je OO i sta su zapravo svi mehanizmi koji u njemu postoje (uci se Java). Racunaj i da veliki broj njih jednostavno nikad ranije nije programirao (iz hobija, ako nista drugo). U takvoj situaciji, Eiffel, Ocaml, Haskell bi bili prevelik zalogaj. U takvoj situaciji, D bi bio mnogo bolji od drugih jezika.


Slika koju ovdje iznosiš mi se čini u najmanju ruku blago distorzirana. Kakvi su to budući softver inženjeri koji "nikad ranije nisu programirali", sve do polaganja kolegija koji uči OOP na nekoj višoj godini? Jadni takvi studenti ako započnu sa C++ ili D, paralelno upijajući neke opskurnalije jezika i štrebetajući "industry best practice" idiome i paterne. Takvim studentima će IMHO odabir jezika će im biti najmanji problem :) Možda je i najbolje da i ostanu na Javi, heh.

Sveučilišta predaju akademske jezike sa razlogom - nakon njih su industrijski jezici koji 20-30 godina kaskaju za njima mačji kašalj. Nekome tko je OO principe učio kroz Smalltalk, CLOS-style metaobjektne protokole i process calculus će Java izgledati kao dječja igra. Naravno, pristup i metodologija organizacije programerskih kolegija je izrazito specifična za pojedini fakultet, svakojaki su ekstremi mogući :)

Citat:
C++ ima najgore moguce resenje. Provero u praksi, potkrepljeni dokaz gomile znoja i nerava. Da, veoma je dobro da su sve metode po defaultu virtualne. To je inace Java/C#/D/Eiffel-style. Ono sto fali u Javi je sto nikad ne znas da li metodu prvi put definises ili je redefinises. U Eiffel-u za to postoji redefine, u C#-u i u D-u tu je override. Cak i Delphi poseduje override (mada je lose sto moras da navedes da je funkcija virtualna).


Vjerujem da za svakog tko tvrdi da je to Dobra Stvar (TM), bi se našlo barem još toliko fanatika koji bi rekli da nije :)

U C#, koji je najmlađi i najmoderniji od spomenutih jezika, po defaultu metode _nisu_ virtualne. Misliš zaista da ta odluka nije donesena na temelju gomile dokaza, znoja i nerava, odnosno odgovarajuće argumentirana od strane trusta mozgova koji definiraju buduće strategije MS-ovih proizvoda? Vjerujem da će guglanje naći barem 3-4 _jako dobra_ razloga od strane Hejlsberga et al.

Inače, u modernoj idiomatskoj Javi se preko anotacija uvijek specificira eksplicitni override kako bi kompajler mogao uhvatiti kad to ne radiš.

Citat:
LOL Da li pricao o istom jeziku, istim template-ovima?


Da. Iako u praksi većina kompajlera preko zastavica kontrolira dubinu instancijacije tako da ipak nije Turing-neodlučivo.. :)
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.adsl.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: [D] D Programming Language20.01.2007. u 16:13 - pre 209 meseci
Citat:
cynique: C++ template metaprogramiranje je "uredno" samo mazohistima. Zar te gledajući npr. ovaj ne prolaze trnci duž leđne moždine? :)

Kako znas da je ovo dobro rijesenje, da nije moglo bolje? Nigdje ne stoji da moras ovako iscrpno koristiti template.

Citat:
Ako pod "efiksasnost" podrazumijevaš compile-time instancijaciju koja uključuje gubitak svih informacija o generičkom tipu i tako prisiljava kompilator da emitira bloatan unshearable međukod, potencijalno neodlučivno mnogo dugo odgađa završetak kompilacije, daje opskurne stranice i stranice grešaka za mismatched tipove nad generičkim algoritmima (koliko ono dugo čekamo na Stepanovljeve "koncepte"?) i uskraćuje bilo kakve mogućnosti runtime optimiranja - onda da, C++ templates su "efikasni".
Govorimo o C++, jeli tako, nasljednik C? Cemu se cudis onda, C++ mora ostati dosljedan svojim pocetnim postavkama, odnosno pokusti rijesiti sto vise stvari unutar compile-time-a, da bi se dobilo na efikasnosti. Nus produkt jest bloatan kod, ali "that is the way C++ is".
Runtime optimiranje unutar C++, malo s alokatorom, cim jos? Ne cuje se bas cesto za "runtime optimizacija" i "C++" zajedno. Mozda sam jednostavno neinformiran, ali nebih bas puno racunao na runtime opt. dok pisem C++ kod.
Dali je STL efikasan?

Template metaprogramiranje mozda nije najefikasnije, ali je sigurno jedno od boljih rijesenja za mnoge probleme.
 
Odgovor na temu

FuzzyCreation

Član broj: 112586
Poruke: 33
*.eunet.yu.



Profil

icon Re: [D] D Programming Language20.01.2007. u 16:15 - pre 209 meseci



1. Neko rece: "Turing-potpun (vrijeme kompajliranja je neodlučivo :) metajezik sa najružnijom i nagadnijom moguće zamislivom sintaksom, rame uz rame sa Brainfuckom i Intercalom? :)"

Vreme kompajliranja i uopste kompajler nemaju veze sa problemom odlucivosti nekog algoritma. Odlucivost nekog algoritma je pitanje da li se algoritam na odgovarajuci input zavrsava u konacnom vremenu, naravno svi znamo da je u opstem slucaju (algoritam koji na inputu prima algoritam i kaze "da" ako se algoirtam na ulazu zavrsava u konacnom vremenu, "ne" u suprotnom slucaju) taj problem neodluciv, ali kompajler o tome nema pojma, posto on kompajlira (prevodi) program sa jednog programskog jezika, a ne odlucuje da li se taj program zaustavlja ili ne (sto je u pojedinacnim slucajevima moguce). Ako je program konacan u prostoru (a takvi su svi po definiciji algoritma kao Tjuringove masine) onda je kompajliranje svakog programa proces koji se zavrsava u konacnom vremenu. Stoga vreme kompajliranja ne moze biti neodlucivo. Moze biti samo vreme izvrsavanja. Sto nas dovodi do zakljucka da se ovde principijelno ne razlikuje kompajler od interpretera. Pitam se kako nekom pre mene ova izjava nije IZBOLA oci. Ja je svrstavam u top glupost koju sam u skorije vreme ovde procitao.


2. Neko rece: "Programski jezici treba da budu kao formalne teorije, minimalan, neprotivurecan i potpun (ako se dobro secam)"
Ok, postoje zahtevi i misljenja da su minimalisticki programski jezici (sa minimalnim brojem konstrukcija, koje cine bazu izracunljivih konstrukcija) dobri programski jezici. Jedan od zagovornika minimalizma je i Niklaus Wirth, po njemu dobar je jezik koji od konstrukcija ima samo: IF, WHILE i naredbu dodele (onakva kakva je u oberonu), a od tipova podataka: osnovne proste tipove, nizove, strukture(slogove) i pointere i nista vise. Ali zasto bi se neko odrekao na primer REPEAT konstrukcije ili SWITCH konstrukcije. Ne znam stvarno, ali oduzimanjem ovakve slobode, ne dobijamo nista na sigurnijem procesu pisanja koda.
Drugo svaki zahtev programskog jezika jeste da bude neprotivurecan, ne mozemo napraviti neprotivurecan programski jezik jer bi onda ostali uskraceni za okruzenje koje bi prevodilo taj program na jezik Tjurinzovih automata (funkcionalna tacka gledista), ali i za okruzenje koje bi izvrsavalo takav program.
Treci zahtev da programski jezik bude potpun je preteran zahtev, ne mozemo zahtevati potpunost neke formalne teorije ako zahtevamo neprotivurecnost (Gedelova teorema).
I pored toga pisanje programa u formalizmu najnizeg nivoa bilo bi jako tesko. Probaj na primer da napises generativnu gramatiku koja generise proste brojeve. Neces moci tako lako, prvo ces morati da napises Tjuringovu masinu koja bljuje proste brojeve, pa da je posle prevedes. Okruzenje u kome se programi pisu kao formalne teorije je jako ne-intuitivno, ali i korisno za izgradnju racunarske intuicije.

3. Ko vam je rekao da je C++ objektno-orjentisani jezik. C++ je smece. Kada uzmes paradigmu programskog jezika i napravis jezik koji odgovara tom modelu, a da pri tome odrzis kompatibilnost sa drugom paradigmom programskih jezika koja je daleko od ove prve najcesce dobijes s*****.

4. Efikanost nekog programskog jezika nema veze sa doticnim programskim jezikom. Stoga ne mozes reci C++ je brzi od Jave jer se C++ kompajlira a JAVA na primer interpretira. Sta ako se java interpretira na masini koja hardverski da interpretira java byte code. Izjave bilo koji program napisan programskom jeziku A je efikasniji od istog takvog programa napisanog u programskom jeziku B su jako relativna stvar i to uopste ne treba da bude stvar po kome se opredeljujemo za programski jezik kao prva stvar. Bitna jeste ali ne i kljucna.

 
Odgovor na temu

[es] :: Ostali programski jezici :: [D] D Programming Language

Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 29335 | Odgovora: 130 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.