<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Reacties op: Programmeren leer je niet met productietalen</title>
	<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/</link>
	<description>Nederlandse blog over software ontwikkeling</description>
	<pubDate>Mon, 08 Sep 2008 02:15:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>

	<item>
		<title>By: Remco van 't Veer</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16598</link>
		<author>Remco van 't Veer</author>
		<pubDate>Thu, 31 Jan 2008 13:41:54 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16598</guid>
					<description>Je stukje over ontwikkelingen door de jaren heen is wel heel kort door de bocht.  Als ontwikkelingen op een tijdslijn zet, valt bijvoorbeeld meteen op dat Java evolutionair erg laat geboren is.  Smalltalk was rond 1990 zeer populair en met name op OO gebied superieur aan Java tegenwoordig.  Daarbij is een onderdeel als garbage collection, wat een belangrijk argument was in de Java versus C discussie, al in 1959 uitgevonden en geïmplementeerd in Lisp.  Als opleidingen dan ergens aandacht aan moeten besteden is het aan geschiedenis om dit soort onzin discussies te voorkomen.</description>
		<content:encoded><![CDATA[<p>Je stukje over ontwikkelingen door de jaren heen is wel heel kort door de bocht.  Als ontwikkelingen op een tijdslijn zet, valt bijvoorbeeld meteen op dat Java evolutionair erg laat geboren is.  Smalltalk was rond 1990 zeer populair en met name op OO gebied superieur aan Java tegenwoordig.  Daarbij is een onderdeel als garbage collection, wat een belangrijk argument was in de Java versus C discussie, al in 1959 uitgevonden en geïmplementeerd in Lisp.  Als opleidingen dan ergens aandacht aan moeten besteden is het aan geschiedenis om dit soort onzin discussies te voorkomen.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: Jean-Luc</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16683</link>
		<author>Jean-Luc</author>
		<pubDate>Sat, 02 Feb 2008 07:22:12 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16683</guid>
					<description>Er is nogal een verschil tussen 'uitgevonden' en 'mainstream'. Volgens mij had Leonardo da Vinci de helicopter uitgevonden maar duurde het nog een aardige tijd voor er 1 in de lucht vloog. De discussie gaat in essentie wat er wanneer in de rugzak van de ontwikkelaar gestopt moet worden. Ik denk dat Garbage collection in de jaren zestig niet hoog op die lijst stond.</description>
		<content:encoded><![CDATA[<p>Er is nogal een verschil tussen &#8216;uitgevonden&#8217; en &#8216;mainstream&#8217;. Volgens mij had Leonardo da Vinci de helicopter uitgevonden maar duurde het nog een aardige tijd voor er 1 in de lucht vloog. De discussie gaat in essentie wat er wanneer in de rugzak van de ontwikkelaar gestopt moet worden. Ik denk dat Garbage collection in de jaren zestig niet hoog op die lijst stond.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: Remco van 't Veer</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16743</link>
		<author>Remco van 't Veer</author>
		<pubDate>Sun, 03 Feb 2008 14:10:09 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16743</guid>
					<description>Het grote verschil tussen de helikopter en garbage-collection is dat er in 1959 ook echt een implementatie was en hoewel ik John McCarthy hoog heb zitten, vind ik de vergelijking met Leonardo da Vinci wat ver gaan.

Daarnaast vraag ik me af wat je met "mainstream" bedoelt, die 5 talen waar de 4 grootste IT bedrijven op dit moment hun geld mee verdienen?  Elke ontwikkelaar heeft wel eens van Lisp en Smalltalk gehoord, hoop ik ten minsten, en als ik het goed begrepen heb, hebben IBM en Apple in de jaren negentig Smalltalk producten op de markt gezet.  Of dat ze "mainstream" maakt, weet ik niet maar irrelevant kan je ze zeker niet noemen.

Wat betreft die student, denk ik dat een beetje historisch besef belangrijker is dan dat opleidingsinstituten achter de grillen van de markt aan rennen.  Iemand die een degelijke opleiding achter de rug heeft, zal geen enkele moeite hebben met het leren van een taal als Java of Ruby.  Wat dat aangaat sta ik volledig achter de titel van dit artikel.</description>
		<content:encoded><![CDATA[<p>Het grote verschil tussen de helikopter en garbage-collection is dat er in 1959 ook echt een implementatie was en hoewel ik John McCarthy hoog heb zitten, vind ik de vergelijking met Leonardo da Vinci wat ver gaan.</p>
<p>Daarnaast vraag ik me af wat je met &#8220;mainstream&#8221; bedoelt, die 5 talen waar de 4 grootste IT bedrijven op dit moment hun geld mee verdienen?  Elke ontwikkelaar heeft wel eens van Lisp en Smalltalk gehoord, hoop ik ten minsten, en als ik het goed begrepen heb, hebben IBM en Apple in de jaren negentig Smalltalk producten op de markt gezet.  Of dat ze &#8220;mainstream&#8221; maakt, weet ik niet maar irrelevant kan je ze zeker niet noemen.</p>
<p>Wat betreft die student, denk ik dat een beetje historisch besef belangrijker is dan dat opleidingsinstituten achter de grillen van de markt aan rennen.  Iemand die een degelijke opleiding achter de rug heeft, zal geen enkele moeite hebben met het leren van een taal als Java of Ruby.  Wat dat aangaat sta ik volledig achter de titel van dit artikel.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: Arjen van Schie</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16783</link>
		<author>Arjen van Schie</author>
		<pubDate>Mon, 04 Feb 2008 11:50:06 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16783</guid>
					<description>Ik denk dat Java prima geschikt is als taal om te 'leren programmeren'. Misschien niet als eerste taal, maar wel als 1 van de talen die je in je carriere verder kunnen helpen bij het leren van het vak. Welke taal het meest geschikt is, ligt aan veel dingen. 
 
Wat is 'leren programmeren' ?
 
Als je bedoelt het leren van probleem oplossen/decompositie dan denk ik dat minder grote/complexe talen goed geschikt zijn: pascal, logo.
Met name het snelle resultaat en de kleine syntax maken deze talen geschikt om de basis kenmerken te leren.
 
Maar daarmee leer je niet de vaardigheden om 'enterprise applications' te bouwen. Goed programmeren leer je ook vooral door van andermans code te lezen, door bestaande goede oplossingen van problemen te analyseren; Dus in de praktijk. En de grote hoeveelheid bestaande (open source) code maakt Java voor dit leer-element prima geschikt.
 
Van de andere kant zou je ook kunnen stellen dat je alleen goed leert programmeren als je de theorie kent, bijv door boeken zoals Code Complete te lezen.    
En juist deze boeken roemen dan weer concepten zoals 'leren die je in de praktijk, van een ander' en 'leren programmeren doe je door verschillende talen te verkennen'. Waarmee eigenlijk al aangegeven wordt dat je programmeren niet 'alleen' leert en niet 'in 1 taal'.
 
Kortom 'leren programmeren' kan je op vele manieren aanpakken en voor de meeste is wel een reden te bedenken waarom deze juist is. Mijn visie is daarom dat je alleen leert programmeren als je deze manieren combineert :)
 
En over de overstap van C naar Assembler. Was de keuze niet ook gestuurd door kwaliteits verbetering ? Immers de extra abstractie maakt het ontwikkelen eenvoudiger en verlaagt daarmee de kans op bugs.</description>
		<content:encoded><![CDATA[<p>Ik denk dat Java prima geschikt is als taal om te &#8216;leren programmeren&#8217;. Misschien niet als eerste taal, maar wel als 1 van de talen die je in je carriere verder kunnen helpen bij het leren van het vak. Welke taal het meest geschikt is, ligt aan veel dingen. </p>
<p>Wat is &#8216;leren programmeren&#8217; ?</p>
<p>Als je bedoelt het leren van probleem oplossen/decompositie dan denk ik dat minder grote/complexe talen goed geschikt zijn: pascal, logo.<br />
Met name het snelle resultaat en de kleine syntax maken deze talen geschikt om de basis kenmerken te leren.</p>
<p>Maar daarmee leer je niet de vaardigheden om &#8216;enterprise applications&#8217; te bouwen. Goed programmeren leer je ook vooral door van andermans code te lezen, door bestaande goede oplossingen van problemen te analyseren; Dus in de praktijk. En de grote hoeveelheid bestaande (open source) code maakt Java voor dit leer-element prima geschikt.</p>
<p>Van de andere kant zou je ook kunnen stellen dat je alleen goed leert programmeren als je de theorie kent, bijv door boeken zoals Code Complete te lezen.<br />
En juist deze boeken roemen dan weer concepten zoals &#8216;leren die je in de praktijk, van een ander&#8217; en &#8216;leren programmeren doe je door verschillende talen te verkennen&#8217;. Waarmee eigenlijk al aangegeven wordt dat je programmeren niet &#8216;alleen&#8217; leert en niet &#8216;in 1 taal&#8217;.</p>
<p>Kortom &#8216;leren programmeren&#8217; kan je op vele manieren aanpakken en voor de meeste is wel een reden te bedenken waarom deze juist is. Mijn visie is daarom dat je alleen leert programmeren als je deze manieren combineert <img src='http://blog.finalist.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>En over de overstap van C naar Assembler. Was de keuze niet ook gestuurd door kwaliteits verbetering ? Immers de extra abstractie maakt het ontwikkelen eenvoudiger en verlaagt daarmee de kans op bugs.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: Anne Krijger</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16799</link>
		<author>Anne Krijger</author>
		<pubDate>Mon, 04 Feb 2008 17:27:40 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-16799</guid>
					<description>'It's not Java stupid'(*).

Zoals Dewar in "Who Killed the Software Engineer?" aangeeft is het het vermelden van Java enkel exemplarisch bedoeld voor het 'dumb-down-en', dommer maken, van de opleiding voor Computer Sienctists. Het moet allemaal leuker en makkelijker zodat er weer meer studenten de opleiding gaan volgen.

Mij dunkt dat je ook enkel met Java een heel eind kunt komen om de noodzakelijke abstracte concepten uit te leggen.
 
In zijn nadere uitleg geeft Dewar een voorbeeld waar een junior programmeur gevraagd wordt de call stack te checken en deze vraagt wat een call stack is. Elke zichtzelf respecterende Java programmeur zal je kunnen vertellen wat een call stack is.

Zoals hierboven al genoemd; het gaat er niet zozeer om dat Java wordt gebruikt, maar hoe het wordt gebruikt.
Wat niet onverlet laat dat de set talen die zij graag (terug ?) in het curriculum zouden zien vrij aardig overeen komt met een lijst zoals ik die zou maken.

Het belangrijkste manco aan het orginele artikel is, zoals de Computer Science Teachers Association ook al aangaf; er is geen bewijs voor de geponeerde stelling. Er wordt enkel van anekdotisch materiaal gebruik gemaakt en anekdotische argumentatie is een van de meest voorkomende vormen van drogredeneringen.

Overigens wordt er in het artikel, maar vooral ook in de discussie daarover, geen onderscheid gemaakt tussen een programmeur en een computer scientist. En daar wringt de schoen ook vrij aardig. Mijns inziens is een goede programmeur een vakman. Een computer scientist daarentegen is meer dan een goede programmeur.

De taal die ons in de toekomst in staat zal stellen om op een nog hoger niveau te werken (wellicht zal het niet eens meer programmeren heten) zal nog steeds onder de motorkap aan geheugen addressering moeten doen. En dat waarschjijnlijk in een multi-core omgeving, wat het er al niet simpeler op maakt. 
Er moeten dan wel computer scientists zijn die die taal kunnen ontwikkelen. 

Als ik Dewar en Schonberg goed volg zijn zij bang dat die in de toekomst veel lastiger te vinden zullen zijn.
Vandaar dat ze met een enigzins tendensieus artikel de noodklok proberen te luiden.

(*) Vrij naar Bill Clinton.</description>
		<content:encoded><![CDATA[<p>&#8216;It&#8217;s not Java stupid&#8217;(*).</p>
<p>Zoals Dewar in &#8220;Who Killed the Software Engineer?&#8221; aangeeft is het het vermelden van Java enkel exemplarisch bedoeld voor het &#8216;dumb-down-en&#8217;, dommer maken, van de opleiding voor Computer Sienctists. Het moet allemaal leuker en makkelijker zodat er weer meer studenten de opleiding gaan volgen.</p>
<p>Mij dunkt dat je ook enkel met Java een heel eind kunt komen om de noodzakelijke abstracte concepten uit te leggen.</p>
<p>In zijn nadere uitleg geeft Dewar een voorbeeld waar een junior programmeur gevraagd wordt de call stack te checken en deze vraagt wat een call stack is. Elke zichtzelf respecterende Java programmeur zal je kunnen vertellen wat een call stack is.</p>
<p>Zoals hierboven al genoemd; het gaat er niet zozeer om dat Java wordt gebruikt, maar hoe het wordt gebruikt.<br />
Wat niet onverlet laat dat de set talen die zij graag (terug ?) in het curriculum zouden zien vrij aardig overeen komt met een lijst zoals ik die zou maken.</p>
<p>Het belangrijkste manco aan het orginele artikel is, zoals de Computer Science Teachers Association ook al aangaf; er is geen bewijs voor de geponeerde stelling. Er wordt enkel van anekdotisch materiaal gebruik gemaakt en anekdotische argumentatie is een van de meest voorkomende vormen van drogredeneringen.</p>
<p>Overigens wordt er in het artikel, maar vooral ook in de discussie daarover, geen onderscheid gemaakt tussen een programmeur en een computer scientist. En daar wringt de schoen ook vrij aardig. Mijns inziens is een goede programmeur een vakman. Een computer scientist daarentegen is meer dan een goede programmeur.</p>
<p>De taal die ons in de toekomst in staat zal stellen om op een nog hoger niveau te werken (wellicht zal het niet eens meer programmeren heten) zal nog steeds onder de motorkap aan geheugen addressering moeten doen. En dat waarschjijnlijk in een multi-core omgeving, wat het er al niet simpeler op maakt.<br />
Er moeten dan wel computer scientists zijn die die taal kunnen ontwikkelen. </p>
<p>Als ik Dewar en Schonberg goed volg zijn zij bang dat die in de toekomst veel lastiger te vinden zullen zijn.<br />
Vandaar dat ze met een enigzins tendensieus artikel de noodklok proberen te luiden.</p>
<p>(*) Vrij naar Bill Clinton.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: David Coppens</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-17540</link>
		<author>David Coppens</author>
		<pubDate>Tue, 26 Feb 2008 09:26:18 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-17540</guid>
					<description>Als buitenstaander, maar ook Java programmeur, meng ik me ook graag in deze discussie.
Zelf ben ik in 2001 blanco begonnen aan een studie Technische Informatica in Eindhoven. Geen enkele programmeerervaring tot op dat moment. 

Gedurende het eerste jaar kregen we allerlei 'programmeer'-vakken. Deze vakken hielden zich bezig met de logica en wiskunde achter programma's. Niet perse computerprogramma's, maar gewoon: gegeven een probleem,  hoe vind ik de oplossing op een logische wiskundige manier. In theorie hoeft daar geen computer bij aan te pas te komen. Algoritmen bedenken en uitwerken kan heel goed op papier. Het daadwerkelijk implementeren van deze algoritmes kan uitstekend met een programmeertaal. 

Daarnaast kregen we ook een vak waarin daadwerkelijk computerprogramma's geschreven dienden te worden. Dit gebeurde in Delphi. 

De vraag is: wat definieer je als programmeren? Het ontwerpen / afleiden / bewijzen van programma's, of het daadwerkelijk implementeren ervan. Voor het eerstgenoemde, het ontwerpen en afleiden van algoritmes, heb je helemaal geen echte programmeertaal nodig, dit kan uitstekend in een formele taal en indien je deze definitie hanteert kun je denk ik inderdaad stellen dat een college Java alleen geen goede programmeurs oplevert. Deze denkwijze over het programmeren heeft voornamelijk veel draagvlak in Eindhoven denk ik (vanwege de invloed van Dijkstra aldaar).

Maar, wanneer je de - denk ik - meer verspreide definitie van programmeren hanteert, het daadwerkelijk implementeren van een programma in een programmeertaal, kan een Java college wel goede programmeurs opleveren. OOP, concurrency etc. kan natuurlijk uitstekend worden gedoceerd aan de hand van Java-voorbeelden. 

Overigens was ik zelf achteraf wel blij dat ik de weinige praktijkvakken die we kregen in Delphi deden. Als programmeer-leek heeft Delphi een aantal aanzienlijke voordelen boven Java op didactisch gebied. Bijvoorbeeld: een code blok is afgebakend met 'begin' en 'end', in plaats van { en }. Dit is intiutief duidelijker dan { en }. Hetzelfde geldt voor het onderscheid tussen procedures en functions. In Java heb je alleen methods; als ze niks teruggeven is het vergelijkbaar met een Delphi-procedure en anders heb je te maken met een functie. Delphi heeft voor deze twee verschillende dingen ook gewoon twee verschillende keywords, wat het toch weer wat duidelijker maakt voor een leek.

Al met al is de discussie over welke taal onderwezen dient te worden om een goede programmeur niet echt van belang: het gaat om de onderliggende concepten. Object georienteerd programmeren, concurrency, logica, complexiteit e.d. Indien je die begrijpt kun je er altijd een taal bovenop plakken om het daadwerkelijk te gaan gebruiken. 

Bekijk je het echter vanuit het carriere perspectief lijkt het me niet meer dan logisch dat Java wordt gekozen als de voorbeeldtaal bij veel opleidingen, aangezien Java een zoveel gebruikte taal is in de boze buitenwereld en het dus een grote pre is om Java op je CV te kunnen zetten na je studie.</description>
		<content:encoded><![CDATA[<p>Als buitenstaander, maar ook Java programmeur, meng ik me ook graag in deze discussie.<br />
Zelf ben ik in 2001 blanco begonnen aan een studie Technische Informatica in Eindhoven. Geen enkele programmeerervaring tot op dat moment. </p>
<p>Gedurende het eerste jaar kregen we allerlei &#8216;programmeer&#8217;-vakken. Deze vakken hielden zich bezig met de logica en wiskunde achter programma&#8217;s. Niet perse computerprogramma&#8217;s, maar gewoon: gegeven een probleem,  hoe vind ik de oplossing op een logische wiskundige manier. In theorie hoeft daar geen computer bij aan te pas te komen. Algoritmen bedenken en uitwerken kan heel goed op papier. Het daadwerkelijk implementeren van deze algoritmes kan uitstekend met een programmeertaal. </p>
<p>Daarnaast kregen we ook een vak waarin daadwerkelijk computerprogramma&#8217;s geschreven dienden te worden. Dit gebeurde in Delphi. </p>
<p>De vraag is: wat definieer je als programmeren? Het ontwerpen / afleiden / bewijzen van programma&#8217;s, of het daadwerkelijk implementeren ervan. Voor het eerstgenoemde, het ontwerpen en afleiden van algoritmes, heb je helemaal geen echte programmeertaal nodig, dit kan uitstekend in een formele taal en indien je deze definitie hanteert kun je denk ik inderdaad stellen dat een college Java alleen geen goede programmeurs oplevert. Deze denkwijze over het programmeren heeft voornamelijk veel draagvlak in Eindhoven denk ik (vanwege de invloed van Dijkstra aldaar).</p>
<p>Maar, wanneer je de - denk ik - meer verspreide definitie van programmeren hanteert, het daadwerkelijk implementeren van een programma in een programmeertaal, kan een Java college wel goede programmeurs opleveren. OOP, concurrency etc. kan natuurlijk uitstekend worden gedoceerd aan de hand van Java-voorbeelden. </p>
<p>Overigens was ik zelf achteraf wel blij dat ik de weinige praktijkvakken die we kregen in Delphi deden. Als programmeer-leek heeft Delphi een aantal aanzienlijke voordelen boven Java op didactisch gebied. Bijvoorbeeld: een code blok is afgebakend met &#8216;begin&#8217; en &#8216;end&#8217;, in plaats van { en }. Dit is intiutief duidelijker dan { en }. Hetzelfde geldt voor het onderscheid tussen procedures en functions. In Java heb je alleen methods; als ze niks teruggeven is het vergelijkbaar met een Delphi-procedure en anders heb je te maken met een functie. Delphi heeft voor deze twee verschillende dingen ook gewoon twee verschillende keywords, wat het toch weer wat duidelijker maakt voor een leek.</p>
<p>Al met al is de discussie over welke taal onderwezen dient te worden om een goede programmeur niet echt van belang: het gaat om de onderliggende concepten. Object georienteerd programmeren, concurrency, logica, complexiteit e.d. Indien je die begrijpt kun je er altijd een taal bovenop plakken om het daadwerkelijk te gaan gebruiken. </p>
<p>Bekijk je het echter vanuit het carriere perspectief lijkt het me niet meer dan logisch dat Java wordt gekozen als de voorbeeldtaal bij veel opleidingen, aangezien Java een zoveel gebruikte taal is in de boze buitenwereld en het dus een grote pre is om Java op je CV te kunnen zetten na je studie.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: Victor Portengen</title>
		<link>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-18106</link>
		<author>Victor Portengen</author>
		<pubDate>Sat, 22 Mar 2008 15:14:05 +0000</pubDate>
		<guid>http://blog.finalist.com/2008/01/31/programmeren-leer-je-niet-met-productietalen/#comment-18106</guid>
					<description>ik ben net 2 weken geleden begonnen om te leren programmeren met tutorials op het internet. en ik moet zeggen dat ik persoonlijk ruby een heel makkelijke taal vindt. ik wil namelijk later programmeur worden. ik wil alleen 1 ding weten en dat is of jullie dat een goede leertaal vinden.</description>
		<content:encoded><![CDATA[<p>ik ben net 2 weken geleden begonnen om te leren programmeren met tutorials op het internet. en ik moet zeggen dat ik persoonlijk ruby een heel makkelijke taal vindt. ik wil namelijk later programmeur worden. ik wil alleen 1 ding weten en dat is of jullie dat een goede leertaal vinden.</p>
]]></content:encoded>
				</item>
</channel>
</rss>
