Gå til innhold

PHP 5.3 er ferdig


Anbefalte innlegg

Videoannonse
Annonse
PHP 5.3 får støtte for ekte anonyme funksjoner, ofte kjent som closures.

Anonyme funksjoner != closure, selv om det ofte kommer sammen.

 

Closure betyr i praksis at funksjoner(eller mer generelt: uttrykk) kan "ta med seg" state(For de som har drevet med metasirkulære evaluatorer så blir dette at man pakker funksjonen og et environment sammen). Man kan bruke closure uten anonyme funksjoner. F.eks. denne scheme-koden.

 

<BR>(define (make-increment-proc increment-value)<BR>	(define (increment number)<BR>		(+ number increment-value))<BR>	(define (proc list)<BR>		(map proc list))<BR>	proc))<BR>

 

edit: fikser koden når jeg kommer hjem, teit jobbpc....

Endret av Blackslash
Lenke til kommentar

PHP er på veg til å bli det styggaste språket syntaksmessig. Skal PHP ha eit håp i framtida så bør det lære litt av f.eks Python som er mykje meir lesbar samt er eit mykje meir vellutvikla programmeringsspråk frå bunnen av. Altså andre språk har hatt støtte for namespaces sidan andre verdenskrig!

 

PHP er også rotete på mange måter, ein "felles" datastruktur? Kvifor ikkje ha moglegheita til å velja mellom trer, maps, lister osv.? Sånne ting har jo vanvittig mykje å si når det kjem til ytelse. Og for å ikkje nemne surret med at array[0] === array["0"] :yucky:

 

Mitt inntrykk er at folk lærer seg PHP fordi "kompisen" anbefaler det eller fordi "rein" Java er for mykje arbeid(med dei forskjellige rammeverka så blir Java fort 10x meir produktivt enn PHP). Det same gjelder MySQL, fordi "kompisen" anbefaler det. Sannheita er jo at MySQL er den dårlegaste databasen som nokon gong er laga, det må jo være mykje enklare å starte å lære databaser med SQLite som er innebygd, dønn stabilt og meir funksjonsrik enn MySQL.

Lenke til kommentar

Et annet rammeverk som jeg syns var lettere å lære enn hibernate, struts, spring, javaee, ejb, osv. er rails, i tillegg er ruby mer leselig som språk enn både java og python. Funksjonaliteten overgår også de fleste andre.

 

Database messig må jeg også si meg enig med siDDIs. Selv om mysql har fått en liten performance update nå nylig, så er eneste grunnen til at den er så populær at den er støtta overalt. Personlig holder jeg en knapp på postgresql som virkelig har system i sysakene sine.

 

PHP eier ikke struktur eller lesbarhet, denne oppdateringen er bare med på å gjøre php til et enda større clusterfuck.

Lenke til kommentar
PHP er på veg til å bli det styggaste språket syntaksmessig.

 

Reagerer litt på det jeg også.. Er ikke så begeistret for å skille navnerom med backslash. API'et til PHP har også blitt ekstremt rotete. At de aldri kan bli enige om en skikkelig navnekonvensjon! isset og is_null er gode eksempler. At de ikke kan bestemme seg hvor hvordan funksjonsnavn skal se ut.. Trenden med flere klasser istedenfor funksjoner er forsåvidt positiv, men gjør ikke akkurat API'et mindre rotete.

 

Det er forresten artig å lese hva godeste Linus mener om goto statements.

I think goto's are fine, and they are often more readable than large

amounts of indentation. That's _especially_ true if the code flow isn't

actually naturally indented (in this case it is, so I don't think using

goto is in any way _clearer_ than not, but in general goto's can be quite

good for readability).

 

Of course, in stupid languages like Pascal, where labels cannot be

descriptive, goto's can be bad. But that's not the fault of the goto,

that's the braindamage of the language designer.

 

Linus

Endret av Kimble
Lenke til kommentar
Innføringen av GOTO i PHP 5.3 forsterker, eller skal jeg kanskje si bekrefter, inntrykket av at PHP kun er er laget for mer eller mindre halvseriøse "gutteroms-løsninger".

 

Werner

 

Facebook, Wikipedia, Yahoo.com, Digg, Flickr er alle gode eksempler på at det :p

 

PHP er genialt om man bruker det riktig. Det er sikkert ikke noen god idee å bruke det som backend for virkelig forretningskritiske applikasjoner, men om man bruker det riktig kan må få en ganske bra produktivitetsboost. Layout / views er fin-fine oppgaver for PHP.

Endret av Kimble
Lenke til kommentar
PHP er på veg til å bli det styggaste språket syntaksmessig. Skal PHP ha eit håp i framtida så bør det lære litt av f.eks Python som er mykje meir lesbar samt er eit mykje meir vellutvikla programmeringsspråk frå bunnen av. Altså andre språk har hatt støtte for namespaces sidan andre verdenskrig!

Er ikke helt enig i at python er et godt eksempel- men smak og bak.

Det jeg sliter med er jo separatoren. Om jeg har fått med meg dette riktig så er den valgt fordi den er lett å parse...???

 

Er det bare meg, eller er PHP sin måte å sette sammen stringer med punktum mer til hinder for videre utvikling av språket? Java bruker punktum for namespace separator, og for å referere til funksjoner/variabler i objekter.

 

Om man hater OO i PHP så er dette ikke noe problem - Bare at jeg syns slike programmerere skulle vært brent på et bål.

 

"C syntaksen", spesielt den java har - syns jeg er den beste.

 

Det er lettere å skrive(altså mer produktivt)

bil.motor.start()

enn

bil->motor->start()

 

Men PHP har stor fordel over

'Teit '.$liten.' string concatenation';

alternativt:

"Teit $liten string concatenation";

fremfor java sin

"Teit " + liten->toString() + " string concatenation"; // liten overdrivelse + dette er treigest å gjøre (StringBuilder er raskest).

 

PHP er også rotete på mange måter, ein "felles" datastruktur? Kvifor ikkje ha moglegheita til å velja mellom trer, maps, lister osv.? Sånne ting har jo vanvittig mykje å si når det kjem til ytelse. Og for å ikkje nemne surret med at array[0] === array["0"] :yucky:

Egentlig enig. Man er ganske bakstreversk når man forsøker å lage sin egen list implementasjon. Array (sortert hashmap egentlig) er dritenkel å bruke.

Det mest irriterende med array er at den også lett dreper OO fordi det er lettere å bruke array istedet for å lage enkle domene objekter slik man gjør i java for å skille ulike typer.

 

I java så har man kanskje en arraylist med personer .. i php så blir det fort array av arrays.

 

Domene objekter, altså helt enkle klasser ala person som har navn, nr, gate, etc - og set/get for alle disse - er kjedelig å lage. Bonusen kommer først senere når du trenger ekstrafunksjoner eller at get/set skal gjøre noe ekstra. Med array så er dette drepen når man kommer over slike ting. I java er det egentlig ikke et problem siden Eclipse(og andre) lager slike domene klasser lett og automagisk.

 

Mitt inntrykk er at folk lærer seg PHP fordi "kompisen" anbefaler det eller fordi "rein" Java er for mykje arbeid(med dei forskjellige rammeverka så blir Java fort 10x meir produktivt enn PHP). Det same gjelder MySQL, fordi "kompisen" anbefaler det. Sannheita er jo at MySQL er den dårlegaste databasen som nokon gong er laga, det må jo være mykje enklare å starte å lære databaser med SQLite som er innebygd, dønn stabilt og meir funksjonsrik enn MySQL.

Jeg lærte det fordi skolen var anti-ms.

 

Java har drithøy lærekurve, og er marginalt interessant for hobby programmereren. Du finner LETT et billig, bra webhotell med php/mysql. Vil du ha java og en annen DB? Ja da er tilbudet mer marginalt.

Kjenner ikke en kjeft som har sin hjemmeside laget i java (servlet/jsp) eller brukt et rammeverk.

Java kunne med fordel droppet en hel masse config, kjørt et ganske standard ferdig oppsett, og heller gitt folk mulighet for å confe til nye ting om de trenger det. Skader ikke å gjøre ting lettere - men javafolk liker kanskje at ting er svært komplisert.

 

MySQL suger ja. Den er enkel å installere, enkel å komme i gang med, enkel å koble til med til f.eks PHP og andre språk. Men folk blir jo hjernedøde når de forholder seg kun til myisam basen som mangler låsing, fremmednøkler, transaksjoner etc. Møter så mange som på død og liv skal løse ting i kode ... hallo. DU vil aldri lage raskere/bedre kode enn det en database kan tilby.

 

SQLite? Postgre - for den tilbyr nettopp de vesentlige tingene av de basene som er OO. SQlite er mangelfull.

 

Et annet rammeverk som jeg syns var lettere å lære enn hibernate, struts, spring, javaee, ejb, osv. er rails, i tillegg er ruby mer leselig som språk enn både java og python. Funksjonaliteten overgår også de fleste andre.

Ja Rails, og PHP, er lette å lære, og lett å komme i gang med, lett å få opp resultater fort. Men...

Rails kan ikke måle seg med de rammeverkene du oppgir til java. Rails er godt nok for småting, men de rammeverkene du oppgir kan VIRKELIG gjøre mye avansert og kjøre STORE løsninger uten at det blir bloat.

Ja det er overkill å lage hjemmesia si med struts/spring med hibernate. Om ditt liv er select * from mytable - så er hibernate overkill. Men det er ikke programmering, det er bare useriøst.

 

Personlig så jobber jeg med store oracle databaser, masse tabeller, masse constraints(fremmednøkler etc), endel stored procedures å forholde seg til, flere applikasjoner(også web) som jobber mot basen. ActiveRecords ville ha blitt ekstremt tungvint, lagt mye spagetti, og ført til et langt tregere system, fordi jeg har ofte svært store og avanserte spørringer, og ikke så enkle modeller (selv om jeg skulle ønske at jeg hadde det slik).

 

Det er ikke dumt å lage små enkle siter med de javarammeverkene. Da er det lett å utvide, lett å skalere, og det er lettere å gjøre koden mer vedlikeholdbar. Men det er ikke feil å lage dem med R&R eller PHP, bare at vedlikeholdbarheten blir mer vanskelig over tid(3+ år med konstant utvikling i typiske bedriftsystemer). Det samme har man innen java. Lager man en egen site med servlet/jsp og ingen rammeverk, så blir det fort stygt og vanskelig å vedlikeholde på et senere tidspunkt. Struts f.eks gjør ting LANGT LETTERE å lage kode som er lett å vedlikeholde senere.

 

Det jeg savner med PHP, Rails etc. Er at de er laget av folk som ikke forsøker å tekke utvikling av bedriftsystemer. "Kundemassen" er småprogrammer, mye privatpersoner, hobbyister, etc. Ser man på Zend Framework opp mot Spring, så ser man at Spring tilbyr tonnevis av avanserte greier, mens ZF tilbyr plugins mot facebook, flickr og annet ubrukelig ræl.

Lenke til kommentar
Facebook, Wikipedia, Yahoo.com, Digg, Flickr er alle gode eksempler på at det :p

 

PHP er genialt om man bruker det riktig. Det er sikkert ikke noen god idee å bruke det som backend for virkelig forretningskritiske applikasjoner, men om man bruker det riktig kan må få en ganske bra produktivitetsboost. Layout / views er fin-fine oppgaver for PHP.

 

Facebook er faktisk vanvittig lite PHP, er stort sett bare front end som er PHP, resten er C/Java/Python, og MySQL blir bytta ut med Oracle på visse områder.

Lenke til kommentar
Innføringen av GOTO i PHP 5.3 forsterker, eller skal jeg kanskje si bekrefter, inntrykket av at PHP kun er er laget for mer eller mindre halvseriøse "gutteroms-løsninger".

 

Werner

 

Facebook, Wikipedia, Yahoo.com, Digg, Flickr er alle gode eksempler på at det :p

 

PHP er genialt om man bruker det riktig. Det er sikkert ikke noen god idee å bruke det som backend for virkelig forretningskritiske applikasjoner, men om man bruker det riktig kan må få en ganske bra produktivitetsboost. Layout / views er fin-fine oppgaver for PHP.

Hvilke fordeler har språket PHP kontra feks Python eller Ruby? Hvordan er det mer produktivt, og/eller fører til bedre kode?

 

Man kan alltids jobbe rundt problemer i et språk. Men det betyr ikke at man bør gjøre det.

Lenke til kommentar
Facebook, Wikipedia, Yahoo.com, Digg, Flickr er alle gode eksempler på at det :p

 

PHP er genialt om man bruker det riktig. Det er sikkert ikke noen god idee å bruke det som backend for virkelig forretningskritiske applikasjoner, men om man bruker det riktig kan må få en ganske bra produktivitetsboost. Layout / views er fin-fine oppgaver for PHP.

 

Facebook er faktisk vanvittig lite PHP, er stort sett bare front end som er PHP, resten er C/Java/Python, og MySQL blir bytta ut med Oracle på visse områder.

 

Det er perfekt bruk av PHP!

 

Innføringen av GOTO i PHP 5.3 forsterker, eller skal jeg kanskje si bekrefter, inntrykket av at PHP kun er er laget for mer eller mindre halvseriøse "gutteroms-løsninger".

 

Werner

 

Facebook, Wikipedia, Yahoo.com, Digg, Flickr er alle gode eksempler på at det :p

 

PHP er genialt om man bruker det riktig. Det er sikkert ikke noen god idee å bruke det som backend for virkelig forretningskritiske applikasjoner, men om man bruker det riktig kan må få en ganske bra produktivitetsboost. Layout / views er fin-fine oppgaver for PHP.

Hvilke fordeler har språket PHP kontra feks Python eller Ruby? Hvordan er det mer produktivt, og/eller fører til bedre kode?

 

Man kan alltids jobbe rundt problemer i et språk. Men det betyr ikke at man bør gjøre det.

 

En kan skrive god og dårlig kode i alle språk. PHP er et språk laget for web og gir en skikkelig produktivitetsboost på det området. Enkel tilgang til funksjoner man trenger i web-sammenheng. Utviklingen er også utroolig rask; gjør en endring og trykk f5, ingen kompilering eller re-deployering.

 

Det at det er så til de grader dynamisk typet gjør at man kan ta seg utrolig mange designfriheter som i f.eks. Java ville involvert interface, factories og mye sermoniell kode. Hva som gir den beste koden kan man diskutere, men at det øker produktiviteten er ganske sikkert.

 

Poenget mitt er at det ikke er noe som hindrer deg i å lage god kode i PHP. De som prøver å bruke det for å prosessere enorme datamengder eller i et enterprise miljø med distriuberte transaksjoner har allerede kommet til feil plass. Det er som å ta langrennskiene på sydenferie, man må bruke riktig verktøy for jobben.

Lenke til kommentar

Hvilke fordeler har språket PHP kontra feks Python eller Ruby? Hvordan er det mer produktivt, og/eller fører til bedre kode?

 

En kan skrive god og dårlig kode i alle språk.

Selvfølgelig. Spørsmålet her er vel heller mer om god Python/Ruby-kode er (potensielt) bedre en god PHP-kode.

PHP er et språk laget for web og gir en skikkelig produktivitetsboost på det området. Enkel tilgang til funksjoner man trenger i web-sammenheng.

Dette argumentet mener jeg har godt ut på dato. For høy produktivitet på web, trengs det uansett et rammeverk i tillegg til det medfølgende biblioteket, og det man da ser med PHP er at de innebygde "snarveiene" ikke lenger er gode nok i seg selv, så rammeverket må i praksis finne opp hjulet på nytt, og all den medfølgende funksjonalitet i PHP ender bare opp som en unødvendig legacy-byrde.

Språk som Ruby og Python har ikke hatt noen illusjon om at et integrert "mini-webrammeverk" er noen god ide, allikevel ser en at f.eks Ruby blir høyt priset nettopp for glimrende tilgjengelige rammeverk for webutvikling.

 

Utviklingen er også utroolig rask; gjør en endring og trykk f5, ingen kompilering eller re-deployering.

Dette er heller en generell beskrivelse av alle dynamiske språk, og ingen styrke PHP har over de andre aktuelle språkene.

Det at det er så til de grader dynamisk typet gjør at man kan ta seg utrolig mange designfriheter som i f.eks. Java ville involvert interface, factories og mye sermoniell kode.

PHP er dynamisk typet ja, men ikke "så til de grader dynamisk" i forhold til de språkene PHP her var ment sammenlignet mot. Java var ikke et av dem.

Når det gjelder designfriheter blir PHP fullstendig utradert av et språk som Python.

 

Saken er altså ikke om PHP har gunstige bruksområder iforhold til språk som Java, men hvordan det sammenligner med andre tilsvarende/dynamiske språk.

Lenke til kommentar

Grunnen til at php er så populært kan vi nok enkelt konkludere med at er fordi det er så lett og at man kan gjøre hva man vil. Selv kunne jeg php lenge før jeg lærte meg java o.l.

 

DarkSlayer: Jeg sier ikke at rails er bra i noen enterprise sammenheng sammenlignet med struts, hibernate, osv. Jeg sier bare at det er bedre til det det er ment for. Skal du ha en nettapplikasjon som jobber opp mot en større database, f.eks. ldap, sier det seg nesten selv at det lønner seg og ha en egen database til nettapplikasjon også synce denne mot den større.

 

Om man skal ha et enkelt lite script som skal gjøre noe så er selvfølgelig php en vinner. Men om man skal lage en blogg eller lignende nettside som konstant jobber opp mot en DB er rails en klar vinner. Effektiviteten når man utvikler er over det dobbelte.

 

Kimble: Testing og deployment er alfaomega om man driver et seriøst nettsted.

 

Vil forøvrig avslutte med å linke til denne lille snutten.

Lenke til kommentar

Eg synes det er svært merkverdig at PHP utviklere påstår at PHP er mest kostnadeffektiv når dei ikkje har prøvd rammeverk som Groovy for Grails. Det PHP utviklere gjer på 10 timer gjer ein Groovy for Grails utvikler på 1 time. Rett og slett pågrunn av at ein har eit rammeverk som hjelper en webutvikler med typiske problemstillingar innanfor webutvikling.

 

PHP har ingenting som kan måle seg med Hibernate, Spring, Sitemesh, Quartz, JSecurity osv....

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...