Jawade <
Henk_...@hotmail.com> writes:
> John Bokma <
jo...@castleamber.com> schreef op Wed, 5 Oct 2011 12:24:07 -0500 in artikel <
87vcs3i...@castleamber.com>:
>> Jawade <
Henk_...@hotmail.com> writes:
[..]
>> En jij bent programmeur? Hoe doe je dat als er een kleine bug in je code
>> zit? Want dan moet je ook vanalles op starten en compileren. Sterker,
>> wat moet je starten? Je editor? Die staat toch de hele dag open? En
>> compileren? Dat is of 1 commando (make, ant, o.i.d.), en dat kan je
>> vanuit je editor doen met 1 druk op de knop (save, compile, run).
>
> Ik maak zelden fouten, soms een syntaxfout. Nee, liever due 8 regels,
> is beter voor de snelheid ook, heb ik al lang gemerkt. base64 werkt
> vanuit Perl ook traag, terwijl het mij in FB -even spieken - 13 regels
> kost. Dus die ga ik ook in FB gebruiken.
Tja, je roept maar wat, en zonder code zelf te kunnen zien is daar niks
van te zeggen. En als "FB" een exe maakt zou het mij verder niet
verbazen dat dat sneller is omdat je lijkt te vergeten dat perl starten
ook tijd kost. Maar het hele: x regels is sneller dan een call naar een
library van 1 regel is dom geleuter als dat een gevoelskwestie is,
zonder enige vorm van testen.
>> Heh, ik geloof er niks van dat je MIME::QuotedPrint hebt getest. En
>> verder, je "merkt" niet, je test.
>
> Nee, ik heb die niet getest,
Goh...
> maar ben er erg zeker van dat het in FB
> sneller is,
Ja, als FB een exe aanmaakt zal dat vast zo zijn, zie boven.
> het is maar een klein stukje code. In een bestaande loop
> maar 1 regel. Te weten:
Onzichtbare code, leuk.
[ programmeren ]
> Nee, op feeling programmeren is niet de manier, maar de enkele keer
> dat ik in Perl werk, probeer ik weleens wat op de gok, omdat ik anders
> een zoektocht moet organiseren. En regelmatig met positief resultaat.
Ik begrijp dat nooit: mensen die liever 1 uur aankloten (gokken), dan 10
minuten zich inlezen. Zeker niet omdat inlezen makkelijker te herinneren
is dan: oja, ik heb toen een uur zitten kloten, maar wat werkte ook alweer.
>> Wat ik bedoel: jij programmeert nu in Perl, en wil niet een module
>> installeren omdat het dan te groot wordt. Een module van een paar
>> *kilo*byte.
>
> Het voornaamste bij wat ik maak, is dat een leek het ook kan gebruiken,
> zonder allerlei omwegen. Dat doe ik zelfs voor mijn usenetclient, en
> die geef ik niet eens uit.
Dat staat los van: je gebruikt Perl, en vind een module installeren te
veel moeite. Als je verwacht dat een ander Perl installeert mag je ook
wel verwachten dat een module geinstalleerd wordt. Zeker met ActivePerl
is dat allemaal een fluitje van een cent (en evt. nog in een GUI ook).
>> Maar goed, je hebt voor Perl gekozen, en dan vind ik dat je je
>> belachelijk druk maakt over het vermeende (!) snelheidsverlies van het
>> gebruiken van aanroepen van 3rd party code en de toename van een paar KB
>> op het geheel van een aantal MB...
>
> base64 omzetten in Perl is erg traag.
Zie boven.
>> > Kom nou, jij weet net zo goed als ik dat je OO eigenlijk alleen
>> > maar zinnig kunt gebruiken in een visual IDE
>>
>> Hoe kom je daar nu bij? Of beter: kan je uitleggen waarom je dat denkt?
>
> Een paar knoppen maken is in Visual Basic/C++ een fluitje van een
> cent, maar in een 'gewone' editor wel wat meer werk.
OO heeft niks met knoppen te maken. En verder, het hangt er vanaf wat je
doet: sommige vensters zijn makkelijker met het handje te coderen dan
met de muis van alles lopen slepen en kopieeren. En dan zijn er ook
programma's waar je je UI in kan tekenen, terwijl je programmeert in,
bijvoorbeeld, Emacs (zie b.v. Qt Designer, been there, done that).
[ taal beheersen ]
> Van de 6502 kende ik alle 151 instructies. Van de BASIC op die
> machine kende ik ook alles.
Instructies kennen is niet hetzelfde als een taal beheersen. Het
woordenboek uit je hoofd leren maakt je niet een goede schrijver. Ook
van Python kan je zo alle "instructies" leren. Maar dat maakt je zeker
geen goede Python programmeur, per se.
[code compact]
>> Waarom?
>
> Tja, dat is die 'ziekte' he. Maar ik ben mijn leven al aan 't beteren,
> soms gebruik ik 2 of 3 keer hetzelfde stuk code met kleine verschillen,
> zonder dat weer eenmalig in een sub te stoppen.
Het ligt aan hoe lang dat stuk code is, of dat een probleem is. Kleine
verschillen kan je soms opvangen met een extra parameter, of gebruik een
hogere-orde functie, en geef er een mee die de verschillen afhandelt.
>> > Perl is niet mijn hoofd-ding, als FB die kunstjes ook kende, had
>> > ik het er niet eens bij gehaald. Base64 decoderen kan met FB ook
>> > in een paar regels, maar utf8 is er ook onderdeel van, en die is
>> > niet even te decoderen met FB.
>>
>> Tuurlijk wel, alleen weet jij dat niet ;-). utf-8 is gewoon bytes
>> (octets) met een bepaalde afspraak. En als jij utf-8 naar Latin-1 (IIRC)
>> wilt omzetten dan zit je met de 7 bits tekens al gebakken, want die zijn
>> hetzelfde. Hoef je alleen maar een mapping te maken voor 128..255, /en/
>> een afspraak met jezelf te maken wat te doen met tekens die niet af te
>> beelden zijn op Latin-1.
>
> Wordt veel te groot, er zij er duizenden.
Maar die zijn allemaal niet af te beelden op Latin-1, dus daar kan je
niks mee. Dus moet je afspreken wat je er mee gaat doen; bijvoorbeeld:
ik geef een ? weer als ik er niks mee kan. Kortom: als het 7-bits is,
dan kan je het 1:1 overnemen. Als het "hoger" is, dan moet je beslissen:
kan ik deze afbeelden in Latin 1: als ja, dan doe je dat, als nee, dan
druk je (bijvoorbeeld) een vraagteken af. Die 2e doe je met een
look-up-table, en daar zitten max 128 tekens in. Eitje, toch?
>> Voorbeeld: omdat je in Perl dynamisch een Perl programma kan maken (in
>> een scalar bijvoorbeeld), en dat uitvoeren middels eval. Dus je hebt het
>> hele Perl circus nodig om dat te ondersteunen. Daarnaast zitten er in
>> Perl een massa toeters en bellen. Om een simpel Perl script te
>> compileren moet die ondersteuning voor toeters en bellen ook mee
>> (garbage collector, om maar iets te noemen). Kortom, wat jij bedoelt met
>> "echte compiler": kleine executables (paar KB), geen runtime installeren
>> kan niet met Perl. Uiteraard kan je /wel/ zoiets maken voor een subset
>> voor Perl. Voor Python is er bijvoorbeeld Shed Skin (Python -> C++).
>
> Het had mooi geweest, juist omdat ik in mijn meeste scriptjes maar
> een zeer beperkt aantal instructies gebruik.
Python leren, en Shed Skin gebruiken, dan ;-) Verder is het niet zozeer
dat jij slechts een subset gebruikt van Perl, maar dat je ook het juiste
subset gebruikt *en* hints moet geven. Dingen als:
my $x = "17";
$x *= 3;
$x .= ' euro';
zorgen ervoor dat er een hele bak extra gecompileerde code in je exe mee
moet komen.
>> > 1.De ascii-waarde van de hulpregel
>>
>> Wat is de ascii-waarde van een regel? Sterker, ik denk dat je met
>> "ASCII-waarde" een octet (byte) bedoelt, met een decimale waarde tussen
>> 0 en 255?
>
> Heet in veel talen asc(n).
Ja, in Apache heet een referrer ook een 'referer' [sic]. ASCII is /per
definitie/ 7 bits. Dat iemand een functie die een octet oplevert asc
noemt, maakt dat niet minder waar.
>> Kijk, dat kan al niet. ASCII is 7 bits, dus dat kan nooit 160 worden ;-).
>
> Ben jij nou programmeur? Nooit van asc(128) of asc(255) gehoord?
Tuurlijk wel. Maar ik heb ook gehoord dat ASCII /per definitie/ 7 bits i.s
>> Zeker, als ik snap wat je probeerd te doen. Kan je dat in 1 zin
>> opschrijven? En voorbeeld invoer en uitvoer zou zomaar kunnen helpen.
>
> Ik zou het aan de hand van dit stukje zo kunnen coden.
Dat mag ik hopen, omdat /jij/ die "specificatie" op geschreven hebt.
> De invoer is een regel 'regel', de uitvoer ook. Ik heb hem overigens
> teruggebracht naar 5 regels.
Allemaal heel mooi, maar het is mij nog steeds niet duidelijk wat de
ASCII code (of de asc) van 1 regel is...