Tråd: Python vs C#
View Single Post
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
De er forskjellige språk på et ganske fundamentalt nivå. Selv foretrekker jeg å jobbe med C# (og implisitt .NET, rammeverket som for alle praktiske formål hører til språket), men er ikke fremmed for Python 3 heller.

Begge er relativt greie å hanskes med, begge er ganske fleksible, det er få "universelle sannheter" mtp hva som er objektivt bedre. Begge er allsidige nok til at du stort sett nok kan greie å bruke begge til det meste du vil. Egentlig burde du finne mer ut av hva du vil oppnå med et språk for å gjøre det lettere å svare på.
  • Python er, og kommer sannsynligvis til å være i overskuelig framtid, bedre på multiplattform. .NET har .NET Core (og Mono), men Core er relativt nytt og har ikke paritet for f.eks. GUI-applikasjoner ennå. .NET har historisk vært en Windows-først-plattform. Hvis du skal kode for web er de mer likestilt igjen da det ser ut til å ha vært hovedfokus for Core-initiativet så langt.
  • Python har et standardbibliotek i særklasse. .NET tilbyr et ganske respektabelt standardbibliotek og er fullt av snacks i forhold til andre språk, men Python er ubestridt på området. Støtten for tredjeparts libraries er også, så vidt jeg vet, bedre hos Python, hvis man ser bortsett fra...
  • ... at Python har den evigvarende v2 vs v3-hodepinen og jeg vedder på at den ikke står overfor noen umiddelbar løsning nå heller. Kort fortalt: bakoverkompatibiliteten gikk i dass mellom disse versjonene, og det er fortsatt folk som ikke har byttet versjon. Nå til den skumle delen: 3.0 kom ut i 2008.
  • C# er statisk typet og det gjør en del hjelpemidler mer effektive. Kompilatoren kan plukke opp hele klasser med "feil" som kan være vanskelige å se, og verktøyene i VS er fantastiske selv om det er et ressurssluk uten like.
  • C# har LINQ, og LINQ er sexy. Det er en blanding av "tradisjonell" objektorientert/imperativ og funksjonell programmering som lar deg eliminere MYE boilerplate-kode hvis du er vant til f.eks. Java. Python har samme greia, men ofte i form av enten såkalte "comprehensions" eller funksjoner som må nøstes utenpå hverandre, mens C#/.NET lar deg skrive dem "etter hverandre" på en måte jeg personlig tror de fleste vil finne mye behageligere å skrive og lese. Se om du finner en sammenlikning, ellers skal jeg mekke en - men denne posten begynner å bli lang.
  • Python har en del forskjellige måter å gjøre ting på i noen tilfeller, men bare noen av dem blir betraktet som "riktige" eller "pythonic", noe jeg personlig finner forvirrende. Dette kan godt være et utslag at jeg kjenner C#/.NET bedre og at det blir mer åpenbart i Python uten at det ene nødvendigvis er bedre eller verre.