Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů ke zprávičce PHP mění oddělovač jmenných prostorů na zpětné lomítko

uživatel si přál zůstat v anonymitě ---.59.48.77.static.gemnet.cz
26. 10. 2008 22:16

kdyby

se jmena trid v PHP psala s velkym pismenem, tak by to problem nebyl, ne? Tedy az na poruseni zpetne kompatibility s PHP4?

Napriklad v Ruby to tak je, ze jmena trid jsou konstanty a jako takove tedy museji zacinat velkym pismenem

Proc vlastne PHP umoznuje psat jmena trid malym pismenem? Neni to bordel?
dayvee
dayvee (neregistrovaný) ---.static.adsl.vol.cz
27. 10. 2008 0:54

Re: kdyby

ne, neni to bordel. k tomu kdyby jmena trid byly konstanty, nesly by provadet kousky jako:
$a = new $b();
kde $b je jmeno tridy. velice sikovna vec :)
uživatel si přál zůstat v anonymitě ---.59.48.77.static.gemnet.cz
27. 10. 2008 1:28

Re: kdyby

mysleno, ze je mozna skoda, ze PHP neni case-sensitive

kdyby PHP bylo case-sensitive a tridy se psaly 'capitalized', zatimco namespaces 'lowercase', tak by bylo po problemu. Nebo alespon tuto konvenci dodrzovat. PHP vyvojari ale s oblibou pisou jmena trid malym (viz dokumentace k namespaces)
Zdenek aura:66
27. 10. 2008 8:12

Re: kdyby

vyhoda? :D tak s tim tedy nesouhlasim. tato vyhoda mozna usnadnuje programove volat tu, nebo onu tridu, ale tento zpusob mi pride naprosto nestastny. proc neni nejaka knihovna v SPL, ktera by udelala to same, ale mene "prasacky"? (jako v Jave nebo .NET ?)
Martin Povolny
Martin Povolny (neregistrovaný) ---.solnet.cz
27. 10. 2008 10:34

Re: kdyby

ale sly

retez = Kernel.const_get('String').new

ono je mozne delat veci ciste a soucasne flexibilne

bohuzel pro PHP uz je pozde, z te tuny exkrementu uz to nikdo nevyhrabe :-(
Jan Molič
Jan Molič (neregistrovaný) ---.1-br1.awnet.cz
27. 10. 2008 17:11

Re: kdyby

V Ruby jména tříd konstanty jsou. To, co píšete, provést lze i v Ruby - například pomocí eval().

Přesto nepokládám tyto konstrukce za přínosné; sice s nimi lze dělat všemožná "magie", ale v praxi jsou pak programy mnohem hůř čitelné, zejména pro někoho, kdo kód nepsal.
Miloslav Ponkrác aura:75
27. 10. 2008 22:55

Re: kdyby

V PHP je také eval, a lze to provést také. Kromě toho je v PHP i reflexe, lze to provést i přes ní. A pak jde také založit instanci přes její název v proměnné.

Jinak eval je vždy až ta nejhorší možnost, cokoli jiného je skoro vždy lepší.
Miloslav Ponkrác aura:75
27. 10. 2008 16:45

Jen to ne

Právě násilné vnucování konvencí názvů všeho v Ruby je jedna z věcí (z mnoha dalších), proč jsem se Ruby vyhnul.

A jsem velmi rád, že žádný jiný jazyk, se kterým jsem se setkal žádné násilné konvence ohledně velikosti písmen v identifikátorech nepředepisuje.
uživatel si přál zůstat v anonymitě ---.59.48.77.static.gemnet.cz
27. 10. 2008 17:39

Re: Jen to ne

vy pisete konstanty malym?
Miloslav Ponkrác aura:75
27. 10. 2008 22:47

Re: Jen to ne

Vám to nějaký jazyk vnucuje? Kromě Ruby existuje jazyk, který Vám na úrovni syntaxe vnucuje nějaká pravidla pro tvorbu identifikátorů konstant?
uživatel si přál zůstat v anonymitě ---.59.48.77.static.gemnet.cz
27. 10. 2008 23:19

Re: Jen to ne

ano, treba Erlang :) A vlastne kazdy jazyk si vynucuje pravidla pro pojmenovavani vsech identifikatoru, nejenom konstant

a co je na tom vlastne spatneho? Vzdyt prece vsichni konstanty pisou velkymi pismeny (vcetne Vas), je to dobra konvence, ne?

nemel byste takto na Ruby dstit siru, nezaslouzi si to!
Miloslav Ponkrác aura:75
28. 10. 2008 0:55

Re: Jen to ne

Erlang je silně velmi rozšířený a používaný mainstreamový jazyk. :-)

Každý jazyk si vynucuje nějaká pravidla pojmenování identifikátorů - nicméně pro všechny identifikátory v modulu/programu jsou obvykle pravidla stejná bez ohledu na to, zda jsou to konstanty, proměnné, třídy, funkce, atd.. A tak to má být. Jen mizivé procento jazyků nemá takto konzistentní řešení.

U konstant je rozdíl mezi "lidským pojetím konstanty" a "počítačovým pojetím konstanty". A mohou se lišit pravdila pro psaní i mezi těmito dvěma pojetími. Programovací jazyk Vám vždy vnutí jen to počítačové pojetí. Ale programátoři (dobří) píšou zdroják pro člověka - a počítačová konstanta může být navenek prezentována třeba jako proměnná (pokud jí třeba v další verzi jako proměnnou hodláte udělat). A nebo tisíc jiných možností.

Ohledně Ruby - nemám nic proti němu, ale rozhodně to není jazyk, který by měl být vzorem. Mnoho věcí vyřešil dle mého soudu nepříliš ideálně. A zvláště pokud znáte vzor Ruby, Smalltalk - kdysi hodně populární a velmi čistý jazyk, pak pochopíte dvojnásob. Jestli bych něco nerad, tak to aby se Rubym inspirovali jiné jazyky, a už vůbec ne v oblastech jako je nesmyslné vnucování velikosti písmen v identifikátorech přímo na úrovni syntaxe.
Zasílat nově přidané příspěvky e-mailem