2008-11-01 19 views
22

Jaki jest najlepszy system operacyjny dla programowania Java? Ludzie z Sun pchają Solaris, tak, Solaris ma kilka dodatkowych funkcji zawartych w sobie, takich jak (dTrace, możliwość dostrajania wydajności JVM itd.). Niektórzy moi znajomi przesiedli swoje aplikacje na solaris i powiedzieli mi, że występy są genialne. Nie jestem zadowolony z przełączania systemu operacyjnego i zamiast tego korzystam z Solaris.Najlepszy system operacyjny dla rozwoju java?

Jakie były twoje doświadczenia?

Odpowiedz

38

Z trzech używanych przeze mnie (Mac OS X, Linux, Windows) uważam Linux za najlepsze miejsce do rozwoju Java.

Moja podstawowa maszyna to Mac, i zrobiłem tam sporo programowania Java i byłem z niej zadowolony. Niestety, Apple pozostaje w tyle za oficjalnymi wydaniami JDK, a ty jesteś praktycznie ograniczony do kilku wersji, które zdecydują się dostarczyć.

Moja maszyna dostarczona przez pracodawcę to stara skrzynia P4 firmy HP, której używam głównie do utrzymywania ciepła w stopach. Prawdziwą pracą jest "Oberon", na czterordzeniowym procesorze 2,6 GHz z systemem Ubuntu 8.04 w trybie 32-bitowym [1]. Dwie zalety, które zauważam z dnia na dzień w porównaniu z Windows to:

  1. Potężna linia poleceń, która pomaga mi zautomatyzować nudne małe rzeczy.
  2. Dalsza wyższa wydajność systemu plików. (Obecnie używam EXT3, ponieważ staję się konserwatywny w moim starszym wieku.) Używałem wcześniej ReiserFS, który był jeszcze szybszy w przypadku rodzajów operacji, które zwykle wykonuje się na dużych obszarach roboczych wyrejestrowanych z subversion.)

Można uzyskać te korzyści z mac też, ale Linux oferuje kolejny miły bonus:

  • zdalnego X11: Przed moim $ PRACODAWCA pod warunkiem, e-mail i kalendarza za pośrednictwem sieci, musiałem być w oknie Windows, aby przeczytać moją pocztę i zobaczyć moje spotkania, więc użyłem Cygwina X11. Pozwoliło mi to na uruchamianie rzeczy na Linuksie, ale wyświetlało je na moim pulpicie Windows.

[1] i służy do uruchamiania Ubuntu w trybie 64-bitowym, ale nie ma koniec awarii. (Miksowanie 64-bitowe i 32-bitowe jest czymś, co Mac OS X ma znacznie lepiej.) 7.04 działało poprawnie z 32-bitowymi aplikacjami w jądrze 64-bitowym. 7.10 zepsuł skrypt linux32 i możliwość instalacji nowych aplikacji 32-bitowych, chociaż stare nadal (w większości) działały. 8.04 zabił 32-bitową java, uniemożliwiając połączenie się z siecią z 32-bitowej maszyny JVM (nie ma już aktualizacji dla Eclipse). Uruchomienie Eclipse 64-bit nie działało niezawodnie. Aktualna wersja tlenu działałaby (niechętnie) tylko pod 64-bitową maszyną wirtualną IBM, która działała przez około 10 minut, dopóki nie przestał otrzymywać informacji o klawiaturze. W końcu zrezygnowałem z frustracji i korzystałem z mojego komputera Mac przez kilka miesięcy, dopóki nie miałem dość czasu na zrobienie 32-bitowej instalacji 8.04 na Linuksie. Teraz wszystko znowu działa i jestem całkiem szczęśliwy.

+0

Chciałbym dodać, że używam Ubuntu 8.10, i czasami znajduję "błędy" .. Np. SystemTray nie jest obsługiwany, wydaje się, że jest znanym problemem. I miałem projekt na scool, gdzie zamierzaliśmy stworzyć niezawodny protokół przesyłania przez UDP, i miałem pewne problemy z wysyłaniem pakietów (segmentów), których użytkownicy Windowsa i OSX nie otrzymywali ..: S – Johannes

+0

Ubuntu w szczególności jest naprawdę bardzo dobre dla każdego rodzaju rozwoju, zwłaszcza jeśli chodzi o Javę. Jeśli nie jesteście ukierunkowani na technologie specyficzne dla Microsoft, to Ruby, Python, C#, Groovy, Erlang, Perl, D, C/C++ i wszystko inne jest tam dostępne. –

+0

A moim osobistym IDE będzie Netbeans. Od J2ME do serwletów itp. To jest jeden pakiet, który zajmuje się wszystkim. Nawet używam Netbeans 6.7 dla Ruby, C++ (Qt) i dla Java. –

0

Osiągnąłem sukces przed wykonaniem programowania Java w systemie Windows z Eclipse. Wygląda na to, że pytasz również o wdrożenie/hosting. Niezależnie od tego, który system operacyjny jest najlepszy do uruchomienia aplikacji, nie należy tak naprawdę określać systemu operacyjnego używanego do tworzenia aplikacji.

+0

Nie ma tu mowy o wdrożeniu/hostingu, może kontekst nie pasuje do tego, co miałem na myśli, ale mój przyjaciel przesyła swoją aplikację na Solaris tylko do testowania. – vaske

+0

jakie jest oprogramowanie? Podaj trochę więcej kontekstu. Migracja aplikacji do określonego systemu operacyjnego w celu przetestowania wydaje się dziwna, ponieważ większość narzędzi jest niezależna od platformy. – Egwor

+0

Jaka aplikacja jest szybsza w systemie Solaris – vaske

1

Osobiście nie zawracałbym sobie głowy. Chciałbym korzystać z platformy, która najlepiej obsługuje narzędzia programistyczne i platformę docelową, z której korzystasz.

Dlaczego trzeba dostroić maszynę JVM? Jest to bardzo niezwykła rzecz, którą chcesz robić. Czy lepiej byłoby pisać w języku niższego poziomu, takim jak C++?

Dtrace jest dostępne dla OS X, jest też port Linux. Solaris od dawna ma reputację powolnego (stąd pseudonim Slowaris). Nie jestem pewien, czy to nadal prawda.

+1

Sparc sprawił, że Solaris jest wolniejszy w porównaniu do szybszych procesorów Pentium +. Teraz, gdy Solaris działa równie dobrze na procesorach intel, Solaris jest tak szybki/wolny jak każdy inny system operacyjny. YMMV. – anjanb

7

"rozwój"?

Sądzę, że powinieneś trzymać się systemu operacyjnego, z którym najbardziej Ci odpowiadasz, lub który jest najbardziej dostępny dla dużej grupy (programistów), jak na przykład zestaw komputerów w systemie Windows.

Rzadko trzeba dogłębnie dostroić na platformie development.

Zastrzegłbyś wszystkie te tunele i inne funkcje dostrajania wydajności na platformie montażowej (na przykład w systemie Linux), do codziennych wdrożeń, w których wszystko jest przekompilowane i przetestowane.

A następnie można skonfigurować specjalną maszynę JVM (np. IBM JRockit zamiast Sun JRE), aby przeprowadzić analizę na platformie integracyjnej, w której cały system może być testowany od przodu do tyłu, z testem nacisku i bez regresji

I wreszcie, wykonaj wszystkie testy UAT (User Acceptance Tests) na platformie przedprodukcyjnej (która może być kosztowna F15K lub SunFire880 lub V490 lub ...), z docelowym JRE tam używanym.

Chodzi mi o to, że jest tak wiele parametrów, które należy uwzględnić między rozwojem a wprowadzeniem do produkcji, że zmiana systemu operacyjnego na tak wczesnym etapie może okazać się niepotrzebna.

+0

JEŚLI nie piszesz GUI, w takim przypadku chcesz być w systemie operacyjnym, którego używają Twoi użytkownicy. – Egwor

+0

To prawda, ale w kontekście tego pytania ... Solaris? Jeśli masz setki użytkowników, wątpię, czy wszyscy będą mieli skrzynkę Solaris ;-) – VonC

6

Rozwijaj się, z czego jesteś zadowolony, i sprawdź, na czym się opierasz.

Rozwijam Javę na moim komputerze Mac i wdrażam w systemie Solaris i Linux. Prawda jest taka, że ​​w przypadku większości zadań Java może być rozwijana w sposób niezależny od systemu operacyjnego. Jest to szczególnie ważne w przypadku projektowania po stronie serwera.

Podoba mi się rozwijanie na Unixie w ogóle w systemie Windows, ale to ja.

0

Windows i Eclipse działają dobrze, jak sugeruje pmiller. Mogę również polecić OS X z Eclipse lub IntelliJ IDEA (ten ostatni działa również w systemie Windows).

Wykonałem tylko najbardziej podstawowy program Java na Solaris (podstawowe praktyki programowania struktur danych na Uniwersytecie), więc nie mogę zaoferować żadnego prawdziwego porównania, obawiam się. Na Solarisie było to dość bolesne z powodu braku odpowiednich narzędzi (myślę, że byłem ograniczony do nedit lub czegoś takiego).

11

Rozwijaj się, cokolwiek chcesz. Jako programista java możesz chcieć uniknąć Mac OS X, głównie dlatego, że nowe funkcje wydają się być znacznie opóźnione, a także dlatego, że możesz znaleźć, że nie masz już maszyny, która obsługuje nowe wersje Javy. Powiedziawszy, że mogę sobie wyobrazić rozwijanie na Mac OS X musi być bardzo ładne (interfejs wiersza poleceń, dtrace, ładny system operacyjny).

Rozwijam się w systemie Windows z IntelliJ 7. Jest ok, ale potrzebuje mocnego sprzętu. Następnie wdrażam system solaris/linux. Jeśli nie piszesz GUI lub nie integrujesz się z kodem C++, powinieneś dobrze wybierać, co Ci się podoba.

+0

Co powiesz na jednorazowy zapis, uruchomisz wszędzie - metaforę? Nasi klienci najczęściej używają okien, a niektórzy używają mac os x, więc nasza aplikacja próbuje wyglądać jak natywna na obu ... – dhiller

+0

Oczywiście dla serwerów, które są w porządku. Ale dla GUI może wyglądać jak natywna, ale istnieją subtelności, które mają wpływ na to, jak faktycznie działają. Na przykład focus. – Egwor

0

Jedną rzeczą, którą należy wziąć pod uwagę, jest to, czy zamierzasz opracować aplikację, która może być uruchomiona na komputerze Mac. Uwielbiam OS X, ale dobry stary Steve upewnił się, że zawsze mamy wiele wersji JDK. Ledwo dostaliśmy Javę 6. Rozwijanie na Macu może przynajmniej zapewnić, że pracujesz w najniższej możliwej wersji JDK.

6

Powiedziałbym Mac OS X.

rozwój Java zbudowany w. Wszystkie narzędzia wiersza poleceń systemu UNIX chcesz. Po wyjęciu z pudełka. Mrówka i maven są tam. Nie najnowsze wersje, ale to dość łatwe do uaktualnienia.

Tak, prawdopodobnie nie masz najnowszej wersji JDK, ale tak naprawdę, jeśli nie musisz opracowywać najnowszego i największego pakietu JDK, nie będzie to problemem.

+3

+1 zwykle nie rozwijasz czegoś poważnego na najnowszym JDK – joshua

+0

Nie dostarczyłeś żadnych plusów/minusów w stosunku do linux – Devenv

2

Odpowiedź jest łatwiejsza niż myślisz: użyj ulubionego systemu operacyjnego. W przypadku języka Java jest to najlepsza odpowiedź. Nie sam rozwój, ale twoja wygoda pomoże ci osiągnąć sukces, przeglądanie dokumentów itp. W twoim ulubionym środowisku.

0

Użyłem Linuksa, Windowsa i OS X. Moim dużym argumentem przemawiającym za OS X jest to, że jest to przyjazny dla użytkownika system operacyjny (tj. Mogę uruchamiać iTunes, większość nowoczesnych przeglądarek i nie trzeba przydzielać 50% mojego czasu na utrzymywanie go na laptopie jak Linux) z fundamentem unix. Ponieważ większość mojego rozwoju dotyczy systemów uniksowych, czyni to życie znacznie bardziej wydajnym. Za platformą kryje się także coraz bardziej aktywna społeczność programistów. Powody te działają również w odwrotnej sytuacji w systemie Windows - podczas gdy cygwin zamyka niektóre z moich wymagań dotyczących używania narzędzi uniksowych - nie przypomina to posiadania prawdziwego systemu uniksowego.

0

Twoje środowisko programistyczne MUSI BYĆ TAKIE SAME JAKO PRODUKCJA.

Nie ma "najlepszego środowiska programistycznego", które nie jest identyczne z twoim środowiskiem produkcyjnym. Uruchom to, co uruchamiasz w produkcji, w fazie rozwoju.

To powiedziawszy, nie oznacza to, że nie możesz uruchomić swojego IDE, na przykład, w innym systemie operacyjnym, pod warunkiem, że nadal pracujesz nad tym samym systemem co produkcją (na innym komputerze lub maszynie wirtualnej) .

0

Windows jest w porządku.

Solaris jest również wspaniałym środowiskiem programistycznym Java (podoba mi się to lepiej niż Windows, ale z powodów subiektywnych), ale jeśli nie wdraża się go na tym komputerze, może nie warto go przełączać.

Linux jest trochę niezgrabny dla programowania w języku Java, ale jest wykonalny.

Jedyne, czego nie mogę polecić, to Mac, ponieważ zawsze jest tak daleko w tyle w stosunku do wersji dostępnej Javy (nie dostarczona przez firmę Sun, Apple robi to samo).

+1

Z jakich powodów Linux jest "niezgrabny" dla programistów Java? – Xailor

+0

@ Xepoch może dlatego, że ma przylegający interfejs w porównaniu do wygrywania lub mac. –

+1

@JohnS ... kto potrzebuje interfejsu do programowania? :) 'vi' przez całą drogę. – Xailor

0

Moja najlepsza rada to opracowanie na platformie, na którą kierujesz reklamy. W ten sposób, gdy uruchomisz go podczas testowania rozwoju i przeprowadzisz testy jednostkowe, wiesz, że będzie działać również na platformie docelowej, bez żadnych nieprzyjemnych niespodzianek.

Jeśli kierujesz reklamy na wszystkie platformy, być może zechcesz rozwijać komputer Mac, ponieważ dostaniesz najbardziej nieprzyjemne niespodzianki na komputerze Mac. Jeśli chodzi o Javę, na Windows i Unix, "po prostu działa", ale nie tak bardzo na Mac.Firma Sun opracowuje środowisko wykonawcze Java (JRE) dla wszystkich systemów operacyjnych z wyjątkiem komputerów Mac. Apple rozwija własne środowisko JRE.

Jeśli rozwijasz się na Macu, najprawdopodobniej rozwijasz się z najmniejszym wspólnym mianownikiem, więc to, co działa na Macu, powinno działać na innych. Takie było moje doświadczenie.

Poza tym, zawsze zalecam wybór systemu operacyjnego na podstawie tego, czy uruchamia on twoje oprogramowanie. Wybierz system operacyjny, w którym działa IDE i inne narzędzia używane do programowania i testowania. Jeśli więcej niż jeden system operacyjny uruchamia potrzebne narzędzia, wybierz ten, który najlepiej je obsługuje.

Powiązane problemy