J. w. Chwilowo przejadły mi się C i C++, więc żeby nie stać w miejscu wziąłem się ostatnio za Javę. Programy piszę i kompiluję z użyciem Notepad++, jdk i wiersza poleceń, ale to jest trochę uciążliwe. No, chyba że to najlepszy sposób. Wiem, że jest Eclipse, BlueJ, NetBeans, tylko nie wiem, co będzie najłatwiejsze w obsłudze dla mnie (na tą chwilę nie potrzebuję setek jakichś wymyślnych narzędzi dodatkowych).
Ściągnij NetBeans i pozostaw mu opcję "Features on Demand". Mój mały poradnik do NetBeans: Wprowadzenie do NetBeans IDE
ATSD: Jeśli chodzi o C/ C++ to w nich też programuję w NetBeansie.
Ja polecam Eclipse, BlueJ nie znam, do NetBeans parę razy podchodziłem, zupełnie nie przypadł mi do gustu. Za mało korzystałem by móc powiedzieć co mi się w nim nie podobało.
Również polecę Ci Eclipse. Jak na IDE jest całkiem IMO czytelne i możesz wykorzystywać tylko te funkcje, które są Ci potrzebne a te bardziej zaawansowane zbytnio przeszkadzać Ci nie powinny. Poza tym w Eclipse można również pisać pod Androida (bodaj po instalacji jakiejś wtyczki od Google) co znowu jest na plus ;). Tak swoją drogą...w innym też chyba mozna kodzić pod andka np. Netbeans prawda?
Co do NetBeans to ja w tym środowisku miałem jedynie 'przyjemność' robić strony internetowe bo zostało mi ono polecone. Cóż zadowolony nie byłem z kilku powodów (ale to moja opinia):
-Strasznie długi czas uruchamiania (miałem 1GB ram i Intel Pentium procek wtedy);
-Przebajerowane
Kiedy piszemy w PHP to za cholere nie będzie kolorowało składni HTMLa/JSa i odwrotnie co bardzo mnie wkurzało....może już jest jakaś wtyczka na to. IMO jeżeli pobieramy środowisko do PHP (NetBeans) to powinno kolorować też składnie innych stronko-twórczych języków. Może Cię zainteresuje, że zarówno NetBeans jak i Eclipse było pisane w Javie.
PS Jeżeli kodowałeś kiedyś w SharpDevelop to obecna wersja jest bardzo podobna właśnie do Eclipse. Przynajmniej ja mam takie wrażenia :) W końcu języki podobne Java - > C# :)
Wybrałem NetBeans, powinno na razie wystarczyć "najuboższa" wersja (z JavaSE). Trochę przycina, ale to kwestia leciwego sprzętu.
Między NetBeans i Eclipse masz taką sprawę do przemyślenia :) Otóż, Eclipse spotkasz w większości firm które tworzą w Java. NetBeans jest środowiskiem też dobrym ale jednak wydaje mi się, że mniej popularnym wśród programistów. Piszę to z własnego doświadczenia i wiedzy uzyskanej od innych kolegów ;) Środowiska trochę się różnią. Moim zdaniem (też praktyka) korzystanie z Eclipse i pisanie w zespole sprawdza się wyśmienicie. Dlaczego?? Jak przyjdzie ci działać np z SVN to się sam przekonasz ;)
Pracowałem i wciąż mam kontakt z Eclipse i Netbeans. W NB teraz co druga minuta pisania to nieustający refactoring, więc po miesiącu pracy jak zaglądnę do swojego kodu to bez komentarzy wiem o co chodziło, dlaczego gdzieś zastosowałem taki myk, a nie inny. Tego w Eclipse się nie da inaczej jak pisząc w sąsiedztwie kodu elaborat w komentarzach (w NB wystarczy czasem słowo lub dwa co jakiś czas). Podświetlenie zmiennych (i innych elementów też - metod, klas, adnotacji) od razu pokazuje czy zmienna powinna być lokalna, ma być polem aktualnego obiektu czy czymś zupełnie innym. Bardzo łatwo się dzięki temu pisze metodą top-down (zstępująco) dzięki czemu każdy interfejs klasowy czy jawny jest z definicji zminimalizowany do niezbędnych (używanych) pozycji, a kod najwyższego poziomu pisany jest prawie językiem naturalnym. Podobnie ma się z pisaniem testów do kodu, który jeszcze nie powstał.
Edytor NB jest lepszy też w tym, że wykrywa powtarzalną strukturę każdego pliku tekstowego. Przez pomyłkę wczytałem niedawno tekstowy zrzut z jakiegoś pliku excela (1MB), to zanim się zorientowałem edytor sam już mi pokolorował elementy powtarzalne i wszystko co na oko miało jakiś sens (szczególnie wszystko w postaci a=b). Dzięki temu mógłbym łatwo edytować nawet jakieś śmieci. W Eclipse do niedawna najbardziej zaawansowana "inteligencja edycji" to było domyślne paste+reformat.
Dzisiaj samo porządkowanie plików w IDE to zwyczajnie za mało. To ma pomagać, ułatwiać i przyspieszać pracę, a nie zatrzymać się na etapie drzewka ze źródłami. Oczywiście Eclipse też nie stoi w miejscu i widać, że próbuje na siłę gonić NB, które ze śmiesznego, lekceważonego IDE w wersji 4.x stało się właśnie dzięki pomocnemu edytorowi silnym konkurentem. Jednak na razie gonitwa ta polega na wyszukiwaniu pojedynczych, egzotycznych usprawnień, których NB nie obsługuje, często wykombinowanych pod specyficzny styl kodowania (a nawet formatowania). Na dodatek wszystkie te usprawnienia są uzbrojone w typowe dla Eclipse przeładowanie możliwościami konfiguracji. Tak jakby programista sam sobie miał programować jakie błędy popełnia i jak je sygnalizować.
Dlatego na dzisiaj wolę NB.
Olamagato napisał(a):
W NB teraz co druga minuta pisania to nieustający refactoring, więc po miesiącu pracy jak zaglądnę do swojego kodu to bez komentarzy wiem o co chodziło, dlaczego gdzieś zastosowałem taki myk, a nie inny. Tego w Eclipse się nie da inaczej jak pisząc w sąsiedztwie kodu elaborat w komentarzach (w NB wystarczy czasem słowo lub dwa co jakiś czas).
Mozesz rozwinac te mysl? Nie bardzo rozumiem. W NB nie musisz pisac komentarzy do kodu, a w Eclipse tak?
Po prostu łatwiej jest pisać przejrzysty kod bo poprawianie i przerabianie kodu trwa dużo krócej niż w zwykłym edytorze. Dzięki temu nie trzeba pisać rozwlekłych komentarzy, a tylko tak krótkie jak to możliwe. W prostym edytorze nie będzie Ci się chciało np. przerabiać pętli, żeby była bardziej przejrzysta bo wydaje się to marnotrawstwem czasu. Inaczej się na to patrzy gdy przeróbka trwa bardzo krótko, a na dodatek podświetlane elementy wskazują, że coś tam nie pasuje. Kiedy się tych możliwości nie ma, to łatwiej jest napisać obszerny komentarz niż bawić się ręcznymi przeróbkami, co do których nie będzie pewności czy przeróbka będzie równoważna poprzedniej (czasem już przetestowanej) wersji. Gdy pisałem w Eclipse (wtedy 3.x) poprawiając kod, żeby był bardziej spójny, przejrzysty i żeby można było go wykorzystać ponownie, to okazywało się nierzadko, że dostawałem nowe bugi. A takie coś bardzo zniechęca do przeróbek kodu, który już działa. Wtedy łatwiej nie tykać działającego, a ponowne wykorzystanie kodu sobie darować. I wtedy mamy casus Ariane 5, czyli copy-paste, albo ponowne pisanie kodu robiącego prawie to samo co już napisany.
Edytor NB zachęca do tego do czego proste edytory (przeznaczone do pisania kodu) zniechęcają i odwrotnie. Dzisiaj obsługa wcięć i trzymanie formatu stylu to trochę za mało.
Mi dzięki NB udaje się skracać tekst dowolnie skomplikowanego kodu do 15-25 wierszy na najwyższym poziomie, dzięki czemu nie muszę nigdy przewijać ekranu, żeby ogarnąć co właściwie piszę. Niedawno sam się zdziwiłem kiedy mocno skomplikowany parser z kupą wyjątków i skomplikowanych reguł zmieścił mi się w małym oknie. Przerabiałem rozwlekły kod mający prawie 1000 wierszy w kilku totalnie niejasnych blokach i skończyło się czymś takim:
@Override public void run()
{
fieldIdentifiedCache(true);
currentField = 0; //używane niżej
currentRow = new Row.Simple(fields.size());
for(int bufNr = newLineIdx = 0; bufNr < bufs.size(); ++bufNr)
{
buf = registerBuffer(bufNr);
final int bufLen = buf.length();
for(idx = newLineIdx, newLineIdx = 0; idx < bufLen; ++idx)
{ //idx używany niżej
foundField = cachedFieldIdentified();
if(foundField == lastField) //znalezione separatory Eol.END
confirmEol(bufNr, bufLen); //ustawia newLineIdx
if(foundField >= 0)
completeField(); //obsługa nowego pola/wiersza
} //koniec parsowania pojedynczego bufora
} //koniec parsowania wszystkich buforów
--idx; //cofnięcie na ostatni poprawny indeks ostatniego bufora
foundField = lastField; //wymuszenie zakończenia wiersza
completeField();
buf = null;
currentRow = null;
idx = -1;
fieldIdentifiedCache(false);
}
Gdybym używał Eclipse to nie wiem czy doszedłbym łatwo do takiego uproszczenia kodu. Oczywiście podprogramy też mają swój kod, ale tak samo czytelny i nawet krótszy.
Olamagato napisał(a):
Mi dzięki NB udaje się skracać kod dowolnie skomplikowanego kodu do 15-25 wierszy
Pure magic. Dark magic. NetBeans.
Powiedz ze to sa zarty.
@Olamagato nie wiem czy wiesz ale Eclipse ma takie same, jeśli nawet nie większe możliwości refaktoringu niż NB. Może ty po prostu nie umiesz z nich korzystać? o_O
Z mojego doswiadczenia Eclipse ma duzo wiecej mozliwosci niz NB (ok, NB uzywalem dluzej tylko jakis czas, to byla wrsja 6.7 czy cos, nie odpowiadalo mi strasznie debugowanie). A i tak IDEA kladzie oba razem na lopatki...
mućka napisał(a):
A i tak IDEA kladzie oba razem na lopatki...
Właśnie, mógłbyś napisać coś więcej? Jestem użytkownikiem IntelliJ, który nie miał za wiele do czynienia z konkurencyjnymi środowiskami (przynajmniej w kontekście Javy), w IntelliJ odnajduję wszysko, czego potrzebuję, w sposób całkowicie naturalny. Czy coś z tego, co oferuje to IDE, jest naprawdę unikalne?
Czy w NetBeans nie zadziała konsola ?
import java.io.Console;
public class Main
{
public static void main(String args[])
{
Console con=System.console();
if(con==null)
{
System.out.println("Brak konsoli !");
System.exit(-1);
}
String line=con.readLine("Wprowadź tekst: ");
con.printf("Wprowadzony tekst: "+line);
}
}
Wynik:
run:
Brak konsoli !
Java Result: -1
BUILD SUCCESSFUL (total time: 0 seconds)
W Eclipse też nie zadziała. Oba IDE tworzą własną konsole, systemowa jest niedostępna.
Napiszę tak:
Używam Eclipse, Netbeans i Idei na raz. Każdego ze środowisk do czego innego - i nie mam problemów.
Idea chyba najwygodniejsza z powodu najwygodniejszych ustawień domyślnych i najwygodniejszego plugina do mavena.
Eclipse ma najwięcej pluginów, więc siłą rzeczy używa się go kiedy pluginy do konkurencji są niedostępne.
Netbeans jest najwygodniejszy dla małych aplikacji - do dużych zresztą też się nadaje.
Przy czym kiedy za każdym razem kiedy instaluję nowego Eclipse'a lub Netbeans'a to muszę poświęcić chwilę (Netbeans) albo dłuższą chwilę (Eclipse) na konfigurację. W Idei nie mam takich problemów.
Tak w ogóle postawa niektórych w tym wątku przypomina mi dyskusje typu "X360 czy PS3?".