Portál AbcLinuxu, 10. května 2025 20:02
kill_memory_eaters.py
, který jsem si musel napsat, jenž automaticky zabije proces žeroucí nejvíc paměti, když už jí zbývá málo. Zcela pravidelně totiž microsoftí language server kvůli memory leakům chtěl sežrat celou paměť pro sebe. To se stávalo třeba 5x za den.
Pak když jsem chodil na matfyzácké přednášky o GraalVM, tak jsem okoukal jak Jaroslav Tulach používá Netbeans a řekl jsem si, že bych mohl zase zkusit dát šanci PyCharmu (idea pro python). Asi týden mi trvalo nastavit ho jak jsem chtěl. Od té doby to používám. Včera jsem dočetl Effective PyCharm a musím objektivně uznat, že jsem v tom mnohem produktivnější, než ve VS code. Taky je to rychlejší (VS code je hrozně línej co do UI). A třeba pokud jde o refactoringy, tak tam VS Code / Sublime prostě ani nemají co nabídnout.
VS code žere úplně běžně 20GB a že jsem si jen kvůli němu musel přikupovat RAM.To je snad spatny vtip, ne? Ale vubec me to neprekvapuje. A to kdyz obcas prejdu z Eclipse do NetBeans, tak si rikam, jak je to nenazrane prostredi... Zajimalo by me, kdy lidem zacne konecne dochazet, ze Electron je jeden velky omyl.
To je snad spatny vtip, ne? Ale vubec me to neprekvapuje.Nedělá to Electron, ale doplněk Visual studio intellicode, který provádí všemožné analýzy python kódu. Bez něj se to samozřejmě dá používat, akorát potom napovídání a analýza python kódu moc nefunguje (něco to napovídá, ale vesměs blbě). Bez toho doplňku se to vejde do 8GB paměti (začíná to třeba na 2 a pak to postupně roste a žere víc). Electron samotný je líný, je to hrozně vidět, když člověk chvíli dělá v VS code a pak pustí sublime, tak sublime působí dojmem křečka na pervitinu, jak je rychlé a responzibilní.
Bez toho doplňku se to vejde do 8GB paměti (začíná to třeba na 2 a pak to postupně roste a žere víc).To uz mi prijde trochu moc... Jaka je vlastne motivace lidi, proc pouzivaji VS Code?
Electron samotný je líný, je to hrozně vidět,No aby ne, kdyz si dva JS enginy mezi sebou vykladaji pomoci HTTP a pro popis zobrazeni byl zvolen snad ten nejhorsi mozny format.
BTW: to jede přes TCP nebo aspoň přes unixový soket?
To uz mi prijde trochu moc... Jaka je vlastne motivace lidi, proc pouzivaji VS Code?Hodně featur. Třeba co do funkcionality, tak už to dávno předběhlo Sublime. Vesměs jsem z toho měl takový ten pocit jako když člověk přešel kdysi dávno z Exploreru na Firefox, ještě před verzí jedna, a pak viděl s každým novým vydáním nově přidané věci a pomyslel si „wow, to je ale super, zas mi to vylepšili“ (než teda přešli na ten divný směr, od kterého jsem si s novou verzí říkal tak akorát „eh, tak co zas dneska posrali a zkazili“). U VS code se mi líbilo, že když už přidají novou funkcionalitu co upravuje vzhled, tak prakticky vždy přidali i konfigurační volby, které to umožňují vypnout a vrátit ke starému. Takže pokud je někdo konzervativní, tak může být. Jinak pokud bych měl vypíchnout jednu věc, kde je VS code o hodně dál, než Sublime, tak je to konfigurace. VS code přitom začínalo stejně jako sublime - zobrazí ti JSON ve dvou tabech, nalevo default, napravo tvoje volby. Pak VS code přidalo takové grafické rozhraní, kde je k tomu i nápověda, ale pořád to můžeš editovat i v tom JSONu. A pak přidali validace hodnot, kde v té grafice můžeš vybrat jen věci co dávají smysl. K tomu přes to grafické rozhraní funguje vyhledávání a tak, celkově je radost to používat a například PyCharm je v tom podstatně horší. Sublime mezitím sedí a kouká kam mu ujel vlak. Když se podíváš na poznámky k vydání, tak tam jsou desítky různých zlepšení a featur. A to je vývoj po jednom měsíci. PyCharm měl za ten ~půl rok co ho používám asi tři updaty a v podstatě ani v jednom z nich nebylo nic co by stálo za zmínku: 2019.2.1, 2019.2.2, 2019.2.3. Samé opravy chyb a drobná vylepšení, kterých si ani nevšimnu. Oproti tomu u VS code jsem měl pocit, jak kdyby mi vývojový tým každý měsíc nadělil spoustu drobných dárečků. Rád bych ovšem zopakoval a zdůraznil, že momentálně používám skoro na 100% PyCharm, který je pro můj use-case momentálně mnohem, mnohem víc vhodnější a efektivnější (měřil jsem to).
Hodně featur. Třeba co do funkcionality, tak už to dávno předběhlo Sublime.Myslel jsem ve srovnani s "nativnimi" IDE, jako je Eclipse, Netbeans, IDE od JetBrains.
IDE pracuje s konceptem projektu. Když tedy pominu, že je to extrémně užitečná funkce, tak používat ji ale nemusíš – IDE lze běžně používat i jako editor a otevírat v něm soubory uložené kdekoli na disku. Ostatně Netbeans takto často používám.
Argumentem proti IDE bývá obvykle to, že je to „velký nenažraný“ program a uživatel „tyto funkce nepotřebuje a stačí mu editor“. Jenže to se teď trochu rozchází s realitou. Když jsem začínal s Netbeans, tak to bylo na počítači s 256 MB RAM a fungovalo to. A ty tu dneska píšeš o jakémsi „úžasném“ editoru:
Bez toho doplňku se to vejde do 8GB paměti
VS code žere úplně běžně 20GB a že jsem si jen kvůli němu musel přikupovat RAM.
IDE pracuje s konceptem projektu.Ano, mimo jiné. Spoustě lidí například vadí to že je tam to „I“, tedy že je do toho integrovaný debugger a kde co. Někteří, mezi které jsem patřil i já, jsou zvyklí používat různé alternativní nástroje „zvnějšku“, tedy otevřené v dalších oknech a terminálech. Proti tomuhle nejde nic říct, protože například zdaleka nejefektivnější člověk, kterého jsem kdy v práci potkal a měl možnost sledovat jeho workflow používal vim prakticky bez pluginů a několik otevřených oken a jeho produktivita byla velmi velká. Výhoda taky je, že si můžeš poskládat vlastní IDE svým vlastním způsobem. Vybrat si z různých doplňků a funkcionalit a zkombinovat je jak potřebuješ. Například když se ti nelíbí knihovna na autocomplete, tak použiješ jinou. Různé IDE poslední dobou (5 let?) jdou taky tímhle směrem, ale ten rozdíl je pořád stále velký už například v počtu doplňků, kde je klidně o řád. Například netbeans má 1113, Pycharm 1709, zatímco VS code 13970 a Sublime 4830. Další rozdíl je v tom co tě ty které editory nechají dělat. Například Sublime používá takový dost Emacsovský přístup, kde ti poskytuje platformu, kde si můžeš dělat co chces. PyCharm tak nějak počítá s tím, že doplňěk je jen doplňěk, který něco drobně vylepšuje, místo aby překopával základní funkcionalitu a filosofii toho jak to vlastně funguje.
Argumentem proti IDE bývá obvykle to, že je to „velký nenažraný“ program a uživatel „tyto funkce nepotřebuje a stačí mu editor“. Jenže to se teď trochu rozchází s realitou. Když jsem začínal s Netbeans, tak to bylo na počítači s 256 MB RAM a fungovalo to. A ty tu dneska píšeš o jakémsi „úžasném“ editoru:Souhlasím s první půlkou, ale ne s druhou. Tedy podle mého názoru se neříká, že uživatel „tyto funkce nepotřebuje a stačí mu editor“, nebo jsem tohle konkrétně alespoň říkat neslyšel. Spíš mi přijde že to lidi používají hlavně kvůli té upravitelnosti a rozšiřitelnosti. Například znám lidi, kteří používají svůj editor i k IRC, posílání a čtení emailů, na psaní osobních poznámek, dělání učetníctví v tabulkách s vzorci ve stylu excelu a jednoho, co používá emacs i jako windows manager.
Ano, mimo jiné. Spoustě lidí například vadí to že je tam to „I“, tedy že je do toho integrovaný debugger a kde co.
Funkce navíc nemusíš používat, stále máš možnost si ten debugger pustit v jiném okně ručně.
Ano, přebytek funkcí (a s tím související komplexita) je problém (viz diskuse o příčetném softwaru), ale nepřijde mi, že by tohle lidi používající aplikace postavené na Electronu nějak trápilo.
Někteří, mezi které jsem patřil i já, jsou zvyklí používat různé alternativní nástroje „zvnějšku“, tedy otevřené v dalších oknech a terminálech. … Výhoda taky je, že si můžeš poskládat vlastní IDE svým vlastním způsobem.
Já proti tomuhle přístupu nic nemám. Sám si taky občas poskládám vlastní IDE ze Screenu/Konsole, Emacsu, Make atd. nebo ně někdy lepší pracovat napůl neinteraktivně – dávkově a pouštět si v druhém okně nějaký sed nebo jinou transformaci skrze roury.
Ale když programuji (v Javě nebo C++), tak bývám efektivnější v těch Netbeans. Občas to ještě otevřu v QtCreatoru, ale v Netbeans se mi dělá líp.
A taky je v nich bezkonkurenční podpora verzovacích systémů – viz příloha – rád mám neustále na očích, které řádky jsou přidané/smazané/změněné, a rád mám možnost kdykoli jedním kliknutím ty změny vrátit. Takže používám IDE často i když jen edituji soubory, které nejsou spravované jako projekt tím IDE.
Například když se ti nelíbí knihovna na autocomplete, tak použiješ jinou.
A není to spíš tak, že tam jsi rád, když existuje aspoň jedna knihovna, která funguje? Naopak v IDE to bývá základní a integrální funkce, na které si autoři dávají záležet – a neřeší to jen napovídání, ale i refaktoring, vyhledávání atd. prostě to IDE rozumí těm zdrojákům, není to pro něj jen text a udržuje model tvého programu.
Například netbeans má 1113, Pycharm 1709, zatímco VS code 13970 a Sublime 4830.
Kvantita není kvalita. To je asi jako kdybys počítal všechny ty pětiřádkové JavaScriptové „knihovny“ na GitHubu a něco z toho usuzoval – ano, je jich hodně, ale to je tak asi všechno.
Ty doplňky zpravidla nepíší autoři IDE/editoru, ale někdo třetí. A tady záleží dost na marketingu a módních vlnách.
Netbeans mají bohužel handicap v tom, že je většina lidí pořád vnímá jako IDE pro Javu, i když to tak vlastně nikdy nebylo, ale lidi je často zbytečně zavrhnou, protože si myslí, že když nedělají Javu, nemá jim to co nabídnout. Netbeans jsou ale platforma, na které si můžeš postavit celkem libovolnou aplikaci (dokonce i serverovou, bez GUI).
Další rozdíl je v tom co tě ty které editory nechají dělat. Například Sublime používá takový dost Emacsovský přístup, kde ti poskytuje platformu, kde si můžeš dělat co chces.
Netbeans úplně cokoli.
Například znám lidi, kteří používají svůj editor i k IRC, posílání a čtení emailů, na psaní osobních poznámek, dělání učetníctví v tabulkách s vzorci ve stylu excelu a jednoho, co používá emacs i jako windows manager.
Zrovna Emacs má spíš než k editoru blíž k IDE nebo svým způsobem i operačnímu systému nebo „desktopovému“ prostředí. Když vezmeš Netbeans (jako platformu, ne IDE pro Javu), tak je to tomu Emacsu dost podobné (byť to samozřejmě vzniklo v jiném čase a prostředí).
Spíš mi přijde že to lidi používají hlavně kvůli té upravitelnosti a rozšiřitelnosti.
Tahle představa podle mého vychází hlavně z nějakých historických proprietárních IDE, které jsi musel brát tak, jak jsou a upravovat jsi je nemohl, takže to sice bylo pro předpokládané scénáře efektivní, ale jinak nepružné a když jsi chtěl dělat něco nestandardního, tak jsi měl smůlu. Odtud asi ta averze některých lidí k IDE.
Ale v principu to není definiční vlastnost IDE – stejně jako není definiční vlastnost editoru, že bude rozšiřitelný. IDE může být implementované jako platforma, ve které máš ve výchozí instalaci nahrané moduly, které dohromady tvoří IDE, ale můžeš si tam nahrát i moduly vlastní nebo ty původní naopak povypínat/odinstalovat.
A taky je v nich bezkonkurenční podpora verzovacích systémů – viz příloha – rád mám neustále na očích, které řádky jsou přidané/smazané/změněné, a rád mám možnost kdykoli jedním kliknutím ty změny vrátit. Takže používám IDE často i když jen edituji soubory, které nejsou spravované jako projekt tím IDE.To není nic bezkonkurenčního, různé editory jako Sublime a VS code umí to samé už velmi dlouho (minimálně od 2012). Na druhou stranu teď řeším, že když v PyCharmu otevřu commit dialog, tak mi zaškrtne, že chci commitovat všechny změněné soubory. To přitom prakticky nikdy nechci, takže je musím pokaždé odškrtnout a pak ručně vybrat ty které chci. To mi přijde dost idiotské a nepodařilo se mi najít způsob jak to obejít (v nastavení to není a google nepomohl). Kdyby to byl editor složený z pluginů, tak si asi upravím zdrojáky, nebo zkusím jiný plugin. Takhle na to zatím jen rozpačitě koukám a přemýšlím co s tím.
A není to spíš tak, že tam jsi rád, když existuje aspoň jedna knihovna, která funguje? Naopak v IDE to bývá základní a integrální funkce, na které si autoři dávají záležet – a neřeší to jen napovídání, ale i refaktoring, vyhledávání atd. prostě to IDE rozumí těm zdrojákům, není to pro něj jen text a udržuje model tvého programu.Jak kdy, jak u čeho. Zrovna to napovídání má mnoho alternativ, od builtin, po třeba jedi, nebo ten microsoftí intellisense. Refactoring pak třeba přes rope. Nedávno jsem třeba zkoušel nějakou chvíli používat tabnine.
Kvantita není kvalita. To je asi jako kdybys počítal všechny ty pětiřádkové JavaScriptové „knihovny“ na GitHubu a něco z toho usuzoval – ano, je jich hodně, ale to je tak asi všechno.*Sighs* Samozřejmě. Ale ukazuje to obecně tu odlišnou filosofii. Když chce někdo v Sublime cokoliv, tak na to dělá doplněk. Na prakticky cokoliv tedy nějaký existuje, i když jak říkáš, třeba s pochybnou kvalitou. Oproti tomu třeba v tom netbeansu může být fajn, že doplňky jsou super-kvalitní, ale je mi to k ničemu, když neřeší co bych potřeboval. V tu chvíli je pro mě lepší když to něco řeší třeba i blbě, než když to něco neřeší vůbec. Osobně jsem třeba několikrát forkoval nějaký doplněk, u kterého jsem si myslel že má nízkou kvalit a přidával jsem tam funkcionalitu. Pokud mi paměť slouží, tak párkrát jsem to i posílal zpět autorovi jako pull request.
Netbeans mají bohužel handicap v tom, že je většina lidí pořád vnímá jako IDE pro Javu, i když to tak vlastně nikdy nebylo, ale lidi je často zbytečně zavrhnou, protože si myslí, že když nedělají Javu, nemá jim to co nabídnout. Netbeans jsou ale platforma, na které si můžeš postavit celkem libovolnou aplikaci (dokonce i serverovou, bez GUI).Já jsem v nich dělal asi tři roky, prakticky celou dobu na VŠ. Nic proti nim nemám. Jinak jak už jsem psal, momentálně jsem se vydal opačnou cestou a zkouším být co nejvíc efektivní v PyCharmu. Jsem zvědavý, kdy narazím na limity, protože v tom Sublime / VS code už jsem na ně narazil a PyCharm se zatím zdá, že je bude mít podstatně dál v některých oblastech, například třeba v produktivitě. Zatím jsem přišel na to že třeba multikurzory fungují místy dost uboze, a například není možné provádět makra na vícero kurzorech. Některé klávesové zkratky s tím taky nefungují.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.