Autor Wątek: Code bubbles - IDE przyszłości?  (Przeczytany 8023 razy)

Offline Super Mario

  • Użytkownik

# Marzec 12, 2010, 23:21:37
Hehe, fajny i ciekawy pomysl.
Tylko czy na dluzsza mete tez by sie dobrze sprawowal... :P
Gdybym uczyl sie Javy to zaraz bym dolaczyl do beta testow  :D

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Groshu

  • Użytkownik

# Marzec 12, 2010, 23:30:36
Macie bardzo ograniczoną wizję przyszłości. A nie przyszło Wam do głowy, że w przyszłości komputery będą sterowane myślami, niepotrzebne będą jakieś bąbelki, rękawiczki i machanie rączkami.
Ja tam wolę klawiaturę  ;D

Offline MadBonsai

  • Użytkownik
    • Ifrit

# Marzec 13, 2010, 00:00:57
Należę do tej grupy, która nie widzi w tym nic specjalnie pomocnego.
- jednoczesny wgląd w wiele miejsc w kodzie (super sprawa, dzielenie okien w pionie i poziomie jest bardzo organiczone)
Perspektywy Eclipse w zupełności usuwają mi ograniczenia okień w pionie i poziome. Plus możliwość zminimalizowania okna roboczego do przycisku przy którymś z brzegów okna IDE.

Choć takie coś może być świetne przy webdeveloperce - masa małych plików, które co rusz się otwiera i zamyka.

Offline Koshmaar

  • Użytkownik
    • Homepage

# Marzec 13, 2010, 00:29:00
@BonsaiOne, @Krzysiek K: no nie wiem czy tylko przy webdeveloperce lub bardzo prostych rzeczach... przez jakiś czas pracowałem przy projekcie który liczył MLOC, przy pisaniu nowego kodu, nie mówiąc już o jego debuggowaniu, trzeba było być mega ostrożnym i uważnym ze względu na różnorodne zależności miedzy klasami, funkcjami, stanami, w wielu przypadkach niejawne albo zagrzebane w callstackach liczących -naście wywołań. Korzystałem z Visual Studio 2008, Visual Assist i Rockscroller, dwóch monitorów, skrótów klawiaturowych a i tak nawigacja w tym spaghetti była koszmarem ;) zresztą nie tylko dla mnie. Myślę że w takim przypadku bąbelki sprawdziłyby się bardzo dobrze i właśnie dla niego zostały stworzone.

Natomiast faktycznie, pisanie większych kawałków od zera pewnie lepiej się sprawdza w typowym IDE... choć kto to wie, trzeba sprawdzić w praktyce. Zapisałem się na betatesty tego code bubbles, jak się uda przetestować to podzielę się tutaj swoimi wrażeniami :)

Offline bies

  • Użytkownik

# Marzec 13, 2010, 01:31:51
Koshmaar: trzeba było użyć Vima + ctags/cscope. To jedyne narzędzie jakie znam które nadaje się do wygodnej nawigacji po projektach pokroju Mesy (1,4MLOC) czy Linuksa (10MLOC). Wiele zakładek, buforów, okien, podziałów, stos symboli. Może jeszcze SourceNavigator. Jakoś nie wyobrażam sobie używania do takiej pracy któregoś z tzw. ,,nowoczesnych IDE'' jak Eclipse.
« Ostatnia zmiana: Marzec 13, 2010, 02:10:36 wysłana przez bies »

Offline Kos

  • Użytkownik
    • kos.gd

# Marzec 13, 2010, 02:41:23
Koshmaar: trzeba było użyć Vima + ctags/cscope. To jedyne narzędzie jakie znam które nadaje się do wygodnej nawigacji po projektach pokroju Mesy (1,4MLOC) czy Linuksa (10MLOC). Wiele zakładek, buforów, okien, podziałów, stos symboli. Może jeszcze SourceNavigator. Jakoś nie wyobrażam sobie używania do takiej pracy któregoś z tzw. ,,nowoczesnych IDE'' jak Eclipse.
Przeczytałem Twojego posta ze 3 razy by się upewnić że wyliczasz cechy Vima, a nie Eclipse. Przekonasz mnie, że Vim faktycznie ma jakąkolwiek odczuwalną przewagę? Od siebie rzucę, że nie widzę sposobu na wygodną nawigację po czymkolwiek dużym bez wygodnego wyszukiwania (najlepiej po indeksie symboli, nie po tekście), bez semantycznego kolroowania i bez outline dla dowolnego edytora.

Offline bies

  • Użytkownik

# Marzec 13, 2010, 03:13:18
(...) Przekonasz mnie (...)
Nie. Straciłem zapał do ewangelizacji. :P

Mogę napisać natomiast jak ja używam Vima (może Ci się spodoba, może nie). Po pierwsze Ctrl+] wchodzi w definicję symbolu i odkłada pozycję na stos. Ctrl+t zdejmuje pozycję ze stosu i przechodzi do niej. Stos, jak to stos ma wiele poziomów.

Po drugie mx (gdzie x to dowolna mała litera) oznacza utworzenie zakładki w danym miejscu per plik, 'x wraca do zakładki. Analogicznie mX i 'X (X to wielka litera) tworzy zakładki pomiędzy plikami.

Powyższe polecenia wystarczają do wygodnej nawigacji pomiędzy plikami. A to jest zaledwie najprostsze (ale i najczęstsze użycie stosu symboli i zakładek).

Dodatkowo zwijanie kodu. Tylko nie na podstawie składni (to, z doświadczenia wiem, jest najmniej przydatne) ale zwijanie dowolnego kodu. Wyznaczam jakiś zakres tekstu i wystukuję zf -- nowy blok zwiniętego kodu.

Oczywiście zakładki, zwinięcie itp. zachowywane są per plik (podobnie jak np. ustawienia liczby spacji na tab -- co przydaje się jeśli projekt ma pliki z różnymi ustawieniami -- np. Mesa).

Wspominałem też o wielu oknach, buforach, podziałach (nic nie stoi na przeszkodzie aby podzielić okno na 5 części i widzieć jednocześnie 5 plików). Choć czasami wystarczy odpalić po prostu 5 terminali i pozwolić Awesome WM ustawić je wygodnie.

Outline dla Vima jest (skrypt Taglist) ale nie używam (mam ustawione pod F12 i od czasu do czasu włączam -- ale rzadko), semantyczne kolorowanie albo da się znaleźć albo potrafiłbym sobie wydłubać samemu. Prawdę powiedziawszy może to zrobię w wolnej chwili -- nie widzę większych zalet nad podświetlaniem słów kluczowych (w gruncie rzeczy nie używam podświetlania jako informacji a raczej ozdobnika, odpoczynku dla oczu i wyłapywacza błędów) ale czemu się nie przekonać.

Dodatkowo oczywista oczywistość to fakt, że nawet teraz wcisnąłem Ctrl+i i Vimperator odpalił mi Vima w którym piszę tą wiadomość. Podobnie jak z mailami, tekstami, programowanie w każdym z języków itp. Czyli znam narzędzie -- a Vima nie warto używać jeśli nie chce się go nauczyć porządnie.

I wreszcie ostatnia, bardzo poważna, cecha -- nie dotykam w całej tej procedurze przeglądania kodu myszy. Ani na chwilę. Wszelkie p-kliki są tragicznie rozpraszające.

// edit
Dobry tekst autora Vima: http://www.moolenaar.net/habits.html
« Ostatnia zmiana: Marzec 13, 2010, 03:45:44 wysłana przez bies »

Offline Kos

  • Użytkownik
    • kos.gd

# Marzec 13, 2010, 03:56:47
Stos jest spoko, też mi się w Vimie podobał, ale ku mej uciesze znalazłem go w Eclipse (alt+left i alt+right), nie wiem czy VC++ też go nie ma.

Zakładki... Nawet nie wiem czy w Eclipse są :) Nie potrzebowałem ich, bo chcąc skoczyć w jakieś miejsce korzystam albo z outline (jest zawsze pod ctrl+o i podpowiada propozycje) albo z f3 (jump to declaration/definition), albo - najczęściej - z ctrl+shift+r i ctrl+shift+t (skok do danego pliku albo danej klasy, też popup z podpowiedzią).

Zwijanie kodu... Serio jest przydatne zwinięcie dowolnego bloku? Trudno mi się wypowiedzieć, bo nie mam w zwyczaju używać zwijania w ogóle - jeśli chcę widzieć 2 oddalone miejsca w pliku, to go sobie otwieram w 2 edytorach obok siebie (zero fatygi), a jeśli chcę zobaczyć co w pliku się znajduje, to wolę oglądać outline zamiast cokolwiek zwijać.

Dzielenie okna na N części - fajnie, że Vim to ma, ale i tak zawsze używając go miałem wrażenie że to namiastka tego, co jest w okienkowych środowiskach. Dużo wygodniej mi w tej sprawie machać gryzoniem, niż klepać to nieszczęsne "w<10".

Semantyczne kolorowanie składni wg mnie jest fajne choćby dlatego, że oglądając obcy kod każda sekunda zaoszczędzona na myśleniu "czy X to parametr tej metody, czy może pole klasy, czy może klasa statyczna?"). Nie wspominając o tym, że jeśli chcę więcej informacji, to wystarczy że najadę na cokolwiek myszą i już w popupie mam więcej informacji i - jeżeli takowa jest dostępna - dokumentację dla danego symbolu, nawet nie odrywając wzroku od edytora. Naprawdę da się bez tego pracować?


Huh.  Może tak alternatywnie napiszę jeszcze, czego z Vima brakuje mi w Eclipse i ogólnie w edytorach:
- Otwarcia nowej linii nad/pod obecną,
- Sprytnego zaznaczania typu "ta linia i 2 następne" lub "do przodu aż do przecinka"*.

*) Choć edytory od Javy i D mają pod skrótem zaznaczenie hierarchiczne, pozwalające np. zaznaczać kolejnymi keypressami parametr pod kursorem -> całą listę parametrów -> całe wywołanie funkcji -> cały blok z tym wywołaniem -> całą metodę, lub podobnie.

Co do myszki, zgodzę się że skróty klawiaturowe są fajne i bardzo je lubię, ale samym gryzoniem wiele rzeczy robi się szybciej lub bardziej intuicyjnie. Wg mnie dobre IDE powinno wykorzystać cały dostępny input w optymalny sposób, a nie udawać, że "mysz nie istnieje, tylko klawiatura jest trv". Tak, wiem, że Vim ma jakieś wsparcie myszki. :) I nie bardzo rozumiem, skąd u Ciebie niechęć do menusów? Pewnie, że do częstych rzeczy lepszy jest skrót klawiszowy, ale nawigacja po dobrym menu też nie trwa długo (a jak się uprzesz, to większość pozycji z menu powinieneś móc wybrać przez alt+klawisz).

Do czego zmierzam? Vim to edytor który wprowadził wiele dobrych rozwiązań, uznaję go i uważam za niezłe narzędzie, ale mimo to jest wg mnie technologicznie daleko w tyle za środowiskami typu Eclipse. Jego stromego learning curve też nie uważam za zaletę.


e-> Dzięki za tekst. Przy szóstym punkcie od razu mi się skojarzył Code Bubbles :). Kod to nie tylko tekst, a tekst strukturyzowany. Programowanie to więcej niż pisanie tekstu. Ten pomysł na IDE próbuje wyjść interfejsem użytkownika naprzeciw tym dwóm faktom. Według mnie to dobra próba i jestem ciekawy, czy się sprawdzi.
« Ostatnia zmiana: Marzec 13, 2010, 04:00:11 wysłana przez Kos »

Offline Megabyte

  • Użytkownik

# Marzec 13, 2010, 10:49:14
Bardzo ciekawy i fajny pomysł. Osobiście sam myślałem o czymś takim jakiś czas temu. A tu proszę, ktoś już to zrobił. Poczekam, aż coś podobnego wyjdzie pod C++ czy C# i chętnie wypróbuje.

Oczywiście takie rozwiązanie nie sprawdzi się we wszystkich projektach i nie dla wszystkich języków programowania ale mimo wszystko w wielu przypadkach praca w takim środowisku może być wydajniejsza niż w typowym IDE.

Offline .:NOXY:.

  • Użytkownik
    • Profil

# Marzec 13, 2010, 13:43:23
Jezeli do tego czegos bedzie sie dalo podpiac kompilator z VS to ide sie bawic w ciemno :) kocham takie bombelkowanie kodu :) jak dla mnie choc wyglada on dziecinnie to jednak sprawi fajna frajde z kodzenia zwlaszcza gdy moze to byc alternatywna odskocznia po np 5dniach ciaglego kodzenia na zwyklym ide ;) chocby zeby sie pobawic i zobaczyc jak sie kod w tym uklada xD

Offline Oijadt

  • Użytkownik

# Marzec 13, 2010, 16:19:39
mysle ze prawdopodobnie na 100% (:P) nie bedzie sie dalo podpiac kompilatora i debuggera VS. Pomysl fajny, ale za duzo tu bajerow i juz widac ze zle zrealizowany skoro tak tnie jak na filmiku przy maly projekcie to co bedzie przy wiekszym. Oczywiscie w przyszlosci lepszy sprzet to uciagnie, ale do pisania gier taka kobyla w tle moze wkurzac ;)

...ale pomysl z potencjalem.
« Ostatnia zmiana: Marzec 13, 2010, 16:23:06 wysłana przez Oijadt »

Offline MadBonsai

  • Użytkownik
    • Ifrit

# Marzec 13, 2010, 16:28:49
Kobyła zwana VS jakoś daję radę przy pisaniu gier, więc kto wie ;)

Offline Groshu

  • Użytkownik

# Marzec 13, 2010, 16:31:12
mysle ze prawdopodobnie na 100% (:P) nie bedzie sie dalo podpiac kompilatora i debuggera VS. Pomysl fajny, ale za duzo tu bajerow i juz widac ze zle zrealizowany skoro tak tnie jak na filmiku przy maly projekcie to co bedzie przy wiekszym. Oczywiscie w przyszlosci lepszy sprzet to uciagnie, ale do pisania gier taka kobyla w tle moze wkurzac ;)

...ale pomysl z potencjalem.
Na optymalizację jeszcze przyjdzie czas. Póki co to jest eksperyment sam w sobie, więc wydajność odchodzi na dalszy plan.

Offline Dab

  • Redaktor
    • blog

# Marzec 13, 2010, 16:43:02
Do gier tego nie widzę, ale developerki na mobile te Code Bubbles byłyby rewelacyjne.

Offline Koshmaar

  • Użytkownik
    • Homepage

# Marzec 13, 2010, 21:09:00
bies: kolega z zespołu używał vima, przynajmniej do części zadań. Ja się kiedyś vima uczyłem, niestety w pewnym momencie przestałem mieć na to czas i do teraz większość mi się zapomniało :/ W przyszłości gdy uda mi się wygospodarować więcej czasu, być może wrócę do niego. Aktualnie używam tradycyjnych IDE do kodzenia znacznie mniejszych projektów i nie narzekam na efektywność.

Odnośnie używania myszy, klikania i rozpraszania, to jest stara dyskusja, polecam zapoznać się z tym punktem widzenia http://www.asktog.com/TOI/toi06KeyboardVMouse1.html

Btw, ciekawe co powiesz na to: http://www.viemu.com  ... Visual + VIM w jednym, czyż to nie jest piękne ;)