-
Data: 2013-01-09 10:55:57
Temat: Re: Programowanie a system operacyjny
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 2013-01-09, Marcin Biegan <a...@u...lama.net.pl> wrote:
> On 2013-01-09 00:43, Stachu 'Dozzie' K. wrote:
>>> to funkcje daje IDE, żebym w ogóle rozważał jego użycie?
>>>
>>> http://www.jetbrains.com/idea/features/index.html (nie używam, ale mają
>>>
>>> Gdybym miał wybierać, to chyba głównie:
>>> - automatyczny refactoring
>>
>> Chciałeś powiedzieć: "automatyczna zmiana nazw funkcji, zmiennych
>> i typów danych". Z refaktoryzacją to ma tyle wspólnego, co sprężyna
>> z amortyzatorem.
>
> http://www.jetbrains.com/idea/features/refactoring.h
tml
>
> Nie, gdybym chciał napisać "automatyczna zmiana nazw", to bym tak napisał.
> Zresztą, automatyczna zmiana nazwy przez coś, co rozumie semantykę języka to i
> tak więcej, niż daje zwykły edytor, czy sed.
A, czyli oprócz zmiany nazwy jeszcze przenoszenie fragmentów kodu.
W porządku, ale nadal to tylko jeden, nie za duży, element
refaktoryzacji. I akurat nie z tych ważniejszych/trudniejszych, przy
których naprawdę asysta by się przydała.
>> Nie zadziała dla wszystkich języków, których używam (sh? GNU make?
>> LaTeX? cfengine? Template::Toolkit?), więc i tak muszę sobie radzić
>> inaczej. Po co mi w takim razie dwie strategie zmianę identyfikatorów?
>
> Jak pisałem - nie do wszystkiego jest dobre IDE, ale to nie znaczy, że
> wszystkie IDE są nic niewarte.
Może nie zrozumiałeś co piszę. Ja zapytałem o możliwości, które mogłyby
przeważyć niedogodności, które wprowadza u mnie użycie IDE. Ty mi na to
podajesz jakieś fistaszki, funkcje, które i tak będę musiał
przeprowadzać ręcznie, co da mi tylko tyle, że będę się uczyć jeszcze
większej liczby technik (bo żadnej dotychczasowej nie *zastąpię*).
>>> - spójne zachowanie i wygląd dla narzędzi do różnych rzeczy (od edycji kodu do
>>> przeglądania bazy danych)
>>
>> Bazę danych nie tylko przeglądam, ale też filtruję (i niekoniecznie SQL
>> jest wtedy najwygodniejszy), a potem zapisuję do pliku, który jest
>> używany przez inne programy. Sama klikana tabelka to naprawdę kiepski
>> argument. Lepiej mi się sprawdza klient z wiersza poleceń albo
>> recs-fromdb z modułu App::RecordStream.
>
> Nie chodziło o przeglądarkę do bazy, tylko o to, że we wszystkich narzędziach
> działają te same skróty klawiszowe, menu są w podobnych miejscach, czy można
> używać wspólnej konfiguracji. I są one, jak nazwa wskazuje, zintegrowane ze sobą.
Fajnie że są zintegrowane ze sobą nawzajem i fajnie że mają jednolite
skróty klawiszowe w swoim obrębie. Co z tego, skoro do pracy z bazą
danych -- czy z czymkolwiek innym, bo nie chodziło mi konkretnie o DBMS
-- i tak będę potrzebował klienta wierszopoleceniowego? Do tej pory
używałem trzech różnych narzędzi. IDE dostarcza mi czwartego, które
rozwiązuje mi jaki problem? Trochę żaden, tyle że to czwarte narzędzie
jest "zintegrowane" (choć nie znaczy to, że nie będę się go musiał
nauczyć przed użyciem).
Ja nie chcę narzędzia zintegrowanego. Ja chcę narzędzia, którego da się
użyć w połączeniu z zewnętrznymi dla środowiska programami.
>>> > Uzupełnianie nazw metod i pól już wypróbowałem, potrzebne mi tylko
>>> > w przypadku, gdy absolutnie nie chcę pracować w danym języku z danym
>>> > frameworkiem;
>>>
>>> Dlaczego? Przecież lepiej nie stukać w klawiaturę, jeżeli może to za Ciebie
>>> zrobić automat...
>>
>> Pff. I to ma być taki killer-ficzer? Coś, co z niezłym przybliżeniem
>> emuluję sobie powtarzaniem rozpoczętego słowa w edytorze (^P/^N w Vimie)?
>
> No ale przecież nie chodzi o powtarzanie słowa, tylko o to, że IDE prezentuje
> listę poprawnych syntaktycznie i semantycznie propozycji. Dodatkowo np.
> sortowanych po częstości używania.
>
> I jest to właśnie killer-feature.
> Chcesz zobaczy listę pól w zmiennej x? Wciskasz jakąś kombinację i się
> wyświetla.
Jak chcę zobaczyć listę pól zmiennej x, to zaglądam do dokumentacji jej
typu. Wyświetlanie w edytorze przyspieszyłoby mi pracę tylko w jednym
scenariuszu: gdybym pracował nad kodem, gdzie zmiennych jest mnóstwo,
a każda z zupełnie innej bajki (z innej biblioteki). W innych sytuacjach
(mało zmiennych (choćby z powodu zawężenia mojej uwagi) albo większość
jest podobna) przejście do drugiego okna to nie jest coś, co się
zauważa.
> Wciskasz (w eclipse) alt+t na wywołaniu metody i pokazuje się
> hierarchia typów po kliknięciu w którą otwiera się odpowiedni plik na
> odpowiedniej metodzie. To samo z alt+f3 - dostajesz listę funkcji w typie dla
> zmiennej pod kursorem. ctrl+o - lista metod w aktualnym typie. Kolejne ctrl+o -
> lista metod włącznie z tymi z klas dziedziczonych. Chcesz zobaczyć wszystkie
> klasy dziedziczone i dziedziczące - F4 na typie.
I w czym to jest lepsze od javadoca?
> Chcesz złapać wyjątki z danego fragmentu kodu? Zaznaczasz, wciskasz parę
> klawiszy i dostajesz blok try-catch (co samo w sobie nic nie daje) z catch'ami
> do wszystkich wyjątków, rzucanych przez ten kod (czego nie osiągniesz bez
> przeglądania/pamiętania definicji wszystkich wywoływanych metod).
I tak często potrzebuję "łapać wszystkie wyjątki z bloku", żeby to
uzasadniało nawykanie do niedogodności samego środowiska, odzwyczajanie
się od możliwości dotychczasowego edytora i przyzwyczajanie się do
przełączania między środowiskami kilka(naście? dziesiąt?) razy dziennie?
> A jezscze jest np. wyświetlanie grafów wywołań, wyszukiwanie odwołań do
> typu/metody, małe, automatyczne poprawki (ctrl+1 aka quick fix)...
>
> Tego jest masa i nie da się zastąpić takiej funkcjonalności "edytorem" który
> nie jest zintegrowany z parserem/kompilatorem. Wymienione wyżej to tylko część
> tego, czego używam regularnie.
Wymienione to tylko część tego, na co i tak musiałem sobie wypracować
metody dla wszystkich pozostałych języków poza Javą. Bo wiesz, mój świat
nie kręci się wokół Javy (ani w ogóle wokół statycznie typowanych
języków kompilowanych).
Gdybym miał teraz się przyzwyczajać do IDE, to muszę się uczyć
dodatkowych metod pracy na to, z czym już sobie dobrze radzę, ale
starych metod w żadnym wypadku nie mogę się pozbyć. Naprawdę te nowe
metody są tak bardzo lepsze, żeby uzasadniać ich znajomość dla tego
jednego specjalnego, wcale nawet nie częstego (pracy w Javie, C++, C#
albo innym mainstreamowym języku) przypadku?
>>> Bo IDE trzeba dobierać do języka/środowiska w jakim się pracuje.
>>
>> Super. I mam się przełączać między ośmioma różnymi IDE z różnymi
>> komendami, różnym układem opcji i różnymi kruczkami, do których się
>> muszę przyzwyczajać?
>
> To nie jest problem IDE, może Tobie potrzebne jest jakieś I-IDE ? :)
Cokolwiek rozumiesz pod hasłem "I-IDE".
Ja po prostu dobieram język do zadania. Są zadania, w których lepiej się
sprawdza Perl, są zadania, gdzie lepiej radzi sobie shell, w innych
przypadkach to może być cfengine, make, C albo Erlang.
Właściwy dobór języka, w którym łatwo wyrazić problem i jego
rozwiązanie, jest znacznie ważniejszy od ewentualnych możliwości
zautomatyzowanej edycji pliku źródłowego (bo do tego się sprowadza to,
co nazwałeś "refaktoryzacją") i wyświetlania hierarchii klas. Od samego
tego Java nie staje się językiem, w którym łatwiej się pisze rozproszone
systemy czy systemy zarządzania serwerami.
> > To masz słabą wyobraźnię. Naprawdę, oprócz debuggera (bez którego i tak
> > nawykłem sobie radzić przy innych okolicznościach i którego interfejs
> > i tak się nie nadaje do większych systemów z dużą liczbą wątków)
> > i uzupełniania nazw metod (którego niezłą emulację Vim zapewnia), co
> > takiego dodaje IDE, żeby był sens używania go w Javie?
>
> Wypisałem wyżej kilka przykładów - nadal nie ma sensu?
Nadal. To są rzeczy, których wykonanie jest cholernie specyficzne dla
języka, dla którego przewidziane jest IDE, a które są na tyle
uniwersalnymi pojęciami, że w innych językach występuje coś podobnego
(tylko inne operacje edycyjne są wykonywane na źródłach).
Podsumowując, ty byś chciał mnie przekonać, że prostsze wykonanie
jakiegoś zadania w jednym bardzo konkretnym przypadku jest warte
przyzwyczajania się do pracy na dwóch różnych środowiskach. Przepraszam,
ale to nie działa.
>>> Nie wiem jak wygląda status wiodących IDE dla ruby czy perl, ale dla Javy czy
>>> C++ to raczej jest sporo powodów "za".
>>
>> No to podaj, ja czekam. Na razie wymieniłeś rzeczy, bez których i tak
>> muszę się obejść w innych okolicach, a nie są tak zajebifakenstyczne,
>
> Zasadniczo można się obejść bez wszystkiego, tylko to po prostu nie jest
> wygodne. (parę ficzerów wyżej wymieniłem)
Może i nie jest wygodne, ale są rzeczy, które są daleko bardziej
niewygodne. Jednolite środowisko pracy dla różnych platform
programistycznych (w tym platform, które się nie dorobiły samodzielnego
IDE) ma
>> żebym specjalnie dla nich się przyzwyczajał choćby do tej jednej
>> funkcji. Ja naprawdę piszę w kilku różnych językach, niekiedy w ciągu
>
> Może Tobie IDE nie odpowiada z tego względu, ale nie sugeruj, że IDE są nic nie
> warte, bo się mylisz.
A może tak nie sugeruj, że ja sugeruję uniwersalną niezdatność IDE, co?
Od początku podawałem, że pracuję w wielu językach (mocno różnych od
siebie) jednocześnie i wszystkie moje argumenty się kręcą właśnie wokół
tego. Ja cały czas piszę o takiej sytuacji i nie da się pomylić tego
z twierdzeniami absolutnymi, więc twoje uogólnienie mojego stanowiska
jest całkowicie nieuzasadnione i krzywdzące.
--
Secunia non olet.
Stanislaw Klekot
Następne wpisy z tego wątku
- 09.01.13 16:39 R.e.m.e.K
- 09.01.13 17:30 Stachu 'Dozzie' K.
- 09.01.13 18:06 R.e.m.e.K
- 09.01.13 19:18 Stachu 'Dozzie' K.
- 09.01.13 22:07 Marcin Biegan
- 09.01.13 22:10 Przemek O
- 09.01.13 22:10 Stachu 'Dozzie' K.
- 09.01.13 22:17 Stachu 'Dozzie' K.
- 09.01.13 22:50 Edek Pienkowski
- 09.01.13 23:07 Marcin Biegan
- 09.01.13 23:13 PK
- 09.01.13 23:26 PK
- 09.01.13 23:58 Stachu 'Dozzie' K.
- 10.01.13 00:13 Stachu 'Dozzie' K.
- 10.01.13 00:41 Tomek Kańka
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-23 Riga => Specjalista ds. public relations <=
- 2024-12-23 Łódź => Specjalista ds. Sprzedaży <=
- 2024-12-23 Kraków => International Freight Forwarder <=
- 2024-12-23 Co nalezy do Cinkciarza, a co do Conotoxia ?
- 2024-12-23 Poznań => Key Account Manager <=
- 2024-12-23 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=
- 2024-12-23 Rzeszów => Spedytor Międzynarodowy <=
- 2024-12-23 Warszawa => Infrastructure Automation Engineer <=
- 2024-12-23 Białystok => Analityk w dziale Trade Development (doświadczenie z Po
- 2024-12-23 Warszawa => Site Reliability Engineer (SRE) <=
- 2024-12-23 Warszawa => DevOps Engineer <=
- 2024-12-23 Warszawa => Senior Account Manager <=
- 2024-12-23 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-23 Katowice => Administrator IT - Wirtualizacja i Konteneryzacja <=
- 2024-12-23 Mińsk Mazowiecki => Spedytor Międzynarodowy <=