$me wil ook nog even wat algemeens over complexe code zeggen.
Complexe code is op zich niet slecht. Er worden complete IDE's, libraries, code-generators etc. geschreven. Nu klink ik misschien als een oude opa, maar een simpel stukje BASIC (ja, BASIC, omdat het IMO de potentie heeft om een hele snelle en efficiente taal te zijn, omdat het in feite heel erg op assembly lijkt (verklaar me maar meteen voor gek
Dit:
code:
1
2
3
| FOR Counter% = 1 TO 10 Array(Counter%) = "Blaat" NEXT Counter% |
Is veel inefficienter dan:
code:
1
2
3
4
5
| Counter% = 0 DO Counter% = Counter% + 1 Array(Counter%) = "Blaat" LOOP UNTIL Counter% = 10 |
Het volgende is nog efficienter:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Counter% = 0 LoopComplete% = 0 CallCounterLoop: GOSUB CounterLoop CounterLoop: GOSUB CounterLoopElement IF Counter% = 10 THEN RETURN GOTO CallCounterLoop CounterLoopElement: Counter% = Counter% + 1 Array(Counter%) = "Blaat" RETURN |
En het volgende is het efficientst:
code:
1
2
3
4
5
6
7
8
9
| Counter% = 0 GOTO CounterLoop :CounterLoopFinished CounterLoop: Counter% = Counter% + 1 Array(Counter%) = "Blaat" IF Counter% = 10 THEN GOTO CounterLoopFinished GOTO CounterLoop: |
Het bovenste is het makkelijkste en wordt het vaakst gebruikt. Het is echter ook significant slomer dan wanneer je de code zelf schrijft. Je kunt natuurlijk voor een aantal veelgebruikte routines templates schrijven die je snel kunt aanpassen. Dan heb je snellere code die toch makkelijk te gebruiken is.
Nu kun je wel zeggen, BASIC is oud en inefficient (wat ik overigens betwist; het ligt aan de implementatie), maar wat ik probeer te zeggen is: gebruik simpelere opdrachten, ook al wordt de code langer, hij wordt wel efficienter.
offtopic:
Om deze redenen vindt ik het jammer dat RISC het niet heeft gehaald.
Om deze redenen vindt ik het jammer dat RISC het niet heeft gehaald.
[ Voor 11% gewijzigd door .oisyn op 13-04-2005 15:05 . Reden: Typo/Codefout hersteld ]