Is java de grootste vloek in de informatica?

Pagina: 1 2 3 4 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
justmental schreef op woensdag 17 december 2008 @ 15:14:
Vwb. java: dat zie ik liever niet omdat er in mijn ervaring te hoog niveau programmeurs voor nodig zijn om daar redelijk bug-arm mee te werken.
Leg dan eens uit wat volgens jou een betere taal is? PHP? :)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Hydra schreef op woensdag 17 december 2008 @ 14:53:
Dat een bedrijf nog steeds bestaat zegt niks. Als ik niet onder NDA zou staan kon ik je zo een paar grote bedrijven opnoemen die echt op een redelijk bizarre manier met klanten omgaan, en die bestaan ook nog gewoon.
Interessant dat je reageert op de grappig bedoelde opmerking en de rest negeert :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
kenneth schreef op woensdag 17 december 2008 @ 15:24:
Interessant dat je reageert op de grappig bedoelde opmerking en de rest negeert :)
Ben het met de rest gewoon eens :) Die reactie was niet om je tegen te spreken, snap dat het grappig ebdoeld was, maar ik vind het best bizar om te zien waar sommige grote integrators mee weg komen. Vooral bij de overheid.

[ Voor 28% gewijzigd door Hydra op 17-12-2008 15:30 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Hydra schreef op woensdag 17 december 2008 @ 15:21:
Leg dan eens uit wat volgens jou een betere taal is? PHP? :)
Ik zit in de grote bedrijven wereld en kom PHP daar nooit tegen.
Met de gemiddelde procedurele 3GL kunnen de meeste junior programmeurs prima werken.
De functionaliteit van een traditioneel programma kun je daar in een paar pagina's prima achter elkaar lezen en debuggen.

Bij java is het om een of andere reden gelijk een stapel bestanden met verschillende functie en inhoud. Er is altijd wel iets wat over het hoofd gezien wordt of wat niet begrepen is.
Het heeft denk ik wel te maken met de manier waarom er gebruik van gemaakt wordt. Je kunt met java ook wel op de traditionele manier een voor iedereen overzichtelijk programma schrijven, maar in de praktijk zie je allerlei architecturele lagen onnodig toegevoegd worden.
Ook OO inheritance toestanden worden vaak gelijk bij het eerste de beste kleine programma toegepast, terwijl het voordeel hiervan dan vele malen kleiner is dan het nadelige verlies aan doorzichtigheid.
Zet de gemiddelde onderhoudsprogrammeur van een willekeurige dienstverlener erop en je krijgt geheid een veelvoud aan problemen tov. de 'ouderwetse' programma's.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 22:41

bomberboy

BOEM!

justmental schreef op woensdag 17 december 2008 @ 15:14:
Vwb. java: dat zie ik liever niet omdat er in mijn ervaring te hoog niveau programmeurs voor nodig zijn om daar redelijk bug-arm mee te werken.
Begrijp ik nu goed dat jij zegt dat Java eigenlijk te complex/moeilijk/iets anders is?

Dus eigenlijk ongeveer het omgekeerde van wat de topicstarter beweert, nl dat Java eigenlijk te "simpel" is want het brengt het niveau van opleidingen naar beneden (of omgekeerde redenering dat Java gebruikt wordt in opleidingen omdat het niveau van de opleiding daalt en Java makkelijker is).

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

bomberboy schreef op woensdag 17 december 2008 @ 15:54:
Begrijp ik nu goed dat jij zegt dat Java eigenlijk te complex/moeilijk/iets anders is?

Dus eigenlijk ongeveer het omgekeerde van wat de topicstarter beweert, nl dat Java eigenlijk te "simpel" is want het brengt het niveau van opleidingen naar beneden (of omgekeerde redenering dat Java gebruikt wordt in opleidingen omdat het niveau van de opleiding daalt en Java makkelijker is).
Wellicht bedoelen we ongeveer hetzelfde. Je kunt met weinig kennis iets maken wat dan te complex is om met die weinige kennis te overzien.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
justmental schreef op woensdag 17 december 2008 @ 15:41:
Ik zit in de grote bedrijven wereld en kom PHP daar nooit tegen.
Als ej ja had geantwoord had ik je hard uitgelachen ;)
Met de gemiddelde procedurele 3GL kunnen de meeste junior programmeurs prima werken.
De functionaliteit van een traditioneel programma kun je daar in een paar pagina's prima achter elkaar lezen en debuggen.
Tja. Ik weet niet wat voor'n programma's jij in een paar (dus 2-4) pagina's kunt coden, maar dat noem ik geen applicatie maar eerder een 'tooltje'. De tools die ik zelf voor klanten geschreven heb, heb ik eigenlijk altijd in C# (als ze windows based zijn) of Java (als het platformonafhankelijk moet) geschreven, ook als dat een paar pagina's code is. Gewoon omdat het beide hele simpele talen zijn waar je snel in kunt devven.
Bij java is het om een of andere reden gelijk een stapel bestanden met verschillende functie en inhoud. Er is altijd wel iets wat over het hoofd gezien wordt of wat niet begrepen is.
Het heeft denk ik wel te maken met de manier waarom er gebruik van gemaakt wordt. Je kunt met java ook wel op de traditionele manier een voor iedereen overzichtelijk programma schrijven, maar in de praktijk zie je allerlei architecturele lagen onnodig toegevoegd worden.
Ook OO inheritance toestanden worden vaak gelijk bij het eerste de beste kleine programma toegepast, terwijl het voordeel hiervan dan vele malen kleiner is dan het nadelige verlies aan doorzichtigheid.
Zet de gemiddelde onderhoudsprogrammeur van een willekeurige dienstverlener erop en je krijgt geheid een veelvoud aan problemen tov. de 'ouderwetse' programma's.
Tja, sorry als ik de verkeerde indruk krijg, maar ik krijg een beetje het idee dat je zelf weinig aan development werk gedaan hebt. Java een 'stapel bestanden'? Je kunt een simpel (2-4 pagina's aan code) tooltje prima in 1 class vangen. Da's dus gewoon 1 .java file. OO inheritance pas je toe als het nodig is. Je gaat niet koste wat 't kost inheritance gebruiken als er niks te inheriten valt.

Je beschrijft dus een slechte programmeur die een applicatie onnodig complex maakt. Ik geloof niet dat deze in ander eomgevingen (kun je specifieke voorbeelden noemen in plaats van alleen heel generiek "gemiddelde procedurele 3G"?
justmental schreef op woensdag 17 december 2008 @ 16:01:
Wellicht bedoelen we ongeveer hetzelfde. Je kunt met weinig kennis iets maken wat dan te complex is om met die weinige kennis te overzien.
Je kunt in elke taal code maken die je niet snapt. Volgens mij zal die 9 van de 10 keer danook niet doen wat de bedoeling is. Ik zie absoluut niet hoe Java daarin anders is dan welke taal dan ook. Sterker nog; in Java zal de schade vaak beperkter zijn dan bijvoorbeeld C++ alleen al omdat een prutser daarin gegarandeerd fouten gaat maken met z'n memory management.

[ Voor 11% gewijzigd door Hydra op 17-12-2008 16:05 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • catfish
  • Registratie: December 2000
  • Laatst online: 11-08 17:20
naar mijn mening doet de programmeertaal weinig ter zake, eens je het idee van programmeren begrijpt is het allemaal variatie op hetzelfde thema
uiteraard is de ene taal al wat moelijker dan andere, maar dat is met spreektalen ook

het echte probleem zit in het ontwerp van een programma en om een goed programma te ontwerpen moet je in principe de taal compleet niet kennen (het helpt uiteraard wel)
het is ook hier dat vele projecten de mist in gaan
sommigen zeggen dat de klant z'n eisen te hoog of onrealistisch zijn, ik zeg dat dat onzin is
als de klant iets vraag wat niet kan, moet je dat gewoon melden!
meestal kan het eigenlijk wel, maar komen de fouten uit het ontwerp naar boven
als het een zeer complex project is, moet je nu eenmaal investeren in een platform dat zeer goed aanpasbaar is zodat je op een eenvoudige manier met extra modules kan werken, eenvoudig modules kan wijzigen,... als men daar op bespaart (wat dikwijls gebeurd om kosten te besparen), dan zijn de gevolgen ook dikwijls fataal: een slecht onderhoudbaar programma, wat waarschijnlijk vol kunstgrepen zit om toch maar alle aanpassingen te laten werken
en uiteraard zoals altijd: zet de juiste man op de juiste job, zo laat je een ijzervlechter niet de bewapening van een brug ontwerpen en laat je een ingenieur geen putten graven: iedereen is best in wat hij goed kan en ervaring mee heeft

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

@justmental: Wat was die quote ook al weer: mensen zullen altijd code maken die zo complex is dat ze hem nog maar net snappen. Dus als je het doorgronden van code makkelijker maakt, zullen mensen complexere code gaan schrijven. Overigens zonder erbij na te denken dat achteraf snappen moeilijker is, en dat dat dus vaak niet meer lukt :P

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het is misschien een gut feeling, maar ook ik heb het idee dat Java applicaties vaak "overdesigned" zijn, met bergen aan abstractie en (anti)patterns. Natuurlijk ligt dit niet aan Java zelf, maar op de een of andere manier lijkt dit met Java vaker het geval dan met andere platforms / talen. Misschien dat Java dat paradigma op een of andere manier uitstraalt. Je ziet het trouwens ook erg terug in APIs als Swing. Dit is imho ook een van de oorzaken waardoor Java desktop apps voor de gebruiker vaak als traag aangevoeld worden.

Dit gaat overigens voornamelijk over applicaties in de hobbysfeer / OSS wereld, maar de kans is natuurlijk vrij groot dat veel van die mensen ook (ooit gaan) werken als Java developer, wat strookt met wat justmental op de werkvloer ziet.

[ Voor 18% gewijzigd door .oisyn op 17-12-2008 16:22 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Hydra schreef op woensdag 17 december 2008 @ 16:03:
Als ej ja had geantwoord had ik je hard uitgelachen ;)
Dat is niet zo netjes, want dat zou best een heel valide statement kunnen zijn.
Tja. Ik weet niet wat voor'n programma's jij in een paar (dus 2-4) pagina's kunt coden, maar dat noem ik geen applicatie maar eerder een 'tooltje'. De tools die ik zelf voor klanten geschreven heb, heb ik eigenlijk altijd in C# (als ze windows based zijn) of Java (als het platformonafhankelijk moet) geschreven, ook als dat een paar pagina's code is. Gewoon omdat het beide hele simpele talen zijn waar je snel in kunt devven.
Je begrijpt ook wel wat ik bedoel. Je hebt een bug, en die pinpoint je razendsnel tot een functie die je voor iedereen begrijpbaar is.
Ik zal niet ingaan op dat 'tooltje'.
Tja, sorry als ik de verkeerde indruk krijg, maar ik krijg een beetje het idee dat je zelf weinig aan development werk gedaan hebt. Java een 'stapel bestanden'? Je kunt een simpel (2-4 pagina's aan code) tooltje prima in 1 class vangen. Da's dus gewoon 1 .java file. OO inheritance pas je toe als het nodig is. Je gaat niet koste wat 't kost inheritance gebruiken als er niks te inheriten valt.

Je beschrijft dus een slechte programmeur die een applicatie onnodig complex maakt. Ik geloof niet dat deze in ander eomgevingen (kun je specifieke voorbeelden noemen in plaats van alleen heel generiek "gemiddelde procedurele 3G"?
Mijn persoonlijke programmeerervaring is geen onderwerp van discussie. Ik bespreek hier mijn ervaringen in 12 jaar enterprise omgeving waar ik met bouw en onderhoud van vele tientallen systemen van dichtbij heb meegemaakt.
Om een of andere reden zijn de java applicaties altijd de zwarte schapen in de onderhoudsfase. Een simpele applicatie van een tiental schermen wordt opgeleverd en er zitten vele honderden bestanden in de .ear.
Dat is dan niet allemaal code, maar ook configuratiebestanden, xml's, manifests etc. en daar gaat het dan ook vaak in mis.
Je kunt in elke taal code maken die je niet snapt. Volgens mij zal die 9 van de 10 keer danook niet doen wat de bedoeling is. Ik zie absoluut niet hoe Java daarin anders is dan welke taal dan ook. Sterker nog; in Java zal de schade vaak beperkter zijn dan bijvoorbeeld C++ alleen al omdat een prutser daarin gegarandeerd fouten gaat maken met z'n memory management.
Dat lijkt me een open deur, maar ik had het over de praktijk.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Pathogen
  • Registratie: April 2004
  • Laatst online: 25-09 23:48

Pathogen

Shoop Da Whoop

@Hydra: Ok, ik snap nu iets beter wat je bedoelt. Ik vermoed dat mijn nuance voornamelijk in één argument niet goed naar voren kwam, dus dat zal ik nog even proberen te verhelderen.

Met het "niet begrijpen van de oplossing" bedoel ik dat je alleen het trucje hebt aangeleerd. Bijvoorbeeld dat je weet dat je een functie aan moet roepen in je code, maar niet weet wat die functie daadwerkelijk doet.
Je gooit 1 in een functie en krijgt er 2 uit, accepteert dat dit zo is en gebruikt het wanneer je het nodig hebt in plaats van te snappen wat die functie nu met je 1 doet om er 2 van te maken.
Mijn grens die ik stelde mbt dieptekennis of geen dieptekennis ligt dan ook op de grens tussen code kunnen schrijven en code kunnen begrijpen. Dat je als programmeur een stukje functionaliteit moet kunnen bouwen, al dan niet aan de hand van een design, staat voor mij buiten kijf.
Alleen kunnen kopieren en plakken beschouw ik als niet competent.

Ik weet hoe ik door middel van code, in mijn geval af en toe in de meest gruwelijk verouderde en beperkte talen en ontwikkelomgevingen, kan bereiken wat ik wil bereiken. Ik weet echter niet altijd wat de ingebouwde functies in de omgeving waar ik mee bezig ben precies doen. Dáár ligt voor mij de grens tussen iets kunnen bouwen en snappen waarom iets werkt en daarom reken ik mijzelf niet tot de harde kern.

Natuurlijk, ik heb een MBO opleiding zoals ik zei, maar ik werk volgens mij op het niveau van een redelijke HBO ontwikkelaar (waarbij redelijk < goed and redelijk > slecht ;)). Soms moet ik ook iets tot in de diepte uitzoeken en dat vind ik dan ook leuk om te doen, maar als ik iets kan bouwen door een paar blokken op elkaar te zetten zal ik dat ook op die manier doen.

Wat misschien het verschil is tussen mij en andere programmeurs (bij andere bedrijven) is dat ik geen enkele keuze heb in betrekking tot de omgeving waar ik iets in wil bouwen. Ik heb een omgeving en daar moet ik het in doen. Vandaar dat ik ook niet dieper in ga op het punt of Java een vloek is, ik heb geen keus.

Ik zou zelfs eerder stellen dat PHP een vloek is, omdat daar in mijn ogen nog meer mensen denken dat ze kunnen programmeren zodra ze een PHP script hebben gekopieerd van een website.
Maar ook dit kan komen omdat ik andere ervaringen heb en andere mensen tegenkom. Van de 3 "self-proclaimed" Java programmeurs die ik hier in anderhalf jaar heb gezien is er "slechts" eentje compleet incompetent gebleken en ontslagen.
Daarentegen heb ik een fors aantal klasgenoten gezien die echt niks meer kunnen dan kopieren en plakken en toch hun papiertje hebben gehaald, en dat ging meestal om PHP.

Of je wel of niet goed een design kan opstellen en met een klant kan praten laat ik hier nog steeds buiten beschouwing. Dit is weliswaar een kwaliteit die vaak gevraagd wordt en handig is, maar valt even buiten het punt dat ik wilde maken.

Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

justmental schreef op woensdag 17 december 2008 @ 16:01:
Wellicht bedoelen we ongeveer hetzelfde. Je kunt met weinig kennis iets maken wat dan te complex is om met die weinige kennis te overzien.
Met veel kennis kan je ook iets maken dat te complex is om te worden overzien door iemand met weinig kennis. De vraag is alleen of het dan aan de schrijvers van het programma ligt of aan degenen die het onderhoud doen.

Is het niet zo dat juist grotere applicaties in Java worden geschreven? Het idee van OO vs. procedureel is juist dat vooral grotere applicaties er aan overzichtelijkheid mee winnen. Maar tegelijk zijn grotere applicaties meestal complexer en dus moeilijker te overzien.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • djengizz
  • Registratie: Februari 2004
  • Niet online
justmental schreef op woensdag 17 december 2008 @ 16:23:
Om een of andere reden zijn de java applicaties altijd de zwarte schapen in de onderhoudsfase. Een simpele applicatie van een tiental schermen wordt opgeleverd en er zitten vele honderden bestanden in de .ear.
Dat is dan niet allemaal code, maar ook configuratiebestanden, xml's, manifests etc. en daar gaat het dan ook vaak in mis.
Eens maar ligt dat aan Java?

Sowieso zegt het aantal bestanden natuurlijk niet zo veel. Als ik iets simpels in elkaar draai met bv. Spring / Struts / Hibernate / etc. dan heb ik al gauw een hele zoot aan bestanden erbij die geleverd worden door die frameworks. Ook het aantal schermen zegt niet alles want hier kan aardig complexe business logica en een complex datamodel achter zitten.

Ook ben ik het niet met je eens dat het vaak fout gaat bij de configuratie bestanden. Als daar een fout in zit overleeft het vaak al niet de meest simpele smoke test. Wat ik wel vaak zie is een slechte toepassing van Java en een laag nivo van programmeurs. Java (en zeker JEE) wordt te vaak onderschat wat leidt tot ad-hoc oplossingen en slechte code.

Daarnaast wordt Java vaak toegepast in complexe systemen met veel koppelingen en een request / reply structuur die gevoelig is voor queueing. Het krijgt in mijn ogen dan ook vaak 'de schuld' van problemen die niets met Java zelf te maken hebben (zoals infra problemen, slecht ingerichte appservers, OS problemen, slecht ingerichte databases, slechte SQL, MQ of mainframe problemen). De klant ziet dat al gauw als 'de Java app doet het weer eens niet', ook omdat de problemen zich vaak als eerste manifesteren in de applicatie server.
Ook de eerder genoemde slechte code (incl slecht geheugen management wat erg vaak voorkomt) reken ik hier niet tot een Java probleem.

Wel ga ik met je mee dat veel Java applicaties van een bedroevend nivo zijn, zeker als je ziet hoe kritiek die systemen soms zijn. Maar ook hier is dit vaak maar deels te wijten aan slechte programmeurs of de taal. Zaken zoals, slechte quality control, een te sterk leidende business, gebrek aan goed ingerichte processen en project methodieken en sterk veranderende requirements (zonder ooit budget voor refactoring) spelen ook een grote rol.

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

.oisyn schreef op woensdag 17 december 2008 @ 16:16:
Het is misschien een gut feeling, maar ook ik heb het idee dat Java applicaties vaak "overdesigned" zijn, met bergen aan abstractie en (anti)patterns. Natuurlijk ligt dit niet aan Java zelf, maar op de een of andere manier lijkt dit met Java vaker het geval dan met andere platforms / talen. Misschien dat Java dat paradigma op een of andere manier uitstraalt. Je ziet het trouwens ook erg terug in APIs als Swing. Dit is imho ook een van de oorzaken waardoor Java desktop apps voor de gebruiker vaak als traag aangevoeld worden.
Dat is ook mijn mening. Voor de meest simpele webservice calls worden er complete Struts-gedrochten uit de kast getoverd (mooiste voorbeeld: 10 verschillende 1 regelige strings versturen 8)7 ); voor extended functionaliteit die bestaat uit twee typen met elk een method van 2 regels worden er interfaces en abstract classes gebouwd. Maar goed, als je weet hoe de verschillende framework generators in elkaar zitten, is het niet zo'n probleem, behalve dat er een enorme overhead aan code is.

Dit ligt alleen niet aan Java, want in .Net zie ik dat ook wel eens gebeuren.

Verder is communicatie het allerbelangrijkste (zoals boven gemeld) en daarnaast ben ik van mening dat een developer of software engineer goed moet weten wat er allemaal mogelijk is binnen de scope van een project (met alle politiek die daar bij hoort) en binnen de gebruikte platformen. Dat vereist gewoon een hoog abstract denkniveau en heeft niks met welke taal dan ook te maken. En ik denk dat de training in dat denkniveau misschien nogal eens tekort schiet als je steeds maar weer snel applicaties in elkaar moet beitelen.

Wat dat betreft ben ik het eens met Efbe, die ooit eens zei dacht ik dat gedegen algoritmenkennis toch het belangrijkste is. :)

@ Kenneth: jij patser met je bookmarks ;)

Sundown Circus


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

RedRose schreef op woensdag 17 december 2008 @ 18:13:
Wat dat betreft ben ik het eens met Efbe, die ooit eens zei dacht ik dat gedegen algoritmenkennis toch het belangrijkste is. :)
Jij patser jij, met je goeie geheugen :P

EfBe in "[alg] Eerst basics of meteen best practi..."

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

era.zer schreef op woensdag 17 december 2008 @ 10:35:
[...]
En wat zegt dat over de opleiding? Dat ik mijn boeken niet moet opendoen behalve voor het examen zegt evenveel over de persoon. En zoals ik reeds aanhaalde, haalt 25% slechts z'n diploma zonder een jaar te dubbelen. Wat zijn die andere 75% dan in jouw ogen, randdebielen?
Dat betekent dat de opleiding niet moeilijk genoeg is. Als je zonder voor de examens een boek open te slaan kan slagen wil zeggen dat de opleiding te gemakkelijk is. Bovendien wil het zeggen dat de best-scorende X% misschien ook gerust een zwaardere opleiding hadden kunnen kiezen.
Persoonlijke ervaring, hoeveel Ti'ers heb je dan al voor je laten werken? Da's een handjevol op gans de groep. Dat is niet eerlijk vergelijken.

En opnieuw, TI is de enige deftige IT opleiding in bachelor formaat (oke de laatse jaren weet ik nu niet echt)? Dat een industrieel ingenieur informatica of en burgerlijk ingenieur informatica een hoger niveau moet hebben is maar logisch zeker? Wat snappen jullie mensen nu niet? Niet iedereen wil/kan 4-5-6-7 jaar studeren. Veel andere informatici opleidingen zullen er wel niet zijn? En er studeren daar een handjevol mensen aan af.

Zo heb je ook voetballers die in de Belgische eerste competitie spelen. Als de Champion's League clubs daar tegen moeten spelen denken ze ook 'wat een niveau'. En die van de eerste competitie denken dat ook van die uit de 2de klasse. Enzovoort.

We kunnen niet allemaal sterspelers zijn? Ik denk dat jullie gewoon veel te veel verwachten en niet realistisch zijn.
Precies of men dat in andere beroepen niet heeft? Alleen zitten al die ITers op internet en de top-spelers klagen hoe slecht de rest is. Ja hallo.
Precies wat ik ook zeg. Je hebt altijd wizzkids en prutsers. Maar als de lat niet hoog genoeg ligt kun je ze niet onderscheiden. Dat is wat Joel net vertelt.
Ik ken ook mensen die TI gestudeerd hebben en die ik hoger inschat dan iemand die een Master-opleiding heeft gekregen.
Maar TI'ers weten wat pointers zijn, weten hoe een OS schedulet, kennen het OSI model, weten hoe een Oracle DB werkt en weet ik veel en kunnen UML gebruiken om tot een nette OO applicatie te komen.
Daar zeg ik helemaal niets van. Maar als je het dan toch naar boven brengt. Ik heb de gelegenheid gehad om in enkele cursussen te bladeren van de TI opleiding en mijn mening was dat er een breed scala aan dingen verteld werd, maar dat de moeilijkere dingen weinig uitgelegd stonden. De cursussen hielden zichzelf behoorlijk aan de oppervlakte. Persoonlijk had ik voor een puur informatica gerichte opleiding meer diepgang verwacht.
Voorts vind ik de mentaliteit onder ITers onderling doorgaans zééér onprettig. Het is meestal ik-ben-beter-dan-jou (ook ik doe daar soms aan mee..) of haantjes-gedrag. Laten we eventjes niet vergeten dat mensen die een bachelor-studie doen sowieso al "goed" zijn, ik denk dat 40-60% van de bevolking niet eens een hoger diploma heeft?

Vraag en aanbod:
- Als ik op restaurant ga, dan wil ik het lekkerste eten ter wereld, maar aangezien die gast van El Buel (Spanje) te duur is, verlaag ik mijn eisen.
- Als ik mijn been breek, wil ik de beste top chirurg ter wereld. Alleen gaat dat niet, want die heeft genoeg werk en er is er maar eentje. Dus zal die van mijn ziekenhuis het wel doen.

Dit gaat ook op voor TI'ers? Natuurlijk wil elk bedrijf -als ze het budget hebben- een top informaticus. Maar die lopen niet dik bezaaid? Duuuh ? Maar ga de rest dan niet afbreken tot prutsers.
Je noemt de chef van je lokale restaurantje -waar het ook lekker eten is- toch ook geen prutser?
Een neuro-chirurg noemt je huisarts toch ook geen prutsdoktertje?

In de IT-wereld natuurlijk wel. Weet je wat ik denk dat het probleem is in de IT sector?

TESTOSTERON
Dat jij je zo op je pik getrapt voelt door mijn opmerking zegt meer over jou dan over mij.
Ik wou gewoon even inhaken op de boude stelling dat de TI'ers in België zeer hoog aangeschreven staan.
Mijn ervaringen en waarnemingen elders zeggen dat het goede "code-kloppers" zijn (in Joel's termen JavaSchools programmeurs) maar dat wanneer de moeilijkheidsgraad enkele stapjes hoger ligt ze toch moeten afhaken.

Maar zoals we het beiden eens zijn: in elke soort heb je wizzkids en prutsers.
Thrackan schreef op woensdag 17 december 2008 @ 13:04:
Device drivers heb ik zelf nog nooit geschreven, het is een voorbeeld dat ik aanhaalde omdat ik er van uit ging dat het schrijven van een goeie device driver veel optimalisatiewerk bevat en dus een in-depth kennis vereist.
Device drivers zijn niet moeilijker als eender welke andere software. Je kan het goed doen en je kan er niets van bakken. Vandaag heb ik weerom een lijst van 5 bugs moeten filen bij onze OS-vendor in een poging om een van onze eigen devices aan de praat te krijgen. Het waren stuk voor stuk bugs die met een code-read en eenvoudige QA vermeden konden worden. Maar blijkbaar vindt TI (dit keer de afkorting voor een bedrijf) het leuker om hun drivers in India te laten schrijven en as-is uit te leveren aan onze OS-vendor.
Bepaalde andere drivers (van andere fabrikanten) staan dan weer pico-bello in orde.

Voor het gemiddelde device is een driver schrijven zeker niet moeilijker dan een n-Tier web-app. Mits je wat in de kernel wegwijs bent, net zoals je voor die web-app ook je technologie moet kennen, is het ook 'maar' code.

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

..

[ Voor 106% gewijzigd door ? ? op 25-01-2013 09:51 ]


Acties:
  • 0 Henk 'm!

  • Salvatron
  • Registratie: April 2003
  • Niet online

Salvatron

Dispereert niet

Ik neem aan dat men in opleidingen wel weet waar men mee bezig is en dat er goed over is nagedacht voordat men JAVA als programmeertaal koos om te onderwijzen.

Voor zover ik weet kiest men vaak voor JAVA omdat men dan geen gedoe heeft met pointers en dergelijke, die worden beschouwd als zaken die van het eigenlijke doel afleiden. Bijv. pointers zouden veel moeilijkheden veroorzaken voor studenten en leraren en studenten zijn dan een deel van hun tijd kwijt aan het gerommel met pointers en dergelijke, terwijl die tijd beter aan relevantere zaken zou moeten worden besteed. Met JAVA schijn je die afleiding een stuk minder te hebben dan met C++.

Lucht en leegte, zegt Prediker, alles is leegte.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

offtopic:
Eerste Google ads reclame: Cursus C# :)


Het wordt ook gedeeltelijk bepaald door de aanwezige kennis. Bij de TH Rijswijk ging het verhaal dat de docent die Object Georienteerd Programmeren gaf geen Java kende, en ons dus C++ leerde. Java hebben we later gekregen. Eerste taal die we leerden was C, dus voor de pointers hoefden we geen C++ te leren.

[ Voor 4% gewijzigd door MBV op 17-12-2008 23:24 ]


  • MisterBlue
  • Registratie: Mei 2002
  • Laatst online: 26-09 15:59
Jack Walsh schreef op woensdag 17 december 2008 @ 23:03:
Ik neem aan dat men in opleidingen wel weet waar men mee bezig is en dat er goed over is nagedacht voordat men JAVA als programmeertaal koos om te onderwijzen.
...
Toen ze op de TU Delft overstapten van modula-2, een echte leer taal, naar java om te leren programmeren, was een van de argumenten dat het beter aansloot op het bedrijfsleven. Werd ons verteld door de docente toen.

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

Erg handig op een universiteit... Ik mag hopen dat je als universitair student jezelf binnen een maand een nieuwe taal eigen kan maken :X En hebben ze op de TUD niet een groot bachelor-project waarin je zelf een programma moet schrijven voor een interne klant?

  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

Zeer verwonderlijk topic dit gezien deze maar boven blijft komen.
Ik heb kort terug nog als reactie op de frontpage een aantal nadelen van Java neergezet, en bijna iedereen geeft een instant -1, terwijl die toch goed onderbouwd was. Het is duidelijk dat hier op Tweakers, en daarmee ook GoT een aantal grote fanboy's van Java rondhangen die echt geen draad commentaar kunnen verwerken. Ik sta ook nog steeds achter de door mij genoemde punten daar, en sowieso zou iedere programmeur objectief naar een taal moeten zien. Elke taal heeft voor en nadelen, de ene ongetwijfeld meer dan de andere.

'You like a gay cowboy and you look like a gay terrorist.' - James May


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:11

Creepy

Tactical Espionage Splatterer

Phyxion: De FP is niet hetzelfde als het forum. Kan je je punten nog eens onderbouwd herhalen hier? -1 modden kan hier niet :P En als je dan toch bezig bent geef dan gelijk een alternatief die de nadelen niet heeft (en dan liefst ook nog de nadelen die het alternatief wel heeft om eerlijk te zijn).

[ Voor 40% gewijzigd door Creepy op 18-12-2008 10:14 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

Jammer dat je het woordje "fanboy" in de mond neemt. Nu neem ik je reactie niet meer serieus.

Overigens, de enige post van jou over Java op de frontpage die ik zo snel terug kan vinden is deze:
Java is toch erg traag hoor in vergelijking met C# of C/C++ om maar eens wat talen te noemen. Java mag dan sinds versie 6 een aardig stuk sneller geworden zijn, toch ligt de snelheid nog steeds vele malen lager dan de meeste andere talen. Behalve platform onafhankelijkheid zie ik ook niet echt het nut in van Java. Daarnaast is C# ook aardig multiplatform door Mono geworden. C++ draait sowieso overal wel op.
Het is nou niet echt bepaald het toonbeeld van een onderbouwde post. Overigens heb je maar 2x een -1 gehad, dus of je overdrijft of dit is niet de post waar je het over hebt.

[ Voor 80% gewijzigd door .oisyn op 18-12-2008 11:27 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 25-09 16:48

MicroWhale

The problem is choice

leuk zo'n rel. :)

wat ik mis is het volgende:
Wordt er binnen de bedrijven waar die code gemaakt en gebruikt wordt, gecontroleerd op de kwaliteit, onderhoudbaarheid en beheerbaarheid van de code?

Het antwoord zal wel "nee" zijn.

De acceptatietest van de architectuurafdeling en de beheerafdeling zou onjuist geformuleerde code of overdadig en foutief gebruik van patterns en principes af moeten wijzen. Daarvoor hebben ze natuurlijk wel eerst een document met acceptatiecriteria nodig, die voortkomen uit de (architectuur-)richtlijnen die gelden voor de code van dat bedrijf... maar het gaat erom dat de coders blijkbaar veel te weinig gewezen worden op de kwaliteit van hun werk.

Dus als je iets wilt verbeteren, begin dan daar. Zo ontstaat in ieder geval het besef bij coders dat hun code niet alleen hoeft te compileren, maar dat er ook nog andere eisen aan gesteld worden. En dat foutief gebruik niet door de molen komt. Onderwijsinstellingen volgen vanzelf als het nut van goverance op kwaliteit, onderhoudbaarheid en beheerbaarheid bewezen is.

(even voor de duidelijkheid: ik roep niet dat alle coders fout coderen.)

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

@Phyxion:
Je argument: java is traag, ondanks dat het sneller is geworden in Java6 ligt de snelheid vele malen lager dan de meeste andere talen. Waar is je onderbouwing dan?
Tegenargument: java is veel sneller dan zo ongeveer elke taal behalve C/C++, kijk maar naar de Debian shootout.

En platformonafhankelijkheid is juist hét argument om java te gebruiken. C++ is zo afhankelijk als de pest, omdat je veel low-level dingen kan doen.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
MrWilliams schreef op donderdag 18 december 2008 @ 12:01:
wat ik mis is het volgende:
Wordt er binnen de bedrijven waar die code gemaakt en gebruikt wordt, gecontroleerd op de kwaliteit, onderhoudbaarheid en beheerbaarheid van de code?
Op papier wel, in de praktijk zie je dat daar vanwege tijdsdruk vaak helemaal niks van komt. We zijn er bij ons eigen bedrijf ook ingestonken. Een developer hier heeft 2 tools geschreven. Toen 'ie weg ging bleek dat die zo slecht in elkaar zaten dat de opnieuw ontwikkeld moesten worden.
MBV schreef op donderdag 18 december 2008 @ 12:12:
En platformonafhankelijkheid is juist hét argument om java te gebruiken. C++ is zo afhankelijk als de pest, omdat je veel low-level dingen kan doen.
Daarnaast zitten de kosten van software niet in de snelheid maar in de ontwikkeltijd.

[ Voor 23% gewijzigd door Hydra op 18-12-2008 12:25 ]

https://niels.nu


  • latka
  • Registratie: Januari 2002
  • Laatst online: 26-09 17:18
Hydra schreef op donderdag 18 december 2008 @ 12:24:
[...]
Daarnaast zitten de kosten van software niet in de snelheid maar in de ontwikkeltijd.
Nope, de kosten zitten in het onderhoud. Schrijf het in 3 maanden en onderhoud het 5 jaar.

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

MrWilliams schreef op donderdag 18 december 2008 @ 12:01:
leuk zo'n rel. :)

wat ik mis is het volgende:
Wordt er binnen de bedrijven waar die code gemaakt en gebruikt wordt, gecontroleerd op de kwaliteit, onderhoudbaarheid en beheerbaarheid van de code?

Het antwoord zal wel "nee" zijn.

De acceptatietest van de architectuurafdeling en de beheerafdeling zou onjuist geformuleerde code of overdadig en foutief gebruik van patterns en principes af moeten wijzen. Daarvoor hebben ze natuurlijk wel eerst een document met acceptatiecriteria nodig, die voortkomen uit de (architectuur-)richtlijnen die gelden voor de code van dat bedrijf... maar het gaat erom dat de coders blijkbaar veel te weinig gewezen worden op de kwaliteit van hun werk.

Dus als je iets wilt verbeteren, begin dan daar. Zo ontstaat in ieder geval het besef bij coders dat hun code niet alleen hoeft te compileren, maar dat er ook nog andere eisen aan gesteld worden. En dat foutief gebruik niet door de molen komt. Onderwijsinstellingen volgen vanzelf als het nut van goverance op kwaliteit, onderhoudbaarheid en beheerbaarheid bewezen is.

(even voor de duidelijkheid: ik roep niet dat alle coders fout coderen.)
Het antwoord is inderdaad vaak 'nee'. Vaak is er ook niet eens een architectuurafdeling hoor. ;) Voor de meeste bedrijven is code geen core-business en vertrouwen ze erop dat zij mensen inhuren met kennis. Dat er vervolgens allerlei onduidelijke en tegenstrijdige eisen zijn ontwikkeld draagt niet bij aan heldere patterns en principes en zorgt er vaak voor dat er weinig tijd (lees budget en onrealistische deadlines) is om of van te voren goed na te denken of achteraf dingen goed te zetten.

Sundown Circus


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

..

[ Voor 98% gewijzigd door ? ? op 25-01-2013 09:50 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

Swing != Java.
Zie ook .oisyn in "Is java de grootste vloek in de informat..."

Ik denk dat als je de Swing API naar C++ vertaalt het vrijwel net zo traag zou zijn.

[ Voor 102% gewijzigd door .oisyn op 18-12-2008 13:10 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

..

[ Voor 143% gewijzigd door ? ? op 25-01-2013 09:50 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

era.zer schreef op donderdag 18 december 2008 @ 12:48:
[...]

Toch qua GUI-gevoel, laat dat nu het belangrijkste/meest-irritante zijn voor een gebruiker.
Toen ik nog in java werkte (4 jaar geleden) duurde het al vijf-tiental seconden om zo'n FileChooser dialog te openen op een P4 2Ghz... Hoe leuk toch.
Het grootste deel van de gebruikers die met een java applicatie werken merken daar helemaal niks. De meeste java implementaties zijn namelijk helemaal geen swing (of awt) gui's, maar enterprise applicaties waar misschien een webfrontendje op zit.

Verder ben ik nog steeds erg benieuwd naar die onderbouwde mening van Phyxion die zo onterecht naar beneden gemod was. Het kan onmogelijk de aangehaalde quote van .oisyn zijn want ten eerste zou .NET veel sneller dan java zijn, want vreemd is aangezien .NET en Java op dezelfde manier werken en ten tweede wordt gesuggereerd dat MONO iets is dat je in een bedrijfsmatige omgeving in zou willen zetten.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

..

[ Voor 107% gewijzigd door ? ? op 25-01-2013 09:50 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

era.zer schreef op donderdag 18 december 2008 @ 13:14:
Een commandline programma vinden gebruikers meestal nog minder plezant dan een trage Swing :)
C# heeft toch ook geen trage Forms.. Dat ze dat bij Sun/Java dat eens fixen.

Meneer uw F1-wagen is niet traag, het gaspedaal werkt alleen traag
Met command line tools en een clientside windows applicaties dek je maar een heel minimaal deel af van het totale applicatie landschap. Sterker nog, ik snap heel goed waarom je helemaal geen energie meer stopt in Swing omdat dergelijke clientside applicaties redelijk end of life raken...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

era.zer schreef op donderdag 18 december 2008 @ 13:23:
[...]

Ik kan niet algemeen spreken, maar als ik wat hoor over een java app is het dat. Bv: het door de EU ontwikkelde chemicalien indexatie programma Euclid is eentje.
Ik heb nog nooit iemand horen zagen dat een C# app zo traag werkt..
Toch hebben ze bij het Cern een wel overwogen en goed onderbouwde beslissing genomen om het beheer van de data die uit de nieuwe deeltjesversneller komt met Java te doen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

era.zer schreef op donderdag 18 december 2008 @ 13:23:
[...]

Ik kan niet algemeen spreken, maar als ik wat hoor over een java app is het dat. Bv: het door de EU ontwikkelde chemicalien indexatie programma Euclid is eentje.
Ik heb nog nooit iemand horen zagen dat een C# app zo traag werkt..
Het grootste gedeelte van Java apps zit aan de andere kant van de lijn met je webbrowser te praten ... en ik neem aan dat eBay niet voor Java heeft gekozen omdat het zo lekker traag is.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
latka schreef op donderdag 18 december 2008 @ 12:31:
Nope, de kosten zitten in het onderhoud. Schrijf het in 3 maanden en onderhoud het 5 jaar.
Ja, maar daar zit dan vaak geen team van tig man fulltime op. Maar je hebt wel een punt. Ging me er vooral om dat ontwikkelsnelheid en inderdaad maintainability veel zwaarder wegen.
era.zer schreef op donderdag 18 december 2008 @ 12:48:
Toch qua GUI-gevoel, laat dat nu het belangrijkste/meest-irritante zijn voor een gebruiker.
Toen ik nog in java werkte (4 jaar geleden) duurde het al vijf-tiental seconden om zo'n FileChooser dialog te openen op een P4 2Ghz... Hoe leuk toch.
Da's echt gewoon grote onzin. Swing was inderdaad in verhouding traag (en is tegenwoordig deprecated afaik), maar dan heb je het nog steeds over milliseconds.

https://niels.nu


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
era.zer schreef op donderdag 18 december 2008 @ 13:14:
Een commandline programma vinden gebruikers meestal nog minder plezant dan een trage Swing :)
C# heeft toch ook geen trage Forms.. Dat ze dat bij Sun/Java dat eens fixen.

Meneer uw F1-wagen is niet traag, het gaspedaal werkt alleen traag
Ja maar niemand verplicht je om een Java applicatie in Swing te maken, er zijn ook alternatieven zoals http://www.eclipse.org/swt/

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
rwb schreef op donderdag 18 december 2008 @ 13:38:
Ja maar niemand verplicht je om een Java applicatie in Swing te maken, er zijn ook alternatieven zoals http://www.eclipse.org/swt/
Yup, gebruiken wij ook, aanrader.Kun je hele mooie en snelle GUIs in maken.

https://niels.nu


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

era.zer schreef op donderdag 18 december 2008 @ 13:14:
Een commandline programma vinden gebruikers meestal nog minder plezant dan een trage Swing :)
Er zijn GUI alternatieven, je bent niet gebonden aan Swing (en is nu blijkbaar deprecated)
C# heeft toch ook geen trage Forms.. Dat ze dat bij Sun/Java dat eens fixen.
WinForms is dan ook een stuk minder abstract opgezet.
Meneer uw F1-wagen is niet traag, het gaspedaal werkt alleen traag
Het punt is dat jij zegt dat java traag is, terwijl je het eigenlijk hebt over het design van een specifieke API dat traag is, onafhankelijk van hoe snel Java code uitgevoerd wordt. Je bent dus appels met peren aan het vergelijken.

Meneer uw Intel Core i7 is niet traag, het door u gebruikte OS, Windows 95, maakt er alleen niet optimaal gebruik van

[ Voor 10% gewijzigd door .oisyn op 18-12-2008 13:41 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 19-09 10:19
Ik krijg zelf op de RuG het eerste jaar alleen maar java, en ik ben daar niet al te blij mee, veel dingen zijn gewoon wat simplistisch en de conventies rond java zijn nooit echt mooi en strak uitgevoerd.

Maar ik denk niet dat mensen slechter gaan programmeren van java, natuurlijk is de taal wat vergeeflijker dan C(++) maar je leert wel degelijk van. En of een programma nu verkeerd loopt/memory leaked of dat er keurig een exception wordt gegooid, dat is toch gewoon beide fout?

(Verder krijgen we hier in het eerste jaar naast java ook 68Kasm dus tsja ;) )

~ Mijn prog blog!


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

.oisyn schreef op donderdag 18 december 2008 @ 13:40:
[...]

Er zijn GUI alternatieven, je bent niet gebonden aan Swing (en is nu blijkbaar deprecated)
Netbeans 6.5 tekent toch nog steeds met Swing... Wat zijn de alternatieven?
[...]

WinForms is dan ook een stuk minder abstract opgezet.
Ik vind Swing TE abstract, je moet direct heel diep gaan graven wil je bvb iets aanpassen in een JTable, terwijl je bij Windows.Forms veel meer niveau's van abstractie.
[...]

Het punt is dat jij zegt dat java traag is, terwijl je het eigenlijk hebt over het design van een specifieke API dat traag is, onafhankelijk van hoe snel Java code uitgevoerd wordt. Je bent dus appels met peren aan het vergelijken.
Uiteindelijk is het dat wat we zien, een volledige applicatie. Een goedgeschreven Java applicatie met Swing, en dezelfde applicatie in C# met Windows.Forms, dan is de laatstgenoemde toch sneller, en dat is waar de mensen op afgaan.

Going for adventure, lots of sun and a convertible! | GMT-8


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

..

[ Voor 105% gewijzigd door ? ? op 25-01-2013 09:50 ]


  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

Programmeren is het toepassen van al je kennis die je hebt op het gebied van computersystemen, algoritmes, programmeertechnieken, programmeertalen en wiskunde (misschien nog andere gebieden als psychologie voor user interfaces?). Je kunt mijns inziens niet leren programmeren door een programmeertaal als Java (of enig andere taal) te leren wanneer kennis van een van bovenstaande gebieden niet aanwezig is.

Het lijkt er inderdaad op dat door Java te pakken als leermethode, dat een stuk kennis over computersystemen achterwege gelaten kan worden, dat is m.i. een misvatting. Wanneer je een taal neemt die iets minder high level is, voorkom je dit gedeeltelijk, waardoor het beter lijkt om les te geven in die talen, alhoewel dat slechts een deel van de oplossing is.

Dan heb je ook nog het verhaal van falende projecten. Dat kan mijns inziens niet de veroorzaakt worden door slechte programmeurs. Dit probleem ligt hoger. Keuzes mbt ontwikkelmethoden en architectuur lijken hier ten grondslag aan te liggen. Tevens is de quality assurance vaak niet afdoende.

Men neemt software ontwikkeling volgens mij nog niet serieus genoeg en er zijn teveel mensen die denken dat ze zonder gedegen kennis e.e.a. wel even kunnen regelen. Dit komt natuurlijk door de grote vraag naar IT personeel. Zoals zo vaak zitten er wel eens praatjesmakers op posities die keuzes moeten maken en die worden dan niet juist genomen. Je kunt wel al je IT outsourcen, maar als er dan niet iemand in het bedrijf aanwezig is die genoeg kennis van IT heeft om de performance van de outsource activiteiten nauwlettend in de gaten te houden, kun je het beter zelf blijven doen en kennis in huis halen.

De oplossing? De tijd zal er voor moeten zorgen dat deze tak professioneler wordt. Kaf wordt snel van het koren gescheiden. Een belangrijke stap zou kunnen zijn: Als een bedrijf grote investeringen in IT doet, dan moet er een CIO zijn met verstand van zaken, die de investeringen nauwlettend volgt en tevens de performance goed in de gaten houdt. Zo krijgt de board grip op de IT investeringen en worden er minder fiasco's geleden. Deze CIO dient uiteraard wel gesteund te worden door een solide groep staff die kennis van zaken heeft.

Maar Java is dus niet de oorzaak van alle IT gerelateerde problemen, Java kan een symptoom zijn van het verdoezelen van gebrek aan kennis. Zoals veel veroorzaakt wordt door gebrek aan kennis en inzicht in de IT.

JayGTeam (213177)


  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
era.zer schreef op donderdag 18 december 2008 @ 13:51:
Geen idee wat het nu allemaal is. Ik heb mijn eindwerk met het leuke Java Swing gemaakt en een gewone filechooser dialog tonen (standaard stuff) duurde de eerste keer 5-15 seconden op álle pc's.
Dan deed je toch echt wat fout. Ik ben nu 10 jaar geleden begonnen met Java, en in die tijd waren zelfs de crappy Sparc bakken bij ons in staat een Swing (nee, geen AWT, 1.2 was net uit) File dialog in no time op het scherm te tonen. Lijkt erop dat je een windows probleem had met netwerkshares ofzo.
era.zer schreef op donderdag 18 december 2008 @ 13:51:
Dat er zoveel mensen denken dat 'java' traag is, zal wel niet zomaar uit de lucht gegrepen zijn...
@oisyn ik heb nergens gezegd dat java traag is, enkel dat de gui traag is (dus swing of whatever)
Er is geen 'de' GUI. Tegenwoordig is SWT erg gangbaar. Vroegah, als je Swing te traag vondt (en Swing is inderdaad relatief traag omdat het geen gebruik maakt van het onderliggende systeem) ging je gewoon voor AWT. AWT is net zo snel als een .Net Windows forms app. Werkt ook op exact hetzelfde princiepe.

En dat je zegt dat Java traag is bevestig je in de regel boven waar je zegt dat je het niet zegt. Best bizar :)

[ Voor 4% gewijzigd door Hydra op 18-12-2008 14:04 ]

https://niels.nu


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

era.zer schreef op donderdag 18 december 2008 @ 13:51:
Dat er zoveel mensen denken dat 'java' traag is, zal wel niet zomaar uit de lucht gegrepen zijn...
@oisyn ik heb nergens gezegd dat java traag is, enkel dat de gui traag is (dus swing of whatever)
Je reageerde op een post waarin ik weerlegde dat java traag is.

Er zijn twee belangrijke alternatieven voor Swing:
- SWT
- Web-based GUI (vaak misbruikt: pak je de installer van zo'n programma, blijkt dat hij Tomcat installeert met hun applicatie erin :X beetje overkill, om het over responsiveness maar niet te hebben)

Ik heb inmiddels wel een paar java-programma's gebruikt waarbij de responsiveness van de applicatie zeker niet het probleem is (Eclipse bijvoorbeeld). Dus het kan zeker goed zijn :) Dat het traag is ligt dus eerder aan de programmeur dan aan de taal, Java wordt vaak gebruikt om 'enterprisey' applicaties te schrijven, met onnodige abstracties e.d.

[ Voor 8% gewijzigd door MBV op 18-12-2008 14:05 ]


  • ? ?
  • Registratie: Mei 2007
  • Niet online

? ?

..

[ Voor 141% gewijzigd door ? ? op 25-01-2013 09:50 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

era.zer schreef op donderdag 18 december 2008 @ 14:28:
[...]

Ik maak toch al van in het begin duidelijk dat het de gui (swing dus) is? (en toen was het redelijk populair en maakte het wel dé gui bij ons)
Op mijn laptop zaten trouwens toen geen netwerkshares en veel fout doen aan het oproepen van een standaard dialog kan wel niet. Geloof jij maar dat swing supervlug was, I care, tesamen met die miljoenen andere mensen dat het traag vonden.
Wie zegt dat swing supervlug is :z Niet zo chargeren joh.

Maar 10-15 seconden heb ik ook nog nooit meegemaakt, en ik heb van 1998 tot 2004 met Swing gewerkt. Allesbehalve fan van, maar je kan het overdrijven.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

era.zer schreef op donderdag 18 december 2008 @ 14:28:
[...]

Ik maak toch al van in het begin duidelijk dat het de gui (swing dus) is? (en toen was het redelijk populair en maakte het wel dé gui bij ons)
Op mijn laptop zaten trouwens toen geen netwerkshares en veel fout doen aan het oproepen van een standaard dialog kan wel niet. Geloof jij maar dat swing supervlug was, I care, tesamen met die miljoenen andere mensen dat het traag vonden.


[...]

quotes rond java, ze staan er niet voor niets. Men zegt java en bedoelt de gui (swing)

Resultaten 1 - 10 van circa 7.350.000 voor +java +slow
Resultaten 1 - 10 van circa 44.800.000 voor +java +fast
damn daar gaat mijn vertrouwen in googlen!
//joke...
Is wel knap dat Swing de GUI was. Toen ik mijn eerste lessen Java kreeg werkte Swing alleen als je je Applets (wij bouwde alleen maar applets) draaide vanuit de ontwikkelomgeving JBuilder. Als je de applet op een website neergooide vertikte Swing het.

Er waren toen toch al zoveel "problemen" omdat Microsoft ook hun eigen Java runtime had (die is later weer verdwenen). Die ondersteunde ook niet alles (even goed).

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

era.zer schreef op donderdag 18 december 2008 @ 13:51:
Geen idee wat het nu allemaal is. Ik heb mijn eindwerk met het leuke Java Swing gemaakt en een gewone filechooser dialog tonen (standaard stuff) duurde de eerste keer 5-15 seconden op álle pc's. 4-5 jaar geleden.
Dan is het vrij waarschijnlijk dat je meer deed dan alleen die FileChooser tonen en je onterecht die FileChooser de schuld hebt gegeven van een ander probleem.

Wie trösten wir uns, die Mörder aller Mörder?


  • bat266
  • Registratie: Februari 2004
  • Laatst online: 24-08 06:41
Ik heb het ook wel eens meegemaakt met de filechooser in Swing icm vista dat het traag was like 20 seconden. Terwijl het op xp instant was. Ik heb toen de awt variant maar erin gegooid die sneller was.

Better to remain silent and be thought a fool then to speak out and remove all doubt.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

Swing was java 1.2, maar de met windows meegeleverde JRE was 1.1. Vervolgens had MS aan hun VM vanalles toegevoegd waardoor een voor die VM ontwikkelde applicatie niet met andere VM's zou kunnen werken. Terecht dat Sun daar toen een stokje voor gestoken heeft...

MAAR, waar hebben we het over. Dat was de tijd van 1.1 en 1.2. Op dit moment staat Java 7 (1.7) voor de deur.

Ik blijf het verwonderlijk vinden dat veel mensen in dit topic toch zo erg GUI minded zijn. Ik durf de stelling wel aan dat 95% van de profesioneel ontwikkelde software helemaal geen WinForms/Swing/SWT/Whatever GUI heeft. Over 5 jaar is het enige GUI werk dat nog wordt gedaan:

Web (html en ajax, maar ook ASP.NET, JSF, GWT enz), Flash/Flex, JavaFX, Silverlight, maar ook het Android en iPhone equivalent.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22:38

OMX2000

By any means necessary...

Ik heb een aantal pagina's gelezen in dit topic, maar ik vind het ECHT onzin dat Java de oorzaak is van de kwaliteisafname van IT studenten. Je kunt middels Java veel programmeer concepten uitleggen en leren.

Vind ik Java een geschikt platform/taal? Nee, ik vind de productiviteit van Java gewoonweg slecht. Natuurlijk ben ik bevoordeeld doordat ik een .Net voorstander ben. Maar ik heb mogen ondervinden hoe lang het duurt om een beetje service in Java te bouwen, en daar wordt je niet blij van.

Wat Java een beetje nekt is dat er teveel keus is. Er zijn tig soap stacks, tig xml stacks... In tegenstelling tot .NET, waarbij Microsoft (en in mindere maten Novell met Mono.Net) met een out of the box werkend geheel komt. Webservices werken meteen goed in .NET, XML parsing/transformation doe je met de standaard .Net libs in de framework. Wil je het toch anders doen, dan kan het anders, maar dan moet het aantoonbaar toegevoegde waarde hebben t.o.v. de .Net framework. Dat laatste is bij Java niet altijd het geval, spullen die bijv. door IBM geleverd werken niet per se goed.

Wat ik dus een probleem aan Java vindt is dat je gewoonweg slimmere mensen nodig hebt om een beetje enterprise applicatie te bouwen dan met .NET. .NET is makkelijker en een productiever platform. Voor de duidelijkheid zeg ik dus niet dat .NET beter is dan Java of andersom. Ze bieden allebei genoeg functionaliteit om stabiele en complexe enterprise applicaties te realiseren. .NET is nu moderner, en wordt in een razend tempo vernieuwd. Java sukkelt er een beetje achteraan.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • blackangel
  • Registratie: April 2002
  • Laatst online: 22:25
AaroN schreef op donderdag 18 december 2008 @ 13:57:
Programmeren is het toepassen van al je kennis die je hebt op het gebied van computersystemen, algoritmes, programmeertechnieken, programmeertalen en wiskunde (misschien nog andere gebieden als psychologie voor user interfaces?). Je kunt mijns inziens niet leren programmeren door een programmeertaal als Java (of enig andere taal) te leren wanneer kennis van een van bovenstaande gebieden niet aanwezig is.
Ik zie programmeren als een functionerende applicatie ontwikkelen, en ben het dan ook niet met jou eens.

Als iemand een programma wil hebben wat een mooie 7segmenten output (even voor microcontrollers op een wekker, embedded systems, meer mijn richting), dan kan ik dat ontwikkelen met
if(x=0) { seg_A = true; seg_B = true; }
if(x=1) { seg_A = false; seg_B = true; }
Ik kan dat echter ook met een switch/case doen, veel netter. En als ik echt wil klooien met algoritmes, dan kan ik dat zelfs doen met een karnaugh-diagram en vervolgens
seg_B = !(x&0x02)
Dat laatste vind ik een algoritme, maximale performance eruit halen. Maar is dat altijd nodig? Nee. Iedereen die een ledje kan laten knipperen (electronica's Hello World), kan het goed genoeg maken. Bitfucken, switch/case of desnoods een if/else, ze krijgen het werkend.

Voor programmeertechnieken geld hetzelfde. Ik vind bitfucken erg leuk, maar je *hoeft* het niet te gebruiken. Met if, while en de juiste library functies aanroepen kun je het meeste wel implementeren. Tuurlijk is het handig om classes te gebruiken, overerving e.d. te gebruiken, maar niet altijd, en zonder dat kun je ook prima programmeren. Afhankelijk van je applicatie is dat een marteling, maar dat is nu even niet het punt :P

Computersystemen? Vooruit, maar daarvoor heb je niet veel meer dan basiskennis nodig. Als je iets wil opslaan, dan kun je dat in een file doen. Nouja, je moet dan weten wat een file is. Tegenwoordig weten teveel mensen niet eens meer wat een pointer is en hoe ze die kunnen gebruiken. Ja, je moet er wel wat van weten, nee, niet alles. Basiskennis is voldoende.

Programmeertalen? Wat bedoel je daar precies mee? Ik moet kennis hebben van andere programmeertalen voordat ik iets ontwikkel? Je hebt daarin gedeeltelijk gelijk, omdat voor sommige applicaties het makkelijker is om een specifieke programmeertaal te gebruiken. Maar dat maakt het niet noodzakelijk om een andere programmeertaal te kennen. Ikzelf heb pas sinds kort fatsoenlijk met VB leren programmeren, maar met C/C++ kan ik, ongeacht de (on)gebruiksvriendelijkheid van de compiler, toch nog sneller programmeren. Maar daar weet ik van dat het aan mij ligt :P

Wiskunde? Ik nodig je graag uit om bij sommige HBO-opleidingen te komen kijken. Wiskunde wordt, tot mijn grote ergenis overigens, niet standaard meer op fatsoenlijk niveau gegeven op de opleiding. Het heeft nadelen als je met beeldvorming werkt (2d, 3d, audio, externe inputs bij embedded, etc). Maar als je een CMS wil opzetten boeit het totaal niks. Niet veel meer dan if while in ieder geval.

Ik ben het er mee eens dat kennis van de punten die je noemt weldegelijk erg handig is, maar het is geen harde eis zoals jij aangeeft. Zonder dat kun je ook programmeren. Goed? Nouja, je kunt een functionerend programma opzetten binnen reeele tijd. Als ik kijk naar de lichting die van mijn opleiding & jaar af gaan komen, kun je daar al best tevreden mee zijn :)


Mijn kritieke mening is, onder andere over Java, dat het teveel library's heeft die de leercurve van het programmeren wegnemen. PHP is in dat opzicht, wat mij betreft, nog een stapje erger: je leert er geen algoritmes (meer) mee. Ik vind dat zelf een van de interessantere dingen aan programmeren. Niet hard noodzakelijk, maar soms is het toch verdomd handig als je library je in de steek laat.

En zoals roy-t in "Is java de grootste vloek in de informat..." aangeeft: Memory leak is een bug die je moet fixen, niet afvangen. Voor mijn gevoel (ik programmeer niet in Java), leren mensen niet meer hoe noodzakelijk het is om naar geheugen te kijken.


In zo'n topic even voor de volledigheid, dit is puur zoals ik het ervaar. Ik heb net 5 jaar programmeerervaring op opleiding(en), maar geen echt interessante programmeerervaring buiten mijn huidige stage.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

@OMX2000

Eens en niet eens.

Ja, het grote verschil tussen java en .net is inderdaad dat je bij de eerste meerdere keuzes hebt om hetzelfde te doen (Spring mvc vs Struts vs JSF, TopLink vs Hibernate, Castor vs Jibx vs Jaxb) en dat het je daardoor meer tijd kwijt kan zijn wanneer je alle opties bij langs gaat. Als echter de keuzes gemaakt zijn is er helemaal geen verschil tussen .Net en JEE. Keuzemogelijkheden heeft voor en nadelen. Wat nu als de keuze die Microsoft gemaakt heeft nu net niet aansluit bij de projectwensen?

Het maakt .Net echter absoluut niet moderner. Ik ben erg benieuwd hoe je daarbij komt. Waarin is .NET zoveel moderner? Waarin hobbelt Java er achteraan?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

Hydra schreef op donderdag 18 december 2008 @ 12:24:
[...]


Op papier wel, in de praktijk zie je dat daar vanwege tijdsdruk vaak helemaal niks van komt. We zijn er bij ons eigen bedrijf ook ingestonken. Een developer hier heeft 2 tools geschreven. Toen 'ie weg ging bleek dat die zo slecht in elkaar zaten dat de opnieuw ontwikkeld moesten worden.


[...]


Daarnaast zitten de kosten van software niet in de snelheid maar in de ontwikkeltijd.
Dus echt niet, de kosten zitten in het onderhoud van het programma. De ontwikkeling is meestal maar een fractie van de tijd die er aan een product besteed wordt. En Java ontwikkelt echt niet sneller dan C/C++/Java, elke taal heeft z'n voor en nadelen maar gemiddeld gezien zal de ontwikkeltijd idem zijn.

'You like a gay cowboy and you look like a gay terrorist.' - James May


  • Lointje
  • Registratie: Oktober 2008
  • Laatst online: 26-09 11:15
phobosdeimos schreef op zondag 14 december 2008 @ 21:31:

Iemand die nu in België afstudeerd als bachelor informatica, weet niet wat een pointer is.
Ik ben afgestudeerd als licentiaat informatica vorig jaar (= master tegenwoordig). En hoewel de focus lag op java, hebben wij op zijn minst de volgende talen gezien:

Java
C
C#
C++
NesC
Pascall
Smalltalk
Visual basic
Perl
Haskell
een taal die lijkt op haskell maar waar de naam mij van ontschiet, Logo of zoiets...
Eiffel
Cobol
..

Ik vergeet er ongetwijfeld nog enkele. En dan natuurlijk nog XML, html, ...

Zou ik een probleem oplossen in java ipv C? Hangt beetje van het probleem af, maar ja waarschijnlijk. Als dat ding zelf garbage collecting doet en ik geen zorgen moet maken over pointers, waarom niet. Ken ik er daarom niets van? Fout. Geef mij een nieuwe taal en ik ben er ook in 2 dagen mee weg, gewoon omdat we de concepten kennen. Ken ik alle bovenstaande talen in detail? Neen natuurlijk niet, maar ik ken de gebruikte concepten, van de meesten nog wat syntax etc...

Java is goed als programmeertaal qua concepten, goede compilers en omdat je nog niet zo moet bezig zijn met pointers. Eens je dat kent kan je verder gaan.

De achteruitgang van de studenten (in informatica maar ook wel algemeen) ligt eerder in de luiheid van jongeren (ikzelf was zeker geen voorbeel van ijverigheid maar ik leerde mezelf dan wel programmeertalen die ik niet kende, voor school werken was iets anders :)).

En java is inderdaad niet altijd de optimale taal om dingen in te maken, door zijn traagheid soms. Zoals al vaak gezegd in dit topic. Java is niet de beste taal en ook niet de slechtste. Er is geen beste taal, dat hangt af waar je goed in bent en wat je moet schrijven.

Het artikel gelinked in de openingspost is een zoveelste rant uit de miljarden die op internet te vinden zijn. Constructieve posts maken daarentegen ... :P

  • rapture
  • Registratie: Februari 2004
  • Laatst online: 04:10

rapture

Zelfs daar netwerken?

latka schreef op donderdag 18 december 2008 @ 12:31:
Nope, de kosten zitten in het onderhoud. Schrijf het in 3 maanden en onderhoud het 5 jaar.
Is onderhoudbaarheid een vereiste van de business en wordt dat door de business met geld ondersteund?

Als je 10 projecten die misschien ooit een uitbreiding krijgen gaat overdesignen, dan kost elk project teveel. Als je deze 10 projecten snel in elkaar steekt en 1 project moet eens opnieuw geschreven worden. Is het herschreven van een project duurder of is het overdesignen van alle projecten duurder?

Er zijn voorbeelden van gigantische (technisch gezien) puinhopen, die dermate veel geld kosten (vooral groeivertraging van het bedrijf) om het te vervangen. Dat ze maar een setje IT'ers inhuren om het boeltje draaiend te houden. Verwijderd in "Belangen ontwikkelaars versus belangen b..."

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 19-09 10:19
Janoz schreef op donderdag 18 december 2008 @ 16:25:
Het maakt .Net echter absoluut niet moderner. Ik ben erg benieuwd hoe je daarbij komt. Waarin is .NET zoveel moderner? Waarin hobbelt Java er achteraan?
Sinds .Net3/3.5 loopt .Net toch echt erg voor op java in mijn ogen, ik denk dan vooral vanuit C# maar C# heeft niet eens alle functionaliteiten die IL (*de onderliggende taal van .NET) ondersteund.

Ik heb bij java nog nooit delegates, closures,[unsafe] code blokken met pointers en alles, of props gezien, ook handige toevoegingen als threadpools (ok die kun je ook zelf maken) mis ik. Ik twijfel er nu ook over of ik eigenlijk wel structs in java ken, en ik weet vrij zeker dat je in java niet de layoutkind van je struct kan setten, en zelf kunt aan geven hoe qua geheugen locaties structs worden opgebrouwd. Ook heb ik nog nooit projecten gezien waarbij een deel van het programma hielp met zichzelf compilen. (denk aan apparte compile-projecten en content managers). Ook lijkt .Net wat betreft services veel uitgebreider en zijn er voor Threads veel mooiere contructies dan in Java waar je alleen op een parameterloze manier threads kunt starten waardoor je weer properties moet setten van te voren.

Nu krijg ik waarschijnlijk het argument 'dat kun je zelf maken' wat waarschijnlijk ook wel valide is, aangezien het uiteindelijk allemaal x86 code wordt (of nouja vaak) maar .NET loopt zover ik weet gewoon nu een stuk voor op Java. In java is het veel moeilijker om dichter bij de compiler/computer te komen (dnek aan de handige compiler statements in [] in C#) Misschien dat het met Java7 weer dichter bij elkaar komt.

(verder vind ik C#/.Net over het algemeen wat consistenter dan java, en is de MSDN in mijn ogen beduidend beter dan sun's java documentatie).


@blackangel

Je hebt helemaal gelijk, op de RuG krijgen we iig het eerste jaar absoluut geen informatie over wat een pointer uberhaupt is. Dit komt waarschijnlijk ook mede doordat je in Java geen unsafe code kunt maken (zover ik weet). Imho zou C# een stuk geschikter zijn maar somehow hebben ze op de RuG een soort van Microsoft haat wat er ook echt flink in getrapt wordt hier, (en waar ik ondertussen als ms fanboy een grondige hekel aan begin te krijgen) elke leraar heeft wel weer wat te zeuren op MS, (hoewel vele wel toegeven dat ze liever C# dan Java hadden gegeven :P).

Ik zou het absoluut niet jammer vinden als ze op de Uni's en HBO's weer Java schrappen en terug gaan naar C++ waar je toch echt veel mee zult moeten werken later (hoewel C++ natuurlijk ook absoluut een rotzooitje is de laatste tijd :P ) Misschien wordt het is tijd voor een nieuwe high-performance unsafe taal die lekker opgeschoond is (ik weet dat er iets als D++ is maar dat loopt allemaal nog niet zonder industry support.

Ons wordt zoals eerder verteld wel memory management geleerd dmv assembly.

Note: waarom is er geen speciaal vak waar je leert debuggen!!! Als je iets vaak doet als programmeur is het wel debuggen, ik durf bijna te zeggen dat je vaker achter de debugger zit dan dat je echt code aan het schrijven bent, dat is mooi te combineren met unit testing wat bij ons nu verstopt wordt in 1 college over OO.

~ Mijn prog blog!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

roy-t schreef op donderdag 18 december 2008 @ 17:01:
(hoewel C++ natuurlijk ook absoluut een rotzooitje is de laatste tijd :P ) Misschien wordt het is tijd voor een nieuwe high-performance unsafe taal die lekker opgeschoond is (ik weet dat er iets als D++ is maar dat loopt allemaal nog niet zonder industry support.
C++09, next year in a compiler suite near you! ;)

[ Voor 4% gewijzigd door .oisyn op 18-12-2008 17:31 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

Een vak debuggen zou geen kwaad kunnen, hoe vaak ik dat aan iemand heb moeten uitleggen is niet normaal meer :S Java ontwikkelen in Eclipse met printf-debugging, iemand van een jaar of 40 met 10 jaar java-ervaring :X

Bij de C# voordelen zit je volgens mij op dingen die platform-afhankelijk zijn (Java moet overal op kunnen draaien, niet alleen x86, dus memory-mgmt aanpassen is dan een stuk minder interessant, en big/little endian is 'leuk' met pointers), en die in 98% van de applicaties niet zinvol zijn. Het kan handig zijn, als een tussenstap tussen C++ en Java-achtige talen.

C++ zit dicht op de hardware, heeft geen VM, en geen standaard toolkit om GUI's en webservices (wat eigenlijk wel?) mee te schrijven. Er zijn genoeg standaarden voor (denk aan QT, of op een ander vlak de Posix-standaard), maar die zijn niet industrie-breed. Zit je weer met het java-probleem: welk framework pakken we, met welke voors en tegens.

  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22:38

OMX2000

By any means necessary...

Janoz schreef op donderdag 18 december 2008 @ 16:25:
@OMX2000

Eens en niet eens.

Ja, het grote verschil tussen java en .net is inderdaad dat je bij de eerste meerdere keuzes hebt om hetzelfde te doen (Spring mvc vs Struts vs JSF, TopLink vs Hibernate, Castor vs Jibx vs Jaxb) en dat het je daardoor meer tijd kwijt kan zijn wanneer je alle opties bij langs gaat. Als echter de keuzes gemaakt zijn is er helemaal geen verschil tussen .Net en JEE. Keuzemogelijkheden heeft voor en nadelen. Wat nu als de keuze die Microsoft gemaakt heeft nu net niet aansluit bij de projectwensen?

Het maakt .Net echter absoluut niet moderner. Ik ben erg benieuwd hoe je daarbij komt. Waarin is .NET zoveel moderner? Waarin hobbelt Java er achteraan?
Het klopt dat wanneer de initiele keuzes zijn gemaakt, en er veel van hetzelfde wordt gebouwd door een vaste groep mensen dat Java dan net zo snel kan zijn als Java. Maar het is niet altijd zo dat er altijd dezelfde soort applicaties worden ontwikkeld door dezelfde mensen. Bij een nieuw soort applicatie moet de "ontwikkelstraat" weer ingericht worden. Komt er een eigenwijs nieuw iemand om het project, gaat die weer doodleuk lopen sleutelen aan de standaard tooling.

Het is ook niet zo dat je bij het .Net platform geen alternatieven hebt naast de standaard geleverde libs van Microsoft. Alleen een alternatief moet dus wel toegevoegde waarde zijn. Niet een uit de hand gelopen hobby project wat mooie code oplevert, maar niet veel oplevert qua toegevoegde waarde voor de eindklant.

C# wordt in een razendtempo vernieuwd. Attributen (annotations in Java), generics, waren er eerder bij C#. En C# krijgt momenteel steeds meer eigenschappen van een dynamische taal (Lambda expressions, dynamische types). Java staat zeker niet stil, alleen door de zeer conservatieve manier van vernieuwen door Sun gaat het allemaal wat langzamer.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:51

RayNbow

Kirika <3

OMX2000 schreef op donderdag 18 december 2008 @ 17:47:
[...]
En C# krijgt momenteel steeds meer eigenschappen van een dynamische taal (Lambda expressions[...]
En sinds wanneer zijn lambda expressions iets kenmerkends voor dynamische talen?

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

@OMX: En dat is direct het probleem van .NET. Ik meen me te herinneren dat .NET 2 niet backwards compatible was naar .NET 1, maar dat weet ik niet zeker. Ik weet wel dat mijn ex-collega's de nieuwe website in .NET 2 aan het ontwikkelen zijn omdat ze bang zijn dat de huidige .NET 2 site niet 100% gaat werken op 3.5.
Met java heb je daar bij mijn weten nooit last van gehad, in elk geval niet tussen 2 versies.

@RayNBow: sinds dynamische talen dat hebben uitgevonden?
Wikipedia: Dynamic programming language
Wikipedia: Lambda calculus
Lisp was de eerste functionele programmeertaal bij mijn weten, en dat was een dynamische taal.
Misschien heb je JIT niet nodig om lambda-expressies neer te zetten, maar het zorgt volgens mij wel voor een veel betere performance.

[ Voor 31% gewijzigd door MBV op 18-12-2008 18:47 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

MBV schreef op donderdag 18 december 2008 @ 18:41:
@OMX: En dat is direct het probleem van .NET. Ik meen me te herinneren dat .NET 2 niet backwards compatible was naar .NET 1, maar dat weet ik niet zeker. Ik weet wel dat mijn ex-collega's de nieuwe website in .NET 2 aan het ontwikkelen zijn omdat ze bang zijn dat de huidige .NET 2 site niet 100% gaat werken op 3.5.
Met java heb je daar bij mijn weten nooit last van gehad, in elk geval niet tussen 2 versies.
Je weet wel dat dat het probleem is, maar je weet het ook niet zeker? :P

1.1 en 2.0 zijn idd grote verschillen, maar 3.5 is niets anders dan een extensie op 3.0 die weer een extensie is op 2.0 ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:51

RayNbow

Kirika <3

MBV schreef op donderdag 18 december 2008 @ 18:41:
@RayNbow: sinds dynamische talen dat hebben uitgevonden?
Wikipedia: Dynamic programming language
Rept met geen woord over lambda's.
Wikipedia: Lambda calculus
Lisp was de eerste functionele programmeertaal bij mijn weten, en dat was een dynamische taal.
Omdat de eerste functionele programmeertaal dynamisch was, wil dat niet zeggen dat lambda's iets kenmerkends zijn voor dynamische talen. De lambda calculus is niets anders dan een formeel systeem over 1 ding: functies (abstracties en applicaties). Je gaat me toch niet vertellen dat iets fundamenteels als een functie een geschenk van de dynamische programmeertalenwereld is?

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22:38

OMX2000

By any means necessary...

MBV schreef op donderdag 18 december 2008 @ 18:41:
@OMX: En dat is direct het probleem van .NET. Ik meen me te herinneren dat .NET 2 niet backwards compatible was naar .NET 1, maar dat weet ik niet zeker. Ik weet wel dat mijn ex-collega's de nieuwe website in .NET 2 aan het ontwikkelen zijn omdat ze bang zijn dat de huidige .NET 2 site niet 100% gaat werken op 3.5.
Met java heb je daar bij mijn weten nooit last van gehad, in elk geval niet tussen 2 versies.

@RayNBow: sinds dynamische talen dat hebben uitgevonden?
Wikipedia: Dynamic programming language
Wikipedia: Lambda calculus
Lisp was de eerste functionele programmeertaal bij mijn weten, en dat was een dynamische taal.
Misschien heb je JIT niet nodig om lambda-expressies neer te zetten, maar het zorgt volgens mij wel voor een veel betere performance.
Als je bedoelt met backwards compatible dat .NET 1.1 op .NET 2.0 moet kunnen draaien. KLopt dat gaat niet zomaar. Maar je kunt de VM's netjes side by side draaien. Als je applicatie om wat voor reden niet ge-upgrade kan worden doe je dat.

De .Net 3.5 framework draait nog steeds op een .NET 2.0 CLR (VM). Dus 2.0, 3.0 (wat een extensie is op 2.0), en 3.5 frameworks gebruiken de 2.0 Common Language Runtime.
Porten van een 1.1 applicatie naar 2.0 is niet erg spannend.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 25-09 11:04
roy-t schreef op donderdag 18 december 2008 @ 17:01:
[...]
@blackangel

Je hebt helemaal gelijk, op de RuG krijgen we iig het eerste jaar absoluut geen informatie over wat een pointer uberhaupt is. Dit komt waarschijnlijk ook mede doordat je in Java geen unsafe code kunt maken (zover ik weet). Imho zou C# een stuk geschikter zijn maar somehow hebben ze op de RuG een soort van Microsoft haat wat er ook echt flink in getrapt wordt hier, (en waar ik ondertussen als ms fanboy een grondige hekel aan begin te krijgen) elke leraar heeft wel weer wat te zeuren op MS, (hoewel vele wel toegeven dat ze liever C# dan Java hadden gegeven :P).
Dat brengt voor de RuG veel gelazer met zich mee; die draaien volledig op Debian Linux.

Read the code, write the code, be the code!


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22:38

OMX2000

By any means necessary...

RayNbow schreef op donderdag 18 december 2008 @ 19:08:
[...]

Rept geen woord over lambda's.


[...]

Omdat de eerste functionele programmeertaal dynamisch was, wil dat niet zeggen dat lambda's iets kenmerkends zijn voor dynamische talen. De lambda calculus is niets anders dan een formeel systeem over 1 ding: functies (abstracties en applicaties). Je gaat me toch niet vertellen dat iets fundamenteels als een functie een geschenk van de dynamische programmeertalenwereld is?
Als je een lijst van functionele talen opsomt, is het wel heel toevallig dat ze dan vrijwel allemaal lambda's ondersteunen.
Het is alsof je nu zegt dat optellen een standaard wiskundige operatie is dat optellen dan geen eigenschap is van C# of Java.
Als je ff doorgeklikt had, was je misschien ook dit tegen gekomen : "Lambda expression or lambda function: an expression that specifies an anonymous function object".Iets wat zo ongeveer iedere functionele taal ondersteund.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22:38

OMX2000

By any means necessary...

wackmaniac schreef op donderdag 18 december 2008 @ 19:25:
[...]


Dat brengt voor de RuG veel gelazer met zich mee; die draaien volledig op Debian Linux.
apt-get install mono mono-gmcs mono-gac mono-utils monodevelop monodoc-browser monodevelop-nunit monodevelop-versioncontrol

C# ontwikkelen gaat er heel goed mee. En het is open-source, leuk als je de compiler zelf eens wil bekijken.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:51

RayNbow

Kirika <3

OMX2000 schreef op donderdag 18 december 2008 @ 19:25:
[...]


Als je een lijst van functionele talen opsomt, is het wel heel toevallig dat ze dan vrijwel allemaal lambda's ondersteunen.
Het is alsof je nu zegt dat optellen een standaard wiskundige operatie is dat optellen dan geen eigenschap is van C# of Java.
Als je ff doorgeklikt had, was je misschien ook dit tegen gekomen : "Lambda expression or lambda function: an expression that specifies an anonymous function object".Iets wat zo ongeveer iedere functionele taal ondersteund.
Dus? Functioneel impliceert niet dynamisch. Er bestaan ook statische functionele talen. Het functionele aspect staat orthogonaal op de statisch-dynamische as.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

era.zer schreef op woensdag 17 december 2008 @ 21:56:
Ach ik nam dat niet persoonlijk, maar zo'n generalisatie doet niemand goed. Net zoals alle afrikanen lui zijn, alle nederlanders gierig en alle duitsers vetzakken. (dit is dus niet zo...)

Maar swat: als jij zegt dat je wizzkids en prutsers hebt dan mag jij dat denken. De wereld ziet er anders uit, je hebt wizzkids, dan gewoon normale mensen, dan minder goede mensen en dan prutsers. Iemand een prutser noemen allesbehalve respectvol... Zoiets helpt je niet verder in het leven.
Blijkbaar hebben we nog een communicatie-geschil:
Je hebt wizzkids en prutsers, maar ook die 'normale' mensen. Ik vond het alleen nogal raar klinken; alsof de andere 2 groepen niet normaal zijn. Dus op dat vlak zitten we ook op 1 lijn.
zolang de bedrijven mij graag zien komen waar ik solliciteer en het een pluspunt vinden dat ik Toegepaste informatica gedaan heb ben ik blij. En ik ben heeeel blij ;)
BTW waar heb jij je studie gedaan, want dat verschilt ook nogal eens per regio.. Ik heb namelijk genoeg diepgang gehad in de meeste vakken imho.
Ik zat aan Hogent, III kun je trouwens enkel daar doen. Er zaten echter ook studenten (SV'ers doel ik dan op) die van Brussel, Brugge, etc. kwamen.

ASSUME makes an ASS out of U and ME


  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
era.zer schreef op donderdag 18 december 2008 @ 13:51:
[...]

Geen idee wat het nu allemaal is. Ik heb mijn eindwerk met het leuke Java Swing gemaakt en een gewone filechooser dialog tonen (standaard stuff) duurde de eerste keer 5-15 seconden op álle pc's. 4-5 jaar geleden. Sindsdien nog nauwelijks java/swing aangeraakt na deze traumatische ervaring haha :)
Natuurlijk doet java het goed op supercomputers (cern/ebay) maar (vroeger) toch niet op desktop clientpc's (met swing gui dus, en laat dat nu het meest gebruikte zijn)...

Dat er zoveel mensen denken dat 'java' traag is, zal wel niet zomaar uit de lucht gegrepen zijn...
@oisyn ik heb nergens gezegd dat java traag is, enkel dat de gui traag is (dus swing of whatever)
Dat JFileChooser traag was in veel (maar niet alle!) situaties is/was een bekende bug die voor zover ik weet sinds Java 6 Update 10 pas echt verholpen is (met wat verbeteringen in de afgelopen paar jaar). Het ging - als ik mij goed herinner - vooral mis als de start-folder veel zip-bestanden bevatte oid, en dan hoofdzakelijk onder Windows omdat Sun een bepaalde Win32-API op de verkeerde wijze gebruikte.

Overigens heb ik een paar (kleine) tooltjes gemaakt met Swing, en in mijn ervaring doen zich de meeste problemen met trage UI voor als je zaken afhandelt op de event-thread in plaats van via een SwingWorker of een losse Thread ed.
Daarnaast is het natuurlijk een feit dat Sun gewoon een vreemde beslissing heeft genomen door de systeem look- en feel te emuleren ipv de systeem-eigen widgets te gebruiken (zoals SWT bijvoorbeeld doet), die emulatie zorgt voor vertraging (ook omdat het veelal niet via de 2D accelarator gaat, pas sinds Java 6 Update 10).

In tegenstelling tot eerdere posts is Swing NIET deprecated (Sun heeft in Java 6 Update 10 zelfs een nieuwe platformonafhankelijke look-en feel geïntroduceerd.

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

RayNbow schreef op donderdag 18 december 2008 @ 19:32:
[...]

Dus? Functioneel impliceert niet dynamisch. Er bestaan ook statische functionele talen. Het functionele aspect staat orthogonaal op de statisch-dynamische as.
ik somde een paar feiten op: lambda-calculus-concepten worden ook wel functioneel programmeren genoemd wanneer je dat toepast in programma's (functies zijn 'first-class citizens'). De eerste talen die dit concept ondersteunden waren dynamische programmeertalen. Nu pak ik weer je originele reactie erbij:
RayNbow schreef op donderdag 18 december 2008 @ 18:38:
[...]
En sinds wanneer zijn lambda expressions iets kenmerkends voor dynamische talen?
Lambda expressions zijn iets heel kenmerkends voor dynamische talen. Zo ongeveer alle dynamische talen ondersteunen lambda-expressies, terwijl het een concept is wat tot voor kort niet voorkwam in statische programmeertalen. Dus jouw opmerking vond ik echt nergens op slaan.

Waarom C# en Java trouwens geen dynamische programmeertalen zouden zijn zou ik niet weten: met reflection enzo kan je run-time de uitgevoerde code veranderen, waarmee het een dynamische programmeertaal is.

offtopic:
The reflections are all wrong :P

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

De grootste vloek in de informatica was toch goto? :+


Ontopic:

Volgens mij verwordt deze discussie nu voornamelijk een Java vs .net verhaal. Terwijl deze talen imho toch een hele hoop zaken gemeen hebben, en deels met dezelfde ideeën in het achterhoofd zijn ontwikkeld: een heldere object georiënteerde taal, middels bytecode draaiende in een virtual machine met garbage collection, het aanbieden van een uitgebreide collectie libraries voor datastructuren, netwerken, etc etc om direct een multifunctionele taal neer te zetten, het aanpakken van de nadelen van C/C++.
Waar de platformen enigszins in verschillen zijn de nadrukken op platformonafhankelijkheid, het toch kunnen gebruiken van unsafe code en het aantal taalvarianten. Inmiddels zou je ook het licentiemodel als verschil kunnen aanmerken.

Maar goed, er was dus een tijd dat de insteek van deze twee talen helemaal de toekomst leek. (En omdat Java eerder op de markt verscheen is het misschien daardoor in het onderwijs inmiddels meer omarmd dan .net).

Dus. Moeten we de oorzaak van de gevreesde teloorgang misschien meer zoeken in het idee dat informatici begin jaren negentig de verkeerde toekomstvisie hadden?

Edit: En dan bedoel ik dus te zeggen dat het volgens mij niet zozeer om de implementatie gaat, maar om de concepten. Het doel was volgens mij om sneller software te kunnen maken, met minder fouten.

[ Voor 7% gewijzigd door zwippie op 18-12-2008 20:44 ]

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

offtopic:
De grootste vloek is Cobol. "It's not dead yet, it just smells funny." Zal ik morgen even een snippet copy/pasten? Dan wil iedereen direct weer Java programmeren >:)

Ik denk dat een paar pagina's terug de juiste opmerking is gemaakt: we willen dat meer mensen kunnen programmeren (in 1998 werd je met alleen VWO nog aangenomen als programmeur :X), dat betekent dat je niet al te selectief kan zijn. En dat betekent weer dat je ook mindere goden moet accepteren als informaticus. De Nederlandse cultuur dat we allemaal manager moeten worden als promotie helpt daar niet bij.
Een van de tools die het mogelijk maakte om relatief eenvoudig complexe programma's te schrijven was Java, die hier het zondebok lijkt te worden.

Dus nee, ik denk niet dat de toekomstvisie verkeerd was. Eerder de ambities te hoog. Het echte probleem zat namelijk niet in de techniek, maar in de praktijk van te weinig testen en structuur.

[ Voor 24% gewijzigd door MBV op 18-12-2008 20:52 ]


  • writser
  • Registratie: Mei 2000
  • Laatst online: 26-09 15:38
Roy-t, waarom zou C# volgens jou een geschikter platform zijn om studenten te leren programmeren? Je komt met allemaal argumenten (unsafe code blokken, geheugenindeling van structs, dichter bij de compiler komen) die het leren programmeren alleen maar moeilijker maken in het begin.
Ik zou het absoluut niet jammer vinden als ze op de Uni's en HBO's weer Java schrappen en terug gaan naar C++ waar je toch echt veel mee zult moeten werken later
Hoe vaak heb je al gesolliciteerd? Zoveel wordt er niet meer gedaan in C++ voorzover ik weet.

offtopic:
Welke leraren willen volgens jou liever doceren in C#? Benieuwd :)

Onvoorstelbaar!


  • writser
  • Registratie: Mei 2000
  • Laatst online: 26-09 15:38
zwippie schreef op donderdag 18 december 2008 @ 20:42:
Dus. Moeten we de oorzaak van de gevreesde teloorgang misschien meer zoeken in het idee dat informatici begin jaren negentig de verkeerde toekomstvisie hadden?
Lijkt mij niet. Deze "toekomstvisie" bestaat al sinds het begin van de informatica. Eerst draaide je schakelaartjes om, vervolgens ponste je bitjes in een ponskaart, daarna kwamen assembly, c, java en python. Voor het gros van de applicaties is het developen daardoor een stuk makkelijker (in elk geval productiever) geworden.

Onvoorstelbaar!


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

writser schreef op donderdag 18 december 2008 @ 20:55:
Roy-t, waarom zou C# volgens jou een geschikter platform zijn om studenten te leren programmeren? Je komt met allemaal argumenten (unsafe code blokken, geheugenindeling van structs, dichter bij de compiler komen) die het leren programmeren alleen maar moeilijker maken in het begin.


[...]

Hoe vaak heb je al gesolliciteerd? Zoveel wordt er niet meer gedaan in C++ voorzover ik weet.

offtopic:
Welke leraren willen volgens jou liever doceren in C#? Benieuwd :)
Als je C, C++ en nog een taal hebt geleerd kan je de meeste imperatieve talen heel snel onder de knie krijgen. Ik heb laatst ook wat gedaan in C#, en met een beetje googlen kom je er wel. En of je nu een diploma hebt met 0 ervaring en een schoolprojectje in C++, of 0 ervaring en een schoolprojectje in Java, dat zal de meeste bedrijven een worst wezen. Zeker uit het HBO ga je direct op cursus, en leren ze je in 3 maanden opnieuw programmeren (bij de grote bedrijven)

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:51

RayNbow

Kirika <3

MBV schreef op donderdag 18 december 2008 @ 20:40:
[...]

ik somde een paar feiten op: lambda-calculus-concepten worden ook wel functioneel programmeren genoemd wanneer je dat toepast in programma's (functies zijn 'first-class citizens'). De eerste talen die dit concept ondersteunden waren dynamische programmeertalen.
Zoals ik eerder zei is functioneel programmeren iets wat los van dynamische talen staat. Je kan imperatief programmeren in zowel dynamische als statische talen. Je kan functioneel programmeren in zowel dynamische als statische talen.

Dat een dynamische programmeertaal als eerste een concept X introduceerde maakt dat niet meteen iets kenmerkends voor dynamische talen...
Nu pak ik weer je originele reactie erbij:

[...]

Lambda expressions zijn iets heel kenmerkends voor dynamische talen. Zo ongeveer alle dynamische talen ondersteunen lambda-expressies, terwijl het een concept is wat tot voor kort niet voorkwam in statische programmeertalen.
Tot voor kort? Dus je negeert voor het gemak even ML, OCaml, Clean, Haskell, ...? Je negeert zeker ook het feit dat niet lang na het beschrijven van de untyped lambda calculus de heer Church met een typed variant kwam, namelijk λ, nog ver vóór de geboorte van Lisp?
Waarom C# en Java trouwens geen dynamische programmeertalen zouden zijn zou ik niet weten: met reflection enzo kan je run-time de uitgevoerde code veranderen, waarmee het een dynamische programmeertaal is.
Dynamisch/Statisch is dan ook niet zwart-wit. Het is een as. Een taal kan erg statisch zijn, erg dynamisch, of iets er tussen in. Denk aan concepten als dynamic binding in redelijk statische talen als Java en C#.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22:38

OMX2000

By any means necessary...

RayNbow schreef op donderdag 18 december 2008 @ 19:32:
[...]

Dus? Functioneel impliceert niet dynamisch. Er bestaan ook statische functionele talen. Het functionele aspect staat orthogonaal op de statisch-dynamische as.
Ik maakte een fout ik bedoelde dus Dynamische talen...

Maar goed het is mierenneuken en nu behoorlijk of topic... Het enige wat ik wilde zeggen is dat C# op dit moment innovatiever is dan Java. Niet per se beter...

Dè developers podcast in je moerstaal : CodeKlets Podcast


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

MBV schreef op donderdag 18 december 2008 @ 18:41:
Wikipedia: Lambda calculus
Lisp was de eerste functionele programmeertaal bij mijn weten, en dat was een dynamische taal.
Misschien heb je JIT niet nodig om lambda-expressies neer te zetten, maar het zorgt volgens mij wel voor een veel betere performance.
Lambda calculus heeft in feite geen zak te maken met lambda expressions in hedendaagse programmeertalen, wat niets meer zijn dan anonieme inline gedefinieerde functies met wellicht wat context informatie (dan worden het closures genoemd). Een jitter boeit bij lambda expressions dus net zoveel als bij gewone functies.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

blackangel schreef op donderdag 18 december 2008 @ 16:24:
[...]
Ik zie programmeren als een functionerende applicatie ontwikkelen, en ben het dan ook niet met jou eens.

Als iemand een programma wil hebben wat een mooie 7segmenten output (even voor microcontrollers op een wekker, embedded systems, meer mijn richting), dan kan ik dat ontwikkelen met
if(x=0) { seg_A = true; seg_B = true; }
if(x=1) { seg_A = false; seg_B = true; }
Ik kan dat echter ook met een switch/case doen, veel netter. En als ik echt wil klooien met algoritmes, dan kan ik dat zelfs doen met een karnaugh-diagram en vervolgens
seg_B = !(x&0x02)
Dat laatste vind ik een algoritme, maximale performance eruit halen. Maar is dat altijd nodig? Nee. Iedereen die een ledje kan laten knipperen (electronica's Hello World), kan het goed genoeg maken. Bitfucken, switch/case of desnoods een if/else, ze krijgen het werkend.
Algortimes zijn een systematische manier om een bepaald probleem op te lossen. Dat laatste statement kan net zo goed onderdeel zijn van een algoritme als dat eerste stuk. Daarbij gaat je argument imho mank. Kennis gaat niet alleen over toepassingen. Ander begrip van kennis veroorzaakt ook spraakverwarringen. Wij hebben blijkbaar een ander begrip van de term algoritme.
Voor programmeertechnieken geld hetzelfde. Ik vind bitfucken erg leuk, maar je *hoeft* het niet te gebruiken. Met if, while en de juiste library functies aanroepen kun je het meeste wel implementeren. Tuurlijk is het handig om classes te gebruiken, overerving e.d. te gebruiken, maar niet altijd, en zonder dat kun je ook prima programmeren. Afhankelijk van je applicatie is dat een marteling, maar dat is nu even niet het punt :P
Om deze afwegingen te maken moet je de programmeertechnieken op zijn minst kennen en kunnen toepassen. Als je een brede kennis hebt op dit gebied, dan kun je goed bepalen wanneer je welke techniek toepast. Waardoor je inderdaad martelgangen voorkomt. Ik ben het compleet met je eens wat hierboven staat, maar het is geen argument tegen wat ik stelde.
Computersystemen? Vooruit, maar daarvoor heb je niet veel meer dan basiskennis nodig. Als je iets wil opslaan, dan kun je dat in een file doen. Nouja, je moet dan weten wat een file is. Tegenwoordig weten teveel mensen niet eens meer wat een pointer is en hoe ze die kunnen gebruiken. Ja, je moet er wel wat van weten, nee, niet alles. Basiskennis is voldoende.
Als je goed wilt kunnen programmeren, moet je mijns inziens de beperkingen van systemen kennen. Dat kan zijn de bandbreedte van een databus of netwerkverbinding. Het begrip van geheugen allocatie en lowlevel dingen die achter de schermen gebeuren, kunnen een hoop problemen verklaren die men vaak tegen komt. Ik ben het met je eens dat het allemaal niet noodzakelijk is, maar het is beter om deze kennis wel te hebben. Je wilt immers dat jouw product van de hoogste kwaliteit is.
Programmeertalen? Wat bedoel je daar precies mee? Ik moet kennis hebben van andere programmeertalen voordat ik iets ontwikkel? Je hebt daarin gedeeltelijk gelijk, omdat voor sommige applicaties het makkelijker is om een specifieke programmeertaal te gebruiken. Maar dat maakt het niet noodzakelijk om een andere programmeertaal te kennen. Ikzelf heb pas sinds kort fatsoenlijk met VB leren programmeren, maar met C/C++ kan ik, ongeacht de (on)gebruiksvriendelijkheid van de compiler, toch nog sneller programmeren. Maar daar weet ik van dat het aan mij ligt :P
Je moet toch de syntax en standaard structuren van een programmeertaal kennen om deze te kunnen gebruiken? Dit bedoel ik letterlijk, lijkt me volkomen terecht.
Wiskunde? Ik nodig je graag uit om bij sommige HBO-opleidingen te komen kijken. Wiskunde wordt, tot mijn grote ergenis overigens, niet standaard meer op fatsoenlijk niveau gegeven op de opleiding. Het heeft nadelen als je met beeldvorming werkt (2d, 3d, audio, externe inputs bij embedded, etc). Maar als je een CMS wil opzetten boeit het totaal niks. Niet veel meer dan if while in ieder geval.
Mja, komen we weer uit op hetzelfde punt als de kennis over computersystemen. Kennis van wiskunde helpt je complexe problemen sneller oplossen. Als je minder kennis hebt, zul je in de praktijk vaak langer doen over complexe problemen.
Ik ben het er mee eens dat kennis van de punten die je noemt weldegelijk erg handig is, maar het is geen harde eis zoals jij aangeeft. Zonder dat kun je ook programmeren. Goed? Nouja, je kunt een functionerend programma opzetten binnen reeele tijd. Als ik kijk naar de lichting die van mijn opleiding & jaar af gaan komen, kun je daar al best tevreden mee zijn :)
Het waren ook geen harde eisen hoor :) Gewoon mijn mening en het waarom achter die mening. Ik denk dat we het op veel punten eens zijn.
Mijn kritieke mening is, onder andere over Java, dat het teveel library's heeft die de leercurve van het programmeren wegnemen. PHP is in dat opzicht, wat mij betreft, nog een stapje erger: je leert er geen algoritmes (meer) mee. Ik vind dat zelf een van de interessantere dingen aan programmeren. Niet hard noodzakelijk, maar soms is het toch verdomd handig als je library je in de steek laat.
Java is erg uitgebreid, zonder enige andere kennis kun je inderdaad erg eenvoudig de weg kwijt raken. Je hoeft die libraries niet te gebruiken. Java kan een goede tool zijn, maar het wordt nu eenvoudigweg teveel gebruikt om te leren.
In zo'n topic even voor de volledigheid, dit is puur zoals ik het ervaar. Ik heb net 5 jaar programmeerervaring op opleiding(en), maar geen echt interessante programmeerervaring buiten mijn huidige stage.
Jouw ervaring kan anders zijn dan mijn mening. Ik wil benadrukken: het blijft subjectief :)

JayGTeam (213177)


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

[knip] bullshit over dynamisch/statisch en functioneel proggen[/]

[ Voor 97% gewijzigd door MBV op 19-12-2008 09:25 ]


Acties:
  • 0 Henk 'm!

  • blackangel
  • Registratie: April 2002
  • Laatst online: 22:25
AaroN schreef op vrijdag 19 december 2008 @ 08:53:
[...]

Het waren ook geen harde eisen hoor :) Gewoon mijn mening en het waarom achter die mening. Ik denk dat we het op veel punten eens zijn.
Grofweg gezien wel. Hoe meer verstand je hebt van die punten, hoe beter. Dat betekend wat mij betreft niet dat je zonder die punten ook een functionerende applicatie neer kunt zetten, alleen wordt het uiteindelijk een marteling. Voordat ik C++ kende (wel classes, geen overerving :+ ), heb ik mijzelf vaak genoeg gepijnigd inderdaad. Maar dat betekend niet dat ik het niet functionerend neer kon zetten.

En ik zie dat we een aantal verschillen in begripdefinities hebben. Als ik die van jouw zo lees, heb jij in die punten zeker gelijk :)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

roy-t schreef op donderdag 18 december 2008 @ 17:01:
Ik heb bij java nog nooit delegates,
Een callback is middels een interface te implementeren. Een delegate is dan ook niet meer dan syntactische suiker. Hetzelfde geld voor properties. Ja, het schrijven van getters en setters is meer werk, maar over het algemeen kan je tooling dat keurig voor je genereren.
closures,
Worden in groovy ondersteund.
[unsafe] code blokken met pointers en alles
Dat is een designkeuze van het platform en of het een voordeel is of niet is vooral subjectief.
ook handige toevoegingen als threadpools (ok die kun je ook zelf maken) mis ik.
idd zelf te schrijven, maar ook beschikbaar in Java 5.
Ik twijfel er nu ook over of ik eigenlijk wel structs in java ken, en ik weet vrij zeker dat je in java niet de layoutkind van je struct kan setten, en zelf kunt aan geven hoe qua geheugen locaties structs worden opgebrouwd.
Zie commentaar op unsafe.
Ook heb ik nog nooit projecten gezien waarbij een deel van het programma hielp met zichzelf compilen. (denk aan apparte compile-projecten en content managers).
Binnen de VM is de compiler beschikbaar. Je kunt eigen implementaties van de classloader maken en daarin zelfs de bytecode aanpassen. Ook heeft java een scripting engine waarmee je domein specifieke talen kunt ontwikkelen. Voorbeelden van implementaties van functionaliteiten die je aanhaalt zijn aan Ant (java build tool), jakarta's BCEL (bytecode engenering library), JBoss drools (een businessrules engine waarbij businessrules apart gecompileerd kunnen worden)
Ook lijkt .Net wat betreft services veel uitgebreider en zijn er voor Threads veel mooiere contructies dan in Java waar je alleen op een parameterloze manier threads kunt starten waardoor je weer properties moet setten van te voren.
Inherent aan de platform onafhankelijkheid. Op lang niet alle platformen zijn dezelfde properties aanwezig. Welke prioriteit je thread krijgt lijkt me echter redelijk ondergeschikt aan de mogelijkheden die java.util.concurrent bied.
Nu krijg ik waarschijnlijk het argument 'dat kun je zelf maken' wat waarschijnlijk ook wel valide is, aangezien het uiteindelijk allemaal x86 code wordt (of nouja vaak) maar .NET loopt zover ik weet gewoon nu een stuk voor op Java. In java is het veel moeilijker om dichter bij de compiler/computer te komen (dnek aan de handige compiler statements in [] in C#) Misschien dat het met Java7 weer dichter bij elkaar komt.
Helaas heb ik te weinig kennis van het .Net platform om met tegenvoorbeelden te komen. Ik heb geen zicht op dingen die niet in .Net zitten en wel in Java. Ik ben echter nog steeds niet overtuigd van de stelling dat Java achterop loopt. Veel voorbeelden zijn het gevolg van bewuste design beslissingen, syntactische suiker of onbekendheid met het andere platform.
(verder vind ik C#/.Net over het algemeen wat consistenter dan java, en is de MSDN in mijn ogen beduidend beter dan sun's java documentatie).
Mwah, subjectief. In essentie komen beiden op hetzelfde neer. Een duidelijk overzicht van properties, methoden en herarchie waardoor je makkelijk heen en weer kunt springen. Persoonlijk vind ik het mengen van VB en C# wat druk worden en de site zelf ook redelijk bloated, maar dat is zoals ik al zei persoonlijk. In 1996 heeft Sun iig een top beslissing genomen door niet alleen de taal te specificeren, maar ook JavaDoc te definieren waardoor er ook een standaard voor code documentatie was. Hierdoor lijkt alle java documentatie iig op elkaar.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

Janoz schreef op vrijdag 19 december 2008 @ 11:29:
[...]

Een callback is middels een interface te implementeren. Een delegate is dan ook niet meer dan syntactische suiker.
Je zegt het een beetje alsof syntactische suiker niet belangrijk is. Bottom line is en blijft dat een delegate stukken handiger is dan een interface waar de symantische betekenis van een interface verder onbelangrijk is (callbacks en notifications). Natuurlijk kun je tools gebruiken die dat voor je doen, maar feitelijk definieer je daarmee gewoon een nieuwe taal met die nieuwe features (dus blijkbaar zijn ze dan toch wel handig). Hetzelfde geldt voor closures - ik vind het een stuk praktischer om even een stukje inline code te schrijven (zoals bijv. een predicate voor een sorteer-algoritme) dan dat je met veel meer moeite een hele Comparable interface moet gaan zitten implementeren in een class, die je vervolgens moet constructen met lokale parameters omdat ie er anders niet bij kan, etc.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-09 16:59

Janoz

Moderator Devschuur®

!litemod

.oisyn schreef op vrijdag 19 december 2008 @ 12:21:
[...]

Je zegt het een beetje alsof syntactische suiker niet belangrijk is. Bottom line is en blijft dat een delegate stukken handiger is dan een interface waar de symantische betekenis van een interface verder onbelangrijk is (callbacks en notifications). Natuurlijk kun je tools gebruiken die dat voor je doen, maar feitelijk definieer je daarmee gewoon een nieuwe taal met die nieuwe features (dus blijkbaar zijn ze dan toch wel handig). Hetzelfde geldt voor closures - ik vind het een stuk praktischer om even een stukje inline code te schrijven (zoals bijv. een predicate voor een sorteer-algoritme) dan dat je met veel meer moeite een hele Comparable interface moet gaan zitten implementeren in een class, die je vervolgens moet constructen met lokale parameters omdat ie er anders niet bij kan, etc.
Onbelangrijk is het zeker niet. Bedenkt trouwens dat je een interface ter plekke kunt implementeren en dat je er dus niet perse een losse class van hoeft te maken. Het is echter net als het overloaden van operaties. Dat kan ook niet in Java, maar ik vind het geen valide argument om aan te geven 'dat java mijlenver achterop loopt'.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Janoz schreef op vrijdag 19 december 2008 @ 12:42:
[...]
maar ik vind het geen valide argument om aan te geven 'dat java mijlenver achterop loopt'.
Zeker niet aangezien het om 'advanced features' gaat, waarvan het maar de vraag is hoe vaak de gemiddelde programmeur ze gebruikt.

Overigens verwacht ik dat er na de komende modularisering van de core libraries een niet-backwards compatible Java versie uitgebracht zal worden, waarin men veel van de ideeen uit Groovy en Scala integreert. Scala, een statisch getypeerde dynamische taal met uitgebebreide ondersteuning voor functionele code die toch volledig Java compatible is, is geniaal.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 19-09 10:19
MBV schreef op donderdag 18 december 2008 @ 17:32:
Een vak debuggen zou geen kwaad kunnen, hoe vaak ik dat aan iemand heb moeten uitleggen is niet normaal meer :S Java ontwikkelen in Eclipse met printf-debugging, iemand van een jaar of 40 met 10 jaar java-ervaring :X

Bij de C# voordelen zit je volgens mij op dingen die platform-afhankelijk zijn (Java moet overal op kunnen draaien, niet alleen x86, dus memory-mgmt aanpassen is dan een stuk minder interessant, en big/little endian is 'leuk' met pointers), en die in 98% van de applicaties niet zinvol zijn. Het kan handig zijn, als een tussenstap tussen C++ en Java-achtige talen.

C++ zit dicht op de hardware, heeft geen VM, en geen standaard toolkit om GUI's en webservices (wat eigenlijk wel?) mee te schrijven. Er zijn genoeg standaarden voor (denk aan QT, of op een ander vlak de Posix-standaard), maar die zijn niet industrie-breed. Zit je weer met het java-probleem: welk framework pakken we, met welke voors en tegens.
Je draait nogsteeds code in een VM, het vm vangt alles af, je hoeft dus alleen te weten of het .Net vm big of little endian is, het VM zelf zorgt er wel voor dat het goed vertaald wordt naar de computer! (.Net draait bijvoorbeeld ook op de Xbox360 en op de Zune, ik dacht dat de 360 een powerpc achtige processor had en de zune heeft iig geen x86 processor ;). Het heeft dus zeker wel nut, .Net is dan ook net zo platform afhankelijk als Java! Verder zie ik niet hoe closures en delegates ooit platform afhankelijk kunnen zijn ;).
wackmaniac schreef op donderdag 18 december 2008 @ 19:25:
[...]
Dat brengt voor de RuG veel gelazer met zich mee; die draaien volledig op Debian Linux.
Verschilt misschien per faculteit maar op de informatica faculteit zijn ale systemen dual-boot Wingtips(Windows+Novel)/Linux (dacht suse of ubuntu).


@ Oisyn, ah C++09, ik zit er echt op te wachten! Maar wat duurt het lang voordat het komt, de nieuwste versie is toch al 6 jaar oud?

@Janoz: alles in hogere programmeer talen is syntaxtische suiker voor machine-code expressies, dat gaf ik ook al aan in mijn eerste post. Hoe je het nu implementeerd of maakt of bouwt in C++/C#/Java, met of zonder VM, het wordt uiteindelijk uitgevoerd als machine code. Dit is dan ook niet een erg sterk argument. Vooral ook omdat callback interfaces toch net even iets anders zijn dan delegates. (ok je kunt er dezelfde functionaliteit mee bouwen, maar het is geen foreach loop vs een for loop :) .

[ Voor 10% gewijzigd door roy-t op 19-12-2008 17:39 ]

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

roy-t schreef op vrijdag 19 december 2008 @ 17:36:
@ Oisyn, ah C++09, ik zit er echt op te wachten! Maar wat duurt het lang voordat het komt, de nieuwste versie is toch al 6 jaar oud?
Mwoa, C++03 was niet echt essentieel anders dan C++98. Enkel wat technicalities in de spec die zijn geupdate. C++09 heeft daarentegen wel tonnen aan nieuwe taalfeatures. Multithreaded memory model en library (werd echt tijd), lambda expressions en closures, concepts en variadic templates, r-value references en move construction, en nog wat kleinere dingetjes zoals static type inference.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
.oisyn schreef op vrijdag 19 december 2008 @ 17:55:
[...]
Multithreaded memory model en library (werd echt tijd), lambda expressions en closures, concepts en variadic templates, r-value references en move construction, en nog wat kleinere dingetjes zoals static type inference.
Wat dacht je van regular expressions en filesystem (directory traversal et cetera) support? Werd ook wel eens tijd ;-).

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 19-09 10:19
.oisyn schreef op vrijdag 19 december 2008 @ 17:55:
[...]

Mwoa, C++03 was niet echt essentieel anders dan C++98. Enkel wat technicalities in de spec die zijn geupdate. C++09 heeft daarentegen wel tonnen aan nieuwe taalfeatures. Multithreaded memory model en library (werd echt tijd), lambda expressions en closures, concepts en variadic templates, r-value references en move construction, en nog wat kleinere dingetjes zoals static type inference.
Klinkt heet! Wordt ook de oude code-base opgeschoond? (deprecated warning/compleet verwijderd van depricated programming constructs?)

En wanneer in 2009 kunnen we C++09 stabiele compilers (+ide's) verwachten)

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

PrisonerOfPain schreef op vrijdag 19 december 2008 @ 18:23:
Wat dacht je van regular expressions en filesystem (directory traversal et cetera) support? Werd ook wel eens tijd ;-).
Boost heeft dat allemaal. Eigenlijk wil je niet allemaal clutter en bloat aan een taal toevoegen die je ook makkelijk kan implementeren als support library. De taal zelf wil je schoon houden, en de officiele support library wil je ook daadwerkelijk universeel houden. Hoe meer je daar aan toevoegt, hoe groter de kans dat er devices zijn die geen C++ runtime library kunnen draaien. Dingen als een multi-threaded memory model kan je niet zo maar als library implementeren, daar moeten echt taal garanties voor worden gegeven.

Overigens heeft C++ vanaf TR1 al regex library support.

Misschien ben ik dom, maar wat is eigenlijk het nut van een (java) VM? Ik heb dat nooit zo begrepen. De x86 is toch ook een VM, welliswaar in hardware geimplementeerd en lekker snel. Iedereen lijkt daar altijd zo dol op; owh, java, VM, niiice... snap het niet helemaal. Enige dat ik kan bedenken is dat het gedistribueerde executables wat makkelijker maakt, i.e. je kan makkelijk een remote object downloaden en rechtstreeks draaien. Maar dat zou ook kunnen met een on-the-fly compiler. Bovendien, wie gebruikt dat nou echt veel? Platform onafhankelijk. Uhmm ja, mijn code ook. Secure. Dat is aan je OS lijkt me.

[ Voor 27% gewijzigd door Zoijar op 19-12-2008 19:18 ]


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 19-09 10:19
Zoijar schreef op vrijdag 19 december 2008 @ 19:07:
[...]

Boost heeft dat allemaal. Eigenlijk wil je niet allemaal clutter en bloat aan een taal toevoegen die je ook makkelijk kan implementeren als support library. De taal zelf wil je schoon houden, en de officiele support library wil je ook daadwerkelijk universeel houden. Hoe meer je daar aan toevoegt, hoe groter de kans dat er devices zijn die geen C++ runtime library kunnen draaien. Dingen als een multi-threaded memory model kan je niet zo maar als library implementeren, daar moeten echt taal garanties voor worden gegeven.

Overigens heeft C++ vanaf TR1 al regex library support.

Misschien ben ik dom, maar wat is eigenlijk het nut van een (java) VM? Ik heb dat nooit zo begrepen. De x86 is toch ook een VM, welliswaar in hardware geimplementeerd en lekker snel. Iedereen lijkt daar altijd zo dol op; owh, java, VM, niiice... snap het niet helemaal. Enige dat ik kan bedenken is dat het gedistribueerde executables wat makkelijker maakt, i.e. je kan makkelijk een remote object downloaden en rechtstreeks draaien. Maar dat zou ook kunnen met een on-the-fly compiler. Bovendien, wie gebruikt dat nou echt veel? Platform onafhankelijk. Uhmm ja, mijn code ook. Secure. Dat is aan je OS lijkt me.
Het nut van een VM is heel simpel.
-Je schrijft 1x code en die draait op elk systeem waar het VM op draait.
-Een vm kan je code beter optimalizeren voor snelheid. (je zou in theorie een java VM kunnen maken die via CUDA e.d. met je videokaart kan praten, dat VM zou er dan voor kunnen zorgen dat floatingpoint operaties op de videokaart worden uitgevoerd en de rest op de processor.)
-Een VM kan ook gebruikt worden voor extra veiligheid omdat een VM er voor kan zorgen dat de code niet buiten het VM komt. Ook kunnen applicaties die in een VM draaien meestal niet zomaar aan geheugen zitten dat niet door het VM gealloceerd is. (als in: slechte code, programma crashed, niet het hele systeem).

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

roy-t schreef op vrijdag 19 december 2008 @ 17:36:
[...]


Je draait nogsteeds code in een VM, het vm vangt alles af, je hoeft dus alleen te weten of het .Net vm big of little endian is, het VM zelf zorgt er wel voor dat het goed vertaald wordt naar de computer! (.Net draait bijvoorbeeld ook op de Xbox360 en op de Zune, ik dacht dat de 360 een powerpc achtige processor had en de zune heeft iig geen x86 processor ;). Het heeft dus zeker wel nut, .Net is dan ook net zo platform afhankelijk als Java! Verder zie ik niet hoe closures en delegates ooit platform afhankelijk kunnen zijn ;).
De Zune en XBox360 draaien het compact framework, dus ik weet niet of die alle leuke gimmicks die eerder zijn opgenoemd daarin draaien. O.a. delegates werken niet, de rest kan ik zo 1-2-3 niet vinden.

Acties:
  • 0 Henk 'm!

  • Salvatron
  • Registratie: April 2003
  • Niet online

Salvatron

Dispereert niet

roy-t schreef op vrijdag 19 december 2008 @ 23:14:
Het nut van een VM is heel simpel.
-Je schrijft 1x code en die draait op elk systeem waar het VM op draait.
Alsof compileren zo moeilijk is.
-Een vm kan je code beter optimalizeren voor snelheid. (je zou in theorie een java VM kunnen maken die via CUDA e.d. met je videokaart kan praten, dat VM zou er dan voor kunnen zorgen dat floatingpoint operaties op de videokaart worden uitgevoerd en de rest op de processor.)
Leuk dat dat in theorie kan maar als dat in de praktijk niet het geval is, dan is dat dus geen voordeel van een VM.
-Een VM kan ook gebruikt worden voor extra veiligheid omdat een VM er voor kan zorgen dat de code niet buiten het VM komt. Ook kunnen applicaties die in een VM draaien meestal niet zomaar aan geheugen zitten dat niet door het VM gealloceerd is. (als in: slechte code, programma crashed, niet het hele systeem).
Qua veiligheid is een VM wel goed, maar een programma dat crashed neemt het hele systeem in het algemeen al lang niet meer mee, dus dat is ook geen voordeel.

Ik zie de voordelen van een VM niet erg. Java-code kun je trouwens sowieso naar exe-files compileren.

Lucht en leegte, zegt Prediker, alles is leegte.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 02:49

.oisyn

Moderator Devschuur®

Demotivational Speaker

roy-t schreef op vrijdag 19 december 2008 @ 19:00:

Klinkt heet! Wordt ook de oude code-base opgeschoond? (deprecated warning/compleet verwijderd van depricated programming constructs?)
Dingen als vector<bool> blijven helaas bestaan. Verder wordt wel de hele library geüpdate voor de nieuwe constructs, met name r-value references en concepts.
En wanneer in 2009 kunnen we C++09 stabiele compilers (+ide's) verwachten)
Ik denk dat 2009 wel een beetje optimistisch is, er is een hoop om te implementeren. Daarentegen ondersteunt Comeau al wat C++0x extensions als type inference, en is er ConceptGCC, een gcc fork met concepts support. Gezien het feit dat concepts denk ik de grootste feature wordt om te implementeren heeft gcc er erg veel voordeel van dat er al een implementatie bestaat. Maar Comeau zal ook wel veel moeite gaan doen en EDG zal vast ook wel met een nieuwe front-end komen (waar oa Intel gebruik van maakt). Maar C++0x support in Visual Studio 2010 zit er denk ik niet in, hoewel ik wel aangenaam verrast was door hun std::tr1 support. Maar ja, dat was ook maar een kwestie van een library toevoegen.

[ Voor 6% gewijzigd door .oisyn op 20-12-2008 01:12 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1 2 3 4 Laatste