Wpis z mikrobloga

Najpopularniejsza wśród ofert pracy dla programistów jest Java, ale z drugiej strony czytam cały czas, że, jako język ogólnego przeznaczenia jest wolniejsza od C++, rzadziej wykorzystywana przy większych projektach, itd. Nawet androidowe gry pisane są już w większości w innych językach. Do czego zatem wykorzystuje się ją w profesjonalnych zastosowaniach i stąd taka popularność?

#programowanie #java #pytaniazielonego
  • 21
  • Odpowiedz
@emel: Większość apek mi się wydaje jest dalej pisana w Javie. Zdarzają się hipsterzy piszący w Scali, ale ona (mimo iż jest zajebista i mi się strasznie podoba) wymaga trochę pracy.

Co do zastosowań Javy to korpo, korpo i jeszcze korpo. Systemy ERP i inne takie, operacje finansowe. Teraz ostatnio nawet obliczenia matematyczne (wspólnie z Pythonem).

BTW z tego co pamiętam, to CERN lata głównie na Javie i Pythonie.
  • Odpowiedz
@emel: Z różnych testów wcale nie wynika, żeby C++ był aż tak motzno szybszy od Javy. Wiadomo, interpretowany język ma swoje wady i zalety, co do Androida, to rzuć okiem na to:

http://www.extremetech.com/computing/170677-android-art-google-finally-moves-to-replace-dalvik-to-boost-performance-and-battery-life

Poza tym dużo zależy od tego jak co jest napisane, niekoniecznie w czym - beznadziejny kod w C++ może być wolniejszy nawet od przeciętnego w
  • Odpowiedz
@szoorstki: Ale ty zjechałeś na Davlika (czyli niby maszynę Javy ale jednak sam bytecode jest trochę inny) a właśnie głównym problemem tej właściwiej Javy jest jej maszyna przez fatalne zarządzanie pamięcią (gdzie gówniane appki wyświetlające hello world potrafią powyżej 20 MB zająć pamięci o większych już nawet nie wspominając), błędy (dlatego jest w wielu distro linuksowych używana osowa implementacja od tej od Oracle).
  • Odpowiedz
@emel: Po za tym o czym wspomniał @Hauleth jest jeszcze jeden (moim zdaniem najważniejszy) popularności języków takich jak Java czy C# - czas pisania aplikacji. Czas w jakim można dostarczyć gotową apkę biznesowi. A czas to pieniądz. W językach wysokiego poziomu napisanie otestowanej, działającej funkcjonalności zajmie powiedzmy tydzień, a w takim c++ nie dość, że trwałoby to dłużej to jeszcze z dużym prawdopodobieństwem dostałbyś produkt gorszej jakości. Nie dlatego,
  • Odpowiedz
@sylwke3100: No niestety, Java nie jest idealna. A na pewno Oracle jest dalekie od ideału :P Niestety jakoś nie trawię tej firmy, moim zdaniem ich produkty są fatalne... dlatego trochę mi smutno, bo teraz czarno widzę rozwój Javy.

A o Dalviku wspomniałem tylko przy okazji ;)
  • Odpowiedz
@Yahoo_: Jeśli chcesz tworzyć aplikacje szybko (nie mówię tu o lokalnych, bo w biznesie teraz takowe praktycznie nie istnieją) to są lepsze rozwiązania, jednak w korpo zawsze ciężko idzie ze zmianami technologicznymi, bo one niosą ryzyko dużych kosztów.
  • Odpowiedz
@Yahoo_: Python, Ruby, Scala, Groovy, JavaScript, etc. (dla CLI nic nie znalazłem). Pokusił bym się nawet o Clojure. Wytwarzanie oprogramowania w praktycznie każdym z tych języków będzie znacznie szybsze niż w Javie/C#.
  • Odpowiedz
@archlinuxuser: A co ma refactoring do statycznego typowania? Jeśli ktoś dobrze zaprojektuje system oraz pokryje testami to nie ma najmniejszej różnicy czy typowanie jest statyczne czy dynamiczne. IMHO typowanie dynamiczne to tak na prawdę zastąpienie paru testów walidacją w czasie kompilacji.
  • Odpowiedz
@Hauleth: Refaktoring ma bardzo dużo do statycznego typowania. Jeśli typowanie jest statyczne, to narzędzie może wykonać zmianę z bardzo małym prawdopodobieństwem błędu, bo wszystkie wywołania i cała struktura kodu jest oczywista. Im więcej "dynamizmu", refleksji albo zmiany kodu w czasie działania programu tym trudniej analizatorowi kodu sprawdzić co robi kod.
  • Odpowiedz
@Hauleth: Wiadomo, że pokrycie kodu jest przydatne, ale w przypadku języków ze statycznym typowaniem bardzo duża część testów nie musi być pisana w ogóle, bo kompilator wykryje błędy od razu.
  • Odpowiedz
Jeśli ktoś dobrze zaprojektuje system


@Hauleth: Jedyną stałą jest zmiana, w przypadku projektów, które będą używane system na pewno będzie się zmieniał. Zaprojektowanie wszystkiego na początku jest niemożliwe. Refaktoring to chleb powszedni.
  • Odpowiedz