W dzisiejszym świecie "nietechniczni" kreatywni ludzie  nie mają łatwo. Obrotny biznesmen chce wsadzić w coś trochę kasy, rozkręcić jakiś projekcik, wpada na genialny pomysł: "a, zainwestuję sobie w portal!". Pomysł - betka. Założenia - betka. Analiza - betka. Ewentualna dotacja - betka. Okazuje się, że wszystko jest banałem w porównaniu z dokonaniem wyboru technologii. I, wbrew pozorom, im więcej ekspertów, tym trudniejszy wybór.

Chcesz wiedzieć jak jest naprawdę? Która z dzisiejszych technologii gwarantuje sukces, a która prowadzi prosto do ciemnych otchłani informatycznej rozpaczy? Chcesz wiedzieć jakie rozwiązanie zacznie generować zyski od razu po starcie, a jakie jest skazane na technologiczną porażkę? Statystyki nie kłamią, już na początku projekt ma marne szanse na powodzenie. Chcesz je zwiększyć? Czytaj dalej!

Która technologia jest najlepsza?

Nie wierzę, że ktoś autentycznie oczekiwał odpowiedzi na to pytanie. Jedyna słuszna odpowiedź to: "z biznesowego punktu widzenia wybór technologii nie jest istotny!". Jest to kwestia absolutnie trzecio-, czwarto- czy milion-rzędna. Oczywiście w końcu trzeba się na coś zdecydować, ale należy zdawać sobie sprawę z faktu, że KAŻDA technologia nadaje się do stworzenia świetnego, skalowalnego, wydajnego, bezpiecznego rozwiązania. Jednocześnie ŻADNA technologia nie gwarantuje w/w cech. Dowodów nie trzeba na to nawet przedstawiać. Dowodami możliwości sukcesu są miliony stron w internecie, szczęśliwie działające na różnych platformach. Dowodami możliwości porażki - przypadki informatycznych klęsk.

Pomijając kwestie finansowe i założeniowe, ponieważ one są rozpatrywane w innej płaszczyźnie niż wybór technologii do realizacji postawionych celów, dochodzę do dość banalnego wniosku: "wszystko zależy od umiejętności i zaangażowania zespołu". A czy zespół świetnie programuje w PHP, czy w .NET, czy w Javie - nie ma to absolutnie żadnego znaczenia.

Porównań tych technologii jest co niemiara dostępnych w internecie. Moim zdaniem takie porównania są jednak bez sensu. Nie można porównać wydajności Javy i .NET - ewentualna optymalizacja tak czy siak odbywa się na poziomie aplikacji, a nie używanej technologii. Nawet jeżeli jedna z tych technologii jest "szybsza" od drugiej (chociaż nie wiem w jaki sposób miałoby się to mierzyć) to i tak kluczowym elementem są umiejętności programisty. Fakt, że w którejś z nich milion instrukcji wykona się o 0,1 sekundy szybciej nie ma znaczenia, ma natomiast znaczenie odpowiednie cache'owanie danych, poprawne zarządzanie połączeniami do bazy danych, świadome wykorzystanie dodatkowych narzędzi wspomagających tworzenie rozwiązań.

Z życia wzięte

Prawie rok temu miałem przyjemność (tak, była to dość zabawna i relaksująca przygoda) uczestniczyć w trwającej dość długo (bo ze 2 miesiące) technologicznej przepychance przy planowaniu sporego przedsięwzięcia. Koniec końców wypisałem się z tej zabawy (argument podany powyżej - skoro przez 2 miesiące "owner" projektu nie potrafi zdecydować się na technologię to co będzie dalej?) bo stała się w moim odczuciu stratą czasu, ale kilka argumentów przytoczę ku rozrywce Czytelników.

Pierwsza moja wypowiedź w całej dyskusji miała identyczny ton jak poprzednie akapity: technologia NIE MA WPŁYWU na sukces bądź porażkę projektu. Po prostu jeśli ja mam w tym w jakiś sposób uczestniczyć, to będzie to .NET i koniec - bo na tym się znam.

Kilka urywków z dalszej korespondencji:

Argument 1: "większość poważnych serwisów jest zrobiona w Javie, a nie w .NETcie, więc jest jakaś tego obiektywna przyczyna"

Moja odpowiedź: "Chętnie zobaczyłbym źródło takiej wiedzy. Ja jestem praktycznie pewny, że większość dużych witryn stworzono nie w Javie ani nie w .NET a w PHP (np. Facebook, chyba największy portal na świecie). Z przykładowych implementacji .NET mamy MySpace - z pewnością również w czołówce "poważnych serwisów""

Argument 2: "sztywniejsze, niż w Javie, procedury technologii .NET i związane z tym ograniczenia elastyczności produktu – tu coś wolno, tam czegoś nie wolno"

Moja odpowiedź: "Nie mam pojęcia o co może chodzić. Java i C# są językami praktycznie bliźniaczymi, ograniczenia jednego i drugiego są bardzo podobne. Na korzyść .NET przemawia możliwość stosowania więcej niż 1 języka, w tym języków funkcyjnych (F#) i dynamicznych (Ruby, Python). Ale może po prostu nie zrozumiałem tego zarzutu."

Argument 3: "koszt utrzymania serwerów Microsoft po wdrożeniu systemu budzi pewne wątpliwości"

Moja odpowiedź: "Dla przykładu hosting na home.pl: http://home.pl/serwery/unix vs http://home.pl/serwery/windows. Ceny są takie same. O środowisku dedykowanym nie potrafię się wypowiedzieć, warto byłoby spytać kogoś kto faktycznie ponosił koszty jednego jak i drugiego rozwiązania - a nie kierować się... przeczuciem?."

Argument 4: "W Javie implementacja systemu będzie łatwiejsza"

Moja odpowiedź: "Taki argument jest niczym nieuzasadniony (żeby nie napisać "głupi"). Dla osoby piszącej na co dzień w Javie łatwiej będzie napisać w Javie. Dla programisty COBOL łatwiej będzie napisać w COBOL. Mi łatwiej będzie stworzyć cokolwiek w .NET bo zajmuję się tym od lat. Jeszcze kilka lat temu za Javą mogła przemawiać olbrzymia gama produktów pobocznych tworzonych przez społeczność (w końcu jest to technologia dużo starsza), znacznie usprawniających prace programistyczne, jednak od dłuższego czasu dla .NET dostępnych jest również bardzo wiele takich narzędzi, co w zupełności wystarcza i pozwala zapobiec wynajdowaniu koła na nowo."

Co dalej?

Teoretycznie jest to dyskusja na całe godziny. Bardzo ciężko jednak znaleźć osobę znającą więcej niż jedną technologię od podszewki, tak, aby mogła wypowiadać się w pełni autorytatywnie. Aby jej zdanie nie było skrzywione własnymi preferencjami, a faktycznie rzetelnie zdobytym na placu boju doświadczeniem.

Ja ze swojej strony mogę wymieniać najbardziej pchające się do głowy zalety .NET... ale nie mogę krytykować rozwiązań alternatywnych.

Nie jestem w stanie powiedzieć "Java jest zła bo...", "odradzam PHP ponieważ...", "Python się tu nie sprawdzi gdyż..." i wymienić milion powodów. WCALE nie uważam że te technologie są złe. Po prostu specjalizuję się w .NET. Argumenty takie jak powyżej są bez sensu - nie ma jak się do nich odnieść. W konkretnej dyskusji pod konkretny projekt można spierać się o konkretne rozwiązania zastosowane w konkurencyjnych technologiach, jednak powinno odbywać się na dużo bardziej szczegółowym poziomie niż "proszę wybrać Javę bo w .NET są sztywniejsze procedury".

Prośba na koniec

Jeżeli ktoś kiedyś zapyta Cię o to "która technologia nadaje się najbardziej do projektu X"... proszę Cię bardzo, nie utrudniaj życia kolegom po fachu podając idiotyczne argumenty przemawiające za Twoim ulubionym narzędziem. Czy jesteś pewien, że inne nie oferują czegoś lepszego?

Spójrzmy prawdzie w oczy - doba ma tylko 24 godziny, a nawet tego nie wystarcza do mistrzowskiego poznania całego ekosystemu .NET. Zakładam że w Javie czy PHP jest podobnie. Przyznaj uczciwie sam przed sobą - czy jesteś ekspertem w więcej niż jednej z nich na tyle, aby z ręką na sercu wskazać "tą najlepszą"?


Komentarze

dotnetomaniak.pl

2 marca 2010 01:03

Trackback from dotnetomaniak.pl

Technologiczny kogel-mogel. .NET vs Java vs PHP vs RoR...

Szymon Pobiega

2 marca 2010 07:36

Pozwolę się z Tobą nie zgodzić. Ja również jestem zdecydowanie dotnetowy, niż PHPowy, czy Javaowy, ale uważam, że każda technologia ma swoje unikatowe zalety i możliwości. Poprzez umiejętny dobór technologii do realizowanego zadania jesteśmy w stanie całkiem sporo zyskać.

Przykład: hosting PHP+MySQL jest dużo tańszy, niż hosting Java lub .NET, więc na rynek małych witryn i portali ciężej dostać się, jeśli chce się tworzyć w .NET.

Z drugiej strony: spróbuj napisać dużą aplikację biznesową w PHP. Oczywiście, że można, ale czy to znaczy, że jest to optymalne rozwiązanie? Cytowany przez Ciebie facebook to serwis społecznościowy, czyli system, w którym nacisk położony jest na dane, a nie na zachowanie/logikę -- dlatego PHP wydaje się odpowiednie.

RoR jest świetny do szybkiego tworzenia aplikacji, ale trzeba pamiętać, że wbudowany w niego wzorzec Active Record ma swoje ograniczenia i być może nie jest odpowiedni dla naszego konkretnego wdrożenia.

Na koniec .NET vs Java. Możliwości tych technologii (w moim mniemaniu) są raczej zbliżone i w tym starciu decydującym czynnikiem jest wiedza i doświadczenie zespołu.

procent

2 marca 2010 08:02

@Szymon Pobiega:
Dla "małych" portali podałem linki do home.pl - ceny hostingu są tam identyczne dla php+myslq i asp.net+mssql (ale nie będę się oczywiscie spierał że .net jest tu lepszy - sam kilkukrotnie doradzilem ten wybór klientom z tego "segmentu" rynku).
Co do "społecznościówek" - Facebook jest w PHP, a MySpace w .NET. Oba działają, oba są wielkie. Jedna i druga technologia wykluła olbrzymie dzieci. A czy w facebook brak jest zachowania/logiki? Nie wydaje mi się.
RoR i Active Record... dla .NET jest Castle ActiveRecord i mimo ograniczen tego wzorca, jest przecież popularny.
Koniec końców wniosek pozostaje niezmienny - we wszystkim mozna napisać wszystko równie dobrze, jak we wszystkim można wszystko spier...

yaceq

2 marca 2010 09:30

Jest jedna mala rzecz - mianowicie zrobiles kogel mogel z technologiami webowymi (php mozna by tutaj raczej porownac bardziej do asp.net niz do calego ogolu .net), totez zrobiles taki miszmasz, ktory by mozna podsumowac tak - kazda technologia jest dobra - wazne bys mial kogos kto Ci to dobrze zrobi. Ale nie do konca jest tak, poniewaz niektore technologie sa duzo drozsze w wykorzystaniu niz inne (nawet z cena szkolenia pracownika, ktory nie korzystal z danej technologii).
W pierwszej kolejnosci nalezy zwrocic uwage jakie technologie sie nadaja do danego rozwiazania np. po kiego grzyba pisac na sile w .necie na symbiana mimo ze framework do tego, ale ktorego stabilnosc moze byc rozna, produkt nie jest jeszcze do konca sprawdzony, skoro mamy Jave lub raczej nie bedziesz pisac aplikacji desktopowej w PHP? Obawiam sie w takiej sytuacji, taniej wyjdzie zatrudnic .netowca/zespol .netowy by sie nauczyl/i javy na poziomie wystarczajacym do stworzenia aplikacji w technologii ktora sie po prostu do tego nadaje. To byl tylko przyklad, ale ogolnie chodzi mi o to ze bardzo czesto jest tak, ze wybor technolgii jest z gory narzucony albo bardzo mocno ograniczony i nie ma co sie upierac by dostosowywac technologie do umiejetnosci zespolu...

procent

2 marca 2010 09:35

@yaceq:
Nie no oczywiście że "nic na siłę". Tutaj skupiłem się na technologiach webowych, bo z taką dyskusją miałem do czynienia. Jasnym jest, że wybierać powinno się z technologii "nadających się" do danego zastosowania, a nie ze wszystkich jakie kiedykolwiek powstały. Chyba niewystarczająco naświetliłem kontekst wypowiedzi, ponieważ założyłem "budowanie" projektu od zera, wraz ze zbieraniem ludzi do zespołu, kiedy to naprawdę mamy właściwie dowolność nieskażoną decyzjami z przeszłości.

leszcz

2 marca 2010 09:39

Ja również się nie zgodzę, ale mam kilka innych "argumentów".
1) Spytaj UncleBob'a (http://blog.objectmentor.com/), albo gości z Pragmatic Programmer - oni uważają, że należy poznawać nowe języki i technologie, a nie zamykać się tylko na jedną.
2) Moim zdaniem od tego jest architekt systemu, żeby umiał, zaproponować mając rozeznanie w kilku technologiach zaproponować najlepsze z punktu widzenia klienta rozwiązanie. Uważam, że architekt od tego właśnie jest - co mi po kimś, kto będzie umiał mi zaproponować tylko i wyłącznie rozwiązanie z jednej półki nie mając pojęcia jak można to zrobić gdzieś indziej.

Nie kieruję tego oczywiście osobiście, natomiast jestem zdania, że developerzy nie powinni się ograniczać do znajomości tylko i wyłącznie jednej platformy. Jest szczególnie widoczne przy porównaniu programisty, który zna (albo chociaż widział) jakiś język skryptowy do operowania na plikach (perl, python, sed, awk), a takim, który tego nie widział i będzie próbował obrabiać wielki plik tekstowy pisząc rozwiązanie w .NET. Taka ignorancja jest fatalna w skutkach, a taki developer niewiele warty nawet, jeśli będzie znał każdą instrukcję w CLR.

Odpowiadając na Twoje pytanie - nie czuję się ekspertem, żeby autorytatywnie się wypowiadać na temat tego, że dla danego problemu dana technologia będzie lepsza, ale znam ludzi, którzy to potrafią. A sam na razie jestem na drodze do takiego stanu.

procent

2 marca 2010 09:51

@leszcz:
Nie namawiam bynajmniej do zamknięcia się na alternatywne technologie, skądże znowu. Też uważam że trzeba być otwartym, nie spotkałem po prostu dotychczas programisty (architekta?) który potrafiłby równie dobrze zaimplementować dany system w więcej niż jednej technologii, w której się specjalizuje. I nie widzę w tym nic specjalnie złego - trzeba się w czymś specjalizować, a siłą rzeczy nie starcza wówczas czasu na "ekspercki" poziom gdzie indziej ( www.maciejaniserowicz.com/.../...wszechwiedzy.aspx ).
Stąd właśnie mój apel na koniec - o nieodrzucanie technologii tylko dlatego, że się ich nie zna!
Jeżeli masz tą przyjemność (zaszczyt?) znać/pracować z takim człowiekiem to zazdroszczę.

Janet

2 marca 2010 10:21

Hmmm czytam wypowiedzi i wg mnie kazdy ma racje i kazdy daje dobre argumenty na ich obrone.
Moje zdanie jest nastepujace w tej kwestji. Zazwyczaj kiedy pojawia sie nowy projekt i prosba o zaproponowanie czegos sesnsownego co moglo by wybic ow projekt i zrobic z niego sukces komercyjny/biznesowy jest technologia ktora znamy najlepiej (w danej chwili). Dla czesci bedzie to .NET, dla innych Java a dla pozostalych PHP. Kazdy 'specjalista' pewnie zaproponowal by najlepsze wg niego rozwiazanie.
Niema sie co dziwic, poniewaz nikt nie bedzie promowac technologii ktorej niezna i na szybko nie bedzie w stanie ocenic gdzie sa potencjalne waskie gardla rozwiazania.

Aktualanie zmagam sie z przygotowywaniem prototypu odnosnie nowego produktu. Aplikacja ma byc dostepna w Windows (wybralem wiec WinForms i C# bo to znam najlepiej oraz MS SQL bo odrazu mam polaczenia z C# ktore MS zaoferowal w tzw pakiecie). Pewnie bede potrzebowac (za jakis czas) aplikacji WEBowej jednak na tym sie nieznam ale ... mam paru znajomych ktorzy sa biegli w Javie i/lub PHP.
Napisze jak to bedzie wygladac z biznesowego puntu widzenia.
Spotkamy sie, pogadamy, Ja powiem jakie mam wymagania i jaki mam budzet i wybiore ta technologie ktora spelni moje oczekiwania za wskazana wczesniej cene. W mojej glowie mam cel do zrealizowania i chce go wykonac jednak majac w kieszeni okreslona ilosc pieniadzy.

Temat ktory poruszyles przypomina mi problem ktory ma kazdy z nas na codzien. A mianowicie wybor auta ktorym jezdzimy. Moze i mamy w glowie ze Audi jest lepsze od Fiata a Porshe lepszy od Audi ale odpowiedzcie sobie na pytanie czym jezdzicie jak macie w kieszeni np 30-50tys i musicie wybrac auto ktore bedzie spelniac Wasze oczekiwania i byc niezawodne. Oczywiscie wybor jest trudny ale kazdy pewnie wybral by inaczej i niema jednoznacznej odpowiedzi :)

punkracy

2 marca 2010 11:56

Witam,
zgodzę się z tobą, że wybór technologii nie ma, aż tak dużego znaczenia. W jednej lub drugiej można wykonać zadanie. Jednak w jednej można to wykonać szybciej, prościej i zgodnie z standardami. Liczy się znajomość wzorców, umiejętność ich użycia i jakby to powiedzieć "sprawność" umysłu :)
Nie zgodzę się totalnie z argumentem 2. Piszesz, że Java i C# są językami bliźniaczymi i że na korzyść .NETa przemawia możliwość użycia więcej niż jednego języka (Python, Ruby). Przykro mi, ale jython i jruby były w pełni funkcjonalne zanim programiści MS słyszeli o czymś takim jak python czy ruby. Obecnie JRuby jest zgodny z Ruby 1.8.7 oraz bez problemu można stworzyć projekt Railsowy. O IronRuby powiedzieć tego nie można. Do tego istnieją takie języki jak Scala czy Clojure zyskujące na popularności.
Co do ActiveRecord w Railsach to bez problemu możesz wymienić ten ORM na inny, np. DataMapper. Oczywiście Railsy były związane dość mocno z AR stąd problemy z generatorami itp przy takiej wymiance. Piszę były bo w wersji 3 już takiego ścisłego powiązania nie będzie.
Jakiś rok temu zaczełem zabawę z ASP.Net MVC bo musiałem użyć technologii MS. Cieszyłem się, że MS kopiuje dobre wzorce z Railsów. Jednak po roku stwierdzam, że nie idzie im to do końca tak dobrze jak powinno. A gdy zobaczyłem na blogu Roba Connerego wpis o Railsach to już widzę, że nie ma nadziei.. przynajmniej na ten czas.
pozdrawiam

procent

2 marca 2010 12:03

@Janet:
Stosując analogię z samochodami:
Klient przychodzi do sprzedawcy i mówi: "mam tyle i tyle kasy; chcę przyspieszyć do setki w 6 sekund; na szpanerskim wyglądzie mi nie zależy; nie zależy również na niskim spalaniu; dodatkowo ma się tam zmieścić moja 5-osobowa rodzina". Sprzedawca bierze wymagania i proponuje samochód.

W informatyce podobnie, z tą różnicą że WSZYSTKIE popularne technologię mogą być w stanie spełnić żądane wymagania. W tym cały problem, i o to mi właśnie chodzi - klienta nie powinno obchodzić W CZYM coś zostanie napisane, tylko żeby działało tak jak tego oczekuje i mieściło się w budżecie.

procent

2 marca 2010 12:05

@punkracy:
Dzięki za info, nie wiedziałem że Java ma inne popularne języki niż Java. Tym trudniej jednoznacznie wskazać technologię "lepszą", co niestety wiele osób z wielką pewnością siebie czyni.

A Rob już nie pracuje w MS:).

punkracy

2 marca 2010 17:37

Hej,
tak wiem, że już nie pracuje, ale podobne wrażenie mam czytając wypowiedzi Phila Haacka, a także innych (S.Walther) zachwyty nad technikami wprost wyciągniętymi z świata Rubiego (nie mówie, że to źle). Dla przykładu BDD - tak, wiem że to nie technika typowo RoR, ale tam najłatwiej do zastosowania i stosowana najwcześniej (wraz z java). Podobnie halm, less css... i choćby w coraz większej ilości projektów .Net znajduję Rakefile (np. fluent nhibernate) czyli Rake - typowe narzędzie Ruby (nawiasem mówiąc piękne).
Tak więc zgadzam się, że wszystkie technologie mogą spełnić żądane wymagania i z pewnością dobry programista .Net zrobi to lepiej niż słaby programista Ruby, PHP, Java. Jednak jak już wspomniałem pewne techniki/języki skłaniają lub wręcz wymuszają stosowania dobrych wzorców, technik - MVC, HTML5, unobstructive javascript, BDD.
pozdrawiam
PS. Przy okazji chciałem powiedzieć, że fajnie się czyta twojego bloga

procent

2 marca 2010 18:30

@punkracy:
Na temat RoR słyszałem wielokrotnie same zachwyty, muszę kiedyś sam tam łeb wsadzić i się pobawić. A "zapożyczanie" najlepszych cech z innych paradygmatów/rozwiązań to moim zdaniem świetna rzecz, np. funkcyjność wkraczająca do c#.
P.S. Dzięki, fajnie się czyta mądre komentarze:) ależ słodko...

punkracy

2 marca 2010 20:01

Aha, żeby nie było, że transfer idzie tylko Ruby->.Net to powiem, że w Rails3 lib pośredniczący pomiędzy Rails core, a ORM - ARel (Relational Algebra for Ruby) był w jakimś tam stopniu inspirowany przez Linq: magicscalingsprinkles.wordpress.com/.../

pozdrawiam
PS. Jeśli chcesz zacząć z Railsami to polecam: http://www.railstutorial.org/book
Świeże dane i od początku, zaczynając od MVC, poprzez git, TDD i BDD po utworzenie modeli, kontrolera i widoków.

Gutek

2 marca 2010 20:20

ok, to jezeli juz tak mowimy to LINQ bylo zapewne czesciowo zainspirowane przez xBase a xBase przez dBase a dBase przez i tak dalej. Potem mozemy dodac inne rzeczy i sie tak naprawde okaze ze to co teraz mamy wymyslili ludzie 50 lat temu - na przyklad lambda expression, 1930 rok, jezyk funkcyjny 1950 rok (LISP). wiec wiadomo ze kazdy z kazdego czerpie. Pytanie tylko kiedy to cos pojawi sie w danej technologii.

Tutaj zgadzam sie i nie zgadzam sie z Procentem - w calym temacie, ale nie chce dolewac oliwy do ognia :)

dobra wiecej sie nie wtracam :)

procent

2 marca 2010 21:14

@Gutek:
Nie ma żadnego ognia do którego trzeba lub nie trzeba oliwy dolewać:). Napisz więcej jeśli w głowie coś siedzi. Im więcej komentarzy tym ciekawiej.

l

3 marca 2010 08:40

jesli chodzi o facebooka to on jest pisany w php lecz! sprytni ludzie napisali narzedzie, ktore konwetuje kod z php do c (ostatnio to narzedzie zostalo gdzies opublikowane, wiec mozna sie z nim zaznajomic).

pozdr.
L.

Artur

3 marca 2010 08:52

Argument 3. Ale te serwery w home różnią się ilością miejsca. Jak dla mnie nie obaliłeś tego argumentu. Uważam, że koszty hostingu/infrastruktury MS są wyższe, ale bardzo często (nie zawsze) ta różnica jest pomijalna przy kosztach całego projektu.
A przy okazji, to problem kosztów występuje przy działaniach hobbistycznych/noprofit. Ostatnio rozglądam się za VPS dla swoich zabawek. Znalazłem z Linuxem za 25PLN/m a z Windowsem 99PLN/m.
A co do meritum, to jeśli rozmawiamy o Facebook-u, to raczej nie ma znaczenia, czy to coś, jest napisane w RoR .NET, czy Django, ale dla systemu middleware przetwarzającego pliki (tu zgadzam się z leszcz) ma znaczenie, czy to będzie .NET/Java czy perl/python.

Wojtek

3 marca 2010 11:19

Ja to widzę tak: jest do zrobienia projekt, 1. firma ma do dyspozycji niewielki zespół .NET(lub java/PHP) i trochę czasu - robimy wycenę i okazuje się, że dadzą radę: projekt jest 100% .NETowy(Javowy/PHPowy) 2. Do dyspozycji jest mały zespół .NETa i mały Javy, czasu niewiele - można podzielić prace np. usługi w Javie, reszta w .NETcie. 3. Firma robi wyłącznie w jednej technologii i nie ma wyboru, od razu robi co ma robić np. w PHP. Natomiast ktoś kto zleca tej firmie zadanie, może w ogóle nie mieć pojęcia co siedzi w środku - może np. powiedzieć, że wszystko co mają działa na Oraclu i chcą, żeby tak zostało albo i nie. Określa czas i dogaduje się z kasą, firma wykorzystuje Oracla i dowolną technologię. Większe systemy i tak chodzą na maszynach dedykowanych. Natomiast jeśli ktoś by przyszedł do mnie i powiedział abym mu zrobił małą stronkę jak najtańszą w utrzymaniu to wykorzystałbym php na hostingu za 40zł rocznie. Pozdrawiam - również jestem stałym czytelnikiem :)

Łukasz

3 marca 2010 15:38

Procent, Ty prowokatorze! :)

soltys

3 marca 2010 19:22

@leszcz
Jest szczególnie widoczne przy porównaniu programisty, który zna (albo chociaż widział) jakiś język skryptowy do operowania na plikach (perl, python, sed, awk), a takim, który tego nie widział i będzie próbował obrabiać wielki plik tekstowy pisząc rozwiązanie w .NET. Taka ignorancja jest fatalna w skutkach, a taki developer niewiele warty nawet, jeśli będzie znał każdą instrukcję w CLR.

Zawsze przy obróbce pliku zaczynałem z perl, python (wybierz sam) i kończyłem na .NET z powodu kodowania znaków. A .NET robi to super fajnie. Mogę poczekać nawet z 4 minuty więcej :)

iirekm

20 sierpnia 2010 15:33

Nie zgadzam się. Najważniejsze są oczywiście pomysł aplikacji i ludzie, ale technologia ma niebagatelne znaczenie. Jeśli jakiś dyrektor/kierownik mówi, że technologia jest bez znaczenia, to znaczy że jest ignorantem, i do tego nie zna się swoim fachu.

Po pierwsze: nie należy kierować się ceną: .net jest najdroższy (potrzebne Visual Studio i zwykle VPS z Windows - serwery wirtualne z Windows to rzadkość), Java pośrodku (potrzebny VPS z Linuxem - serwery wirtualne z Javą to rzadkość), PHP najtańszy (prawie zawsze wystarczy supertani serwer wirtualny). Z drugiej strony jednak: .net jest technologią najbogatszą w możliwości, narzędzia i ułatwienia, PHP i Java są uboższe. (no cóż, jednak jeśli MS bierze słone pieniądze za Visual Studio, ma za co rozwijać .net)

Co w .net zrobię w 1 dzień, w Javie zajmie mi 1.5 dnia. Pomnóżmy to przez jakieś 10 programistów - i wtedy może wyjść, że .net to najtańsza technologia! Oczywiście wszystko zależy od projektu, ale jako 'reguła kciuka' - .net jest obecnie najtańszą technologią, a to z kolei przekłada się na zysk z projektu.

Dodaj komentarz




biuquotecode