Permalänk

C# vs Python

Tjena!
Har ett problem jag inte lyckas komma fram till ett bra svar,
Ska man välja python eller C#?
Har en kompis som kör lite python på skolan osv o han tycker de är bra o enkelt o rekomenderar det
"problemet" som ja ser det är att det verkar inte vara så lätt längre att göra standalone executables i python längre efter att dem ändrade sitt bibliotek? (eller jag som missuppfattat)

Så tänkte då att här borde vara nån som kodar o kan säga sin mening o åsikt

Tack på förhand

Permalänk
Medlem

Språk#1 vs Språk#2

Alla frågor och diskussioner kring vilket språk som är bäst, störst och vackrast tar dig sällan till ditt slutgiltiga mål. Och du kommer lägga onödig tid på att försöka "hitta rätt" istället för att faktiskt börja lägga tid på vad som får dig att gå framåt....att börja koda. Alla språk har sin plats, fördelar, nackdelar men inte minst sina förespråkare.

Så frågan du egentligen borde ställa dig är: "vad försöker du uppnå?"

Planerar du att bli utvecklare senare i livet? Är det någonting som du har tänkt att börja jobba med? Eller är tanken att det bara ska vara en hobby? Eller handlar det hela om ett litet projekt som du/ni skall påbörja och funderar nu på vart resan skall börja någonstans?

Så som jag ser det hela:

  1. Python fungerar hur bra som helst att utveckla i och komma igång, men kan tendera till att bli rörigt om man inte håller ordning på struktur och riktlinjer för när man kodar (oftast dyker dessa inte upp fören senare eller när/om projektet blir stort)

  2. C# kan vara en aning rörigt att komma igång med. Då man helst (och gärna) borde ta en läsning om vad skillnaden mellan vanliga .Net och .Net core faktiskt är, och hur detta påverkar dina val senare.

  3. Lägg vikten på att koda, vilket språk spelar sällan roll då de flesta redan har antingen bibliotek redan från start eller tillgängliga ramverk som löser delar av ditt problem redan från start (ex: att använda sig av django för att göra en enkel blogg i python, eller entity framework i .net (C#) för att prata med databaser).

Permalänk
Datavetare
Skrivet av PrOxY_1337:

Tjena!
Har ett problem jag inte lyckas komma fram till ett bra svar,
Ska man välja python eller C#?
Har en kompis som kör lite python på skolan osv o han tycker de är bra o enkelt o rekomenderar det
"problemet" som ja ser det är att det verkar inte vara så lätt längre att göra standalone executables i python längre efter att dem ändrade sitt bibliotek? (eller jag som missuppfattat)

Så tänkte då att här borde vara nån som kodar o kan säga sin mening o åsikt

Tack på förhand

Som redan nämnts, val av språk är ofta av underordnad betydelse utom i fall när man av någon anledning är bunden till något specifikt val (typiskt för att man jobbar på en existerande kodbas).

Om fristående binär är en viktig egenskap och du funderar på språk som Python kan jag rekommendera Go som på flera sätt påminner om en statisk typ variant av Python. Statiskt typade språk (som C#, Java, C++, Kotlin, Swift, m.fl.) kräver lite mer "boiler-plate" och struktur, något som är en nackdel för riktigt små projekt men blir till hjälp i lite större.

Go binärer är helt "self-contained", något som är väldigt trevligt om man vill köra sitt program på en annan CPU/plattform än den man utvecklar på. Har bl.a. byggt Go-program på x86/Linux och även x86/Windows som enkelt kan kompileras till att köra på ARM/Linux (t.ex. på en router eller en enklare NAS).

Prestandamässigt är Go-program lika snabbt eller, om du gör I/O-tunga saker, snabbare än typisk C#/.NET kod.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Jag kodar mest i .NET och C# (studerar YH). Kräver som tidigare nämns rätt mycket setup att komma igång, men kan scala väldigt stort utan att man känner att det blir rörigt, i och med att det är ett statiskt typat OOP-språk.

Sitter jag och labbar hemma är det mest nodejs tillsammans med React eller Vue om jag gör någon enklare applikation, gillar att skriva JavaScript. Detta kräver i princip två npm-kommandon sen är det bara att köra.
.NET Core är däremot väldigt trevligt att jobba i jämfört med .NET Framework.

Har ingen erfarenhet av Python, men hört att det också är ett väldigt populärt språk som ska vara lätt att komma igång med. Används mycket inom AI.

Viktigaste är inte vilket språk du börjar med. Utan att du förstår principen och flowet av kod, sen kan du applicera det på ett annat språk då de flesta är relativt lika.

Permalänk
Medlem

När det kommer till att distribuera applikationer till slutanvändare lämnar CPython (det man oftast menar när man säger Python) en hel del att önska. Det finns flertalet lösningar för att fixa standalone executables, men samtliga är mer eller mindre bökiga och har vissa restriktioner. Det är ett mög, och det har det ALLTID varit. Handlar det däremot om att utveckla server-appar är det inga problem, det är just slutanvändare som är svåra att nå.

Inget av detta bör du dock bry dig om som nybörjare, tycker jag.

Skickades från m.sweclockers.com

Permalänk
Skrivet av PrOxY_1337:

Tjena!
Har ett problem jag inte lyckas komma fram till ett bra svar,
Ska man välja python eller C#?
Har en kompis som kör lite python på skolan osv o han tycker de är bra o enkelt o rekomenderar det
"problemet" som ja ser det är att det verkar inte vara så lätt längre att göra standalone executables i python längre efter att dem ändrade sitt bibliotek? (eller jag som missuppfattat)

Så tänkte då att här borde vara nån som kodar o kan säga sin mening o åsikt

Tack på förhand

C# = Spel t.ex. Unity eller Xbox industrin, eller om du ska jobba mot microsofts produkter så som Office. Du kan även göra back-end för hemsidor med C#. Med C# gör du STORA saker. Lite mer som C++ och Java. Stora tunga språk passar stora tunga projekt.

Python = Data vetenskap/beräkningar/hemsidor som behöver djupt lärande eller maskiniellt läranade. Vill du bara hobbyprogrammera så spelar språk ingen roll vad du väljer. Du kan du lika gärna välja Python.

Så ser marknaden ut

Permalänk
Medlem

Jag skulle väl inte direkt säga att det skrivs mer hemsidor i Python i vårt lilla land, och båda har ungefär samma setup nu för tiden. Man behöver inte köra Visual Studio för att koda C#

Men, det är två olika verktyg, som är bra på olika saker, så det är mest en smaksak. Jag själv är .net-nörd, men har du en vän som kör python och vill hjälpa dig komma igång med programmering så skulle jag nog förslå det.

Permalänk
Avstängd

Hoppar in på samma fråga i tråden.

Tänkte läsa datateknik 180hp nästa höst, men ska ta några IT-kurser på komvux under våren för studiemedel.
Tror att man får välja mellan python och C# på programmering 1.

Är C# så pass likt C++ att det underlättar sedan vid högskolestudierna i det senarenämnda, eller kan man lika gärna ta python för att kunna pyssla i AI-projekt hemma istället?
Används python på arbetsplatser i någon utsträckning?

Permalänk
Inaktiv
Skrivet av Ricerunner:

Hoppar in på samma fråga i tråden.

Tänkte läsa datateknik 180hp nästa höst, men ska ta några IT-kurser på komvux under våren för studiemedel.
Tror att man får välja mellan python och C# på programmering 1.

Är C# så pass likt C++ att det underlättar sedan vid högskolestudierna i det senarenämnda, eller kan man lika gärna ta python för att kunna pyssla i AI-projekt hemma istället?
Används python på arbetsplatser i någon utsträckning?

Professionellt kommer du ha mer användning för C#. Python är bra för att göra prototyper och en del backend grejer för webb, men ungefär där stannar realworld usecases. C# kan du använda för mycket mer, särskilt i branschen, och det är met vanligt också. C# har likheter med C++ som Python saknar, och det underlättar nog en del, men det är ändå två väldigt olika språk.

Rekommenderar alltså C# framför Python för dina karriärsval, men skriver också detta som någon som personligen ogillar C# men älskar Python. C++ Kan jag helhjärtat och varmt rekommendera däremot.

Permalänk
Medlem

Det spelar inte så stor roll vilket språk du börjar med - den svåra biten är att lära sig programmera, inte att lära sig programmeringsspråk.

Skall du bli en bra programmerare måste du ändå lära dig flera olika programmeringsspråk - ju mer olika desto bättre - för att få lite olika perspektiv på hur man kan lösa problem på olika sätt, och för att få bättre överblick över vad som gäller generellt och vad som är specifikt för ett visst språk.

Permalänk
Medlem
Skrivet av anon334363:

Professionellt kommer du ha mer användning för C#. Python är bra för att göra prototyper och en del backend grejer för webb, men ungefär där stannar realworld usecases. C# kan du använda för mycket mer, särskilt i branschen, och det är met vanligt också. C# har likheter med C++ som Python saknar, och det underlättar nog en del, men det är ändå två väldigt olika språk.

Rekommenderar alltså C# framför Python för dina karriärsval, men skriver också detta som någon som personligen ogillar C# men älskar Python. C++ Kan jag helhjärtat och varmt rekommendera däremot.

Det där beror helt på branch, Python används för väldigt mycket mer än bara prototyper och webb, det går att använda till väldigt mycket där det är viktigare att få ut ett program än att det ska prestera maximalt. Ska du exempelvis jobba med maskininlärning är Python normalt att köra med, ska du jobba med analys eller automatisering lika så.

Så att säga att "i branschen" är väldigt beroende på vilket fält man är inom.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Inaktiv
Skrivet av Ferrat:

Det där beror helt på branch, Python används för väldigt mycket mer än bara prototyper och webb, det går att använda till väldigt mycket där det är viktigare att få ut ett program än att det ska prestera maximalt. Ska du exempelvis jobba med maskininlärning är Python normalt att köra med, ska du jobba med analys eller automatisering lika så.

Så att säga att "i branschen" är väldigt beroende på vilket fält man är inom.

Absolut, men kollar du på projekt man får som konsult på ett konsultbolag, så får du kanske 9 C# arbeten för varje pythonarbete. Python är trots allt en utstickare och inte alls lika vanligt. Men klart, användningsområdena i sig kan vara bredare än jag nämnde.

Permalänk
Datavetare
Skrivet av anon334363:

Absolut, men kollar du på projekt man får som konsult på ett konsultbolag, så får du kanske 9 C# arbeten för varje pythonarbete. Python är trots allt en utstickare och inte alls lika vanligt. Men klart, användningsområdena i sig kan vara bredare än jag nämnde.

Gjorde en snabb sökning på IT-jobb och begränsade träffarna till dels de man sökte Python-kunskap samt de man sökte C#-kunskap. Det var totalt sett fler träffar för Python, av någon anledning stack Stockholm ut av storstäderna med att Python var klart vanligare där än i Göteborg och Malmö där det var rätt jämt skägg (å andra sidan också mycket färre träffar, var >100 träffar i Stockholm och bara tiotalet i de andra städerna).

Kollande vilka som sökte Python-kunskap fanns allt möjligt med, t.ex. Ericsson, Scania, SEB. I dessa företag var det ofta testing, DevOps och "vanlig" utveckling de använde Python till. Fanns självklart också företag som jobbar med någon form av data-mining, är det jag nog främst tänker på ihop med Python.

Det resultatet borde inte vara direkt förvånande. Även om C# är otroligt populärt, framförallt här i Sverige, så har populariteten hos Python ökat rejält under många år (hörde talas om Python första gången under mitt x-jobb 1997, då var det rätt okänt). I allt fler mätningar kring popularitet och utbredning hamnar Python i topp, så borde rimligen slå igenom även på arbetsmarknaden.

Tittar man bara på sig själv och de i sin närhet kan urvalet bli väldigt skevt. Skulle jag ta mig själv som referensram lyckades jag jobba 25 år, delar inkluderar jobb som konsult, innan C# damp ned i knäet (och inte så att jag inte känner till språket, var övertygad att jag skulle använda det långt tidigare och pillade med C# privat redan i version 1.x).

Inte heller så att jag spenderat hela karriären i ett språk, jobbat med bl.a. Java, C, C++, Visual Basic(...), Go, TCL, Rust, JS och Python. Men missat språk som andra kan ha suttit hela sin karriär med, som C#, Scala, Kotlin, Swift, Erlang (har dock gjort saker privat i alla dessa).

Personligen är jag ambivalent i inställningen till Python. Å ena sida är det ett fantastiskt språk, man får väldigt mycket gjort med väldigt lite jobb. Jobbar man med NumPy (dagens "Matlab") ihop med ramverk för bildigenkänning, machine-learning och liknande är det också något som ger fantastisk prestanda. Å andra sidan har jag svårt för dynamisk typade språk, Python har sedan en tid tillbaka frivillig typanotering men det är inte alls lika bra/heltäckande som TypeScript är för JavaScript (TS tar JS från ett vrak till något riktigt trevligt enligt min åsikt!).

Vad det gäller arbetsmarknaden: just nu är det sådan brist på "programmerare" att man i stort sätt kan lära sig vad som helst och få ett jobb i det. Undantaget kanske är om man skapar sitt eget språk och bara lär sig det, men vem vet, det kanske går det också

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd

På mitt jobb använder bara icke-utvecklare Python, för prototyper, enkla POCs, små egenutvecklade verktyg och sånt. Om/när det blir en produkt av det är det bara .Net Core som gäller. Men vi bygger produkter för industri och då är det bra att ha något som uppfattas som seriöst och stabilt (alltså MS i detta fallet), ifall det verkligen är så låter jag vara osagt, men industrin är konservativ och gillar stora företag och saker de känner igen.

Permalänk
Avstängd
Skrivet av snajk:

På mitt jobb använder bara icke-utvecklare Python, för prototyper, enkla POCs, små egenutvecklade verktyg och sånt. Om/när det blir en produkt av det är det bara .Net Core som gäller. Men vi bygger produkter för industri och då är det bra att ha något som uppfattas som seriöst och stabilt (alltså MS i detta fallet), ifall det verkligen är så låter jag vara osagt, men industrin är konservativ och gillar stora företag och saker de känner igen.

Läste lite i förbifarten om .Net Core och .Net Framework häromdagen.
Vad är de, och vad är skillnaden?

När man sig något .Net bara av att lära sig C#?

Permalänk
Samsung Sverige

Intressant att Python är såpass etablerat Jag hade uppfattningen att Python var ett "oseriöst" språk för att lära sig programmering, men jag hade uppenbarligen tvärfel

Förövrigt så lärde jag mig programmering i Swift, väldigt snällt språk då kompilatorn kan rätta dig på de vanligaste felen man normalt gör. Tyvärr så tror jag dock att Swift är begränsat till MacOS, men jag kanske har fel där?

//Pontus

Visa signatur

» Betalt samarbete och medlemmarnas länk till Samsung Sverige (företräder inte bolaget Samsung)
» Bidrar med kunskap och expertis inom Samsungs telefoner, plattor och wearables
» Behöver du hjälp? Pinga mig genom att skriva @samsung

Permalänk
Medlem

Swift finns till Apples OS-familjer, Linux, Windows och Android.

Permalänk
Avstängd
Skrivet av Ricerunner:

Läste lite i förbifarten om .Net Core och .Net Framework häromdagen.
Vad är de, och vad är skillnaden?

När man sig något .Net bara av att lära sig C#?

.Net är ett ramverk utvecklat av MS som innefattar flera olika språk och tekniker som alla körs på liknande sätt i en (väldigt abstrakt) VM med interoperabilitet och så, som Java och JVM. Framework var vad som fanns tidigare och det funkar med Windows, Core kom som en mindre variant med stöd för fler plattformar, Mac och Linux, men inte all funktionalitet som "stora" framework. Nu har man lagt ner utvecklingen Framework och bytt namn på Core till bara .Net.

C# är ett av språken i .Net, det stora generella programmeringsspråket skulle jag säga, så du kommer en bit genom att plugga C#. Men i allmänhet så läser man ju inte bara ett språk utan man behöver också lära sig integrera mot andra saker, som databaser exempelvis, så man lär få en del mer även vid en ren programmeringsutbildning. F# är också en del av .Net som exempel, men inte alls lika spritt, men om du behöver ett funktionellt språk och är "inne" i .Net-världen så kan det ju vara lätt att komma igång med. ASP.Net är ett annat exempel, ett ramverk för att bygga web-appar.