Kiedy Java jest dobrym wyborem do tworzenia stron internetowych?
Nie mów „Gdy masz zespół programistów, który zna tylko Javę”.
Kiedy Java jest dobrym wyborem do tworzenia stron internetowych?
Nie mów „Gdy masz zespół programistów, który zna tylko Javę”.
Odpowiedzi:
Biorąc pod uwagę wiele dostępnych platform, dojrzałość platformy itp., Mam ochotę powiedzieć „prawie zawsze”. Oto kilka powodów, dla których nie powinieneś używać Java:
Java jest używana w małych i średnich witrynach internetowych. Najważniejsze jest to, że jest dużo mniej darmowego hostingu dla stron Java niż np. PHP, co oznacza, że jeśli nie masz wystarczających zasobów do hostowania własnego serwera WWW, prawdopodobnie nie wybierzesz Java.
Zauważ, że w Javie EE 6, szczególnie w profilu internetowym, dostępnych jest wiele standardowych technologii, które mogą tworzyć bardzo wydajne aplikacje internetowe bez konieczności kodowania zbyt wiele. Niestety nie jest to jeszcze główny nurt.
Zauważ, że zmieniło się to nieco niedawno dzięki Google Application Engine, który pozwala na darmowe wdrażanie standardowych aplikacji internetowych Java (z kilkoma ograniczeniami) w witrynach o niskim lub średnim ruchu.
Gdy twoją platformą jest UNIX / Linux i potrzebujesz bogatego zestawu narzędzi, takich jak mapowanie obiektów / relacji, zabezpieczenia, złożone zarządzanie usługami sieci Web itp.
(Nie mówimy o prostych stronach internetowych, prawda?)
Za każdym razem, gdy inny zespół Java mnie wkurza, zdmuchuję parę, szukając takich pytań. Pozwól, że powtórzę. Jestem deweloperem po stronie klienta i działam już od prawie 5 lat. Pracowałem nad witrynami, od jednorazowych mikrostron o dużej zawartości, przez strony tak ogromne jak Sears, aż po bardziej wyrafinowane strony typu aplikacja, w których potrzebna jest naprawdę głęboka wiedza na temat interfejsu użytkownika. Miałem do czynienia z Railsami, PHP, .netowymi formularzami internetowymi (ew), .net MVC (znacznie lepiej) i układem bukietów rozwiązań Java do tworzenia stron internetowych w towarzystwie deweloperów i zespołów, z którymi wszyscy byli kompletnymi katastrofami. Piszę też trochę Pythona i zaczynam kopać Django.
Moje doświadczenie z zespołami Java było ogólnie okropne. Narzędzia są zawsze PITA. Twórcy nigdy nie chcą uwierzyć, że zrobili coś złego, a nakłonienie ich do ponownego zbadania własnej murawy, gdy tylko wykluczysz problem, to jak ciągnięcie zębów. Z mojego doświadczenia wynika, że pierwszą sprawą związaną z zespołami Java jest konwersja czasu programowania na e-mail i pisanie wielu długich wyjaśnień na temat tego, dlaczego problem na pewno się kończy. HTML zazwyczaj nie stanowi ich problemu, chyba że naprawdę chcesz mieć nad nim kontrolę. Wtedy wszystko prawdopodobnie pójdzie do piekła na ich końcu, ponieważ tak naprawdę chcesz przenieść jakieś divy wyższego poziomu.
Są rzeczy w języku, którego nie lubię, ale myślę, że prawdziwym problemem jest kultura i fakt, że akceptacja jest tak powszechna, że w środku jest mnóstwo przeciętności. Podejrzewam, że kultura pochodzi ze sposobu, w jaki Java jest sprzedawana. Napisz raz, wdrażaj wszędzie. Tłumaczenie: „Musisz tylko nauczyć się jednej rzeczy!” Ludzie, którzy uważają to za atrakcyjne, w zasadzie chcą posługiwać się Javą jak gigantyczny młot na każdy gwóźdź przy minimalnym szlifowaniu swojego rzemiosła w zakresie tworzenia stron internetowych.
Więc jeśli masz programistów, którzy znają Javę i inne języki, ale nadal wolą Javę, powiedziałbym, tak, śmiało, jeśli wydaje się to właściwym rozwiązaniem. Ale jeśli masz deweloperów Java, którzy znają Javę, a wszystko inne ledwo spełnia kryteria, aby rzeczywiście było to punktem kulminacyjnym w ich życiorysie, poproś, aby zbudowali prostą aplikację z różnymi pół-złożonymi stronami na końcu HTML i wypróbuj to prosty test. Złam trochę HTML. Postaraj się, aby zrozumieli, co jest nie tak. Jeśli bezpośrednim problemem, który zaczynają rozwiązywać, jest odwrócenie winy od siebie, trzymaj je z dala od tworzenia stron internetowych! Web dev jest interdyscyplinarny i wymaga aktywnego zainteresowania w tej dziedzinie, aby odnieść sukces. To nie jest miejsce dla ludzi, którzy chcą tylko utrzymać znajomość jednego języka i są bardziej przerażeni problemami niż zainteresowani ich rozwiązaniem.
Nie twierdzę, że sama Java jest źródłem niekompetencji i słyszałem, że Wiosna jest dobra. Jestem pewien, że są tam kompetentne zespoły Java. Po prostu jeszcze go nie spotkałem i nie sądzę, że to zbieg okoliczności. Myślę, że Sun ma z tym wiele wspólnego. Myślę też, że prowadzenie zespołów internetowych, takich jak działy IT lub pod nimi, ma z tym wiele wspólnego.
Java doskonale nadaje się do małych witryn internetowych. Strony JSP mogą działać bardzo szybko z serwerem WWW Java, takim jak na przykład Tomcat .
Chociaż z mojego doświadczenia wynika, że Java jest bardziej powszechna w dużych witrynach internetowych, gdzie istnieje większe zapotrzebowanie na złożone przetwarzanie po stronie serwera - w tym przypadku znajdziesz bardziej wyrafinowane frameworki Java, takie jak JavaServer Faces (JSF).
Ważne jest, aby pamiętać, że pełna instalacja Java w przeszłości nie była dostępna w wielu tanich konfiguracjach hostingu, więc może to tłumaczyć występowanie innych języków, takich jak PHP w tych środowiskach.
Główne powody używania Java w programowaniu WWW sprowadzają się do następujących kwestii:
Z technicznego punktu widzenia:
Gdybym uruchamiał aplikację internetową, używałbym Ruby on Rails i projektował w taki sposób, aby hotspoty mogły zostać zamienione, gdy RoR osiągnie limit skalowania wydajności.
Java ma wyraźny zapach COBOL, a wiszący wokół niego „słabi koderzy używają Java”, a fiasko Oracle nie pomaga reputacji. Jeśli masz wybór , wybierz język, który przyciąga najlepszych deweloperów.
To proste: używaj Javy, gdy głównym problemem jest wydajność zaplecza. Kodowanie wiąże się z większymi kosztami, ale kod będzie wykonywany w 1/200 do 1/500 tego czasu - dosłownie. Php, Ruby i inne dynamicznie pisane języki zawsze będą znacznie wolniejsze niż serwery Java lub .net.
Większość rozwiązań internetowych tego nie potrzebuje. Twitter nie porzucił Railsów, dopóki nie zaczął na przykład zdobywać popularności.
Nie jedyny powód, ale wraz z rosnącą popularnością budowania stron internetowych z wyrafinowanymi interfejsami aplikacji, a jednocześnie logiką robienia „rzeczy” z powrotem na serwerze - żaden powód nie powinien być konieczny, aby wyjaśnić, dlaczego Java jest co najmniej równa opcja po stronie serwera. Ale po stronie klienta, jeśli jakikolwiek javascript szybko zamieni się w koszmar utrzymania kodu, a dzięki GWT utrzymasz te rzeczy na wyciągnięcie ręki, aby móc pisać w Javie, możesz mieć to, co najlepsze z obu światów na swoim serwerze wykonując ciężkie podnoszenie, a procesor klienta daje mu „doświadczenie”. Naucz się integrować go z czymś takim, jak jQuery, a możesz mieć także tyle słodyczy, ile chcesz.
Nie jest ekspertem od alternatyw, ale jeśli ktoś inny może zaproponować taką samą elastyczność i szerokość, chętnie o tym usłyszy.
Głównym powodem, dla którego wybrałbym java, jest konieczność korzystania z transakcji rozproszonych, co może być dużym problemem dla wielu korporacji. Jednak nadal możesz używać swojego ulubionego języka skryptowego do tworzenia stron internetowych i delegować pracę do java tylko wtedy, gdy potrzebujesz szybkich / rozproszonych transakcji.
Wierzę, że tak będzie, gdy twoja aplikacja będzie bardzo złożona, z wieloma osobami ją rozwijającymi, z wieloma złożonymi modułami, złożoną logiką biznesową i musi komunikować się z wieloma innymi aplikacjami korporacyjnymi.
W każdym razie możesz również rozwijać się w Grails, który zapewnia wiele fajnych funkcji, bardzo ułatwia programowanie i dojrzewa naprawdę szybko.
Java jest w porządku, ale jeśli wydajność nie jest szczególnie ważna, możesz uzyskać te same wyniki przy mniejszym wysiłku w innych językach.
Java jest językiem o typie statycznym i jest tańszy niż inne języki o typie statycznym używane do tworzenia stron internetowych, a mianowicie C # i VB.net, jeśli Twoja firma nie ma subskrypcji MSDN. Języki o typie statycznym są dobre dla średnich i dużych projektów, złożonych reguł domenowych i wielu kodów zaplecza, ponieważ możesz lepiej organizować swoje zajęcia, a IDE pomogą ci znaleźć błędy w kodzie.
Dzięki dynamicznie wpisywanym językom, takim jak PHP, Python, Ruby, rozwój będzie znacznie szybszy, ale będziesz musiał znacznie lepiej przetestować kod. Jeśli nie masz dużo czasu i pieniędzy, a Twoje wymagania zmieniają się bardzo szybko i nie musisz wykonywać bardzo skomplikowanych obliczeń, języki dynamiczne są znacznie lepsze.
Bezpieczeństwo
Głównym powodem, dla którego duże firmy wybierają Javę zamiast innych rozwiązań, jest to, że uważa się ją za znacznie bezpieczniejszą.
Wynika to głównie z tego, że jest obsługiwany przez tak dużą firmę (obecnie Oracle).
Należy wziąć pod uwagę, że Java oferuje bardzo wysoki poziom bezpieczeństwa oraz doskonałe wsparcie i analizy (choć ma swoją cenę).