php, c# eller python för server-side?

Permalänk
Medlem

php, c# eller python för server-side?

Hej!
Jag läser till ingenjör inom inbyggda system, så jag lever och andas C/C++. På fritiden vill jag dock lära mig lite grundläggande webbutveckling, bara för skojs skull. Jag kan lite basic front-end, men nu är jag fundersam på vad jag ska satsa på för server side-språk. Jag vill kunna göra enkla webbapplikationer med inloggning, koppling till databas, kanske chattfunktion och liknande.

Jag har en rejäl bok som bland annat tar upp php. Det verkar vara ett av de språk som har mest funktioner inom detta område, men å andra sidan har man ingen övrig nytta av det + många php-utvecklare verkar gnälla på legacykoden som man inte vill ha att göra med.

Studenterna som läser "vanilg" mjukvaruutveckling (inte embedded) på min skola får lära sig asp.net med C#. Det som känns lockande med detta är att c# kan användas till mycket annat, som tex scripting i unity och apputveckling i xamarin. Dessutom bör det vara smidigt att ta till sig om man är van i övriga C-baserade språk. Det som känns mindre lockande är att man blir lite "låst" till windows-ekosystemet, om man kan uttrycka sig så.

Sedan finns python. Det känns lockande att använda eftersom jag kan det hyfsat bra, men jag är lite tveksam till hur mycket funktioner som finns. Kan man klara sig på "enbart" pyton med tillhörande ramverk (tex flask eller django), eller måste man använda massa andra tekniker för att täcka alla behov?

Nu är det väldigt möjligt att jag har missuppfattat vad som behövs för att uppnå detta, kanske har jag missat andra, bättre alternativ. Sanningen är ju den att jag är ganska grön inom just server-side och hur allt ska hänga ihop. Vad skulle ni ha kört på för spår och har ni övriga tips?

Tack på förhand!

Permalänk
Tangentbordskonnässör

Kan börja med att säga att typ 90% av alla rekommendationer kommer gå mot C# då ingen lär sig PHP på universitetet, vilket gör frågan ganska biased.

Sen tänkte jag säga att jag kodar både C och PHP i jobbet, och tycker det fungerar hur bra som helst. Använder inga frameworks utan det är egenbyggt "framework" och ren PHP som gäller.

Vill du komma igång snabbt så är nog PHP det lättaste att anpassa sig till när man är van med C sen tidigare.
Men sen är ju även jag biased då jag kodar just C och PHP.

Permalänk
Keeper of Traditions

För webbapplikationer kan jag tipsa om Elixir. Kan vara kul att kunna något som inte alla andra kan, och sen är det väl även långt bättre än t.ex. PHP.

PHP känns sjukt omodernt idag

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem

På min webserver kör jag Node.js och där är det JavaScript som är språket för webbapplikationer. Kanske kan vara något att kolla på. Det är modernare än php och ganska hett just nu men vad som gäller i framtiden vet ju ingen.

Permalänk
Inaktiv

Kör C# med .NET Core. Inte låst till windows, mycket kraftfullt och väldigt populärt.

Permalänk

Node.js kanske kunde vara skoj för dig att prova. Är ju javascript baserat, så det kanske blir lite längre startsträcka än tex PHP. Men det är väl aldrig fel att lära sig lite javascript och med tillhörande ramverk.

EDIT, såg att ronnylov hann före!

Permalänk
Medlem

@jH0Ni: För hobby/inlärning kan du göra allt och lite till med Python och dess "frameworks(django osv)" utan problem.

PHP har ju den fördelen att det är specifikt server-side-web från början. Du behöver PHP och inget annat utom det det vill pilla med. T ex Sqlite för DB och kanske något fräsigt för front-end/JS. Det är praktiskt för man behöver inte lära sig Python och DJango, Ruby och Rails. Node och JS osv osv osv.

Att PHP skulle vara "gammalt" är en enorm fördel! Snabbt som tusan nu med v.7 också. Dessutom är det massa rävar ute på företag som ska gå i pension och ingen alls vill huller om buller byta språk på deras produktionsservrar så vill du knega och få bra betalt är PHP förmodligen bättre av just den anledningen.

Är det världens vackraste språk att skriva? Förmodligen inte, det är ju gjort av en Dansk ...

Permalänk
Avstängd

@jH0Ni: Med Core så är du inte så låst till Windows i C#. Jag jobbade med en webapp tidigare och det var ASP.Net och mycket JavaScript med diverse ramverk som Angular osv. Nu jobbar jag med helt andra saker, r&d inom automation på rätt hög nivå, och fortfarande .Net och C#. Den stora fördelen med C#/.Net är ju allt stöd man får från MS med utbildningar, miljöer osv.

Permalänk
Medlem

Beror lite på vad som är målet. Men som några redan sagt: C# + .NET => öppnar väldigt många dörrar. Om jag var du skulle jag köra på C#. Visst blir man "låst" i någon mening, men samtidigt blir du låst till en uppsjö ramverk som du kan använda till alla möjliga plattformar (nu senast till Xamarin t.ex. öppnar hela mobil-sidan). Så ordet "låst" är relativt

Permalänk
Medlem

Som någon som nyss gick igenom en hög gammal PHP-kod skulle jag nog säga "RUN, don't walk ...". Språket har för många egenheter och frånvaron av typsystem blir vansinnigt plågsam när man jagar buggar. Misstänker att det står för Plåga Hjälplösa Programmerare. Men kan ha fel.
Skulle rekommendera C# som de andra ovan. Det är inga problem att köra C# ASP.NET Core på en Linux-VM för webbsystem och det finns vansinnigt många bra verktyg runt det.

Visa signatur

.<

Permalänk
Medlem

@jH0Ni: C# eller Java röstar jag på. Två bästa språken för webbutveckling. PHP känns bara föråldrat. Skillnaden mellan C#, Java mot Python och t ex Javascript är att strukturen inte finns där så det är lätt att man lär sig strukturera apparna fel. Det går i och för sig att göra i C# och Java med. Men ändå inte riktigt på samma sätt

Permalänk
Medlem
Skrivet av oelrich:

Som någon som nyss gick igenom en hög gammal PHP-kod skulle jag nog säga "RUN, don't walk ...". Språket har för många egenheter och frånvaron av typsystem blir vansinnigt plågsam när man jagar buggar. Misstänker att det står för Plåga Hjälplösa Programmerare. Men kan ha fel.
Skulle rekommendera C# som de andra ovan. Det är inga problem att köra C# ASP.NET Core på en Linux-VM för webbsystem och det finns vansinnigt många bra verktyg runt det.

Som tur är har PHP utvecklats sedan den koden skrevs och PHP 7.0 (som släpptes i slutet av 2015) har returtyper och skalära typer samt är betydligt mer strikt överlag (≈ bättre kod).

Visa signatur

Dator1: Chassi Silverstone Fortress II : Cpu AMD Ryzen 7 1700 @ 3.85 GHz : GPU Sapphire R9 390 Nitro (backplate) : MB ASUS Crosshair VI Hero : Ram G.Skill 3200CL14 2x16 @ 1.35V 2933 MHz CL14 : SSD totalt ~2.5 TB : HDD totalt 6 TB
http://hwbot.org/user/oggy_dz2/

Permalänk
Medlem

@Oggyoc: Det var faktiskt en uppgradering till PHP 7.0 jag jobbade med och det verkade vara mycket bättre. Returtyper missade jag dock; de hade varit användbara. Sen misstänker jag att det finns fler verktyg för språket också? Linters och debuggers? Men hade inte tid att sätta mig in i språket, så det är mest en "första kontakt" och den ledde i hög grad till känslan "undvik vidare kontakt". Samtidigt kan man göra charmigt märkliga saker i språket. Det tillåter rätt intressant metaprogrammering.

Visa signatur

.<

Permalänk
Medlem
Skrivet av oelrich:

@Oggyoc: Det var faktiskt en uppgradering till PHP 7.0 jag jobbade med och det verkade vara mycket bättre. Returtyper missade jag dock; de hade varit användbara. Sen misstänker jag att det finns fler verktyg för språket också? Linters och debuggers? Men hade inte tid att sätta mig in i språket, så det är mest en "första kontakt" och den ledde i hög grad till känslan "undvik vidare kontakt". Samtidigt kan man göra charmigt märkliga saker i språket. Det tillåter rätt intressant metaprogrammering.

Ja det finns gott om code sniffers, linters och andra verktyg. När det gäller debuggers så finns XDebug som är mer eller mindre standard vid debugging.

Visa signatur

Dator1: Chassi Silverstone Fortress II : Cpu AMD Ryzen 7 1700 @ 3.85 GHz : GPU Sapphire R9 390 Nitro (backplate) : MB ASUS Crosshair VI Hero : Ram G.Skill 3200CL14 2x16 @ 1.35V 2933 MHz CL14 : SSD totalt ~2.5 TB : HDD totalt 6 TB
http://hwbot.org/user/oggy_dz2/

Permalänk
Medlem

Många intressanta svar. Kort sagt verkar PHP kraftfullt och mångsidigt, men det kanske är det hetaste på tapeten längre. Just nu lutar det mot C# med .Net core. Måste dock läsa på lite mer, men det känns ju onekligen som själva språket C# är värdefullt att kunna i övrigt, till skillnad mot tex php. Men jag ska forska lite..

Skrivet av Nexso:

eller Java

Vad för ramverk tillåter server side-utveckling med java? Har googlat ytterst lite på detta, men spontant verkade det inte vara så stort.

Permalänk
Medlem

Kör på det språk som du tycker är roligast och passar dig bäst, oavsett vilket språk man använder så skriker företagen efter bra utvecklare så det finns både behov och framtid för båda språken (och många fler).

Visa signatur

MacBook Pro 14" | M1 Pro 10/16-Core | 32GB | 1TB
Legion Pro 16" | Ryzen 7 5800H | 16 GB | 1TB | GeForce RTX 3060

Permalänk
Medlem

Vill du lära dig nåt nytt inom programmering så skulle jag säga c#, det är ett modernt språk med bra features som inte finns i c/c++. Ett par exempel:

  • reflection

  • lambdas är first class

  • async

  • generic constraints

  • garbage collection

  • fluent programming (linq)

Du kommer få en ny syn på c/c++ efter att du jobbat med c#/.net ett tag, det fick jag iaf. Gör du det däremot för att du vill lära dig skapa hemsidor så klarar alla tre språken säkert uppgiften ypperligt.

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk
Medlem

Som andra sagt så är .Net inte låst till Windows längre även om .Net Core inte har allt som .Net Framework 4.6 har. Det är dock tydligt åt vilket håll Microsoft kommer att gå, det är multiplatform som gäller!

Här är en bra hemsida för att se vad som ingår i vilken plattform:

https://docs.microsoft.com/en-us/dotnet/api/?view=netcore-2.0

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk
Hedersmedlem

Föreslår också Node.JS.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av giplet:

Föreslår också Node.JS.

Håller med, också bra val för server side.

Skulle jag göra en web app idag så skulle det bli en SPA i Angular 2+ och server side i Node.JS eller C#. Server side koden för SPA blir väldigt tunn dock, så språket har mindre betydelse i det fallet.

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk
Hedersmedlem
Skrivet av jH0Ni:

Vad för ramverk tillåter server side-utveckling med java? Har googlat ytterst lite på detta, men spontant verkade det inte vara så stort.

Java används sällan till mindre projekt, men däremot till många absolut gigantiska produkter (internetbanker, nätannonser, nätshoppar (typ Ebay/Amazon-storlek); se exempelvis Programming languages used in most popular websites [Wikipedia] (ytterligare notis är att det bara är Microsoft av dessa som verkar använda ASP.NET… )). Några ramverk man kan lista är

…men om du inte är erfaren inom Java så kommer du vara på banan enormt mycket snabbare med exempelvis Python, Ruby eller PHP.

Vad gäller Python, så om du vet att du förr eller senare vill ha databasstöd genom en "object relational manager" (ORM) så är Django inte fel att börja med. Vill du bara få upp något mindre på kort tid så är nog Flask att föredra (som även går att kombinera med exempelvis SQLAlchemy om man vill ha en ORM). Det finns även liknande varianter så som CherryPy, men Flask är nog mer utbrett och därmed lättare att få hjälp med.

Fördelen med Python liksom C# som du nämner är att språket används inom fler områden än bara webb. Skulle jag slänga ur mig något utan källhänvisning så är det en känsla av att jobbannonser för PHP har stagnerat och sannolikt minskat ordentligt senaste åren, och Ruby ser jag i stort sett aldrig annonser om i Sverige.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk

Skulle nog också lägga mitt mynt på node.js, det som är inne nu, och sen hjälper det att det kör JavaScript då man inte behöver lära sig alltför många nya språk. Om du kör node.js finns det också fina ramverk för att åstadkomma bland annat chatt-applikationer, exempelvis https://socket.io/

Visa signatur

Intel Core i7 4770K 4.2GHz | Asus Geforce GTX 780 DCU II | A-Data 16GB 1600MHz | Asus Maximus VII Hero Z97 | NZXT H440 Svart/Röd | EVGA Supernova G2 750W | Eizo Foris FS2333 | be quiet! Dark Rock Pro 3 | Samsung SSD EVO 256GB | WD 2TB Red 7200RPM

Permalänk
Medlem

Tack för alla svar! Förstår att det är en fråga om vad man ska göra, samt tyckte och smak. Men det är ändå intressant att läsa om vad andra tycker och tänker. Vill bara understryka att det inte kommer vara aktuellt att jobba inom detta, det är fortfarande lågnivåprogrammering som ligger närmast mitt hjärta!

Permalänk
Avstängd

@jH0Ni:

Det bror på vad du ska koda för något visa språk är bättre för visa ände mål.

Jag skulle säga att C++ är det bästa men om man ska göra små saker så funkar C# bra till det.

Tex regex funkar bättre i C++ och php men är sämre i C# då tänkte jag på prestandan.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av jH0Ni:

Många intressanta svar. Kort sagt verkar PHP kraftfullt och mångsidigt, men det kanske är det hetaste på tapeten längre. Just nu lutar det mot C# med .Net core. Måste dock läsa på lite mer, men det känns ju onekligen som själva språket C# är värdefullt att kunna i övrigt, till skillnad mot tex php. Men jag ska forska lite..

Vad för ramverk tillåter server side-utveckling med java? Har googlat ytterst lite på detta, men spontant verkade det inte vara så stort.

Urvalet av webbplattformar är bra mycket större för Java än C# skulle jag säga. Finns massvis med ramverk, allt från gamla klassiker som Tomcat för app-servrar (motsvarar ISIS, förlåt IIS i .NET-världen), till nyare grejer som Play, Dropwizard, Wicket, Spring boot osv.

Av dessa har jag jobbat med Tomcat, Play, Dropwizard och Spring. Kan rekommendera Play och Dropwizard för att komma igång snabbt.

PHP tycker jag verkligen att du ska undvika. Det är antagligen den minst konsekventa webbplattformen som går att hitta.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av superegg:

@jH0Ni:

Det bror på vad du ska koda för något visa språk är bättre för visa ände mål.

Jag skulle säga att C++ är det bästa men om man ska göra små saker så funkar C# bra till det.

Tex regex funkar bättre i C++ och php men är sämre i C# då tänkte jag på prestandan.

Av ren nyfikenhet, är C++ något som används inom webbutveckling? Känns som att det oftast är mer skript-liknande språk som används. Regex är ju definitivt något som man vill kunna använda effektivt i detta sammanhang.

Permalänk
Medlem

Idag finns ju också golang som verkar ha bra http stöd, dock så har jag aldrig kodat i det.

Det kanske är overkill att köra C++, men iom att du lever och andas i det kanske det blir enklare o komma igång med fastcgipp eller Microsoft's cpprestsdk

Visa signatur

ASUS PRIME X570, Ryzen 5900x, 32GB 3200MHz, RTX 3080, Corsair SF600, Samsung 980 PRO 2TB

Permalänk
Medlem

Googles språk Go kan ju vara skoj att testa också. Jag tror det påminner om C++

https://golang.org/doc/articles/wiki/

Permalänk
Medlem
Skrivet av jH0Ni:

Av ren nyfikenhet, är C++ något som används inom webbutveckling? Känns som att det oftast är mer skript-liknande språk som används. Regex är ju definitivt något som man vill kunna använda effektivt i detta sammanhang.

Jag har i mitt yrkesliv inte stött på någon webbsajt programmerad i C++, men jag är inte webb-utvecklare. Mina egna första experiment med webbprogrammering var med C (cgi-bin, funkar med C++ också), Perl och PHP, men det var på slutet av 90-talet.

PHP är nog fortfarande det roligaste språket jag har provat, även om det suger som språk. Go figure.

Att skriva en egen minimal webbserver i C som stödjer cgi-bin vore nog en kul liten övning och kanske användbart till dina projekt?

C# är inget dåligt val. Men om jag hade varit du så hade jag tittat på Node.js eftersom det är så populärt inom IoT där du säkert kan hamna i framtiden.

Permalänk
Avstängd
Skrivet av jH0Ni:

Av ren nyfikenhet, är C++ något som används inom webbutveckling? Känns som att det oftast är mer skript-liknande språk som används. Regex är ju definitivt något som man vill kunna använda effektivt i detta sammanhang.

Facebook håller på att utveckla C++ som ska funka till Web server vet inte om den är klar än.

Tror det kan vara denna här https://code.facebook.com/projects/676603015770415/ men är inte säker.

https://github.com/facebook/proxygen

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666