![]() |
Python som serverspråk?
Hejsan WN.
Jag kör PHP dagligen och läser en massa om att php är lätt att programmera men tar mycket processorkraft. tittade snabbt på hiphop-php men med eftertanka om att facebook skapat och använder det, och facebook som är fylld med buggar så lämnade jag hiphop-php sålänge. Men Python ville jag komma till. När man surfar Google's sidor så märker jag att de kör Python som språk på sidorna. Och jag ser Google som en förebild då jag tycket alla deras applikationer och tjäner är stabila och har extremt bra prestanda så tror jag inte att python är något man ska peta bort. Nu hade jag önskat höra vad andra med mer erfarenheter säger? är det något jag borde läsa in? Mina mål är att bli så bra programmerare som möjligt och just nu så jobbar jag med det samtidigt som jag utforskar språken. Tacksam för svar! :) Med vänliga hälsningar, Philip Andersson! |
Har själv också kollat en del på Python, verkar vara ett intressant språk. Tror definitivt att framtiden ser ljus ut för Python.
Men du ska nog inte välja ett språk för att Google använder det. Kolla på det, testa det, om det fungerar för dig så kör på! Kolla även in Django, som är ett trevligt ramverk. Vill du bli en bättre programmerare så föreslår jag att du även kollar in programmeringskoncept och tekniker (oberoende av språk). Finns en hel del bra diskussioner på Stackoverflow. |
Om du vill ha bäst prestanda sätter du dig direkt med språk såsom C eller Erlang beroende på applikation.
Själv tyckte jag inte speciellt bra om Appengine när jag testade det när det var nytt och hett. Mest för att det var så begränsat, men mycket har förändrats sen dess. Däremot tyckte jag väldigt bra om Django. Eller mest template-systemet (vilken man kan komma nära i de flesta språk, inklusive PHP, men då får man veta vad man vill ha). Det har även väldigt bra prestanda för att vara ett så utbyggt framework. I övrigt är Python jämförbart med PHP i prestanda. Det finns fall där båda ena och andra blir mycket snabbare ... men då kommer man fortfarande till tillämpning. Generellt sett kan man säga att Python är lite smidigare för bakgrunds-jobb och trådning, och PHP lite smidigare för många webb-specifika uppgifter. Vill du blir en så bra programmerare som möjligt så sätt dig hellre med Java och förvirra dig i avancerade objektorienterade programmeringsmönster. Java är för övrigt bra mycket bättre prestanda än python, men det märks sällan eftersom man allt som oftast använder ramverk och bibliotek som gör det ofantligt tungt för de allra enklaste applikationerna. Med det sagt kommer du inte i många välskrivna applikationer få speciellt stora problem med valet av språk. Det är mer i fall som Facebook eller Twitter som man får gå lite längre. Facebook valde ett av de mest flexibla och enkla språken som fanns, och har fått gå ifrån det ibland (med tjänster för loggning, chat osv i helt andra språk) liksom de optimerat det med hiphop (skriva om ett språk som php i c++ och sen även optimera koden i sig är inget litet jobb). Twitter fick istället helt gå ifrån sitt första val av Ruby pga prestanda-(eller arkitektur-)problem och istället välja Scala. Det betyder inte att det är ett bra val för dig att använda varken eller. För dig att börja fundera på att använda hiphop från ingenstans verkar för övrigt lite skumt. Det skapar bara problem för dig om det inte är så att 30% prestandaförbättring ger ett rejält ekonomiskt incitament. Själv jobbar jag med en PHP-sajt med miljontals sidvisningar om dagen - men hiphop är fortfarande inget värt att lägga tid på enligt mig. När man däremot börjar rada upp många hundra eller tusen applikations-servrar blir alla prestandaförbättringar värda besväret. Vidare beror den på typen av kod som man använder. "Mundane"/grundläggande kod är där den gör mest nytta och där spenderas rätt lite av applikationstiden för de flesta användarna. |
Välj ett språk efter tycke, smak och kunskaper. Inte prestanda. Hårdvara är billigt, utvecklingstid är dyrt.
Python är ett språk som är väldigt lätt att lära sig jämfört med t.ex PHP. En nackdel med att utveckla webbsidor i Python är att det finns relativt få jobb här hemma i Sverige. Om du ska lära dig något helt nytt för att jobba med på webben hade jag rekommenderat Python och Django eller Ruby och Rails. |
jag har kört en hel del python och ironpython kan väl inte säga att det är något jag gillar mer än något annat.
Det är snabbt och lätt att göra enkla saker, men blir väldigt svårt/ omöjligt att göra avancerade saker i. Ska du "byta" språk är det C# som gäller. |
1. Skriv en egen enkel HTTP-server i C som bara serverar statiska filer.
2. Skriv en socketserver i C som hanterar all kritisk logik och koppling till din databas. 3. I de statiska filerna använder Javascript och sockets (Flash och/eller Websockets) för att etablera en anslutning till socketservern. Så får du bang for bucks. Men sen är ju frågan vad som är lättast att underhålla. ;) Om man inte heter Google eller Amazon ska man nog välja de språk och miljöer man trivs bäst i, oavsett prestanda. |
Citat:
Apropå pyhton vs php: Den starkaste fördelen med pyhton kan jag tycka är att man kan köra multitrådat. |
Citat:
Sen är ju att annat problem att det finns inte så mycket exempelkod som man kan titta på. |
Det måste varit ett bra tag sedan för python har haft stöd för reguljära uttryck i åtminstone 15 år...
|
Citat:
|
Citat:
PHP funkar perfekt till enkla webbsidor typ WP osv men ska du bygga avancerade webbapplikationer/applikationer är C# att föredra. |
Citat:
För the record: Exempel på företag som använder Django är: NASA National Geographic Channel Disqus The Onion Washington Post Mozilla |
Citat:
Du kan ju kolla hur många större företag som använder/söker folk som kan/använder C# vs Django. Vill man lära sig ett språk som de flesta större företagen skriker efter, satsa på C# |
Citat:
Citat:
Citat:
Citat:
Att PHP ligger så högt beror inte på att det är mest kompetent. Däremot är det otroligt lämpat för agil utveckling och att snabbt få in nya utvecklare i att kunna lösa de flesta uppgifter. Syntax känns igen från alla C-språk, du behöver ingen stor IDE för smidig utveckling, alla utvecklingsverktyg är gratis, du behöver inte välja till massa tunga bibliotek, du kan köra det på valfri plattform, alla webhotell stödjer det för snabb testlansering osv osv. |
Citat:
Citat:
Citat:
[1] http://twitter.com/#!/mdempsky/status/53338542792912896 |
Facebook använder sig av PHP... Då måste PHP vara bäst!!1one.
Skämtåtsido. Använd det språk du känner dig bekväm i. Processortid är något du i regel inte behöver oroa dig över, servrar, VPS:er och system har tillräcklig kraft idag för att hosta i regel vad som helst. Vanligaste flaskhalsen brukar vara IOPs, alltså skrivningar/läsningar mot disk per sekund. Detta går att minimera med t.ex. memcache och andra ram-lösningar, men RAM är relativt dyrt idag. Allt beror på vad du ska göra, men om du kan PHP idag - finns det ingen anledning att byta pga. du har läst att det ska vara tungt eller krävande. Faktum är, att om du skriver samma app i ett språk du kan, och samma i ett du är ny med - är det nog nästan garanterat det språket som du behärskar - som kommer vara mest optimerat och snabbast. Gissa varför? EDIT: Jag skulle dock personligen aldrig någonsin rekommendera någon att använda C# pga licenser och annat tillhörande. Öppna system och öppen mjukvara är framtiden. EDIT2: "PHP funkar perfekt till enkla webbsidor typ WP osv men ska du bygga avancerade webbapplikationer/applikationer är C# att föredra. " Har du NÅGOT som helst som stärker ditt påstående? I mina ögon är det rätt bullshit. Speciellt med tanke på http://trends.builtwith.com/Web-Server/Apache Långt över 50% av hela världens sajter ligger på Apache webbservrar (PHP/Python/Perl/you name it) - inte IIS (C#, .NET). |
Inte för att vara den som tutar i min egen tuta, men se siterna i min signatur. De är alla kodade av mig med Python och Django och jag tycker de funkar hyffsat. :D
|
Tack för alla svar! Python med Django låter mest intressant om jag skulle få för mig att byta trotts allt.
Håller mig kvar till PHP ett tag till iallafall tills jag känner att jag vill lära mig nytt. Java är faktiskt intressant det också men hör en massa skit om Oracle nu efter köpet. Men jag skulle dock aldrig få för mig att köra något av Microsofts språk för webbapplikationer då till samma anledning som Jine nämnde med licenser osv. Dessutom är jag förlovad med öppen källkod ;) Tackar återigen för alla svar! |
Det går att öka prestandan i php väldigt mycket då php stödjer compiler caches, Zend Accelerator, APC, etc (ökar vanligtvis RPS med 40-60%) sen finns det optimizers, ZendOptimizer, ionCube etc, som kan öka koden avsevärt om du inte kan optimera kod. Sen finns det det vanliga att kolla på Reverseproxies, HTTP accelerators, content-compression Output buffering, DBM caching, Database optimization, file caching o.s.v. Förutom det har php möjligheten att utöka Zends core med C-klasser som exekverar väldigt snabbt, dessutom är det väldigt roligt att leka med C-extension då man kan göra mycket roligt t.ex. skicka ett SMS från webbservern i hemmet till mobilen som notifierar att någon har gått in genom dörren i hemmet och koppla upp en webbkamera som skickar en liveström till mobilen.
|
Citat:
Vad gäller php kontra c# (eller asp.net snarare) , det blir alltmer en såkallad "ickefråga" ur ett tekniskt perspektiv, man kan se en trend att språken har närmat sig varandra. I både asp.net och php brukar numer MVC paradigmet förordas, och programflöde och syntax är väldigt lika om man ska analysera en controller från asp.net mvc mot t.ex en typisk php Zend dito. Och för att ta ett exempel så används nu ofta ( de i php så bekanta) "otypade" dataseten och variabler, ("var" keyword) i C#. Typningen brukar lyftas fram som en fördel för c# men det finns väl en anledning att MS delvis går ifrån det, speciellt i webbprojekt. PHP i sin tur får mer och mer asp.net godbitar, det kan köras i en förkompilerad version som nämts tidigare i tråden samt att man stödjer alltmer OO grejer som Namespaces m.m. Jo .NET/C# kan vara mer eftertraktat av arbetsgivare/högre lön...men det är lite off topic |
Citat:
Däremot har "dynamic" tillkommit, och den är löst typad. Kontroll om t.ex. egenskaper, metod etc. finns sker först runtime. Smidigt t.ex. när man jobbar med anonyma klasser. Dock ingenting man använder mer än när det verkligen finns behov, bland annat just för att det ökar risken för buggar. Är dock bättre än att peta en massa med reflektion. |
Jag använder python / django med googl app engine och är mycket nöjd inte pga prestandan men kostnadseffektiviteten när man i datormolnet bara betalar för vad man använder. Givetvis hade jag kunnat göra det med en LAMP men det hade på lång sikt blivit dyrare och inte lika skalbart som GAE jag nu använder. YAML är dessutom ett enligt mig mycket trevligt sidoprojekt till Python vars kod blir mera läslig än t.ex. Java som använder mycket måsvingar eller PHP som brukar råka blanda logik och presentation så att man med PHP ofta har renderingen och affärslogiken i samma fil. appengine.google.com är enligt mig en bra plats att driftsätta webbapplikationer i samtidigt som jag förstår styrkan i produkter som Joomla och Drupal som har hundratals tillägg, plugins och moduler i stora bibliotek när man med GAE får tillverka verktygen själv eller se om någon hunnit det eftersom plattform ännu är relativt ny.
|
Det är dock MYCKET jag aldrig någonsin skulle vilja lägga hos appengine, just pga. det är google som står bakom det.
Skulle inte överlåta känslig information till dom, varken eget eller andras. Har du t.ex. läst Google Chromes EULA? http://gizmodo.com/#!5044871/google-...osts-to-emails |
Citat:
|
emilv: Hah, det har jag faktiskt inte.
Men anledningen att jag drog det som exempel, var för jag inte läst Google AE's EULA heller. Lär ju vara smått snarlikt? |
Citat:
|
Alla tider är GMT +2. Klockan är nu 08:41. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson