PYTANIE 1:
Czyzby jedyny sluszny jezyk php (w 95% przyp. jedyny znany oprocz pascala) mial zostac zdetronizowany i wywolywalo to taki niepokoj wsrod programistow PHP?
PYTANIE 2:
Dlaczego DHH, bedac doswiadczonym programista zarowno PHP jak i Java, wybral Ruby?
Proba USTOSUNKOWANIA SIE do pytania 2:
Moze mu sie pomieszalo? Za dlugo na sloncu? Pil miesiac? Gdyby byl kobieta to powiedzialbym, ze mial te dni…
No dobra, czas na LAMENTY
Ojej… znowu trzeba sie czegos nowego uczyc! Rails. A tu jeszcze TurboGears i Django nadchodza! Coraz wiecej firm wymaga tej okropnej Javy! Wszyscy sie na mnie uwzieli! O k… o Ajaksie bym zapomnial! Swiat schodzi na psy!
Ok. Do rzeczy.
Sa darmowe projekty takie jak ten, ktore to forum pod wzgledem skomplikowania zdecydowanie przewyzszaja: http://www.magnolia.info/[/quote]
Dokladnie. I wiele innych. A bankowosc online - duzo tego w php?
Dla mnie osobiscie PHP nie jest do dupy (ma swoje zastosowanie) ale to brzydki (wizualnie), nieczytelny jezyk propagujacy zle praktyki. Kilka lat temu czytajac ksiazke o php i mysql zastanawialem sie czy to mozliwe zeby wydac taki syf (ksiazka + kod) z czystym sumieniem.
Odn. rozwiewania mitow (Java jako jezyk i platforma)
a) Jezyk idzie w dobrym kierunku.
5 versja - szybka i ulepszona vm, annotations, generics, autoboxing/unboxing, enums, loop enhancements
b) Platforma idzie w dobrym kierunku.
J2EE to przeszlosc. EJB 2.1, servlet/jsp api i Struts odchodza do lamusa i faktycznie wspolczuje tym kt, musza sie w tym jeszcze babrac.
JEE 5 (m.in. EJB3, JSF)
Frameworki (oczywiscie wybrane):
MVC: JSF/Facelets, Tapestry, Wicket, Rife, Spring MVC + WebFlow, WebWork
Infrastructure: Spring + Acegi, JBoss Seam
ORM: Hibernate, iBatis, Cayenne, JDO, TopLink(Oracle)
MDA: AndroMDA, JTri
Testing: JUnit, TestNG
RoR-like: Trails
Inne: Lucene - najlepszy full text search engine (ferret - ruby port)
Jezyki skryptowe:
groovy, jruby, jython - i nic nie stoi na przeszkodzie np. zimpl. sobie closures, chocaz da sie to czystej javie tez zrobic (Functors z Jakarta Commons).
Styl programowania, “best practises”, wzorce projektowe i metodologie:
POJO, Programowanie do interfejsow, Methods Chaining, Inversion of Control (vel Dependency Injection), Subversion of Control,
Programowanie Aspektowe (AOP - AspectJ, JBoss AOP) - pointcut, advice, proxy itd.
Rewelacyjne srodowiska programistyczne (BTW. napisane w javie):
IntelliJ, Eclipse, NetBeans, JDeveloper (jak ktos mial do czynienia z JBuilderem 6 zna roznice )
c) skompilowany kod jest do uzycia.
mechanizmy wewnetrzne java: RTTI, reflections
manipulacja bytecodem - biblioteki: CGLIB, Javassist, BCEL
Na koniec minusy technologii java (kt. oczywiscie jest o wiele wiecej)
“steep learning curve” - trzeba to wszystko poznac. Jezyk, biblioteki, wzorce projektowe.
czas wykonania i koszt projektu - “10x more productivity” to oczywiscie bzdura, ale realnie aplikacje w RoR wykonuje sie 30-50% szybciej niz w java (Na forum sa linki do odpowiednich artykulow).
klasa nie jest obiektem wiec potrzebny jest specjalny konstrukt jezyka a nie tylko Ruby.new() . Oczywiscie mozna dolozyc statyczna met new() i uczynic konstruktor prywatnym
metody nie sa “first-citizen objects” jak w pythonie, w ruby teoret. tez ale mozna przekonwert. blok na Proc i w sumie uzyskac to samo. Ale tu juz wchodzimy w Ruby vs Python debate (pan jzabiello jest bardziej kompetentny zabierac glos w tej sprawie).
Dlugo nudzilem, ale nie lubie jak ktos pisze glupoty.
PS. Art. o niedoskonalosciach java jest z 2000 roku. Nie polecam czytac czegokolwiek o java starszego niz 2003 (za wyjatkiem ksiazki Bruca Eckela)
PS. Gdyby na uczelniach zaczynali od Pythona (IMHO powinni) to nikt nie spogladalby nawet na Php, a Javy/C# uczyl sie tylko dla lepszych pieniedzy.
PS. Uzywajac annotations mozna znacznie ograniczyc “xml clutter” w aplikacji.
PS. Moje postrzeganie pewnych jezykow: Perl to staruszek, Php to chaos, Java to porzadek, Python jest piekny a Ruby magiczny.