Rynek pracy

czeœÌ,

mam pytanie, czy orientujecie siê, jak jest z rynkiem pracy dla programistów rails? w najbli¿szym czasie mam rozpocz¹Ì dwa spore projekty, rails pasuje do nich jak ula³, bojê siê jednak, ¿e problemy ze znalezieniem developerów zwiêksz¹ ryzyko pisania tego w RoR.

W Polsce to chyba jeszcze troche za wczesnie, ale widze spore szanse bo php jest niestety do d… przy wiekszym stopniu skomplikowania aplikacji a java/j2ee/jee5 sa mimo wszystko czasochlonne no i “steep learning curve”. Sam mam zamiar zaryzykowac i zaniedbac nieco Tapestry/Spring/Hibernate na rzecz Rails i moze TurboGears(chociaz w przypadku TG poczekam na 1.0 release). Rails dopiero od 2 tygodni zaczalem powaznie traktowac - chociaz znalem wczesniej bo bylo o nim glosno z pol roku temu na TSS.

Moze nie jest to do konca odzwierciedleniem sytuacji ale po keywords z http://www.dice.com
j2ee: 14293 matching your search request.
spring: 1088 matching your search request.
hibernate: 616 matching your search request.
php: 916 matching your search request.
python: 616 matching your search request.
ruby: 95 matching your search request.
rails (jako subsearch ruby): 16 matching your search request. - (subsearch bo inaczej obejmuje m.in. projektantow torow :slight_smile: )

Mysle, ze prognozujac rynek pracy nalezy wziac pod uwage ilosc(przyrost) sprzedazy ksiazek jako istotny czynnik.
I tu kilka liczb z O’Reilly Radar: Ruby Book Sales Surpass Python.
“… Python is up 20% vs. the same period last year, but Ruby is up 1552%! (Perl is down 3%.) …”

Moja opinia jest, ze RoR zabierze czesc rynku zrowno Php jak i Java w niedalekiej przyszlosci.

no, te przyrosty to akurat chyba ÂświadczÂą bardziej o dynamice niÂż o bezwzglĂŞdnych liczbach.

Tak.

Istnieje co prawda ryzyko, ze bedzie sytuacja typu: piosenkarz jednego przeboju. Developerzy poigraja troche z Rails - stwierdza ze jest ok - ale w ostatecznosci phpowcy wroca do php a javowcy do javy bo tam sie czuja bezpiecznie.

Ja jestem dobrej mysli - sam dosyc ostroznie do Rails podchodzilem, analizowalem czy warto pakowac sie w nowy dla mnie jezyk jak by nie bylo a do tego magiczny framework i ale teraz jestem musze przyznac juz kupiony.

A co do tych nowych projektow to jezeli RoR pasuje jak ulal to nawet bym sie nie zastanawial.

Lepiej byc prekursorem Rails niz epigonem Php/Java.

[quote]A co do tych nowych projektow to jezeli RoR pasuje jak ulal to nawet bym sie nie zastanawial.

Lepiej byc prekursorem Rails niz epigonem Php/Java.[/quote]
Wychodze z tego samego zalozenia.
Moja prognoza jest taka: jezeli Railsami zainteresuje sie rynek enterprise tak jak interesuje sie juz PHP (czyli jeszcze kilka lat) to jest duza szansa, ze zabierze bardzo duza czesc rynku PHP/J2EE
Co do programistow… nie marwilbym sie.

A tu na pootwierdzenie, ze juz rynek enterprise robi przymiarki do Ruby (byc moze z mysla o RoR) i to w Polsce - http://www.pracuj.pl/oferty/89936.html
“…Dodatkowym atutem bĂŞdzie znajmoœÌ jĂŞzyka Ruby. …”

no, na razie na liÂście na wiki jest chyba 10 osĂłb, to jest trochĂŞ maÂło. kolejna rzecz, to czy programiÂści ci sÂą dostĂŞpni no i ile kosztuje godzina ich pracy. miaÂłem takie doÂświadczenie z javÂą: wdroÂżyÂłem sporÂą aplikacjĂŞ w javie, w czasie kiedy wÂłaÂśnie wspinaÂła sie na szczyty popularnoÂści i najpierw trudno byÂło programistĂłw (dobrych, z doÂświadczeniem) znaleŸÌ, a potem wyssaÂły ich (“w zwiÂązku z dalszym dynamicznym…”) ró¿ne korporacje i zapÂłaciÂły masĂŞ szmalu za dÂłubanie deskryptorĂłw w xml :wink: z php jednak jest trochĂŞ Âłatwiej.

jeÂżeli ktoÂś z was dysponowaĂŚ bĂŞdzie wolnymi mocami przerobowymi (projekt ruszy najpewniej za ok. miesiÂąc, potrwa kilka miesiĂŞcy), to dajcie znaĂŚ na mĂłj mail (najlepiej z jakimÂś cv/przykÂładami aplikacji w ror i nie-w-ror): marcin.jagodzinski@gmail.com . jak juÂż coÂś siĂŞ skonkretyzuje, dam znaĂŚ. jeszcze nie jestem przekonany, Âże chcĂŞ wÂłaÂśnie ror (z powodĂłw wymienionych wyÂżej), ale bardzo mnie to kusi, bo alternatywy sÂą nieciekawe: Âśmietnikowe php i przyciĂŞÂżka java. a chciaÂłbym wykorzystaĂŚ atut first to market.

A nie boicie siê o wydajnoœÌ rozwi¹zan na RoR ? Zaczynam siê coprawda dopiero uczyÌ RoR i muszê przyznaÌ ¿e z ka¿dym wieczorem coraz bardziej mi siê podoba. Natomiast z drugiej strony mam opory przed u¿yciem RoR do komercyjnych projektów (zw³aszcza jak sobie przypomne jakie problemy mia³em ze zwiêkszaniem wydajnoœci aplikacji napisanych w PHP).
MoÂże moje obawy wynikajÂą z pobierznej znajomosci frameworku i braku zrozumienia wew. mechanizmĂłw. ChĂŞtnie bym siĂŞ zapoznaÂł z opiniami bardziej doÂświadczonych w tej materii ( najlepiej jeÂżeli znalazÂła by siĂŞ osoba ktĂłra mogÂła by siĂŞ pochwaliĂŚ sklepem internetowym w ktĂłrym jest > 10 000 produktĂłw)

lepiej takim, w ktĂłrym jest 10.000 zamĂłwieĂą dziennie. liczba produktĂłw nie ma raczej nic do rzeczy

oczywiÂście, Âże jest problem z tym, o czym piszesz. z tym, Âże to jest po prostu kwestia kasy. z tego co wiem, to da siĂŞ pisaĂŚ w ror wydajne aplikacje. ale oczywiÂście cudĂłw nie ma i trzeba odpowiednio duÂżo pamiĂŞci/mocy obliczeniowej. tak czy owak, 43things jakoÂś dziaÂła, wg. mnie bardzo szybko.

podsumowujÂąc: bojĂŞ siĂŞ. ale dÂłubania w javie bojĂŞ siĂŞ bardziej.

Dokladnie - chodzi o pieniadze. Zaleznosc jest wykladnicza . Niewielki wzrost wydajnosci iest okupiony ogromnymi kosztami. Z ekonomicznego pktu. widzenia nie oplaca sie produkowac superwydajnych i niezawodnych systemow (patrz. Windows :slight_smile: )

Na pocieszenie zacytuje za Jim Weirich-em (http://www.rubynuby.org/downloads/XPCincinnatiJanuary2006.mov) - “Rails is Fast Enough”

Porownanie przeprowadzone przez Justina Gehtlanda (Relevance) wypadlo wrecz na korzysc RoR (vs. Java/Spring/Hibernate).

Platforma Java daje co prawda niesamowite mozliwosci i sam wybralbym ja do bardziej kompleksowych rozwiazan. Dla przykladu do 2-nd level Cache w Hibernate mozna wykorzystac providerow: EHCache(default), OSCache, SwarmCache, JBoss TreeCache i oczywiscie kazda z opcji ma swoje plusy i minusy (kt. oczywiscie wypadaloby byc swiadomym). Jedno jest pewne jezeli nie jest sie samemu ekspertem, to trzeba sledzic ich opinie i zalecania (TSS), stosowac wzorce projektowe i BARDZO UWAZAC - bo mozna stworzyc potworka.

To w sumie temat osobnego posta, ale czy ActiveRecord ma cos takiego jak “connection pooling”?

Najlepszym rozwiÂązaniem byÂło by przeniesienie czĂŞÂści ryzyka na Klienta. JeÂżeli zaleÂży mu na bardzo krĂłtkim czasie wytworzenia produktu, moÂżna byÂło by powiedzieĂŚ “jest taka technologia - RoR, przeprowadziliÂśmy wstĂŞpne testy wydajnoÂściowe i wszystko wskazuje iÂż bĂŞdzie to doskona³ê rozwiÂązanie. Ale nie wiemy jak to siĂŞ sprawuje w realnych warunkach i czy nie bĂŞdzie potrzebny zakup dodatkowych maszyn”.

Wtedy Klient byÂłby Âświadomy Âże cenÂą jakÂą moÂże zapÂłaciĂŚ za szybkÂą pracĂŞ, moÂże byĂŚ podwyÂższony koszt infrastruktury.

Ale chyba troche siĂŞ rozmaÂżyÂłem :wink:

nie wydaje mi siĂŞ, Âżeby zaleÂżnoœÌ byÂła wykÂładnicza. raczej w przypadku rails bĂŞdziemy mieli model google’a, czyli dokÂładanie kolejnych maszyn, co powinno skutkowaĂŚ jednak liniowym wzrostem wydajnoÂści.

problem jest raczej taki, Âże w polsce hosting jest strasznie drogi (zwÂłaszcza jak siĂŞ porĂłwna z dochodami ze stron).

tak czy owak, ja mam ten komfort, Âże to ja jestem zamawiajÂącym i idĂŞ na to ryzyko. dawno dawno temu zajmowaÂłem siĂŞ uruchomieniem pewnego portalu. nazwy nie podajĂŞ, bo nikomu ona nic nie powie. nie wiem, czy portal przetrwaÂł na rynku 3 czy 6 miesiĂŞcy… jednÂą z rzeczy, ktĂłrÂą mieliÂśmy zrobiĂŚ byÂł serwis aukcyjny. przekonywaÂłem szefa, Âżeby postawiĂŚ na to. niestety, chciaÂł mieĂŚ 10 czy 15 portal. a mĂłgÂł mieĂŚ 1 serwis aukcyjny w .pl. spokojnie zd¹¿ylibyÂśmy przed allegro.

oczywiÂście duÂżo deliberowaliÂśmy o serwerach, technologiach itd :slight_smile:

allegro chodzi na php czy czymÂś tam. who cares. czy na 10 czy 20 czy na 2 serwerach. ile oni mieli? 2 miliony obrotu?

Haha to nie ta rzeczywistosc:)
Oto stare dane:


“…w okresie od kwietnia do listopada 2004 roku polskie Allegro odnotowaÂło ZYSK NETTO w wysokoÂści okoÂło 9 mln zÂł…” ciekawe jak bylo w 2005 :slight_smile:

Z tego co widzialem w Agile, proponujÂą model polegajÂący na dodawaniu Webserverow ³¹czÂących siĂŞ do jednej maszyny bazodanowej - nie jestem pewien czy ta baza wytrzyma duÂży ruch (przy zaÂłoÂżeniu Âże jedna maszyna webowa nie jest w stanie czegoÂś uciÂągn¹Ì to wÂątpie aby “bazĂłwka” wytrzymaÂła podwĂłjne obci¹¿enie)
IMO trzeba byÂło by dokÂładaĂŚ po jednym webserwerze i jednym DB

Fakt, ale w duÂżej mierze to sprawa TPSA ktĂłra kaÂże sobie pÂłaciĂŚ ok 800 PLN za / mbps.

Byc moze zle sie wyrazilem. Nie chodzilo mi o skalowanie (scaling up/scaling out) ale raczej o optymalizacje aplikacji pod katem robustness/efficiency (optymalizacja algorytmow, przeprojekt. pewnych aspektow modelu, itd.) Prawda jest, ze dla dobrze napisanej aplikacji (pod katem skalowania) wystarczy dorzucic kilka serwerow i pozostaje na tym samym poziome wydajnosci.

[quote=Adamh]Oto stare dane:


“…w okresie od kwietnia do listopada 2004 roku polskie Allegro odnotowaÂło ZYSK NETTO w wysokoÂści okoÂło 9 mln zÂł…” ciekawe jak bylo w 2005 :)[/quote]
Âźle napisaÂłem, faktycznie. wiem, ze dobrze byÂło. chyba 20 mln czy coÂś takiego.

No to pojedziemy trochę z flamem.

Dla kogoś kto ma pojęcie o programowaniu, tzn. potrafi rozsądnie zbudować aplikację, oddzielić logikę od prezentacji i sensownie zorganizować dostęp do bazy to PHP jest jak najbardziej OK.

Dla mnie osobiście Java jest do dupy, z tego chociażby powodu że jest językiem kompilowanym i ten kto pisze w tym aplikacje www sam robi sobie krzywdę.

Forum dyskusyjne (takie jak to) jest dostatecznie skomplikowane? Dużo ich jest w Javie?

W takim przypadku mozesz uskuteczniac CGI w Perlu.
Do momentu kiedy nie poznalem RoR nie widzialem szansy aby jakikolwiek jezyk mogl zdetronizowac PHP jesli chodzi o web development. Teraz widze jak duzo PHP ma brakow (mowie PHP vs Ruby) Rails to framework i Prado, Seagull, eZcomponents czy teraz Zend Framework czy Symfony moga z nim w jakis spobo rywalizowac. Jednak PHP (mowie glownie o wersjach <5) z Rubym nie ma praktycznie jak rywalizowac.
Co do frameworkow to poza Rubym duzo dzieje sie w Pythonie (Django, Pylons, TurboGears). IMHO Python ustepuje Ruby’emu (to tylko i wylacznie moje odczucia) ale gdyby nie powstalo Rails to wydaje mi sie, ze teraz tworzylbym cos w Django.

Takie gornolotne twierdzenia do niczego nie prowadza do tego niewiele znacza.
Sam uwazam, ze Java to przelomowy jezyk i moze troche zle potoczyly sie jego losy choc wole uzywac jezykow skryptowych. To czy J2EE to dobrze wybrana platforma zalezy glownie od sytuacji, w ktorej rozwazane jest jej uzycie.
Ciekawy art o niedoskonalosciach Javy: http://www.jwz.org/doc/java.html

Pamietaj o tym, ze J2EE nie jest popularne w dzielonych hostingach po drugie programistow PHP jest mnostwo a tych dobrze znajacych J2EE juz tak wielu nie jest. Do tego dochodzi zasada odpowiedniego narzedzia do odpowiedniego zadania.

Sa darmowe projekty takie jak ten, ktore to forum pod wzgledem skomplikowania zdecydowanie przewyzszaja: http://www.magnolia.info/

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 :slight_smile: )

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.

AD 1. Niepokoju chyba nie ma, poki poviderzy nie przekonaja sie co do tego aby oferowac swojim klientom ror puty ciezko mowic tutaj o jakiejs detronizacji, przynajmnije w polsce, na zachodzie jest lepiej :slight_smile: Niestety ale ror wymaga woiele wiecej o servera… nie kazdy provider ma moliwosci dodac obsluge fcgi do swojej wlasnego “SlUSZNEgo” servera http. Dochodzic do tego jest problem z dopracowanym IDE dla rails :expressionless: dzis wyszlo radrails 0.6 coprawda, ale jeszcze z rok/poltora bedziemy musieli pcozekac na naprewde dojrzale srodowisko dla rails (dla innych systemow niz mac :slight_smile: chyba ze ktos przeportuje textmate :stuck_out_tongue:

AD 2. IMHO to pytanie jest retoryczne, albo nie programowales w rubym albo w php :slight_smile: javy w to nie mieszam bo to dlamnie rzecz raczej opca, jednak mysle ze napewno nie byla to java bo ruby jest po prostu bardziej obiektowy od niej :wink: A tak na powaznie to po prostu sam jezyk powstal po to aby programowanie bylo przyjemnoscia, wiec nie wyobrazam sobie tego aby pisac taki framewrok ktorego glownym zalozeniem jest “przyjemnosc w tworzeniu aplikacji” w trudnej javie lub burdelowatym php (sam pislem klona rails, na dluzsza mete po prostu php przegrywa, nie wyobrazalnie duzo zmieniaja bloki w tym wypadku oraz funkcje typu select, collect oraz map i sama obiektowosc rubego… 1 linia kodu rubego zalatwia 20 linii kodu php :slight_smile:

co do reszty to nie bardzo wiem co autor mial na mysli (: