Visa ett inlägg
Oläst 2009-10-25, 09:49 #27
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 cyner Visa inlägg
Jag kan bara inte låta ConnyWesths kommentarer om "otypade" språk passera... Även om tråden handlar om PHP.

För det första är språk inte otypade, utan dynamiskt eller statiskt typade, samt starkt eller svagt typade. Ex. är C statiskt och svagt typat, men PHP är dynamiskt och svagt typat.

Vad är en professionell applikation? Jag har varit med och utvecklat journalsystem för sjukvård i ett dynamiskt typat språk. Detta används i nästan hela Stockholms landsting.
Otypade eller svagt typade och interpreterande (dvs ej kompilerande språk) är helt enkelt inte ens med i matchen när det gäller professionella applikationer. De kan inte mäta sig med hårt typade, kompilerande språk, de spelar helt enkelt INTE i samma division.

Jag pratar då om appar på en miljon rader kod och mer.

Jag jobbar normalt med appar i storleksordningen 1-3 miljoner rader kod och 15-20 delsystem eller mer. Jag använder över huvud taget inte otypade, eller ens svagt typade språk idag oavsett systemets storlek.

Systemet bestod av 3,5 miljoner rader kod och tog 30 manår att utveckla, dvs ca 100 000 rader kod per utvecklare och år)

Det är helt enkelt fullkomligt omöjligt för den mänskliga hjärnan att överblicka ett sånt system.

Visst för batch-filer och småscript för installation kan jag oxo använda något otypat skript, men det är bara för småsaker, så en servertekniker kan gå in och göra justeringar för att justera installationsskripten. Server- eller installationsteknikerna har oftast inte vanan att använda kompilatorer och det brukar inte finnas installerat på alla burkar så därför finns det behov av skriptspråk för dem. Men det blir lättare buggar i installationsskripten.

Jag började oxo en gång i tiden med otypade, svagt typade språk, men ju mer jag jobbade med dessa desto mer svor jag över svårhittade buggar som upptäcktes i runtime, vid de mest olämpliga tillfällen.

Det var en dröm när jag först upptäckte kompilering som ett alternativ och cedermera även hård typning.

Kompileringen gjorde att jag redan när jag utvecklade kunde hitta många buggar som jag inte känt till tidigare.

När jag upptäckte typningens fördelar genom att applikationerna kunde kontrollera typen redan vid kompilering så höjdes prestandan med 130 gånger !!!! detta utan att optimera koden på något annat sätt än att införa typning, i stället för att typen måste kontrolleras dynamiskt.

Senare dök ävenm objektbaserade och objektorienterade system upp vilket även det förbättrade möjligheterna att dela upp applikationerna i väl avgränsade och färdigtestade moduler som kunde återanvändas på ett effektivt sätt.

Numera utvecklar jag alltid system med verktyg som stöder:

Förbereddelser:

- Objektorientrad kravhantering
- Objektorienterad Analys och Design (OOAD)

Kodning:
- Kompilering (native- eller semi-)
- Hård typning
- Objektorienterad programmering (OOP)
- Integrerad utvecklingsmiöjö (IDE)



Nuvarande version av PHP (v5) här inte till den kategorin, men exempelvis Java (med sin byte-kod), .NET (C#, VB.NET, ASP.NET) hör till denna kategori.

Jag jobbade en gång i tiden med ett verktyg som heter SQL-Windows, det var objektbaserat och kompilerande med hård typning men det hade en annan egenskap som jag starkt ogillade och det var binärkodade källkodsfiler. Det innebar att om man fick en krasch av IDEn sp kunde man tappa hela källkoden.... inte så kul även om det inte hände så ofta. De införde senare ett alternativ där man kunde spara sin källkod som rena textfiler, troligen för att utvecklarna krävde det. men de flesta programspråk har textbaserade källkodsfiler idag.

Man kan givetvis skriva dålig kod i alla språk även med (trots) att språken/utvecklingsmiljöerna stöder dessa tre grundläggande krav för profesionell systemutveckling.

När jag utvecklar idag försöker jag använda den strängaste syntaxkontrollen, för attfå så mycket hjälp som möjligt av kompilator och utvcklingsmiljön/verktyget/editorn som möjligt.

Givetvis använder jag även editorer med autoformatering och färgkodning av nyckelord och typer så man blir så effektiv som möjligt i utvecklingsarbetet. Observera oxo att begreppet effektiv inte är liktydigt med att knacka så många tecken som möjligt per minut utan att åstadkomma ett resultat som är användbart enligt kravspec och som fungerar korrekt. För att vara effektiv som utvcklare krävs betydligt mer än att vara snabb vid tangentbordet (vilket är ganska irrelevant f.ö.).

Men slutligen så finns det inget så effektivt som den änskliga hjärnan i utvecklingsarbetet, man måste använda dn till att strukturera och planera sitt system långt innan man börjar med kodningen.

Det spelar ju ingen roll om man jobbar snabbt med kodning om man sitter och jobbar med fel saker.

Senast redigerad av Conny Westh den 2009-10-25 klockan 21:04
Conny Westh är inte uppkopplad   Svara med citatSvara med citat