WN

WN (https://www.wn.se/forum/index.php)
-   Nyheter (https://www.wn.se/forum/forumdisplay.php?f=3)
-   -   PHP 5.5 har släppts (https://www.wn.se/forum/showthread.php?t=1058306)

Conny Westh 2013-06-21 23:42

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20472422)
Conny, dina kommentarer om PHP börjar bli lite tjatiga. Om du fortfarande lever kvar i tron att PHP inte är något att räkna med så behöver du verkligen uppdatera dina branschkunskaper.

Det ska för övrigt bli riktigt spännande när det är dags för PHP 6.

Jag följer med utvecklingen av PHP (och andra språk) men tycker PHP har mycket att bevisa för att bli något att räkna med urteknisk synvinkel.

Jag håller med om att språket har utvecklats till det bättre bland annat i och med att de har infört PDO som är ett stort lyft när man jobbar med databaser.

Jag vet inte vad det är som är så speciellt med PHP. Det finns flera riktigt bra språk som har bättre stöd till utvecklaren och som är gratis att använda.

Jag har kört Mono-Complete i Ubuntu med C# och VBN (VB.NET-clone) och jag kan använda min invanda Visual Studio-miljö i Windows att skapa exe-filer som jag sedan kan lyfta över och köra binärkompatibelt i Ubuntu/Linux-miljön (om jag har paketet Mono-Complete installerat), det funkar riktigt bra och det är då fullt ut objetorientrat med stark typning och semikompilerat till .NET IL-kod (ungefär som Java funkar).

PHP-interpretern självt är ju skrivet i C++ och Windows-versionen kompileras med Visual Studio version 11.

Jag tycker även att Java är betydligt vassare än PHP. Java, C#, J# och J++ är mycket snarlika varandra i syntaxen. Så det är mycket lätt att växla mellan dessa språk. Jag har även kört Gnu C++ och tycker att det är betydligt vassare än PHP.

PHP har visserligen samma grundläggande syntaxstruktur med måsvingar för markering av kodblock, men brister i typningen. Vissa gillar det andra inte, för mig är det egalt. Jag använder både måsvingar och de utan som VB.NET och har inga känslomässiga problem med dem.

Stark typning är en viktig del för att få så mycket hjälp som möjligt av kompilatorn att kolla att jag som utvecklare har använt rätt datatyp eller klass.

PHP har den lustiga egenheten att det har en "implicit" typning så PHP-interpretern väljer datatyp utifrån den första tilldelningen av en variebel. Om den första tilldelningen var fel så följer det felet med och det tar onödigt lång tid att felsöka.

Har man stark typning med en egen deklaration före första användningen av en variabel så får man en extra kontroll som är väldigt viktig i större IT-system. Har man gjort fel i själva deklarationen så upptäcker man det redan vid första tilldelningen eller ibland avläsning av variabeln.

Man får även bättre stöd av IDEn då det går att få mer Meta-information som hjälper till att höja produktiviteten mångfalt, se exempelvis "IntelliSense" som finns för exempelvis Java i Eclipse och har funnits många år i Visual Studio.

Du får gärna peka på de tekniska fördelar du ser med PHP så ska jag genast undersöka dem. Jag söker hela tiden efter nya kunskaper och best-practise.

För mig är det viktigt att ett programmeringsspråk har:

- Inkapsling för att dölja komplexitet och göra det förutsägbart och därmed "tryggt" att bygga större system
- Modularitet för at enkelt lägga till och förändra funktionalitet
- Stark typning för att hitta fel som programmeraren gör direkt vid kodning/kompilering
- Kompilering för att dels skydda kod mot ändringar av obehöriga och underlätta modularitet
- Objektorienterad paradigm med alla dess övriga fördelar
- Numera finns även namespace för att underlätta modularitet och inkapsling med namnrymder
- Återanvändbarhet (inte "cut and paste" som mångfaldigar underhållsproblem) är ett mycket viktigt område som är ett kapitel i sig

MRDJ 2013-06-21 23:59

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
Jag följer med utvecklingen av PHP (och andra språk) men tycker PHP har mycket att bevisa för att bli något att räkna med urteknisk synvinkel.

Jag håller med om att språket har utvecklats till det bättre bland annat i och med att de har infört PDO som är ett stort lyft när man jobbar med databaser.

Jag vet inte vad det är som är så speciellt med PHP. Det finns flera riktigt bra språk som har bättre stöd till utvecklaren och som är gratis att använda.

Jag har kört Mono-Complete i Ubuntu med C# och VBN (VB.NET-clone) och jag kan använda min invanda Visual Studio-miljö i Windows att skapa exe-filer som jag sedan kan lyfta över och köra binärkompatibelt i Ubuntu/Linux-miljön (om jag har paketet Mono-Complete installerat), det funkar riktigt bra och det är då fullt ut objetorientrat med stark typning och semikompilerat till .NET IL-kod (ungefär som Java funkar).

PHP-interpretern självt är ju skrivet i C++ och Windows-versionen kompileras med Visual Studio version 11.

Jag tycker även att Java är betydligt vassare än PHP. Java, C#, J# och J++ är mycket snarlika varandra i syntaxen. Så det är mycket lätt att växla mellan dessa språk. Jag har även kört Gnu C++ och tycker att det är betydligt vassare än PHP.

PHP har visserligen samma grundläggande syntaxstruktur med måsvingar för markering av kodblock, men brister i typningen. Vissa gillar det andra inte, för mig är det egalt. Jag använder både måsvingar och de utan som VB.NET och har inga känslomässiga problem med dem.

Stark typning är en viktig del för att få så mycket hjälp som möjligt av kompilatorn att kolla att jag som utvecklare har använt rätt datatyp eller klass.

PHP har den lustiga egenheten att det har en "implicit" typning så PHP-interpretern väljer datatyp utifrån den första tilldelningen av en variebel. Om den första tilldelningen var fel så följer det felet med och det tar onödigt lång tid att felsöka.

Har man stark typning med en egen deklaration före första användningen av en variabel så får man en extra kontroll som är väldigt viktig i större IT-system. Har man gjort fel i själva deklarationen så upptäcker man det redan vid första tilldelningen eller ibland avläsning av variabeln.

Man får även bättre stöd av IDEn då det går att få mer Meta-information som hjälper till att höja produktiviteten mångfalt, se exempelvis "IntelliSense" som finns för exempelvis Java i Eclipse och har funnits många år i Visual Studio.

Du får gärna peka på de tekniska fördelar du ser med PHP så ska jag genast undersöka dem. Jag söker hela tiden efter nya kunskaper och best-practise.

För mig är det viktigt att ett programmeringsspråk har:

- Inkapsling för att dölja komplexitet och göra det förutsägbart och därmed "tryggt" att bygga större system
- Modularitet för at enkelt lägga till och förändra funktionalitet
- Stark typning för att hitta fel som programmeraren gör direkt vid kodning/kompilering
- Kompilering för att dels skydda kod mot ändringar av obehöriga och underlätta modularitet
- Objektorienterad paradigm med alla dess övriga fördelar
- Numera finns även namespace för att underlätta modularitet och inkapsling med namnrymder
- Återanvändbarhet (inte "cut and paste" som mångfaldigar underhållsproblem) är ett mycket viktigt område som är ett kapitel i sig


fördelarna jag ser med det är att det går snabbt och enkelt.
det går att köra på simpla webbhotell utan att behöva köra MS-licenser och kör man t.ex ett cms så finns det så sjukt mycket färdigutvecklat.

sen finns det en hel del nackdelar med det, den största som jag ser är t.ex att det är just ett scriptspråk och det går segt när man har extremt mycket kod, eftersom det inte kompileras. kolla på t.ex magento som är ett superstort system byggt med Zend framework och miljontals rader. går superslött, men många löser det den enkla vägen genom att köra bättre hårdvara med SSD diskar och annat.

Conny Westh 2013-06-22 00:08

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
Det du pratar om är systemutveckling i .NET och det har absolut inget med php att göra.

Nej, jag pratar om utveckling i stort. Jag jämför olika programspråk då jag jobbat med väldigt många olika.

Jag har bland annat jobbat med ANSI C, C++, SQL-Windows, Centura, SQL, ett otal olika BASIC-dialekter (DR-Basic, Quick Basic, Visual Basic (Com/Com+), VB.NET), Turbo Pascal, Delphi, Gnu C++, C# .... och fler som jag inte orkar minnas just nu.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
Jag förstår att du försvarar .NET då det är det du jobbar med, jag har jobbat med både linux/ms .NET och PHP ganska exakt 50/50.

Sure, det är sant, jag är förvisso partisk i och med att jag gillar hela konceptet med .NET och C# och VB.NET. Men jag är inte religiös i konceptet utan jag söker hela tiden utmaningar som kan tillföra förbättringar i mitt yrke oavsett om det är små förfiningar eller större kliv i utvecklingen. Jag har bytt Från dBase till Clipper, och till ANSI C till Visual Objects, till SQL-Window och senare Centura, till Visual Basic och vidare till C#.

Jag är inte rädd att vara med om större omvälvningar, jag brukar själv vara med och styra eller leda in mina kollegor in på nya banbrytande paradigmer, verktyg och miljöer. Men den nya miljön måste absolut tillföra någon viktig fördel, annars finns ingen anledning att byta.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
Nu märker vi av en trend att MS tappar när det gäller web,mycket på grund av webforms/ viewstate osv. självfallet går det att köra MVC men tyvärr är inte MS längre det naturliga valet när det gäller web. och utvecklingen ser ut att fortsätta i samma bana. många väljer att inte jobba med frontendutveckling i visual studio för att istället använda t.ex sublime, aptana eller liknande.

Viewstate håller jag med var en mindre bra väg att vandra, men den är borta för länge sedan ur MS-state-of-the-art-concept.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472425)
dels på grund av kostnader, men även andra anledningar. mycket av allt som finns i visual studio har spelat ut sin roll då det segmenterats mellan systemutveckling och webb i form av jsonp-webservices och liknande.

Nu finns WCF (Windows Communication Foundation) som innebär Webservices och som är ett riktigt bra koncept som jag använder och där ingå JSON, REST och XML som användbara delar.

För presentationsskiktet så har vi WPF (Windows Presentation Foundation). MVC4 och Razor-engine kan användas i stället för ASP-engine.

MS ligger ofta långt framme eftersom de tjänar bra med pengar och kan då satsa målmedvetet på att utveckla ny teknik. Det gör att de hela tiden driver på den här utvecklingen.

Det spelar ju viss roll att Bill Gates faktisk i grund och botten är utvecklare själv, det tror i vart fall jag starkt bidrar till att utvecklarna alltid haft en stark ställning i Microsoft strategier.

tartareandesire 2013-06-22 12:30

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
Jag följer med utvecklingen av PHP (och andra språk) men tycker PHP har mycket att bevisa för att bli något att räkna med urteknisk synvinkel.

Jag håller med om att språket har utvecklats till det bättre bland annat i och med att de har infört PDO som är ett stort lyft när man jobbar med databaser.

Jag vet inte vad det är som är så speciellt med PHP. Det finns flera riktigt bra språk som har bättre stöd till utvecklaren och som är gratis att använda.

PHP är överlägset störst på nätet helt enkelt, svårare än så är det inte. Därmed är det per automatik ett språk att räkna med. Att det inte skulle kunna användas i större system är naturligtvis också helt felaktigt. Det används idag av flera av de största webbplatserna i Sverige och i världen. Den överlägset mest använda CMS-mjukvaran är byggd i PHP, många e-handelssystem, forummjukvara osv. På nätet regerar PHP fortfarande och det är trots allt nätet som ligger i fokus för de flesta här på WN.

I de fall det är väldigt viktigt med typning så kan man naturligtvis ordna detta på egen hand även i PHP. Möjligheten att skriva bra objektorienterad kod finns också i PHP. Det brukar främst vara dessa högst subjektiva och felaktiga invändningar du för fram den ena gången efter den andra. PHP har lika självklart sina fördelar och nackdelar precis som alla andra språk. Det är varken bättre eller sämre än C#/.NET, att påstå det ena eller det andra är att bedra såväl sig själv som andra. Visst kan man personligen föredra det ena framför det andra, precis som du, jag och många andra gör, men då handlar det om personliga preferenser och/eller kundmålgrupp, ingenting annat.

Flertalet nackdelar med PHP som du tar upp i inlägget ovan är för övrigt knappast varken relevanta eller korrekta. Varför skulle PHP-kod rent generellt inte vara återanvändbar till exempel? Det är väl ändå helt upp till utvecklaren? Likaså med modularitet som också hör dit. Det är inget som ligger i språket utan är helt utvecklarens ansvar och val. Att ett språk är flexibelt är då betydligt viktigare när man har så pass vitt skilda applikationer som på nätet.. Att en stor del av buggar/fel skulle bero på felaktig typning låter också som en ganska märklig slutsats. Felsökning och säkring av viktig funktionalitet går att göra på många olika sätt och hänger också mycket på utvecklaren.

Ingen professionell utvecklare skulle få för sig att generellt påstå att PHP är bättre än C#/.NET (eller något annat språk) och ingen professionell utvecklare skulle få för sig att påstå att C#/.NET är bättre än PHP. I så fall beror det på okunskap eller så är det en ren skär lögn.

pelmered 2013-06-22 13:04

Conny. No offence, men du måste nog uppdatera dina kunskaper här lite.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
För mig är det viktigt att ett programmeringsspråk har:

- Inkapsling för att dölja komplexitet och göra det förutsägbart och därmed "tryggt" att bygga större system

Det går utmärkt att göra i PHP också. Vad är det specifikt du saknar?

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Modularitet för at enkelt lägga till och förändra funktionalitet

Även det här går utmärkt att göra i PHP. Det finns många (H)MVC-ramverk som visar väldigt bra prov på det här.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Stark typning för att hitta fel som programmeraren gör direkt vid kodning/kompilering

Det är inte så många fel som kan härledas till felaktig datatyp. Det är sällan det spelar någon roll om siffran du skickar in i en funktion är en string eller en integer. Typkonverteringen sker nästan alltid automatiskt när det behövs. Vill du specifikt typa en variabel är det väldigt lätt att göra.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Kompilering för att dels skydda kod mot ändringar av obehöriga och underlätta modularitet

Enligt mig en väldigt effektiv produktivitetsdödare. Jag vill kunna testa min kod sekunden efter att jag tryckt spara. Jag vill inte behöva vänta på att kompilatorn ska göra sitt. Hur underlättar kompilering för modulariteten?

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Objektorienterad paradigm med alla dess övriga fördelar

Finns väldigt bra stöd för objektorienterad sedan PHP 5.3 och den blir bättre och bättre för varje version. Det finns i dagsläget få brister när det gäller det här jämfört med Java eller C#.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Numera finns även namespace för att underlätta modularitet och inkapsling med namnrymder

Sedan PHP 5.3 finns det stöd för namespaces.

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20472426)
- Återanvändbarhet (inte "cut and paste" som mångfaldigar underhållsproblem) är ett mycket viktigt område som är ett kapitel i sig

Vet inte riktigt vad du syftar på här. Det finns inga begränsningar när det gäller återanvändning av kod varse sig du använder imperativ eller objektorienterad kod. För att flytta kod använder man "cut and paste" oavsett språk eller plattform.


Det finns däremot andra områden där det finns viss förbättringspotential när det gäller PHP, men jag tycker inte alls du träffar rätt här.

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472427)
sen finns det en hel del nackdelar med det, den största som jag ser är t.ex att det är just ett scriptspråk och det går segt när man har extremt mycket kod, eftersom det inte kompileras. kolla på t.ex magento som är ett superstort system byggt med Zend framework och miljontals rader. går superslött, men många löser det den enkla vägen genom att köra bättre hårdvara med SSD diskar och annat.

Det här är inte ett problem. Det är bara att använda en OP Code Cache som t.ex. APC, XCache eller eAccelerator för att den kompilerade koden ska cachas. Prestandaskilnaden är i stort sett obefintlig om man konfigurerar rätt.

linusoleander 2013-06-22 20:25

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
För att flytta kod använder man "cut and paste" oavsett språk eller plattform.

Nej, man använder en pakehanterare.

pelmered 2013-06-22 21:55

Citat:

Ursprungligen postat av linusoleander (Inlägg 20472445)
Nej, man använder en pakehanterare.

Det går ju bara att använda för de saker som finns i pakethanteraren. Man kommer ju aldrig ifrån att använda copy+paste av klasser och filer man själv eller andra skapat och som inte ligger i någon pakethanterare.

MRDJ 2013-06-22 23:01

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20472436)
Conny. No offence, men du måste nog uppdatera dina kunskaper här lite.


Det går utmärkt att göra i PHP också. Vad är det specifikt du saknar?


Även det här går utmärkt att göra i PHP. Det finns många (H)MVC-ramverk som visar väldigt bra prov på det här.



Det är inte så många fel som kan härledas till felaktig datatyp. Det är sällan det spelar någon roll om siffran du skickar in i en funktion är en string eller en integer. Typkonverteringen sker nästan alltid automatiskt när det behövs. Vill du specifikt typa en variabel är det väldigt lätt att göra.


Enligt mig en väldigt effektiv produktivitetsdödare. Jag vill kunna testa min kod sekunden efter att jag tryckt spara. Jag vill inte behöva vänta på att kompilatorn ska göra sitt. Hur underlättar kompilering för modulariteten?


Finns väldigt bra stöd för objektorienterad sedan PHP 5.3 och den blir bättre och bättre för varje version. Det finns i dagsläget få brister när det gäller det här jämfört med Java eller C#.


Sedan PHP 5.3 finns det stöd för namespaces.


Vet inte riktigt vad du syftar på här. Det finns inga begränsningar när det gäller återanvändning av kod varse sig du använder imperativ eller objektorienterad kod. För att flytta kod använder man "cut and paste" oavsett språk eller plattform.


Det finns däremot andra områden där det finns viss förbättringspotential när det gäller PHP, men jag tycker inte alls du träffar rätt här.



Det här är inte ett problem. Det är bara att använda en OP Code Cache som t.ex. APC, XCache eller eAccelerator för att den kompilerade koden ska cachas. Prestandaskilnaden är i stort sett obefintlig om man konfigurerar rätt.

Jag känner till OP-cache och det finns inbyggt i magento, dock hälper det inte rikigt då det är miljontals rader utan man måste göra en del andra saker för att få det att rulla på bra. men så är det väl kanske med alla stora system, oavsätt om det är PHP eller .NET

pelmered 2013-06-23 00:23

Citat:

Ursprungligen postat av MRDJ (Inlägg 20472453)
Jag känner till OP-cache och det finns inbyggt i magento, dock hälper det inte rikigt då det är miljontals rader utan man måste göra en del andra saker för att få det att rulla på bra. men så är det väl kanske med alla stora system, oavsätt om det är PHP eller .NET

Ja, givetvis är det så att ju mer kod som exekveras varje sidladdning desto mer resurser krävs för det för att leverera sidan. OP-cache gör i många fall extremt stor skillnad. I vissa fall(sidor med mycket kod och lite databasinteraktion) kan man leverera 3-4 gånger så många sidor på samma tid.

Nihilnovi 2013-06-24 09:30

För webben tycker jag inte det finns något som slår PHP med Symfony 2 & Composer tillsammans med AWS, mums! :)


Alla tider är GMT +2. Klockan är nu 23:44.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson