Kom ihåg mig?
Home Menu

Menu


PHP 5.5 har släppts

 
Ämnesverktyg Visningsalternativ
Oläst 2013-06-21, 23:59 #1
MRDJs avatar
MRDJ MRDJ är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Mar 2006
Inlägg: 1 667
MRDJ MRDJ är inte uppkopplad
Bara ett inlägg till!
MRDJs avatar
 
Reg.datum: Mar 2006
Inlägg: 1 667
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
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.
MRDJ är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 13:04 #2
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Conny. No offence, men du måste nog uppdatera dina kunskaper här lite.

Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
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 Visa inlägg
- 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 Visa inlägg
- 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 Visa inlägg
- 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 Visa inlägg
- 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 Visa inlägg
- 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 Visa inlägg
- Å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 Visa inlägg
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.

Senast redigerad av pelmered den 2013-06-22 klockan 13:08
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 20:25 #3
linusoleander linusoleander är inte uppkopplad
Medlem
 
Reg.datum: Feb 2010
Inlägg: 234
linusoleander linusoleander är inte uppkopplad
Medlem
 
Reg.datum: Feb 2010
Inlägg: 234
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
För att flytta kod använder man "cut and paste" oavsett språk eller plattform.
Nej, man använder en pakehanterare.
linusoleander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 21:55 #4
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av linusoleander Visa inlägg
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.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 23:01 #5
MRDJs avatar
MRDJ MRDJ är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Mar 2006
Inlägg: 1 667
MRDJ MRDJ är inte uppkopplad
Bara ett inlägg till!
MRDJs avatar
 
Reg.datum: Mar 2006
Inlägg: 1 667
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
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
MRDJ är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-23, 00:23 #6
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Citat:
Ursprungligen postat av MRDJ Visa inlägg
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.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-25, 18:48 #7
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
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.
Det är över 90% av alla fel man gör vid programmering som är enkla skrivfel så man sätter fel namn på en variabel eller annan identifierare. Använder man en kompilator för ett starkt typat språk upptäcks det redan när man gör sin första kompilering. Det är mycket viktigt att upptäcka felen så tidigt som möjligt.

Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
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?
Kompilering tar bara någon sekund och när jag exempelvis jobbar med Visual studio med C# så trycker jag på [F6] för att spara och kompilera eller [F5] för att först spara och kompilera och sedan köra programmet i ett svep.

Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
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#.
Stödet för Objektorientering är uselt i den senaste PHP 5.3.0 som jag kör, stödet har iofs blivit bättre men det är 20 år efter övriga ledande språk på markanden.

Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
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.
"Cut and paste" räknas inte som återanvändning. Återanvändning är när du har en färdig modul i exempelvis filer som *.DLL, *.LIB, eller *.SO där källkoden är färdigkompilerad och testad och att man kan lita på det. Då kan man återanvända koden genom "anrop" och genom att "ärva", "instantiera" eller dyligt.

Det finns visserligen PECL för att skapa nya utökningar i PHP som jag ännu inte kört. Jag tyckte dock det var knepigt att förstå hur det var uppbyggt, men jag ska kolla vidare på det.

Jag tycker det borde finnas en möjlighet att kompilera till endera till MSIL eller Java Byte-kod eller motsvarande "PHP bytekod/ILkod" alternativt till ren maskinkod för att skapa motsvarigheten till *.DLL, *.LIB eller *.SO filer.

Idag behöver jag kopiera källkoden för att kunna återanvända koden, eller använda "include". Vilket är sämre varianter av "återanvändning".

Jag tycker det är viktigt att det finns denna möjlighet att använda externa tredjepartbibliotek som lätt kan användas vid behov, utan att för den skulll tynga ner "kärnan" av språket/interpretern/kompilatorn.

Dessa externa återanvändbara komponenter är en av de viktigaste delarna vid återanvändning, eller komponenttänkandet.

Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
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.
Scriptspråk är i sig sega då de "by definition" är interpreterande och inte kompilerade, så det är i sig ett problem som är så stort att man normalt väljer andra programspråk för att bygga kommersiella applikationer.

Sammanfattningsvis så ser jag några viktiga saker som jag anser PHP måste blir betydligt bättre på:

- Stark typning med möjlighet att ställa in "strict type mode" som man införde i VB när det gick från att vara ett löst typat till starkt typat språk
- Kompilerande (Semi- till intermediate/bytekod eller native)
- Mer komponenttänkande med exempelvis: DLL-, LIB-, eller SO-filer som kan länkas ihop med applikationen
- Mer renodlat objektorienterad språkstruktur

En strategi för att komma närmare detta mål är att helt enkelt renodla/kraftsamla språket så det följer dessa grundläggande principer och låta communityt utveckla komponenter för specifika ändamål.

Som jag upplever det nu så verkar kommunityn behöva spendera mycket tid på att lösa grundläggande problem i språket, i stället för att tillföra nytt värde.

Smart tror jag vore om man väljer att kunna kompilera för MSIL och/eller JavaBytekod så att man underlättar integration med dessa miljöer, så får man automatiskt ett rejält boost i integrationsfrågor med dessa miljöer.

Senast redigerad av Conny Westh den 2013-06-25 klockan 18:55
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-25, 18:52 #8
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
Citat:
Ursprungligen postat av ConnyWesth Visa inlägg
Det är över 90% av alla fel man gör vid programmering som är enkla skrivfel så man sätter fel namn på en variabel eller annan identifierare. Använder man en kompilator för ett starkt typat språk upptäcka det redan när man gör sin första kompilering. Det är mycket viktigt att upptäcka felen så tidigt som möjligt.



Kompilering tar bara någon sekund och när jag exempelvis jobbar med Visual studio med C# så trycker jag på [F6] för att spara och kompilera eller [F5] för att först spara och kompilera och sedan köra programmet i ett svep.
Ser inte riktigt varför du vill ha kompilering i PHP för just detta, som det är idag, koda lite, råka skriva fel variabelnamn eller funktionsnamn och nästa gång du refreshar webbläsaren så får du ett felmeddelande, bra mycket snabbare än att hitta det genom en kompilering. Dessutom, kör du någon vettig IDE så kan du upptäcka felaktiga variabelnamn eller funktionsnamn redan där. Ditt problem är ett ickeproblem om man använder sina tillgängliga verktyg på rätt sätt.


Dessutom, du kanske skall uppdatera till senaste PHP version istället för att klaga på något som är förbättrat i versionerna efter den versionen du kör. Känns lite som att klaga på dagens BMW 3 serie bara för att en BMW 3 serie från 80-talet är skit idag.

Senast redigerad av JesperA den 2013-06-25 klockan 18:58
JesperA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-25, 19:24 #9
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av JesperA Visa inlägg
Ser inte riktigt varför du vill ha kompilering i PHP för just detta, som det är idag, koda lite, råka skriva fel variabelnamn eller funktionsnamn och nästa gång du refreshar webbläsaren så får du ett felmeddelande, bra mycket snabbare än att hitta det genom en kompilering. Dessutom, kör du någon vettig IDE så kan du upptäcka felaktiga variabelnamn eller funktionsnamn redan där. Ditt problem är ett ickeproblem om man använder sina tillgängliga verktyg på rätt sätt.


Dessutom, du kanske skall uppdatera till senaste PHP version istället för att klaga på något som är förbättrat i versionerna efter den versionen du kör. Känns lite som att klaga på dagens BMW 3 serie bara för att en BMW 3 serie från 80-talet är skit idag.
Jag kör den version som kom den 19 Juni, dvs 5.5.0 (inte 5.3 som jag skrev i förra inlägget), så jag känner inte till om det kommit någon senare version.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:37.

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