Bästa svaret
Wikipedia startade i januari 2001. Ursprungligen använde det en annan wiki-programvara som heter UseModWiki , som skrevs i Perl. Sommaren 2001 blev det klart att dess popularitet växer och att den behöver några nya funktioner. UseModWiki kunde till exempel inte hantera mellanslag, så du var tvungen att skriva ”BuenosAires” snarare än ”Buenos Aires”. Det hade också några problem med prestanda. Så en Wikipedia-volontärförfattare Magnus Manske, som också var en programmerare, bestämde sig för att skriva den Han använde PHP helt enkelt för att han ville lära sig det. PHP var ett mycket populärt och snabbt växande språk för att utveckla dynamiska webbplatser då.
Du kan hitta mer information om MediaWikis historia på dessa sidor:
- MediaWiki-historik
- Varför Malarias Magnus firas av Wales Wikipedia-dag
- Arkitekturen för applikationer med öppen källkod (Volym 2): MediaWiki
Svar
När jag började programmera – jag var 17 då var PHP ”det bästa språket någonsin” för mig, helt enkelt för att det var så lätt tillgängligt för mig i början.
Hur började jag med det? Jag installerade XAMPP på min Windows-maskin, klicka på “start” för MySQL, Apache och det var det. Jag var fast. Möjligheten att bara sätta in skriptet i /htdocs
och köra det via localhost / test.php var magiskt.
Vill webbplatsen vara live? få värd, ladda upp skript via FTP och voila!
Databas? Inga problem, gör bara den gamla goda mysql\_query()
och kalla det en dag. Sedan, några år senare, efter att ha lärt mig hur saker och ting fungerade under huven – dvs att veta vad den ”start” -knappen var i XAMPP – och försökt andra språk, insåg jag hur ful, inkonsekvent, slumpmässig, osäker och rörig PHP är.
Jag tror att vissa människor aldrig kommer ut ur den XAMPP-bubblan, de håller sig bara med de saker som de är mest bekväma med och försvarar den till sista andetag. Detta blir som en religion för dem
Om jag inte var nyfiken av naturen skulle jag förmodligen bara göra allt i PHP, med en touch av JavaScript för serversidan, som jag gjorde på dagen, jag skulle förmodligen vilja ha Node.js – och kanske till och med byta helt till det.
Men ogillar Node.js.
Fördelar och nackdelar med nämnda saker:
PHP Nackdelar
- Alla möjliga paradigm, funktioner, vad du än kan tänka dig – php har det implementerat. Behöver du egenskaper ? Behöver du goto ? Behöver du OOP ? Behöver du funktionellt ? Behöver du något annat? Vi har det.
- De säger att PHP 7 är snabb. Det går snabbt om du jämför det med en tom Laravel-installation. Försök att installera WordPress med ”normal insticksprogram” och även ”flerspråkig väljare”. Lycka till.
- Säkerhet är ett skämt i php. Kommer du ihåg alla dessa SQL-injektioner? 90\% av dem var php-webbplatser eftersom de bestämde sig för att det är väldigt coolt att
mysql\_query()
annonseras som ”ett mycket enkelt sätt att utföra SQL-frågor”. Varje möjlig handledning i världen börjar: Okej så här frågar du databasen i php:mysql\_query(“SELECT * FROM article WHERE id =”. $\_GET[‘id’])
det är så enkelt !!! ser? Det är inte som Java, du måste först förbereda uttalandet! Det är för panna !! Tråkig !!! -
file\_get\_contents(“https://www.example.com”)
och ävenfile\_get\_contents(“../foo.txt”)
och ävenfile\_get\_contents(“php://input”)
och vad har du? Eftersom det ärfile\_*
så är det för att få innehållet i filen. För att inte tala omfopen()
. -
error\_reporting(0)
och du kan göra underverk. - Jag kan fortsätt och fortsätt om deras ”standardbibliotek”.
Fördelar
- Framgång för PHP är Apache mod\_php-modul.
- Ladda bara upp skriptet så fungerar det.
- Ta bort skriptet och det fungerar inte längre.
- Om du ens har tittat på någon kod som har {} kommer du att säga ”hej det är precis som Java | C ++ | C, etc etc, men lägg bara till
$
före variabelnamnet. - Ladda upp skriptet via ftp så är vi live, baby.
- PHP har en av de största gemenskaperna i världen.
- Array? Är listan eller ordlistan? Tja, det är båda (det här är verkligen en nackdel, men hej människor gillar skiten av något som fungerar åt båda hållen, vem bryr sig om en ordlista som inte håller ordning ?!).
- Det enda som faktiskt skenade lite ljus på PHP är kompositör. Men då har nästan alla någon form av pakethanterare idag …
- Laravel kom till undsättning för en gång för alla att övertyga människor om att OOP är vägen att gå och vi måste glömma allt det otäcka
mysql\_*()
nonsens. Men människor blir förvirrade var de ska lägga sin affärslogik. Var det förvar? Var det modell eller styrenhet? Eller Middleware? Var? Hmm låt mig tänka … Jag tror att en egenskap kommer att göra tricket …
Nod Nackdelar
- Fruktansvärda bibliotek –
npm install winston
,hipster-webserver
etc. Det är faktiskt en hemsk sak när jag vill ha ett loggningsbibliotek och måste välja från 9 olika bibliotek. Vänligen gör det inte, bara gör det inte. - Återuppringning helvete; ingenting kan göras åt detta förutom async väntar på syntax, men de flesta av biblioteken är helt enkelt återuppringningar eller löften om någon annan ”uppfinning” som författaren är stolt över. Löften är bara återuppringningar med mindre röran som jag började förakta nyligen.
Fördelar
- Snabb körningshastighet för I / O och v8. Än sen då? Allt med libuv kan göra det. Packa en python med MagicStack / uvloop och gör riktmärken. För att inte tala om andra språk som gör detta ännu mer elegant
- Enkel inmatning. Det här är faktiskt en dålig sak. Frontend-utvecklare som upptäcker hans bakre förmågor. Bara inte.
Det enda sättet som jag vill ha Node är om det hade någon specifikation. Där biblioteken skulle vara perfekt organiserade och programmerade med samma kodningsstil. Sluta uppfinna din stil . Det är hemskt.
När du tittar in i tredjepartsbiblioteket, om du ser kodorganisationen och stilen som du inte ens kan börja förstå, ger jag bara upp.
Noden är som att någon gav en bil och 30000 $ dollar till ett 16-årigt barn så att han kan pimpa den.
På den positiva sidan skulle jag inte programmera om det inte var för PHP. tenderar att titta på det som ett barn tittar på sin äldsta leksak. Jag kommer inte att leka med det. Men när jag tittar på det ger det några minnen och lägger ett leende i ansiktet.
I slut, när du gör något – om du lägger tillräckligt med arbete och hjärta i det och folk gillar det – språk spelar ingen roll. Slutresultatet är allt som betyder något.
Fred