IDE nebo jiné nástroje pro Python vám při refaktoringu typicky pomohou mnohem méně než kompilátory moderních staticky typovaných jazyků (a nezmění to ani pokročilejší IDE jako PyCharm). IMO udržovat kód v Pythonu je tedy o dost náročnější (na druhé straně to zřejmě kompenzuje dostatek programátorů).
Mě s refactoringem nejvíc pomáhají unittesty. Dělal jsem nějakou dobu i v Javě a D a nemám pocit, že by to v pythonu bylo nějak signifikantně slabší. Asi nejhorší refactoring v životě jsem zažil v C, které by podle téhle logiky mělo být refactorovací bonanza (zkoušel jsem jak eclipse, tak netbeans). Ono to asi nebude ta nejideálnější metrika použitelnosti jazyka.
Jinak já moc nepobírám tyhle spekulace, navíc ještě v tomhle threadu, kde chtěl radu ohledně praktik v pythonu. Máte zkušenost s pythonem? Podělte se. Nemáte? Váš názor je irelevantní.
Tyhle diskuze, kde deset javistů v pythonu strašně postrádá Y, což jim dokazuje, že je k ničemu a jednoznačně „horší“ doslova postrádají smysl. To není nic jiného, než jen poměřování penisů, navíc stylem „ten tvůj jsem sice neviděl, ale jsem si jistý, že táta má větší“.
Programování v pythonu je docela jednoduše získatelný žážitek. Pokud vás fakt tak hrozně zajímá, jak se v něm dělá, nemá smysl si řádku za řádkou vyměňovat zkušenosti, nebo čekat, až technologie umožní přenos myšlenek, ale prostě si to zkuste. Mám z toho pocit, že by to zabralo míň času, než tyhle věčné spekulace. Možná sedne, možná ne.
Když už jsme v tom, přidám osobní zkušenost:
Já jsem měl kdysi (~2011) periodu, kdy jsem asi dva roky na python nesáhl a dělal jsem jen v D. Pak jsem měl potřebu v něm něco napsat a měl jsem hrozný problém - vždyť to nemá statické typování. Tohle se přece může rozbít, tohle tady není protected, ani private, co když mi tu metodu někdo použije? Chvíli jsem měl pocit, že je to fakt sračka. Vážně. Asi měsíc jsem měl s tímhle psychický problém.
Pak jsem v něm napsal ten script a ten byl (dostatečně) rychlý a efektivní a měl jsem ho hotový za chvíli. To mě překvapilo. Myšlenky se v pythonu dají tak nějak zapisovat příměji, bez použití tolik sraček kolem, o které mi ve skutečnosti vůbec nejde a vlastně mě nezajímají a ani je nepotřebuju. Došlo mi, že jsem omezoval sám sebe, řešil blbosti a vytvářel si virtuální problémy, které ve skutečnosti neexistovaly.
Tak jsem začal psát víc a víc, až jsem začal dělat jen v pythonu, protože jsem v několikrát produktivnější, než v D. Produktivita je vážně ta jediná reálná metrika, která mě zajímá a většinou zajímá i ostatní, jinak by jsme všichni psali v assembleru.
Jsem v tom produktivnější? To zcela jasně znamená, že je to pro mě lepší. Jedno jestli Python, Lisp, nebo Smalltalk. Život je moc krátký, abych ho mohl trávit výrobou abstraktních továren továren, které stejně používám jen proto, abych mohl nějak ojebat typový systém.
Jazyk, kde chrlím funkcionalitu pětkrát rychleji je pro mě lepší, i kdybych v něm náhodou měl dvojnásobek bugů. Jasně, asi to není nic pro kardiostimulátory, řidící systémy elektráren, nebo různé jiné kritické aplikace, ale tam nepatří ani zbytek toho, co se běžně používá. Tam by měly být formálně verifikované jazyky.
Rád bych zdůraznil, že python nevede na dvojnásobek bugů, i když většina javistů má tenhle pocit. Občas tam nějaké bugy v typech jsou, ale většinou je to výsledkem špatného návrhu, než nějaká bolest typového systému (oblíbené je například znásilňovat dicty na nepopsaný transportní formát, což jde udělat jinde taky, třeba přes JSON a skoro vždycky je to blbě). Typový systém navíc v divočejším použití OOP poměrně rychle ztrácí výhody, protože ani kompilátor nemůže vědět, co kde kam přijde v době runtime.
Ještě k té produktivitě:
Kdysi jsem si takhle koupil mechanickou klávesnici za tři tisíce. Měl jsem z toho radost, vypadala cool a všechno. Fakt super. Užíval jsem si psaní na Cherry MX blue a říkal si, jak krásně rychle na tom píšu.
Pak jsem si sehnal použitou Apple klávesnici za pár stovek, jen abych si vyzkoušel, jestli je použitelná ta na macbooku, který jsem si tenkrát chtěl koupit (má stejný layout). Velmi mě udivilo, že se mi na té klávesnici píše o poznání rychleji a skoro vůbec to neunavuje ruce. Pak mě konečně napadlo si to změřit a zjistil jsem, že jen změnou klávesnice, bez jakékoliv další snahy jsem získal navíc 20 slov za minutu.
Tu mechaniku jsem měl docela rád. Do jisté míry jsem si na ní zakládal, měl jsem z ní pocit dobré investice a tak. Ale prostě se těžko můžu hádat s produktivitou.
Mechaniky jsem se zbavil, i když měla být lepší, vypadala víc cool, dělala klikavé zvuky a prostě vůbec, byla to klávesnicovatější klávesnice. Různí lidé, kteří u mě mechaniku viděli to nemohli moc pochopit. Co mě vedlo k přechodu na membránovku s plochými tlačítky? Vždyť to přece musí být horší.
Stejný pocit mi přijde, že mají lidé z Javy a C# z Pythonu.