[ pyc @ 21.10.2004. 11:19 ] @
http://jeremy.zawodny.com/blog/archives/002194.html
http://www.sitepoint.com/forum....php?p=498687&postcount=15

u principu se slazem sa njihovim stavovima.
[ Zlatiborac @ 23.10.2004. 21:27 ] @
Prochitao i zamislio se.,.,., komentari od mastera Smarty-ja???
[ broker @ 24.10.2004. 11:01 ] @
Zavisi kak se gleda na to. Kada je u pitanju uopstavanje funkcionalnosti za baze podataka slazem se sa iznetim tvrdnjama. Zaista ne vidim mnogo smisla u tome da se koristiti nesto tako zbog navodne kompatibilnosti i mogucnosti lake promene baze koja se koristi. Iz mog iskustva, slicnost na nivou sintakse izmedju baza nije bas na nekom zavidnom nivou i iste stari se cesto u razlicitim bazama rade prilicno razlicito. U svakom slucaju, nekakva slicnost postoji ali dovoljno je da se SQL komanda malo razlikuje i eto problema.

U svakom slucaju, cak i da se korsiti neki abstraction layer, onaj ko pise sam SQL upit opet mora da vodi racuna kako ga pise da bi mu to radilo na razlicitim bazama.

PHP funkcije su cini mise da voljnojednostavne i lake za koriscenje. O nekom abstraction layeru razmisljam samo kao mogucnosti da dodam novu funkcionalnost i neke mehanizme u radu sa bazama, ali opetkoristeci maksimalno specifinocsti baze koja je u pozadini i bez ikakve namere da omogucim da se isto koristi i na drugoj bazi. Mislim da je mnogo veca komplikacija insistiranje na kompatibilnosti sa razlicitim platformama i da to treba izbegavati. Ako aplikacija radi to sto treba, onda je najmanji problem obezbediti platformu koja je neophodna da bi ona radila.

Mdjutim kada su sistemi za sablone u pitanju, stvari stoje sasvim drugacije. Tacno je, slican princip se moze primeniti i iz samog PHP-a i izmisljanje novog jezika kao sto je to uradjeno u Smarty-ju nije neophodno, medjutim, da bi se napravio dobar template sistem, treba veliko iskustvo, dosta znanja, iskustva i mnogo truda. Smarty je postao popularan zato sto nudi mocnu funkcionalnost vec gotovu. Autori Smarty-ja su se odlucili da uvedu nov jezik jer su zakljucili da je programerima tako lakse da se prilagode novim principima koje trebaju da postuju. Da Smarty koristi PHP u presentation layer-u onda bi programeri bili na velikom iskusenju da tu i tamo iskoriste taj PHP i za nesto drugo. Ovako, kada se u sablonu koristi jedan programski jezik a u aplikativnom delu PHP, programer ne moze da se zanese i pocne da radi naopako.

Naravno to nije jedini argument. Sasvim je sigurno da korsicenjem posebnog programskog jezika Smarti obezbedjuje apsolutnu kontrolu nad aplikativnim delom, sto ce reci u dobroj meri osigurava da programer ne moze da urdi nesto sto moze da srusi ceo sistem ali isto tako, omogucava da programer sitnom intervencijom nad samim Smartijem (ne zaboravite Smarty je samo PHP klasa koju mozete da nasledite i menjate joj funkcionalnost u okviru svoje apliakcije) moze da postigne vrlo radikalne promene u ponasanju cele svoje aplikacije.

U svoj argumentaciju protiv smartija, odnosno protiv bilo kakvog slicnog mehanizma za sablone se zasniva na jednostavnim primerima gde je ocigledno da PHP takav kakav je obezbedjuje podjednaku funkcionalnost. Medjutim, kada stvari postanu komplikovane, a svaki iole ozbiljan sajt koij ima serversku PHP aplikaciju u pozadini jeste komplikovan, PHP gubi trku sa Smartijem. Tu se tek vidi koliko je novi pristup koji se uvodi sa Smarty-jem bolji i jednostavniji.

Zameraju da je smarty sporiji od cistog PHP-a. Naravno da jeste. Mora biti, jer je smarty klasa koja je napisana u PHP-u i radi gomilu posla kojisigurno oduzima vreme. Medjuitm, mislim da je taj argumen potpuno pogresan.

Prvo, usporenje nije toliko da predstavlja problem.

Drugo, kod odluke da li koristiti Smarty ili cist PHP, treba vagati sve prednosti i mane oba pristupa a siguran sam da kada se sve sabere mnogo vise prednosti nudi Smarty.

Ovo mi zvuci kao argumentazija za ili protiv servera za baze podataka. Svako ko je iskusan programer i ko je radio sa flat bazama i serverima, zna da su flat baze brze i pruzaju neke mogucnosti koje su rapozlozive zato sto se radi o flat bazama. Serverske baze su uvek tromije i nezgodne kada se sa njih vuce veca kolicina podataka.

Medjutim, svaki iskusan programer ce pre preporuciti bazi na serveru ako se radi o iole komplikovanoj aplikciji jer zna koliko je to napredniji sistem i koliko omogiucava dalji razvoj takve aplikacije.

Milsim, stvar jejasna, ako prvite neki jednostavan sajt iza koga soji neka vrlo jednostavna aplikacija sasvim je verovatno da ce vam biti lakse da je ne opterecujete smartijem. Medjuitm, kada aplikacija pocne da se komplikuje, brzo zazalite sto nemate Smarty jer skoro svaki mehanizam koji vam u komplikovanoj aplikaciji zatreba, imate gotov u Smarty-ju.

[ -zombie- @ 31.10.2004. 19:37 ] @
imali smo diskusiju koja se doticala ove teme, pa zato da se ne bi ponavljali..

http://www.elitesecurity.org/tema/12457

[ Zoran Rašković @ 23.11.2004. 20:53 ] @
Pa ovaj na Sitepointu daje jedan jako trivijalan primer. Šta je sa komplikovanijim stvarima, npr. nizovi (obični i višedimenzionalni)?

A i Smarty je smišljen da bude jedan korak bliže "običnom jeziku" i dizajnerima, odnosno onima koji se slabo petljaju sa php-om, da im olakša stvari kod prezentacione logike.
[ dado_k @ 31.10.2005. 21:00 ] @
evo znam da je tema stara ali mi je mnogo zanimljiva!
iskreno smatram ovo jednom velikom istinom! uope mi se ne sviđa smarty ja inače imam svoj pristup glede ispisa podataka ii svega! ja sve trpam u jednu varijablu $ispis gdje mi se nalazi sav ispis stranice ali isto tako imam i definirane dodatne varijable npr head tako da u head dio mogu dodati kad god želim što želim na jednostavan način! pošto nemam ispisa sve do zadnjeg trena rad sa sesijama i cookiesima opčenito header() je puno puno polakšano i puno mi je bolje nego koristiti php naredbe koje nedopuštaju outpu (ob_start) naravno ovdje će vjerojatno puno više ljudi biti kontra moga mišljenja i to razumijem zato jer ovo je smarty forum i ljudi koji ne žele koristit smarty (a jako jako puno ih je) i ne posjećuju ovo i nije ih briga ovdje su samo zaljubljenici u smartyja pa mije jasno da neću imat mnogo istomišljenika eniwej da čujem što vi mislite
[ broker @ 31.10.2005. 22:41 ] @
Gledaj ovako: kako raste tvoja PHP aplikacija trebace ti razni mehanizmi i bices prinudjen da ih napravis. Neke od njih si vec uradio je to sa promenljivama (ukljucujuci i head sekciju) je dobrim delom sustina kako radi smarti ili je vrlo lako napraviti trivijalnim dodatnim kodom.

E sad, posle nekog vremena kada napravis bogatu i jaku aplikaciju, i kada presaberes svu funkcionalnost, zakljucices da si sve vreme u stvari paralelno sa sopstvenom aplikacijom razvijao i sopstveni pandan Smartiju i da si mogao da pocnes da koristis Smarti od pocetka i tako pristedis sebi poprilicno vreme.

U celoj prici Smarti treba zameniti sa "neki sistem kao sto je Smarti".

Ja sam sa Smartijem dosao u dodir kada mi je zatrebala funkcionalnost koju on omogucava i to zato sto sam prvo seo, osmislio sta mi to treba pa trazio da li je neko nesto slicno uradio (jer ne volim da otkrivam toplu vodu). Isprobao sam razne sisteme slicne Smartiju ukljucujuci i nejga samog. U pocetku, nista mi se nije dopalo, svaki sistem je imao dosta zanimljivih mogucnosti ali ne i svih koje su mi trebale. Ne jednom, bio sam u iskusenju da radim od pocetka. Medjutim, znajuci da kao i svaki drugi programer i ja imam sklonost da ne volim da ucim novo i uvekmislim da bih ja to mogao da uradim bolje, ali i zahvaljujuci ipak poprilicnom programerskom isksutvu koje govori da se novo ako je dobro posle nekog vremena ipak primi i da dobar efekat, odlucio sam da ipak probam neki gotov proizvod. Zahvaljujuci nekim napisima na netu i ovde na ES-u, i sopstvenim testovima raznih sistema, odluka je pala da izaberem Smarti kao platformu za sablone.

Sabrao sam sta moze ali ista ne moze, proucio koliko je posla da mu dodajem ono sto mi treba a nema, zakljucio sam da je on sasvim dobra osnova.

Proslo je dosta vremena, iza sebe sada imam cak i ceo, i poprilicno mocan CMS koji mi mnog pomaze u radu, a koji je izmedju ostalog zasnovan i na Smartiju (doduse znacajno doteranom u funkcionalnosti) ali to ne korsitim uvek, nego prema proceni da li se ispalti angazovati to ili apliakciju raditi jednotavnijim nacinima. Moram priznati da sve cesce odluka pada da se koristi Smarti, jer se vremenom pokazalo da znacajno pojednostavljuje i ubrzava rad.

Nije uopste vazno da li koristis Smarti, neki drugi proizvod ili sam radis sopstveni sistem. Vazni su sami principi koji su kroz ovakve sisteme promovisani kao pozitivna pravila koja poboljsavaju aplikaciju i cine njenu proizvodnju laksom, i jednostavnijom, isto koliko i kasnije odrzavanje.
[ flylord @ 01.11.2005. 00:00 ] @
gle, to je pomenuo Broker, ali mnogi kazu zasto bih koristio Smarty (neki template engine) kad sam ja to napravio svoje koje radi cak i bolje od smarty-a. Mozda i jeste bolje, mozda nije, ali zar ne shvatate da ste opet napravili samo "neki novi Smarty" i nista vise. I ja ne vidim smisao da se bunite protiv toga kad vec sve sami napravite, to isto samo malo drugacije. Ja radim iskljucivo sa smartyjem, jer mi mnogo olaksava posao. Naravno, nije idealan za sve, ali je jako koristan za bilo koji malo veci site, pogotovo ako dizajn i kodiranje rade razliciti ljudi.
Ali ne bitno, ne vredi nekog ubedjivati da ne pravi nesto sto je vec napravljeno
[ noctua @ 01.11.2005. 07:19 ] @
Pozdrav!

Nemam obicaj da se ukljucujem u diskusije ovog tipa, ali imao sam jedno zanimljivo iskustvo na slicnu temu: "Da li da koristimo nesto gotovo ili da pravimo nase?"... Evo dozivljaja:
Nedavno sam radio na jednom projektu za, reklo bi se, ozbiljnog klijenta a pravljena je veoma ozbiljna i zahtevna aplikacija. Tim je imao 15ak ljudi posvecenih samo i iskljucivo aplikaciji.

Problem je bio da li da pravimo nas "Template Engine" za prikaz ili da uzmemo nesto gotovo i da ga modifikujemo...

Odluceno je, u visim krugovima, da pravimo nas "template"... Razlog tome je komercijala. Ukoliko se uzme neki gotov - free template, ili ako se kupi, nije bilo zgodno kasnije prodavati gotovu aplikaciju... Zbog licenci...

No, da ne zalazimo u tacnost, ispravnost i isplativost takve odluke, odluceno je da se pravi novi.

Za te potrebe odvojeno je 4 osobe iz tima + spoljni designer. Razvoj Engine-a je trajao skoro 6 meseci... Bilo je tu puno corsokaka u koje smo upadali zbog nepoznavanja problematike i 2 puta smo kretali od samog pocetka jer smo nailazili na probleme ne resive dotadasnjim nacinom rada...

S' obzirom da je aplikacija veoma kompleksna i zahtevna i da je Template Engine zapravo prilagodjavan funkcionisanju aplikacije to se i moglo ocekivati... Ostaje samo pitanje da li je sve to bila mudra odluka????

Elementarnom matematikom troskovi su bili 5(osobe)*6(meseci)*1(plata) maltene bacenih para... Malo slozenijom matematikom se dolazi do: Resenja koje je specificno (ne moze da se proda dalje kao komponenta); Kasnjenja; Konkurencija je vec izbacila proizvod i osvojila cevi deo trzista; Resavanja ne relevantnih problema (dakle razmisljanje o alatu a ne o problemu!) itd, itd...

Ja sam licno izvukao pouku: Ne izmisljati toplu vodu jer mozes mnogo vise da izgubis nego da dobijes...
E, sad, da li je u pitanju Smarti ili Fast ili kako god, nije bitno! Bitno je samo koliko vremena od projekta provedes radeci na samom Engine-u a koliko na aplikaciji... i sta time dobijas...

PS. Doduse, ovo su samo moja razmisljanja... I ne ocekujem da budu prihvacenja... Sujeta je cudo jedno....
[ bojan_bozovic @ 01.11.2005. 08:00 ] @
To the point!

PHP je sam template sistem - ima veliku biblioteku, ali ko ikoga tera da je uci celu (ako mu ne treba?)
BTW sigurno i vrhunski PHP programer nezna bas svaku od PHP funkcija ;) Ili ne mora da zna ;) Zamislite da DirectX C++ programera iz Bioware ispitujemo o poznavanju Qt biblioteke za UNIX ;) Ili linux programera o poznavanju DirectX ;)
[ caboom @ 01.11.2005. 16:13 ] @
Zawodny ukazuje na potpuno drugu stvar, a to je opasnost xyz abstraction layer-a. u sustini ovo obicno nije issue sa malim aplikacijama/sistemima/whatever, ali ko' god je radio na nekom slozenijem kodu sa slozenom "objektnom" strukturom i logikom koja je na dosta mesta pomerena ka bazi i tranziciji sa jedne baze na drugu, verovatno ce se setiti svih horror-a sa bilo kojom generickom implementacijom, ili bilo kakvim pokusajem pravljenja iste. bad, bad mojo, jedna od onih situacija kada arhitektura i, uslovno receno, cistoca resenja dobija dimenzije N+1 baga, sporog razvoja, mnogo prakticnih problema koji nisu predvidjeni specifikacijom i, sto je mozda i najgore, odstupanjem od inicijalnog "cistog" dizajna. whatever...

licno mi se ne dopada smarty zbog svoje php-centricnosti, zar je potrebno da templating format bude specifican i vezan za odr. arhitekturu/programski jezik? then again, it's the php way...
[ dado_k @ 01.11.2005. 19:52 ] @
na 1 mjestu ne sviđa mi se princip na koji radi smarty! druge template engine nisam ni isprobavao evo baš danas odmah ću downloadat neke druge pa da vidim moža me koja oduševi ;) iskreno nisam ni smartyju dao pravu šansu nisam s njime napravio ni jedan poveći projekat budem proobao nešto pa možda me i on sam oduševi
no ovaj način na koji radim mi se nekako najviše sviđa jer mi je najbrže najjednostavnije.
Al inače baš me briga dal je smarty u igri il nešt moje il neki treći TE najvažniji je output ono što sam korisnik weba može vidjet i ako to štima nikoga nije briga ni za smarty a ni za bilo što..
[ broker @ 02.11.2005. 13:29 ] @
Citat:
dado_k: na 1 mjestu ne sviđa mi se princip na koji radi smarty!


Ipak bi trebao da bude odredjen na koji toprinicp mislis. Ako je to sam princip koriscenja sablona, onda tu nesto niej u redu, posto ako izbacis taj prncip ostje ti staro dobro mesanje apliaktivnog i vizuelng dela apliakcije, sto je najveca moguca greska koju moze programer da napravi.
[ boccio @ 02.11.2005. 16:13 ] @
@noctua: Jako lep case study, sa zadovoljstvom sam ga procitao. Imam samo jedno pitanje za vas - kakva vam je to menadzerska odluka da razvijate template sistem sest meseci?!? Mislim, prosta procena projekta i inzenjer-sati ukljucenih u to je dovoljna da se odlucite za third-party resenje.

Naravno da nije problem u licencama, svaki ozbiljniji vendor ima opciju koja vam dozvoljava inkorporaciju tog template sistema u svoje komercijalno resenje, tako da taj deo tvog posta bas i ne kapiram...

Jel to menadzerski tim malo omanuo u proceni ili meni tu nesto bas nije najjasnije... ubiti pola godine na web-based projektu da bi uradio framework za svoj projekat, pa to ni Gugl ne bi uradio :) A time-to-market ode u tri lepe materine... bas me zanima ko su doticni "visi krugovi" :))
[ noctua @ 03.11.2005. 08:59 ] @
Pozdrav!

Da sam se ja nesto pitao u tim odlukama, ne bi to bas tako bilo...

No, evo malo objasnjenja:
- U pitanju je americka IT kompanija koju vodi nas covek koji je iz IT oblasti
- Visa instanca = prethodno pomenuti + Project Manager + Vlasnik (takodje iz IT oblasti!!!)
- Radjena je Web aplikacija
- Kompletna funkcionalnost aplikacije je u browser-u (browser independent)
- AJAX based GUI
- Nema instalacije na klijenstkoj maxini (ALI NEMA NIKAKVE INSTALACIJE), cak ni plug-in-ova. Nema ni mogucnosti za upotrebu ActiveX komponenti!!!!
- Aplikacija ima sve funkcionalnosti Windows-a (Drag&Drop, Copy/Paste, Look&Feel settings,...)
- ...

Postojala je potreba za nekim TE. Realno gledano, zbog specificnosti projekta, moralo se poraditi na tom TE. Ali...
Predlagali smo da uzmemo neki od gotovih AJAX based TE i nastavimo sa njegovom doradom (prilagodimo ga nasim potrebama). Nasli smo 10ak TE koji bi mogli da (za)vrse posao.
Procenjeno vreme za "obradu" nekog od gotovih resenja je bilo od 1/2 do 1 meseca...

E tu stupaju "visi krugovi"...

Kako je meni receno (doduse nisam ni tad shvatio to kako treba) postoje problemi sa licenciranjem. Ukoliko je TE pod nekom od "free" licenci onda i proizvod mora da bude pod "free" licencom (?!?!) a ako se kupi neko resenje onda mora da se i vendoru da % od zarade (?!?!) ili da se napise ko je to pravio (e to je pa tek nebitno ?!?!?!); mora se traziti posebna dozvola za ispravljanje CORE elemenata TE (hmmm....)
Ja sam citao razne licence ali nisam ih tako shvatao (doduse ni moj engleski nije na nivou njihovih pravnika, pa ne mogu da kazem koliko sam dobro sve razumeo...)

Sve u svemu, odluka je prelomljena preko kolena i reseno je kako je reseno.

Moje neko vidjenje cele price iz ugla "visih instanci":
- U Nisu je strucna radna snaga dzaba...
- Zasto placati skupe americke advokate oko ugovora kad ce ljudi nanovo izmisliti toplu vodu?
- Malo jeftinog research-a tehnologija i mogucnosti a ako nesto ispadne dobro je.
- Mi smo sve sami resili... (zar da stoji da smo uzeli od nekoga nesto????)
- Nedamo nikome nase pare od zarade!
- Mi smo sampioni!!! (vidi sajt: http://www.sampioni.com)

Salu na stanu, osim sujete, pohlepe ili neznanja ne vidim druge razloge za takve odluke. Sa druge strane, poslodavci su korektno (redovno i po dogovoru) placali ekipu tako da ljudi i nisu imali nesto preterano veliki motiv da se "izbore" za pametnije resenje...

Kako vec jednom rekoh, to su samo moja subjektivna razmisljanja...

Naravoucenije koje treba izvuci iz ove price:
Ukoliko gubite (svoje) vreme radeci na TE vise nego sto je normalno, promenite TE! Nije uopste bitno da li je to Smarty ili non-Smarty template engine...