putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]
Jij zult zeker vervelende ervaringen hebben met Java en ik geloof ook zeker dat meer mensen die zullen hebben.Otis: Ik ken developers die naast veel geld ook erg veel tijd hebben gestoken in het zich specialiseren in Java development en daar nu van terugkomen.
LOLmaar het platform is Dead. Op de server, voor servlets, verliest het het steeds meer van PHP, en op win32 is het binnen een paar jaar totaal verdwenen. De embedded markt daargelaten.
Verder is je opmerking dat Java op win32 binnen een paar jaar verdwenen is helemaal een persoonlijke visie van jou. Java is helemaal niet gerelateerd aan wat voor platform dan ook. In de opkomende markt van desktop operating systems kan Java wellicht een belangrijke rol spelen.
Het punt is dat jij niets anders doet dan negatieve opmerkingen maken. Je maakt onjuiste vergelijkingen, presenteert ongeldige bewijzen die veel lijken op middeleeuwse bewijzen dat God bestaat. Ik weet genoeg negatieve aspecten van Java te noemen. Java is niet perfect. Het idee achter Java is wel perfect.Maar kunnen jullie eens ophouden met het blinde gepreek? Zodra het woord 'java' valt kun je bijkans geen negatieve opmerking er over maken
De manier waarop jij discussieerde is zeer onaangenaam. Jij probeert voortdurend argumenten te maken door te zeggen dat je mede discussie genoten er niets vanaf weten. Dat ik daarbij noem dat ik een degelijk opleiding heb genoten is niet meer dan logisch.of je moet je CV gaan trekken en aantonen dat je er wat vanaf weet.
Ik bezit behoorlijk wat kennis van Java en het Java Platform. In discussies zet ik die kennis in om dingen uit te leggen over de punten die ter discussie komen. Mag dat? Toevallig zijn er erg veel mensen geinteresseerd in deze ontwikkelingen.Nu moet ik respect opbrengen voor jou als 'vakgenoot' (sinds wanneer zijn wij vakgenoten, sorry hoor) terwijl je JOUW lezer niet in staat acht te oordelen over de snelheid van Java en hoe die snelheid tot stand komt, wat er aan verbetert kan worden etc.
Ik spreek wat betreft de run-time optimalisaties ook voortdurend over de toekomst. Ik vermoed dat deze in de toekomst na een lange ontwikkeling een pluspunt kunnen zijn. Ik noemde de 3D demo omdat dit aantoont dat de nieuwe ontwikkelingen toepassingen met grote data-sets mogelijk maakt. Mag dat niet?Real time optimizing is een interessant vakgebied, tezamen met compilerbouw en codeoptimizing. Dat realtime optimizing zeker belangrijk is is een feit (zie bv ook hoe SQLserver en andere databases compiled code 'tunen' aan de hand van statistics). Dat java echter nog een lange weg te gaan heeft met het platform (niet de taal) is echter ook realiteit. En een 3D demo met weet ik hoeveel faces/sec helpt daar echt niet bij.
Dit is weer zo'n stelling-name: ik ben beter dan jullie. Ik weet alles, waar jullie mee bezig zijn, ben ik allang overheen. Beste Otis, zo voer je geen discussie. Ik word er ook een beetje moe van om je daar steeds op te moeten wijzen, dus ik zal het vanaf nu niet meer doen.Echter, dat beschouwende, wat blijft er dan over als selling argument voor Java? Been there, done that, dus ik weet wat er te koop is
Naast Sun zijn er nog veel andere grote Java supporters. Heb je weleens op de site van IBM gekeken? Ben je weleens bij alle uitermate interessante projecten van Apache geweest? Weleens gekeken naar JBoss? Ik noem zo maar een paar zaken uit mijn hoofd.en voor het gemak ook niet, want je bent aangewezen op wat Sun aanlevert aan libs, en aan 3rd party gateways die je de mogelijkheid geven toch met native 3rd party tools/components te communiceren buiten de VM om.
Het punt is dat jij jouw persoonlijk mening ziet als de volledige waarheid. Denk er eens bij na dat ik jouw posts op dezelfde manier kan zien als jij mijn posts.Wat je er persoonlijk van vindt, by all means, het zal me wat. Maar zodra je op de preekstoel gaat staan en gaat verkondigen dat het heel wat is, kun je tegengas verwachten. Ga dan niet piepen als je dat ook daadwerkelijk krijgt.
Je gaat op veel van mijn concretere antwoorden geeneens in. Vind je het dan niet interessant meer? Als ik geen antwoord krijg op mijn reacties op jouw stellingen ga ik er van uit dat ik gelijk heb.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik doe trouwens Bedrijfskundige Informatica.
Expanding the inexpandable
Anyway Java is cool, Java is flexibel, en Java is langzaam. Als je toch duffe business logic maakt dan kun je dat het beste in java doen denk ik, dan snap je het over 2 maanden nog, dat is in c++ wel anders. Maarre, Doom 3, dat gaat dus nevernooit op java draaien.
Conclusie: als je lekker object georienteerd, snel gemakkelijk, uitbreidbaar en platformonafhankelijk je programma's in elkaar wilt zetten, dan pak je java, want die forceert dat allemaal, altijd goed dus. En als het echt real time moet, spelletjes en hartbewaking enzo, of een kritische memory management, dan pak je c++. Een echte bikkel kan het toch allebei, enne, een echte loser kan niet zonder COM components hahaha wat een non argumenten allemaal zeg.
Zo lekker vaag maar het is al vroeg
Verwijderd
En over wie had je wat te piepen?Je gaat op veel van mijn concretere antwoorden geeneens in. Vind je het dan niet interessant meer? Als ik geen antwoord krijg op mijn reacties op jouw stellingen ga ik er van uit dat ik gelijk heb.
Ik heb erg veel tekst gepost in deze thread, om nu dat te herkauwen in kleine beetjes als antwoorden op jouw antwoorden lijkt me wat onnodig. Ik blijf erbij dat zodra 'java' valt en je iets negatiefs zegt daarover, je door de advocates onder de zoden wordt gestopt. Lees dan je eigen posting hierboven eens na! Ik heb je en anderen gewezen op discussies zoals die al 2 jaar geleden zijn gevoerd in nl.comp.programmeren, waar ik een deel hier vanpostte, die over exact hetzelfde gingen. Puur als aanvulling. Tja.
Als ik dan 'alleen maar negatief' ben, so be it. Als ik negatief over java wil zijn dan doe ik dat, tenslotte heb ik kennis genoeg over de materie. Jij kennelijk ook en je hebt een ander oordeel.
En je mag van mij gelijk hebben hoor.
Wat me wel stoort is het feit dat ik geprobeerd heb de discussie naar een wat meer analytisch niveau te tillen dan het niveau van "het is sneller welles/nietes want mijn app blabla". Enfin, dat was een vergissing. Veel plezier nog in deze 'discussie'.
Over jouOtis: En over wie had je wat te piepen?
Ik probeer de discussie naar een technische analyse van Java en het Java Platform te leiden zonder vage uitspraken te doen. Dat lukt ook nietWat me wel stoort is het feit dat ik geprobeerd heb de discussie naar een wat meer analytisch niveau te tillen
HeheEnfin, dat was een vergissing. Veel plezier nog in deze 'discussie'..
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Het is nl nogal een pot verwijt de ketel verhaal.
Voor de laatste keer:
Onder de zoden gestopt? Mbravenboer en ik zijn de 1-sten die toegeven dat Java ook negatieve kanten heeft (ja echt waar staat in dit topic!) verder is wat jij doet meer een poging tot onder de zoden stoppen dan een poging tot een discussie. Als je discussie begint zonder open te staan voor andere ideeen, wat je duidelijk niet doet. begin dan ook niet aan een discussie.Op vrijdag 31 augustus 2001 00:15 schreef Otis het volgende:
[..]
Ik heb erg veel tekst gepost in deze thread, om nu dat te herkauwen in kleine beetjes als antwoorden op jouw antwoorden lijkt me wat onnodig. Ik blijf erbij dat zodra 'java' valt en je iets negatiefs zegt daarover, je door de advocates onder de zoden wordt gestopt.
Die gingen niet over exact hetzelfdeLees dan je eigen posting hierboven eens na! Ik heb je en anderen gewezen op discussies zoals die al 2 jaar geleden zijn gevoerd in nl.comp.programmeren, waar ik een deel hier vanpostte, die over exact hetzelfde gingen. Puur als aanvulling. Tja.
Kijk dat is nog eens een intelligent inzichtAls ik dan 'alleen maar negatief' ben, so be it. Als ik negatief over java wil zijn dan doe ik dat, tenslotte heb ik kennis genoeg over de materie. Jij kennelijk ook en je hebt een ander oordeel.
mmm, heb je het nu over jezelf? als er iemand is die veel blaat zonder wol ben jij het tot nu toe geweest. Je hebt meningen als feiten gepresenteerd en als het al feiten waren dan miste elke bewijs.En je mag van mij gelijk hebben hoor.Advocates krijgen van mij altijd gelijk als de discussie op het punt beland van "als ik geen antwoord krijg op mijn 1500 regelig repliek heb ik gelijk" haha
![]()
Je bedoelt die posting over dat c++ altijd sneller als java, daar is volgens mij al genoeg kritiek op geweest. Als ze dadelijk een java chip uitbrengen hangt je hele hypothese. Of je ook gelijk HEBT, is wat anders. Maar daarvoor verwijs ik graag terug naar een van mijn 1000 regelige postings in deze thread.
imo heb je alleen je gelijk proberen te halen door tehcnische termen aan te halen. Misschien moet je eens leren open te staan voor andere denkwijzenWat me wel stoort is het feit dat ik geprobeerd heb de discussie naar een wat meer analytisch niveau te tillen dan het niveau van "het is sneller welles/nietes want mijn app blabla". Enfin, dat was een vergissing. Veel plezier nog, 'vakgenoot'
Allereerst over de taal Java:
* Java maakt onderscheid tussen primitieven en objecten. Hierdoor kan je geen ints gebruiken in generieke code zoals verzamelingen. De int moet hiervoor geconverteerd worden naar een Integer object om hem in een verzameling te kunnen stoppen.
* Generics (ook wel geparameterizeerde typen genoemd) zullen pas komen in een latere versie van Java. Dit was voor versie 1 eigenlijk een onmisbare functie geweest. Nu moeten er enorm veel concessies gedaan worden om de code compatible te houden met oudere Java VMs. Dit zorgt ervoor dat generics niet op een fraaie manier geimplementeerd zijn (maar ondanks dat wel op een fraaie manier gebruikt kunnen worden).
* De reflectie implementatie is in feite een hack. Dit is een grote vergissing geweest en het had zeker een onderdeel moeten zijn van de eerste Java specificaties.
* Java heeft geen ondersteuning voor constanten, tenzij via een verwarrende syntax gedeclareerd. Vooral de mogelijkheid om final variabelen in een klasse op te nemen en ze daarna in de constructor een waarde te geven is verwarrend. Uberhaupt is het verwarrend dat je klasse variabelen zowel in de constructor als in de declaratie een waarde kunt geven.
* Java heeft geen ondersteuning voor contravariante argument type, waar theoretisch absoluut geen bezwaar tegen te maken is.
* Java heeft geen ondersteuning van enumeraties. Op zich is dat geen probleem omdat het op een fraaie object-georienteerde manier valt te realizeren, maar feit is dat dit niet gebeurt. De Java API zelf wemelt van de constante integers om zogenaamd als enumeratie vervangen te dienen. Ik weet niet of je weleens bent begonnen met tellen bij 0 totdat je moe was, maar ik kan je garanderen dat dat een behoorlijke enumeratie is!
* Java's systeem van constructor overerving is ongelukkig. Vaak bieden klassen veel constructor varianten. Als je deze klasse extend, moet je voor al deze gevallen opnieuw een constructor aanmaken. Daar word je niet blij van.
* Java heeft geen override aanduiding, waardoor het onduidelijk kan zijn of je daadwerkelijk iets override of niet. Zeker kan de compiler dit niet voor je controleren.
* java.lang.Object bevat wat merkwaardige methoden die daar naar mijn mening niet thuis horen. Allereerst is er een standaard equals methode. Dat vind ik niet prettig, want sommige objecten zijn gewoon niet vergelijkbaar. Bovendien is er geen mogelijkheid om af te dwingen dat een klasse een goede implementatie van een equals methode heeft. Eigenlijk zou de equals eruit moeten en vervangen moeten woorden door een interface. Hetzelfde verhaal geldt in feite voor hashCode en clone. Verder vind ik die methoden voor multi-threading in java.lang.Object niet fraai. Ook hiervoor zou eigenlijk een apart systeem gemaakt moeten worden, zodat niet alles een lock is. Laten we het maar helemaal niet gaan hebben op de uitermate obscure manier van serializatie via de Serializable interface.
* public static void main(String[] ps) is antiek. Java is OO, laten we dan ook applicaties op een OO manier starten. Het volgende idee:
1
2
3
4
| public interface Application
{
public void start(List<String> parameters);
} |
Weg magie. Weg onduidelijkheid.
Dat was een aardig lijstje niet? Ik weet zeker dat ik nog ergernissen ben vergeten, maar helaas kan ik ook niet door blijven denken. Ik ga even over op Java als Platform. Ik ga niet in op de massa design fouten in de Java bibliotheken, want dan zou ik een perpetuum mobile moeten zijn.
* Java bytecode is veel te veel Java bytecode. Java bytecode is duidelijk opgezet als bytecode voor gecompileerde Java. Dat is een ongelukkige beslissing, want Java staat al behoorlijk op een eiland doordat het in een VM draait. JNI is ook nogal een gevaarte, wat niet erg prettig werkt. Java bytecode zou een grotere instructieset moeten hebben, waardoor andere talen makkelijker naar Java bytecode kunnen worden gecompileerd. In feite komt het er op neer dat wanneer een taal op het Java Platform wil draaien, hij gecompileerd moet kunnen worden naar de taal Java.
* De Java VM is nogal vaak bezig met het opnieuw uitvinden van het wiel. Allereerst wordt elke applicatie in een aparte VM gedraaid (nog). Dit is uitermate ongelukkig. Ten tweede wordt code die naar native code gecompileerd is niet opgeslagen. Dit is begrijpelijk omdat dit zeer veel complicaties zou veroorzaken, maar het zou misschien wel mogelijk moeten zijn als je dit zelf expliciet aangeeft.
* Doordat Java zo enorm afhankelijk is van het Java Platform gaan er in de toekomst grote problemen komen. Als Java vervangen gaat worden door een beter alternatief en de implementaties van Virtual Machines langzaam stopt, wat gebeurt er dan met al je Java code? Een groot deel van de software die nu draait is nog steeds in Cobol geschreven. Hoe zal Java functioneren als verouderde taal?
* Een Java Virtual Machine zou eigenlijk verschillende modussen moeten hebben voor andere versies van Java (bijvoorbeeld 1 versus 2). Ooit komt er een tijd dat methodens en klassen die deprecated zijn, ook daadwerkelijk verwijderd gaan worden. Wat gebeurt er met alle bestaande applicaties die daar nog steeds gebruik van maken? Die werken gewoon niet meer.
Goed, dat was nogal een lijst he? Ik kan nog wel even doorgaan, maar helaas heb ik ook geen nachten de tijd
Voordat een grondige herziening moet plaatsvinden zijn we echter nog wel 5 - 7 jaar verder. Eerst moet het Java Platform stabiliseren. Dit zal zeker nog 2 a 3 jaar duren naar mijn mening.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
Wat verwijt ik de pot dan, als ketel zijnde? beetje ongenuanceerde opmerking.Op vrijdag 31 augustus 2001 00:26 schreef wasigh het volgende:
Otis, lees ff je eigen reacties door en kijk eens in de spiegel. Het is nl nogal een pot verwijt de ketel verhaal.
Voor de laatste keer:
Erm... ik ben veelal negatief geweest over java. Nu mag je jezelf op de borst slaan dat juist JIJ negatief bent over java, go ahead, maar wat is dan je probleem mbt mijn postings? Zijn ze te positief oid? En welke andere ideeen moet in omarmen? Die open deuren die ik al jaren zie in allerlei java publicaties? Die beloftes dat de 'volgende' JVM wel alles veel sneller zal doen e.d.? Als iemand mij oud nieuws vertelt, waarom moet ik daar dan nog op in gaan? omdat het voor jou NIEUW nieuws is? Dat is toch niet mijn probleem?[..]
Onder de zoden gestopt? Mbravenboer en ik zijn de 1-sten die toegeven dat Java ook negatieve kanten heeft (ja echt waar staat in dit topic!) verder is wat jij doet meer een poging tot onder de zoden stoppen dan een poging tot een discussie. Als je discussie begint zonder open te staan voor andere ideeen, wat je duidelijk niet doet. begin dan ook niet aan een discussie.
Mja, dat jij niet snapt wat ik bedoel met mn theoretische onderbouwing is niet mijn probleem hoor. Dat ik blaat zonder wol (?) is jouw constatering. Als iemand aankomt met zo'n verhaal over 3D rendering en ik zet daar mn vraagtekens bij, tja. Dat jij dat dan niet trekt, dat is OOK jouw probleem. Ik wil best daar ook een theoretische onderbouwing voor neerleggen maar ik denk dat dat verspilde moeite is. Sorry hoor, maar je gepiep hierboven is pure flamebait: AL mn meningen zijn als feiten gedeponeerd ZONDER ENIG bewijs. Tja:[otis]: En je mag van mij gelijk hebben hoor. Advocates krijgen van mij altijd gelijk als de discussie op het punt beland van "als ik geen antwoord krijg op mijn 1500 regelig repliek heb ik gelijk" haha [/otis]
mmm, heb je het nu over jezelf? als er iemand is die veel blaat zonder wol ben jij het tot nu toe geweest. Je hebt meningen als feiten gepresenteerd en als het al feiten waren dan miste elke bewijs.
Jehova: God bestaat!
Atheist: God bestaat NIET!
Jehova: Je levert geen enkel bewijs!
Welke kritiek? in de newsgroup bedoel je of hier? Het is een beschrijving van een theoretische situatie. En ja als de javachip er OOIT komt dan is het overbodige kost. Net zoals het niet opgaat als je java naar native code compileert en draait buiten de JVM om.[..]
Je bedoelt die posting over dat c++ altijd sneller als java, daar is volgens mij al genoeg kritiek op geweest. Als ze dadelijk een java chip uitbrengen hangt je hele hypotheseverder voor de 100* _daar ging dit topic niet over_
[..]
Tja... als je iets zegt wat niet waar is en ik toon aan dat dat niet waar is, en jij begint dan dat ik iets roep zonder enig bewijs, houdt het voor mij op hoor. Als jij denkt dat ik van niets weet en pas kom kijken heb je het mis. Ik hoor al jaren allerlei denkwijzen over het topic 'java', sommigen hebben gelijk, anderen niet. Het is maar een tool, een taal EEN platform. Niets meer. Daar lyrisch over doen is het meer ophemelen dan wat het feitelijk waard is. Dat is mn doel geweest in deze thread. Dat jij dat als aanval ziet op jouzelf is niet mijn probleem, ik heb helemaal niets tegen jou of jouw denkwijze. Wat me alleen stoort is dat ik geen negatief beeld mag schetsen van Java zonder dingen als:imo heb je alleen je gelijk proberen te halen door tehcnische termen aan te halen. Misschien moet je eens leren open te staan voor andere denkwijzen
naar mn kop te krijgen. En dan ga JIJ mij verwijten dat ik niet open sta voor andermans denkwijze. Laser toch op!mmm, heb je het nu over jezelf? als er iemand is die veel blaat zonder wol ben jij het tot nu toe geweest. Je hebt meningen als feiten gepresenteerd en als het al feiten waren dan miste elke bewijs.
Verwijderd
Ik hoop dat ze genoeg diskspace hebben gereserveerd voor GoTOp vrijdag 31 augustus 2001 01:52 schreef mbravenboer het volgende:
Einde zinloze discussie. Laten we het eens op een objectieve, technische en duidelijke manier over Java en het Java Platform hebben. Voor de liefhebbers wil ik graag nog even wat grote nadelen van het Java en het Java Platform vermelden. Ik hoop dat hieruit een zinvolle en interessante discussie kan ontstaan
.
Vaak gehoord als nadeel en OO-fetisjisten zeuren hier al jaren over: Java is niet puur OO want sommige basistypes zijn geen objects. Het is ook een lapmiddel geweest, om de JVM sneller te maken bij aritmetic operaties. Echter er valt wel wat voor te zeggen: als je gaat definieren wat een object is, dan kun je beredeneren dat (bv) een integer een vastomlijnd iets is, waar je, ookal creeer je derived classes, geen karakterwijzigingen aan kunt doen. In feite dus een base-class. Immers, je zou wel kunnen denken aan: baseclass number -> class integer, maar dan?Allereerst over de taal Java:
* Java maakt onderscheid tussen primitieven en objecten. Hierdoor kan je geen ints gebruiken in generieke code zoals verzamelingen. De int moet hiervoor geconverteerd worden naar een Integer object om hem in een verzameling te kunnen stoppen.
Dit is het aloude verhaal: "in C++ kun je wel X doen, in Java niet... Java sux". Generics lijken me hetzelfde toe als templates in C++. Op zich een krachtig instrument om taaltechnisch je expressiekracht te verhogen, echter noodzakelijk zijn ze geensinds. De theorie van OO/inheritance/polymorphism vereist geen generic types/templates. De enige reden dat templates/generic types er zijn / komen is het feit dat men middels taaltechnische truuks de hoeveelheid typewerk wil verkleinen. (want templates verlagen de hoeveelheid typewerk enorm, maar je kunt altijd om ze heen). Echter, als je kijkt naar hoe je je OO structuur ontwerpt, bv middels een NIAM/ER-model methodiek, dan is al wat rest die te implementeren en zodra je iets wijzigt, doe je dat eerst in het model, daarna genereer je de class definities opnieuw en DAARNA wijzig je de implementatie. Dat kun je doen met java 1.0. Daar heb je geen geparametriseerde types voor nodig.* Generics (ook wel geparameterizeerde typen genoemd) zullen pas komen in een latere versie van Java. Dit was voor versie 1 eigenlijk een onmisbare functie geweest. Nu moeten er enorm veel concessies gedaan worden om de code compatible te houden met oudere Java VMs. Dit zorgt ervoor dat generics niet op een fraaie manier geimplementeerd zijn (maar ondanks dat wel op een fraaie manier gebruikt kunnen worden).
Templates in C++ verlagen overigens drastisch de leesbaarheid van je code, daar code gegenereerd wordt middels de waarden van parameters. Een mens is erg slecht in het interpreteren van computertaal en heeft gem. gezien moeite met het interpreteren van dit soort constructies: wat is de class die wordt gegenereerd, bij inputparameters van deze en deze waarden?
Op zich is het niet raar dat er geen constantes in zitten. C++ heeft die ook niet. #define is in theorie een obsolete keyword, men wordt geacht enums te gebruiken. De reden hiervoor is is dat enums een type hebben en constants niet. Constants op zich zijn ook niet meer dan een taaltruuk: ipv '10' schrijf je "MAX_INTEGER_FOR_THIS_PURPOSE" oid. Als je nu variables gebruikt ipv de constante, ben je ook typesafe bezig. Vandaar dat final int MYMAXVALUE=3; op zich een betere keuze is dan #define MYMAXVALUE 3.* Java heeft geen ondersteuning voor constanten, tenzij via een verwarrende syntax gedeclareerd. Vooral de mogelijkheid om final variabelen in een klasse op te nemen en ze daarna in de constructor een waarde te geven is verwarrend. Uberhaupt is het verwarrend dat je klasse variabelen zowel in de constructor als in de declaratie een waarde kunt geven.
Dat de declaratie en de constructor variabele waarden toekenning toelaten is iets van C++ denk ik. Ik heb ook nooit begrepen waarom mensen in C++ bv in .h files allerlei dingen gaan verwoorden die in de .cpp thuis horen en vice versa.
Enums zijn in theorie alleen nodig indien je non-typesafe constantes toelaat, C++ doet dat dus wel, want #define mag bv. Java heeft al final type var=value dus op zich hoeft enum niet. Tuurlijk is het handig dat je een rijtje kunt genereren, maar als je goed kijkt naar wat een enum is, dan is het niets anders dan een class met het type van het enum met daarin de final variables.* Java heeft geen ondersteuning van enumeraties. Op zich is dat geen probleem omdat het op een fraaie object-georienteerde manier valt te realizeren, maar feit is dat dit niet gebeurt. De Java API zelf wemelt van de constante integers om zogenaamd als enumeratie vervangen te dienen. Ik weet niet of je weleens bent begonnen met tellen bij 0 totdat je moe was, maar ik kan je garanderen dat dat een behoorlijke enumeratie is!
Ikzelf gebruik enums nauwelijks, alleen in mn DemoGL scriptparser, in de lexical analyser tables. Maar je kunt goed zonder is mn ervaring.
Dit is denk ik het resultaat van de single inheritance: er is geen taalelement noodzakelijk om aan te geven dat je een bepaalde baseclass parent wilt instantieren, zoals bij C++ het geval is. Kennelijk heeft java de filosofie dat je altijd de uiterste leaf van een inheritance-hierarchie wil instantiaten (wat logisch klinkt* Java's systeem van constructor overerving is ongelukkig. Vaak bieden klassen veel constructor varianten. Als je deze klasse extend, moet je voor al deze gevallen opnieuw een constructor aanmaken. Daar word je niet blij van.
main is toch gewoon een default method van je .class of snap ik iets niet? je applicatie is toch het object, dus mag je een method daarin hebben die alles start, of je dat nu doet door een interface te implementeren of niet, is niet zo belangrijk. Als je nl. het via een interface doet, geef je daarmee aan dat er andere interfaces zijn die wellicht ook mogen. Waardoor executielogica extra complex wordt.* public static void main(String[] ps) is antiek. Java is OO, laten we dan ook applicaties op een OO manier starten. Het volgende idee:
code:
1 2 3 4public interface Application { public void start(List<String> parameters); }
Weg magie. Weg onduidelijkheid.
* filename.class moet hetzelfde zijn als de classname. Ik vind hoe het is opgelost in .NET een stuk fraaier en flexibeler.Dat was een aardig lijstje niet? Ik weet zeker dat ik nog ergernissen ben vergeten, maar helaas kan ik ook niet door blijven denken.
Bytecode is een ouder idee hoe je VM's maakt. Per definitie ging men er van uit dat je dan bytecode behappende VM's moest maken en dat als target moest nemen voor je taal/compiler. Dat de java bytecode aan de taal is vastgeklonken is niet vreemd: java is gepositioneerd jaren terug als alternatief platform voor windows, op thin clients. Dat is ook de reden geweest dat Sun tegen MS is gaan procederen mbt MS' truukje in J++ 6 dat java-p (platform) van java-t (taal) is losgesneden: java-t werd gebruikt om COM objects (elegante manier overigens, echt intens jammer dat dat niet meer kan) te bouwen en naar native x86 te compileren...Ik ga even over op Java als Platform. Ik ga niet in op de massa design fouten in de Java bibliotheken, want dan zou ik een perpetuum mobile moeten zijn.
* Java bytecode is veel te veel Java bytecode. Java bytecode is duidelijk opgezet als bytecode voor gecompileerde Java. Dat is een ongelukkige beslissing, want Java staat al behoorlijk op een eiland doordat het in een VM draait. JNI is ook nogal een gevaarte, wat niet erg prettig werkt. Java bytecode zou een grotere instructieset moeten hebben, waardoor andere talen makkelijker naar Java bytecode kunnen worden gecompileerd. In feite komt het er op neer dat wanneer een taal op het Java Platform wil draaien, hij gecompileerd moet kunnen worden naar de taal Java.
De filosofie was: java-t is de toegang tot java-p. Dus promoot java-t en omdat java-p nodig is, wordt java-p wijdverspreid, wat de bedoeling was. Ga je java-p open stellen voor andere talen, is java-t overbodig en mis je je drive voor java-p (want waarom een vm targeten als je ook native kunt compileren met die taal?) en java-t naar andere platforms laten vertalen levert niet de gewenste verspreiding van java-p op.
aparte VM's is een security issue, de 'sandbox', en is een overblijfsel van de applet-crap. Applets leken de initiator tot de java-overwinning maar werden de uiteindelijke ondergang op de desktop. Overigens is het gebruikelijk dat VM's in aparte sandboxes draaien. de MSDos VM die in NT/win2k zit draait ook alles in aparte processes. De JIT output opslaan zou nuttig kunnen zijn, mar dan alleen als je veelvuldig dezelfde handelingen doet. Maar aangezien je alles toch realtime optimized is opslaan overbodig.* De Java VM is nogal vaak bezig met het opnieuw uitvinden van het wiel. Allereerst wordt elke applicatie in een aparte VM gedraaid (nog). Dit is uitermate ongelukkig. Ten tweede wordt code die naar native code gecompileerd is niet opgeslagen. Dit is begrijpelijk omdat dit zeer veel complicaties zou veroorzaken, maar het zou misschien wel mogelijk moeten zijn als je dit zelf expliciet aangeeft.
Niet. Java is een 3rd generation language. Op den duur gaan die er allemaal uit. Hoe het gaat worden wordt een beetje aangegeven door bv Bizztalk server en Office XP developer: dmv diagrammen teken je de flow en de events in je programmatuur, of beter: je tekent de functionaliteit in de vorm van flow control en events. Dan implementeer je NU nog die events in 3rd generation language (office xp developer) maar in bizztalk server bv genereert de server zelf de XML parameters voor de engine. Programmeren hoeft niet meer.* Doordat Java zo enorm afhankelijk is van het Java Platform gaan er in de toekomst grote problemen komen. Als Java vervangen gaat worden door een beter alternatief en de implementaties van Virtual Machines langzaam stopt, wat gebeurt er dan met al je Java code? Een groot deel van de software die nu draait is nog steeds in Cobol geschreven. Hoe zal Java functioneren als verouderde taal?
Alles inkloppen is in feite een raar iets: kost erg veel tijd, levert erg veel fouten op en is erg complex. De komende jaren zal er een verschuiving plaatsvinden naar talen die expressief veel beter zijn. En face it: Cobol is erg goed in het kort opschrijven van wat er gedaan moet worden. Wil je dat doen in 3GL's dan ben je meer tijd kwijt. Het is het lot van elke 3GL op den duur, het hangt af van de grootte van de groep fetisjisten hoelang een taal het nog uithoudt. Tenslotte zijn er nog steeds mensen die het fijn vinden om in assembler te programmeren.
Klopt. Maar dat is de tand des tijds. Software heeft net als elk product een lifecycle. Is die ten einde dan is het einde verhaal, vervangen. Tuurlijk zijn er mensen die vast blijven houden aan oude spullen, net zoals er mensen zullen blijven die de DOS versie van Exact blijven gebruiken zullen er mensen blijven die in oude auto's rond rijden. Maar het blijven uitzonderingen. En deprecated is niet ambigu: 'it's dead, get over it': pas aan of blijf met oude troep werken.* Een Java Virtual Machine zou eigenlijk verschillende modussen moeten hebben voor andere versies van Java (bijvoorbeeld 1 versus 2). Ooit komt er een tijd dat methodens en klassen die deprecated zijn, ook daadwerkelijk verwijderd gaan worden. Wat gebeurt er met alle bestaande applicaties die daar nog steeds gebruik van maken? Die werken gewoon niet meer.
De les die .NET en de CLR leert is dat Java-p en java-t niet verbonden KUNNEN blijven. En Rational Rose, die de java-t compiler voor .NET gaat maken bewijst ook dat het beter is die 2 zaken los te laten. Sun echter houdt vast aan de koppeling want het is de enige manier om macht te houden over de gebruiker van java-t, maar ironisch genoeg is het ook de enige levensader van java-t: zodra java-t losgelaten wordt van java-p is java-t dead, en java-p al helemaal. Het wordt dan 'just another 3GL language', en daar zijn er al zoveel van (python, VB, C++, Pascal/delphi etc etc).Goed, dat was nogal een lijst he? Ik kan nog wel even doorgaan, maar helaas heb ik ook geen nachten de tijd. Ondanks alles is Java als taal en Java als Platform voor mij nog steeds een goede keuze. Ik kijk uit naar een omgeving die Java perfectioneert. Misschien wordt het in de toekomst tijd voor een grondige herziening van Java en het Java Platform, om de lessen van de afgelopen jaren te verwerken. Hierbij zou absoluut geen rekening gehouden moeten worden met oudere Java versies. Je zult zeggen, wel daar is .NET, maar daar ben ik het dan weer niet helemaal mee eens.
Als je de .NET documentatie doorneemt, zie je ook dat er een erg open architectuur is mbt native api/platform calling, het werken met win32 components etc. Java heeft dat niet, althans niet zo open.
Ik denk dat java-t in .NET wel succesvol zal zijn en dat (IMHO) zal blijken dat java-t mbv .NET beter zal functioneren (lees: naar de developer toe krachtiger zal zijn) dan met een native JVM.
over 5 a 7 jaar hoop ik toch echt niet dat men nog 3GL's gebruikt voor het schrijven van softwareVoordat een grondige herziening moet plaatsvinden zijn we echter nog wel 5 - 7 jaar verder. Eerst moet het Java Platform stabiliseren. Dit zal zeker nog 2 a 3 jaar duren naar mijn mening.
Als je daar naar kijkt zijn 3GL's inmens primitief en cryptisch en is er niet 1 2 3 een verband te zien tussen code en functionaliteit. Slimmere generatoren die omschrijvingen van de functionaliteit die dichter bij de oorspronkelijke leesbare tekst staan, kunnen behappen zijn de toekomst. Hoe naar dat wellicht ook klinkt
HeheIk hoop dat ze genoeg diskspace hebben gereserveerd voor GoT
Ik zie het punt niet helemaal waarom dit een argument voor een andere benadering van primitieve typen zou moeten zijn. Er zijn al klassen in java.lang die precies doen wat jij zegt. Door de klassen Integer, Long, Double, Float etc final te verklaren kunnen ze niet meer uitgebreid worden. Probleem opgelost. Helaas worden deze klassen dus niet gebruikt vanwege performance redenen (wat waarschijnlijk dus maar goed is ook) maar toch is het uitermate onprettig. Auto-boxing van C# vind ik eerlijk gezegd ook geen goed alternatief, dan doe ik het nog liever zelf. Dit auto-boxing zou wel eens hele ondoorzichtige performance problemen op kunnen gaan leveren.[Primitieven zijn geen objecten]Echter er valt wel wat voor te zeggen: als je gaat definieren wat een object is, dan kun je beredeneren dat (bv) een integer een vastomlijnd iets is, waar je, ookal creeer je derived classes, geen karakterwijzigingen aan kunt doen. In feite dus een base-class. Immers, je zou wel kunnen denken aan: baseclass number -> class integer, maar dan?
Qua functionaliteit inderdaad wel, qua implementatie absoluut niet. Er wordt geen code gegeneerd voor elk type parameter, het zijn dus geen 'templates'.Generics lijken me hetzelfde toe als templates in C++.
Mee eens, maar ze dragen wel zeer sterk bij aan de prettige werking van de taal. Als er geen generics zijn moet je voortdurend kiezen tussen twee alternatieven die je eigenlijk allebei niet wilt: generieke klassen met casts of voor elk type een andere verzameling. Samen met het ontbreken van covariante return typen was dit werkelijk een nacht-merrie.[Generics]echter noodzakelijk zijn ze geensinds.
Mee eens, het punt is echter dat door de zeer drastische inperking van de hoeveelheid typewerk generics enorm bijdragen aan het ontwikkelen van generieke code. Vroeger offerde ik regelmatig vele regels op om casts te vermijden. Dat is nu niet meer nodig. Uiteraard levert dit theoretisch geen verrijking op, maar fijn is het wel.De theorie van OO/inheritance/polymorphism vereist geen generic types/templates. De enige reden dat templates/generic types er zijn / komen is het feit dat men middels taaltechnische truuks de hoeveelheid typewerk wil verkleinen. (want templates verlagen de hoeveelheid typewerk enorm, maar je kunt altijd om ze heen).
Dit is ook 1 van de redenen geweest waarom de JSR een andere aanpak heeft gekozen. Als ik het goed begrepen heb is het de bedoeling dat C# vrijwel hetzelfde systeem gaat bevatten.Templates in C++ verlagen overigens drastisch de leesbaarheid van je code
Maar dragen wel sterk bij aan de onderhoudbaarheid van de code.Constants op zich zijn ook niet meer dan een taaltruuk
Enigszins mee eens, maar toch ook weer niet helemaal. Uiteraard zouden constanten allereerst type-safe moeten zijn, maar het hoofdpunt is dat je op deze manier taal-technisch aan kunt duiden wat het doel is van de variabele. Final variabelen zijn niet per definitie bedoeld als constanten (wel, dat ligt er uiteraard aan wat je onder een constante verstaat).Vandaar dat final int MYMAXVALUE=3; op zich een betere keuze is dan #define MYMAXVALUE 3.
Ik was trouwens nog 1 belangrijk punt vergeten waar vast veel mensen over vallen:
* Methode parameters zouden standaard final moeten zijn (Gelukkig kent Java uberhaupt al geen out parameters).
Uiteraard, zo implementeer ik enums ook altijd. Het punt is echter dat het gros van de programmeurs dit niet doet (naar voorbeeld van de Java API). Wellicht dat het daarom een onverstandige keuze is geweest om er geen aparte taal-constructie voor te maken. Uiteraard is die taal-technisch gezien absoluut overbodig en misschien zelfs lelijk. In de praktijk kan het misschien net de stap zijn waardoor mensen 'int enums' gaat vermijden.Enums zijn in theorie alleen nodig indien je non-typesafe constantes toelaat, C++ doet dat dus wel, want #define mag bv. Java heeft al final type var=value dus op zich hoeft enum niet. Tuurlijk is het handig dat je een rijtje kunt genereren, maar als je goed kijkt naar wat een enum is, dan is het niets anders dan een class met het type van het enum met daarin de final variables.
Hoezo? Ik zie niet in waarom Java deze filosofie zou moeten hebben?Kennelijk heeft java de filosofie dat je altijd de uiterste leaf van een inheritance-hierarchie wil instantiaten (wat logisch klinkt ), ipv een class in het midden.
Als je vanuit een sub class de super constructor aanroept krijgt 'this' een instantie van de klasse van de subclass. In de super klasse is 'this' ook altijd van het type van de subklasse. Als je gewoon vanuit een methode de constructor van een klasse aanroept die ook nog extenties heeft, is dat geen enkel punt. Je krijgt dan gewoon een instatie van die klasse.Roep je een constructor aan van een baseclass van een zekere class, wat voor object krijg je dan? de baseclass of de zekere class?
Ik vind dat een programma voldoet aan een bepaald type. Hij kan namelijk opgestart worden. Dit gebeurt nu door een static main methode, wat een conventie is. Door de main methode geef je aan dat deze klasse gestart kan worden als een applicatie. Voor dergelijke aanduidingen zijn nu echter juist interfaces uitgevonden! Via een interface (en de nodige methoden daarin) kan je op een standaard OO manier aangeven dat iets een applicatie is. Dat vind ik persoonlijk een stuk mooier.main is toch gewoon een default method van je .class of snap ik iets niet? je applicatie is toch het object, dus mag je een method daarin hebben die alles start, of je dat nu doet door een interface te implementeren of niet, is niet zo belangrijk.
Dat hoeft niet percee. Er kan gewoon in java.lang een interface Application opgenomen worden. Deze interface moet geimplementeerd worden door een applicatie. Dit komt in feite op hetzelfe systeem neer als bij Applets en Servlets.Als je nl. het via een interface doet, geef je daarmee aan dat er andere interfaces zijn die wellicht ook mogen
De rest van je reacties over het Java Platform komt later. Ik moet eerst ff weg
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
.edit: oh ik zie dat jullie al het punt hebben bereikt waarop jullie elkaar niet meer 'uitschelden'
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.
De discussie begint pas net interressant te worden
1
2
3
4
5
6
7
| idletime t.net servers normaal: 70% discussie*: 1% *) de discussie in kwestie gaat tussen mbravenboer en otis, over de plus en minpunten van Java (en C) |
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.
Het is gewwon onzinnig om ellenlang te discussieren over programmeertalen, elke taal heeft zijn voor- en nadelen! Java is bijv. heel mooi voor os-onafhankelijke niet of nauwelijks GUI georienteerde programma's of applets, terwijl C++ en Delphi bijvoorbeeld veel krachtiger zijn m.b.t. GUI-ontwerp en performance. Dan hebben we nog functionele programeertalen die m.b.t. AI ver boven Java, C++ en Delphi uitsteken. Aan de andere kant hebben die functionele talen (zoals Prolog) ook hun beperkingen m.b.t. GUI, complexiteit etc.Op vrijdag 31 augustus 2001 16:20 schreef OiSyN het volgende:
code:
1 2 3 4 5 6 7 idletime t.net servers normaal: 70% discussie*: 1% *) de discussie in kwestie gaat tussen mbravenboer en otis, over de plus en minpunten van Java (en C)
DE ideale taal en development environment die voor alle soorten toepassingen geschikt is bestaat eenvoudig niet... Het is onzin dat Java C++ verslaat, beide zullen naast elkaar blijven bestaan, hooguit de vorm van een van beide of beide zal veranderen...
Cogito Ergo Credo
Verwijderd
Ga jij je mond eens spoelen daarna mag je weer met de grote meneren meepraten! Discussieren is altijd zinnig.Op vrijdag 31 augustus 2001 16:28 schreef jopiek het volgende:
Het is gewwon onzinnig om ellenlang te discussieren over programmeertalen...
Paar puntjes
• Java is een veel nettere taal dan C++. De standaard C++ is verdwenen, er zijn te veel "toevoegingen" in de syntax gekomen in de loop der tijden (denk bijv. aan namespaces) wat de portabiliteit niet ten goede komt.
• De syntax van C++ is in opzet compacter (vind ik persoonlijk mooier).
• De OO van C++ is verder doorgevoerd. (denk bijv. aan multiple inheritance) Dat soort functionaliteit mis je in Java echter niet als je C++ niet gewend ben.
• De snelheid van Java zal alleen maar toenemen, de toekomst zal het leren of het voor real-time applicaties geschikt gaat worden
• Tot nog toe is C++ een taal die in elke laag van een PC-systeem tot zijn recht kan komen,
• Deze discussie is een welles-nietes verhaal geworden Laten we daar maar dus mee ophouden
Daarmee bedoel ik vooral mbravenboer, Otis en wasigh (alfabetische volgorde, expres).
Het komt er op neer dat iedereen zijn eigen voorkeur heeft. Je kunt ook een discussie gaan voeren of een Ferrari beter is dan een Lamborghini. Dat is allemaal zo betrekkelijk dat de discussie een smaak-discussie wordt, en over smaak valt niet te twisten zoals wij allemaal donders goed weten
Mijn voorstel is
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
pfff. stop flattering yourself.beelzebubu:
Ga jij je mond eens spoelen daarna mag je weer met de grote meneren meepraten! Discussieren is altijd zinnig.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Verwijderd
De ulitmate gui-toolkit al zeg ik het zelf...
www.fox-toolkit.org
Als je verder kijkt dan dit ene nadeel, doch zeker niet onbelangrijk, zie je dat er verder eigenlijk geen nadelen zijn. Dingen als multiple-inheritance is theoretisch heel leuk, maar praktisch wordt het niet tot nauwelijks toegepast. Een workaround hiervoor in Java is gebruik maken van interfaces. (inherit van grootste class en mik er de methods van de kleinste class bij)
Oh, ja mbravenboer: JSP => Servlet
Hey ... maar dan heb je ook wat!
En dit heb je met welke benchmark aangetoond? 2 identieke programma's ?Op vrijdag 31 augustus 2001 16:59 schreef FlamerX het volgende:
De traagheid van Java wordt ook nog eens aangetoond door de traagheid waarmee dingen gecompiled worden. Ben je in C++ meteen klaar met compilen, in Java kun je voor een beetje programma wel ff wachten.
Verwijderd
Vind ik eigenlijk niet. Hangt er een beetje vanaf hoe je dermee omgaat. Door op de juiste punten typedefs toe te passen hou je het geheel lekker overzichtelijk. En een andere container gebruiken is daarna helemaal peanuts.Op vrijdag 31 augustus 2001 11:25 schreef Otis het volgende:
Templates in C++ verlagen overigens drastisch de leesbaarheid van je code, daar code gegenereerd wordt middels de waarden van parameters. Een mens is erg slecht in het interpreteren van computertaal en heeft gem. gezien moeite met het interpreteren van dit soort constructies: wat is de class die wordt gegenereerd, bij inputparameters van deze en deze waarden?
Uhm??Op zich is het niet raar dat er geen constantes in zitten. C++ heeft die ook niet. #define is in theorie een obsolete keyword, men wordt geacht enums te gebruiken.
#define is inderdaad niet 'the way' voor constanten.
That aside. Enum is verder ook leuk omdat de betere compilers ook warnings kunnen geven als je niet de hele enum range behandeld in een switch.
Deel programming style, deel luiheid (gok ik) en het kan noodzakelijk zijn voor inlining.Ik heb ook nooit begrepen waarom mensen in C++ bv in .h files allerlei dingen gaan verwoorden die in de .cpp thuis horen en vice versa.
Ik niet volg niet? Zou het eerder omgekeerd doen. Enums zijn leuk voor typesafe constanten en variabelen die alleen waarden uit de enum mogen hebben. Laat ik hier wel bij zeggen dat sommige compilers hier niet zo netjes mee omspringen.Enums zijn in theorie alleen nodig indien je non-typesafe constantes toelaat,
Je kunt inderdaad zonder. Maar in sommige situaties zijn ze iets handiger (vind ik) zie ook mijn opmerking hierboven. Verder is het minder typen dan tig #defines's of const int's.Ikzelf gebruik enums nauwelijks, alleen in mn DemoGL scriptparser, in de lexical analyser tables. Maar je kunt goed zonder is mn ervaring.
Discussie loopt wel leuk afgezien van de occasional welles/nietes geemmer
Verwijderd
Nou ja.... meteen klaar.... dat klopt als je Hello World aan het compilen bent.... maar met grotere programmas zoals CAD systemen, duurt dat wel effiesOp vrijdag 31 augustus 2001 16:59 schreef FlamerX het volgende:
De traagheid van Java wordt ook nog eens aangetoond door de traagheid waarmee dingen gecompiled worden. Ben je in C++ meteen klaar met compilen, in Java kun je voor een beetje programma wel ff wachten.
Ondertussen gaat de discussie meer over technische, vrij principiele voor of nadelen van Java. Het is absoluut geen krachtmeting tussen twee talen.jopiek: Het is gewwon onzinnig om ellenlang te discussieren over programmeertalen, elke taal heeft zijn voor- en nadelen!
Volwassen he?oh ik zie dat jullie al het punt hebben bereikt waarop jullie elkaar niet meer 'uitschelden'
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Uiteraard, altijd leuk als mensen meedoen.drm: Mag ik even?!
</li><li> Java is een veel nettere taal dan C++.
Dit valt onder "mag ik mijn mening even verkondigen"
Dat vind ik wel een leuke opinie. Ik vraag me af of ik het daar mee eens moet zijn. Ik denk het niet eigenlijk• De OO van C++ is verder doorgevoerd. (denk bijv. aan multiple inheritance) Dat soort functionaliteit mis je in Java echter niet als je C++ niet gewend ben.
Vind ik wel meevallen. Na mijn verhaal over de negatieve aspecten van Java, is Otis daar goed op in gegaan. Daar heb ik weer op gereageerd zonder dat dit een welles nietes discussie is geworden. Het is een interessante discussie over de keuzes die bij Java genomen zijn.• Deze discussie is een welles-nietes verhaal geworden Laten we daar maar dus mee ophouden
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Ik ben wel erg benieuwd hoe je bij deze ervaringen komt? Over het algemeen compileert Java volgens mij juist veel sneller. Niet zozeer omdat Java snel is, maar omdat Java naar bytecode compileren behoorlijk wat eenvoudiger is dan C++ naar native code compileren.FlamerX: De traagheid van Java wordt ook nog eens aangetoond door de traagheid waarmee dingen gecompiled worden. Ben je in C++ meteen klaar met compilen, in Java kun je voor een beetje programma wel ff wachten.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
typedefs mogen strict genomen van straustrupp ook nietOp vrijdag 31 augustus 2001 17:12 schreef izniegoed het volgende:
Beetje oftopic-ish... maar een paar kleine correcties
[templates suck volgens otis]
Vind ik eigenlijk niet. Hangt er een beetje vanaf hoe je dermee omgaat. Door op de juiste punten typedefs toe te passen hou je het geheel lekker overzichtelijk. En een andere container gebruiken is daarna helemaal peanuts.
Maar waar ik op doelde was: templates genereren code, maar welke is pas duidelijk zodra je de templates doorneemt. Dat kan lastig zijn (idem voor operator overloads). Te pas en te onpas gebruiken kan leesbaarheid verlagend zijn.
*oef*[voor constantes gebruik je enums in C++]
Uhm??Heb je het const voorvoegsel gemist? C++ heeft wel constanten. Kan gerust const int whatever = 1 zeggen. #define is AFAIK niet obsolete. Is deel van de preprocessor die van C is meegenomen. Compleet met #ifdef stuff etc.
#define is inderdaad niet 'the way' voor constanten.
inderdaad.
Als je typesafe constantes toelaat heb je geen enums nodig, want alle constante's hebben al een type. Enums zijn dan alleen 'handig' voor rijtjes. Meer niet.[Otis zegt Enums zijn in theorie alleen nodig indien je non-typesafe constantes toelaat]
Ik niet volg niet? Zou het eerder omgekeerd doen. Enums zijn leuk voor typesafe constanten en variabelen die alleen waarden uit de enum mogen hebben. Laat ik hier wel bij zeggen dat sommige compilers hier niet zo netjes mee omspringen.
Verwijderd
Nee, omdat C++ optimalisaties doorvoert vooraf en bij Java die worden uitgesteld tot de JIT. De Microsoft Java compiler bv deed bijna niet aan optimizing vooraf, die deed puur een syntax checking / bytecode emitting. En dan ben je gauw klaarOp vrijdag 31 augustus 2001 17:31 schreef mbravenboer het volgende:
[..]
Ik ben wel erg benieuwd hoe je bij deze ervaringen komt? Over het algemeen compileert Java volgens mij juist veel sneller. Niet zozeer omdat Java snel is, maar omdat Java naar bytecode compileren behoorlijk wat eenvoudiger is dan C++ naar native code compileren.
Verwijderd
Hieruit concludeer ik dat jij de discussie wilt stoppen, puur en alleen omdat jij er geen nut inziet en omdat jij het niet interessant vindt.Op vrijdag 31 augustus 2001 16:33 schreef drm het volgende:
[.... een paar puntjes ....]
Het komt er op neer dat iedereen zijn eigen voorkeur heeft. Je kunt ook een discussie gaan voeren of een Ferrari beter is dan een Lamborghini. Dat is allemaal zo betrekkelijk dat de discussie een smaak-discussie wordt, en over smaak valt niet te twisten zoals wij allemaal donders goed weten
This proves my point.Op vrijdag 31 augustus 2001 16:38 schreef drm het volgende:
pfff. stop flattering yourself.
Ik kan nu alle FAQs wel voor je opnoemen maar daar zit niemand op te wachten. In short: als jij de discussie niet interessant vindt dan doe je och gewoon niet mee? Sim-pel.
rot op man, een Lamborghini heeft dus echt wel meer PK'tjes dan zo'n zielig ferraritje, bovendien zijn ze nog mooier ookOp vrijdag 31 augustus 2001 16:33 schreef drm het volgende:
Het komt er op neer dat iedereen zijn eigen voorkeur heeft. Je kunt ook een discussie gaan voeren of een Ferrari beter is dan een Lamborghini. Dat is allemaal zo betrekkelijk dat de discussie een smaak-discussie wordt, en over smaak valt niet te twisten zoals wij allemaal donders goed weten
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.
Bij ons school zeggen de leraren Java het ook, en we hebben het getest met een programma met vergelijkbare/zelfde logaritmes en uitwerking en ongeveer zelfde aantal regels code en C++ was (en is) nog steeds sneller.
Nu helpt de trage en sterk verouderde Java VM (onder Windows) er natuurlijk ook niet veel aan...
Toch zal Java uiteindelijk wel sneller worden (en minder geheugen nodig hebben) dan C++, maar dan moet M$ ook eens een goede VM implementeren (en regelmatig opnieuw uitbrengen, dus niet zoals win2k waar er maar 1 is die is mee geleverd).
Verwijderd
Neen! Beiden zijn talen voor algemene doeleinden. Als je nu zegt C en FORTRAN zijn gewoon voor andere doeleinden, dan was ik het met je eens geweest.Op zaterdag 01 september 2001 17:49 schreef 4of10 het volgende:
Toch vind ik dat dit gewoon appels met peren vergelijken is. Java en C++ zijn gewoon voor andere doeleinden.
Hey ... maar dan heb je ook wat!
Weet je nog dat er pas een door mij opgeworpen discussie over GUI's was??? Java en C++ hebben wel degelijk andere doeleinden...Op zondag 02 september 2001 01:21 schreef Killemov het volgende:
[..]
Neen! Beiden zijn talen voor algemene doeleinden. Als je nu zegt C en FORTRAN zijn gewoon voor andere doeleinden, dan was ik het met je eens geweest.
Met Java krijg je brakke GUI's en met C++ slechte OS-onafhankelijkheid... alle talen hebben hun pro en cons als je dat niet erkent ben je in ieder geval geen software engineer...
Over 10 jaar vertellen ze iedereen dezelfde verhaaltjes over Java, dat Java verslagen wordt door taal X.
Ik vind dit allemaal maar onzinnige discussies....
en beelzebuppie discusseren is lang niet altijd zinnig, alleen constructieve discussie is zinnig! Dit is een dom welles nietes verhaal waarbij mensen vooral hun kortzichtigheid en voorkeuren profileren...
Cogito Ergo Credo
Over het algemeen is het gebrek aan ervarenheid en kennis die de zogenaamde nadelen van een platform veroorzaken. Met behulp van de juist bibliotheken kan je in C++ prachtige OS-onafhankelijke GUIs schrijven. Met behulp van voldoende kennis en ervaring kan je met Swing zeer goede userinterfaces schrijven in Java. Dat vrijwel alle userinterfaces in Java brak zijn wordt veroorzaakt door:jopiek: Met Java krijg je brakke GUI's en met C++ slechte OS-onafhankelijkheid...
1. Gebruik van AWT
2. Onvoldoende kennis bij gebruik van Swing.
Diegene waarop je reageert deed helemaal geen uitspraak over voor en nadelen van talen. Hij beweerde dat C++ en Java voor een groot deel in het dezelfde ontwikel-domein voorkomen. Misschien heeft hij daar wel gelijk in.alle talen hebben hun pro en cons als je dat niet erkent ben je in ieder geval geen software engineer...
Ik begrijp niet dat de geachte lezers dit nog als een dom welles nietes verhaal ervaren. In het begin is er nogal een oninteressant gezeur ontstaan tussen Otis/Wasigh/mij maar daarna zijn er enkele reacties geweest waarin een duidelijke technische bespreking van Java is geweest. Dat jij die niet interessant vind, vind ik weer niet interessanten beelzebuppie discusseren is lang niet altijd zinnig, alleen constructieve discussie is zinnig! Dit is een dom welles nietes verhaal waarbij mensen vooral hun kortzichtigheid en voorkeuren profileren...
Ik denk overigens dat je niemand in deze thread hebt horen beweren dat of C++ of Java de ultieme taal is zonder voor- of nadelen. De opmerkingen die je daarom maakt over kortzichtigheid vallen daarom volgens mij een beetje in de categorie 'standaard wijze mannen opmerkingen', zoals je die ook vaak tegenkomt op de front-page van Tweakers.net.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Verwijderd
Als ik iets in C++ schrijf onder DOS en ik wil interrupts aanroepen dan gaat dat wel lukken. Het is geen pure C++, okay, en het is ook niet standaard, maar het gaat wel lukken. Is er ook een manier om dit te doen met Java? Ik ga b.v. een GUI voor DOS niet in Java schrijven...Op zondag 02 september 2001 01:21 schreef Killemov het volgende:
[..]
Neen! Beiden zijn talen voor algemene doeleinden. Als je nu zegt C en FORTRAN zijn gewoon voor andere doeleinden, dan was ik het met je eens geweest.
Maar is dat nou zo'n algemeen doeleind dan?Op zondag 02 september 2001 13:20 schreef 4of10 het volgende:
Als ik iets in C++ schrijf onder DOS en ik wil interrupts aanroepen dan gaat dat wel lukken. Het is geen pure C++, okay, en het is ook niet standaard, maar het gaat wel lukken. Is er ook een manier om dit te doen met Java? Ik ga b.v. een GUI voor DOS niet in Java schrijven...
Dat dacht ik niet.
Java draait in een virtuele machine. Deze virtuele machine moet compleet onafhankelijk zijn van je echte machine. (Voor zover dat mogelijk is, je ben nu eenmaal gebonden aan de grenzen die aan de echte machine zitten.) Een interrupt aanroepen is dus wel gebonden aan je fysieke machine en dus niet mogelijk.Op zondag 02 september 2001 13:20 schreef 4of10 het volgende:
[..]
Als ik iets in C++ schrijf onder DOS en ik wil interrupts aanroepen dan gaat dat wel lukken. Het is geen pure C++, okay, en het is ook niet standaard, maar het gaat wel lukken. Is er ook een manier om dit te doen met Java? Ik ga b.v. een GUI voor DOS niet in Java schrijven...
Nogmaals: Zowel Java als C++ zijn generiek toepasbare talen, er zijn slechts kleine gebieden waar maar een van beide toegepast kan worden. Directe interactie met de hardware is dus een gebied waar je Java niet op toe kunt passen. En dynamisch loaden van classes is een gebied waar je C++ niet op toe kunt passen. Zo zijn er nog wel een aantal verschillen te noemen en toch zijn beide talen geschikt voor het oplossen van algemene IT-problematiek.
(Waarbij ik van mening ben dat het ontwikkelen in Java veel gemakkelijker is dan ontwikkelen in C++.)
Oh, ja ... Wie is er ook alweer geen software engineer? Kun jij hier over meepraten? [topic=213889/7/25]
Hey ... maar dan heb je ook wat!
Java is een mooiere, cleanere taal dan C++. Veel nuttige functionaliteit direct in de taal (threading, synchronisatie, string manipulatie). Nadeel is dat de programma's niet direct op de proc draaien.
Met C++ heb je veel meer mogelijkheden om jezelf in de vingers te snijden. Dat maakt programmeren lastiger. Maar je hebt ook veel meer vrijheid en je kunt applicaties maken die de mogelijkheden van een machine volledig benutten.
Als er een taal is die zo clean is als Java met de vrijheid van C++ dan teken ik daar gelijk voor.
Volgens mij komt D daarbij aardig in de buurt.Op zondag 02 september 2001 14:29 schreef traviandus het volgende:
Als er een taal is die zo clean is als Java met de vrijheid van C++ dan teken ik daar gelijk voor.
Verwijderd
Ik denk dat C# daar dan het dichst bij in de buurt komt (ik ken D niet)Op zondag 02 september 2001 14:29 schreef traviandus het volgende:
Als er een taal is die zo clean is als Java met de vrijheid van C++ dan teken ik daar gelijk voor.
D schijnt een soort C++ + Java te zijn/worden.Op zondag 02 september 2001 15:29 schreef Zef het volgende:
Ik denk dat C# daar dan het dichst bij in de buurt komt (ik ken D niet)
Maar ik geloof dat de ontwikkeling net gestart is, wat ik ervan gezien heb was erg interessant.
Zijn er ergens beetje representatieve voorbeelden te vinden van D, wat het gaat worden (qua taal, dan)? Kon nix vinden...
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Verwijderd
Het is een doeleinde ja. Of deze nu vaak voor komt ja of nee, het is een doeleinde. Er er nog wel meer te vinden dit was een voorbeeld. En wat vind jij onder 'algemeen doeleind' vallen? Een doeleinde is een doeleinde en wat ik als voorbeeld nam gaat dus gewoon niet met Java.Op zondag 02 september 2001 13:30 schreef ACM het volgende:
Maar is dat nou zo'n algemeen doeleind dan?
Dat dacht ik niet.
Ja, daarom zeg ik dus ook, voor andere doeleinden ...Killemov:
Java draait in een virtuele machine. Deze virtuele machine moet compleet onafhankelijk zijn van je echte machine. (Voor zover dat mogelijk is, je ben nu eenmaal gebonden aan de grenzen die aan de echte machine zitten.) Een interrupt aanroepen is dus wel gebonden aan je fysieke machine en dus niet mogelijk.
*zucht* ... moet ik hier nou echt serieus op ingaan? Nou vooruit dan, ik zal maar ff replyen...Oh, ja ... Wie is er ook alweer geen software engineer? Kun jij hier over meepraten? C++ vraagje
Nee, als beroep ben ik geen software engineer nee (ik lijdt onder de 2e fase @ school dus ik werk niet bij een software bedrijf nee). Maar 'geen software engineer'... hehe, je moest eens weten. En ja ik kan in die thread meepraten ja, ik ben echt niet 'bang' voor assembler of zo hoor ... Ik vond het echt nogal een trieste vraag hoor ... Nou ja, dan doe ik er ook maar eentje he: Kun jij een eigen Operating System schrijven is dan mijn vraag?
Zoeken op D schiet ook niet zo op he?drm: Zijn er ergens beetje representatieve voorbeelden te vinden van D, wat het gaat worden (qua taal, dan)? Kon nix vinden...
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Zo fantastisch is D trouwens niet... Heb behoorlijk wat kritiek erop gelezen. Volgens mij wordt het ook niet echt serieus ondersteund door een of andere bedrijf of instelling.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
ExactlyOp zondag 02 september 2001 19:39 schreef mbravenboer het volgende:
tomato is ook niet voor niets Google spammer.
Same here.Zo fantastisch is D trouwens niet... Heb behoorlijk wat kritiek erop gelezen.
nee idd, ik denk dat het daarom ook totaal niet echt van de grond zal komen. Het lijkt meer iemand met het idee dat C++ eens een keer gereviseerd moet worden, dan dat er grote namen en standaardenorganisaties er mee bezig zijn.Op zondag 02 september 2001 19:39 schreef mbravenboer het volgende:
Volgens mij wordt het ook niet echt serieus ondersteund door een of andere bedrijf of instelling.
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.
Misschien niet goed genoeg mijn best gedaan ?Op zondag 02 september 2001 19:35 schreef tomato het volgende:
http://www.digitalmars.com/d
Waarom schiet zoeken op D niet op?
Interessant linkje. ff doorspitten...
Tja, je zal het toch ff de tijd moeten gunnen. Hoe lang bestaat Java nou al? Toch al wel een jaartje of 7, zo niet langer (exact weet ik het niet, er zijn er vast wel een paar die het wel weten).OiSyN:
nee idd, ik denk dat het daarom ook totaal niet echt van de grond zal komen. Het lijkt meer iemand met het idee dat C++ eens een keer gereviseerd moet worden, dan dat er grote namen en standaardenorganisaties er mee bezig zijn.
Was sun toen al zo bekend? Het duurt gewoon een tijdje voor zoiets echt van de grond komt. En als de programmers-community het een goede uitweg vindt, dan is het binnen no-time een veel-gebruikte taal (om maar ff een open deur in trappen)
iig ga ik er even wat over lezen.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
• Types:
• Empty Statementimaginaryan extended floating point value, but with imaginary type
een ; achter een while is gewoon leesbaar
• Statements:
Goto? Goto wilden we toch niet meer? Geeft toch ontraceerbare code
• Arrays
Wat is nou het verschil tussen "Pointers" en "Dynamic arrays"?
oftewel:
1
2
| int[] a; // is a nou niet gewoon een pointer? int *p; // net als dat je p kan laten wijzen naar het eerste element in een array? |
Zie evt. ook "Rectangular Arrays":
• Classes(Dynamic arrays are implemented as pointers to the array data.)
Waarom zou je de get- en set-methods achterwege laten?
1
2
3
4
5
6
7
8
9
10
11
12
| class Abc
{ int myprop;
void property(int newproperty) { myprop = newproperty; } // set'er
int property() { return myprop; } // get'er
}
/*
which is used as:
*/
Abc a;
a.property = 3; // equivalent to a.property(3)
int x = a.property; // equivalent to int x = a.property() |
Verlies je op deze manier niet behoorlijk wat structuur? Waar trek je nu de lijn tussen methode en eigenschap
• Embedding D in HTML
drm.setFacialExpression ( 6 x
of moest het nou drm.facialExpression = 6 x
• D Class Library
hmmm...No user interface windowing classes
GUI styles, philosophies, etc., are not portable from machine to machine. A GUI Windows app should look like a Windows app when running on a Windows machine. It should not look and feel like a Mac app unless it is running on a Mac. Attempts to create a common GUI class library between Windows, Mac, and other GUI operating systems have all to my knowledge failed.
Java has a successful GUI class library, but does so by creating its own GUI with its own look and feel. This approach is fine for a web language, but not for a systems language like D is.
• Acknowledgements
Hierbij wil ik even zeggen dat ik trots ben op mijn neef, Jan Knepper
------------------------------------------------------
Ik geef verder dit project, deze taal erg veel kans. De robuustheid, het accent op X-platform, X-OS en X-systeem implementatie, de zachte compatibiliteit met C en C++ en de eigenschappen van Java die D ondersteunt, stemmen mij gerust dat deze taal absoluut voeten aan de grond gaat krijgen.
------------------------------------------------------
Vergeef mij mijn off-topic geblaat
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Verwijderd
Omdat alleen de algemene ideeen over de taal nog maar zijn bedacht. Er is nog geen praktische implementatie, protype model of zelfs maar een prototype-API te vinden.Op zondag 02 september 2001 19:39 schreef mbravenboer het volgende:
tomato is ook niet voor niets Google spammer.
Zo fantastisch is D trouwens niet... Heb behoorlijk wat kritiek erop gelezen. Volgens mij wordt het ook niet echt serieus ondersteund door een of andere bedrijf of instelling.
Daar kan je dus als bedrijf nog niks mee.
Als het echt interessant is dan komt D vanzelf wel opzetten. Ik denk echter dat het voorlopig (komende 5 jaar) nog niks wordt. Het is namelijk door een persoon bedacht, niet door een standaard-/ISO-organisatie. Dan maak je niet veel kans vrees ik, in de grote wereld.
Tijdje geleden was er overigens ook een topic over D (geopend door /me *
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.
O ja op welke punten??Op maandag 03 september 2001 12:15 schreef OiSyN het volgende:
hah, mijn eigen bedachte taal, C *= 6, is veel beter dan D
Welke eigenschappen zou een perfecte taal hebben?
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Je kunt er zo iig voor kiezen of je het wilt gebruiken of niet.Op maandag 03 september 2001 10:07 schreef drm het volgende:
Ik kom wel een paar rare dingen tegen, zeg:
• Statements:
Goto? Goto wilden we toch niet meer? Geeft toch ontraceerbare code
Het verschil lijkt mij dat bij "Dynamic arrays" het geheugenmanagement voor je geregeld wordt.• Arrays
Wat is nou het verschil tussen "Pointers" en "Dynamic arrays"?
oftewel:
code:
1 2 int[] a; // is a nou niet gewoon een pointer? int *p; // net als dat je p kan laten wijzen naar het eerste element in een array?
Zie evt. ook "Rectangular Arrays":
properties vind ik ook behoorlijk evil, maar je kunt natuurlijk gewoon nog get/set functies kunt gebruiken als je wilt.• Classes
Waarom zou je de get- en set-methods achterwege laten?
Verlies je op deze manier niet behoorlijk wat structuur? Waar trek je nu de lijn tussen methode en eigenschap
inderdaad nogal• Embedding D in HTML
drm.setFacialExpression ( 6 x)
of moest het nou drm.facialExpression = 6 xzijn?
Ik vind het verder wel een mooie taal.
Uiteraard. Maar is het niet verstandig om dat soort dingen gewoon achterwege te laten. Leer jezelf gestructureerd te coden, waarbij (dacht ik) goto het evilste van het evilste was.marcusk:
(over goto)
Je kunt er zo iig voor kiezen of je het wilt gebruiken of niet.
Zit wat in....Sterker nog, je hebt gelijkover dynamic arrays vs. pointers
Het verschil lijkt mij dat bij "Dynamic arrays" het geheugenmanagement voor je geregeld wordt.
Uiteraard. Eigenlijk zelfde verhaal als "goto"over properties
properties vind ik ook behoorlijk evil, maar je kunt natuurlijk gewoon nog get/set functies kunt gebruiken als je wilt.
Als iemand me het uit kan leggen wat ze daar bedoelen, graagover embedded HTML
inderdaad nogal![]()
Ik absoluut ook. Wat mij betreft introduceren ze het liever gister dan vandaagIk vind het verder wel een mooie taal.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
neem bijvoorbeeld deze constructie:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| int i, j;
for (i = 0; i < numElements1; i++)
{
for (j = 0; j < numElements2; j++)
{
if (elements1[i] == elements2[j])
goto gevonden;
}
}
// hier code voor geval niet gevonden
...
return;
gevonden:
// doe wat met de info |
daar kan ik wel dit van maken:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| int i, j;
bool gevonden = false;
for (i = 0; i < numElements1 && gevonden; i++)
{
for (j = 0; j < numElements2; j++)
{
if (elements1[i] == elements2[j])
{
gevonden = true;
break;
}
}
}
if (!gevonden)
{
// code voor geval niet gevonden
...
return;
}
// doe wat met de info |
maar dat is dus wel een test per iteratie van i plus nog een test aan het eind meer. Of ze moeten iets maken dat je uit meerdere loops kunt breaken (zoals ook min of meer in D zit ingebouwd)
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.
Je bedoelt return zoals de rest van de wereld die gebruikt? Mensen die het nut van een afzonderlijke functiecall kennen? Dit doe je dus gewoon zo:Op maandag 03 september 2001 23:39 schreef OiSyN het volgende:
Of ze moeten iets maken dat je uit meerdere loops kunt breaken (zoals ook min of meer in D zit ingebouwd)
1
2
3
4
5
6
7
8
9
10
11
12
13
| Element* MyClass::FindMatchingElement()
{
int l_Index1;
int l_Index2;
for(l_Index1 = 0; l_Index1 != ListCount1; l_Index1++)
for(l_Index2 = 0; l_Index1 != ListCount2; l_Index2++)
if(Elements1[l_Index1] == Elements2[l_Index2])
return Elements1[l_Index1];
// If none found...
return NULL;
} |
* curry684 vraagt zich af waarom zoveel mensen een excuus blijven zoeken om de grootste fout van C++ te mogen blijven gebruiken...
GOTO is heiligschennis. Punt.
Echte puristen vinden mijn voorbeeld ook fout, want dan mag er maar 1 return statement per functie bestaan: en dan moet je inderdaad aan de bools. Alles beter dan goto daarentegen.
1
2
3
4
5
6
7
8
9
| for ( int i = 0; i < numElements1; i++)
{
for ( int j = 0; j < numElements2; j++)
{
if (elements1[i] == elements2[j])
return true;
}
}
return false; |
En als je dat niet wilt is er na de goto opeens niet meer duidelijk of het nou gevonden was of niet. Dat is dus het probleem met goto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| int i, j, k;
for (i = 0; i < numElements1; i++)
{
for (j = 0; j < numElements2; j++)
if (elements1[i] == elements2[j])
goto gevonden;
for (k = 0; k < numElements3; k++)
if (elements1[i] == elements3[j])
goto gevonden;
/*
etcetera (afgezien van code efficientie, maar goed)
*/
}
// hier code voor geval niet gevonden
...
/* Stel nou dat ik hier nog niet wil returnen... */
gevonden:
/* was het hier nou gevonden of niet? En wat was er gevonden? How the h*ll ga je dat traceren? */ |
Waar blijft nou het hele idee van beslissingen maken op grond van variabelen? Je mag NOOIT je informatie verliezen op basis van assumpties! Grootse fout in programmeren!
Amencurry648:
GOTO is heiligschennis. Punt.
Zit wel wat in, maar vind ik ietwat overdreven. In grotere functies kan je idd beter aan de bools, maar in kleine overzichtelijke functies kun je net zo goed meerdere returns hebben.Echte puristen vinden mijn voorbeeld ook fout, want dan mag er maar 1 return statement per functie bestaan: en dan moet je inderdaad aan de bools. Alles beter dan goto daarentegen.
edit:typo
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Verwijderd
Debatable....Op dinsdag 04 september 2001 00:50 schreef curry684 het volgende:
* curry684 vraagt zich af waarom zoveel mensen een excuus blijven zoeken om de grootste fout van C++ te mogen blijven gebruiken...
GOTO is heiligschennis. Punt.
Ik blijf goto een zinnig functie vinden zolang de programmeur weet waar ie mee bezig is.
Als je niet weet waar je mee bezig bent is goto inderdaad niet altijd zinnig maar om het dan meteen algemeen te verdoemen...
Ach, die discussie is al eerder geweest, doe maar niet
Maar daarom zit die functie toch juist in de taal?!? Ik vind het behoorlijk conservatief om vanuit puristisch oogpunt functies in een taal niet te gebruiken. Liever tien returns dan vijftienhonderd zinloze booleans. Dan verlies ik pas het overzicht!Echte puristen vinden mijn voorbeeld ook fout, want dan mag er maar 1 return statement per functie bestaan: en dan moet je inderdaad aan de bools. Alles beter dan goto daarentegen.
misschien is M$'s C# wat voor je.. eerste lezingen waren veelbelovend. Soort Java voor op de proc.Op maandag 03 september 2001 10:30 schreef beelzebubu het volgende:
[..]
Omdat alleen de algemene ideeen over de taal nog maar zijn bedacht. Er is nog geen praktische implementatie, protype model of zelfs maar een prototype-API te vinden.
Daar kan je dus als bedrijf nog niks mee.
Als het echt interessant is dan komt D vanzelf wel opzetten. Ik denk echter dat het voorlopig (komende 5 jaar) nog niks wordt. Het is namelijk door een persoon bedacht, niet door een standaard-/ISO-organisatie. Dan maak je niet veel kans vrees ik, in de grote wereld.
Tijdje geleden was er overigens ook een topic over D (geopend door /me *)
IOTDomotica op YT. Podcast bij Kophi: ook op YT.
Nee, want die booleans hebben namelijk functie, dus zolang jij ze op een slimme c.q. gestructureerde manier gebruikt zijn ze altijd beter dan de goto.beelzebubu:
[..]
Debatable....
Ik blijf goto een zinnig functie vinden zolang de programmeur weet waar ie mee bezig is.
Als je niet weet waar je mee bezig bent is goto inderdaad niet altijd zinnig maar om het dan meteen algemeen te verdoemen...
Ach, die discussie is al eerder geweest, doe maar niet
[..]
Maar daarom zit die functie toch juist in de taal?!? Ik vind het behoorlijk conservatief om vanuit puristisch oogpunt functies in een taal niet te gebruiken. Liever tien returns dan vijftienhonderd zinloze booleans. Dan verlies ik pas het overzicht!
En ik begrijp er helemaal niets van, dat goto nog in C, C++ en dus ook in D zit. Het verleidt je tot ongestructureerd programmeren. Het is gewoon een ongeschreven regel om geen goto te gebruiken. En er is geen enkele programmeur die het nodig heeft. Het is gewoon een lame uitkomst in alle gevallen.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Je kunt natuurlijk 1 bool declareren die EndLoop heet en deze 1500 keer recyclen...Op dinsdag 04 september 2001 10:11 schreef beelzebubu het volgende:
Liever tien returns dan vijftienhonderd zinloze booleans. Dan verlies ik pas het overzicht!
Just a thought...
Verwijderd
""""ik heb geen mening over C#""""Op dinsdag 04 september 2001 10:17 schreef nigelator het volgende:
[..]
misschien is M$'s C# wat voor je.. eerste lezingen waren veelbelovend. Soort Java voor op de proc.(Jaja, M$ zijn na apers, ik weet het
)
ofzo.....
(anders gaat dit topic dicht wegens overmatig geflame)
Verwijderd
Klopt op zichOp dinsdag 04 september 2001 10:50 schreef curry684 het volgende:
[..]
Je kunt natuurlijk 1 bool declareren die EndLoop heet en deze 1500 keer recyclen...
Just a thought...
Maar ook dan, dat sommige mensen "goto" irritant vinden, okee, kan ik inkomen. Maar return, daar kan ik dan ook echt niet iets van snappen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| int search_in_array(int value, int array[], int array_length)
{
int i;
for (i=0;i<array_length;i++)
if (array[i]==value)
return i;
return -1; /* not found */
}
of
int search_in_array(int value, int array[], int array_length)
{
int i, j=-1;
for (i=0;i<array_length;i++)
if (array[i]==value)
{
j = i;
break;
}
return j;
} |
Dat is toch beiden 100% gestructureerd en duidelijk? Ik zie niet in wat er fout is met meerdere returns in een functie. De functie wordt er korter van en verder niet minder zinnig ofzo....
Nogmaals, in goto zie ik ook niets fout mits je het goed gebruikt, iets wat veel programmeurs niet kunnen. Maar ik zie wel in dat je het ongestructureerd zou kunnen vinden. Okee. Maar dat zie ik hier niet... Ik vind dat tweede voorbeeld onoverzichtelijker dan het eerste door de overmaat aan dubbele variabelen.
Of is "break" gebruiken ook onoverzichtelijk? En what about "continue"? Zeflde soort functies.....
het was maar een simpel voorbeeldje hoor, stel nou dat je in die loops allemaal variabelen hebt die in die andere functies zijn uitgerekend enzo?! Dan gaat een aparte functie dus niet werken, of je moet al die dingen in een class/struct gooien, wat de leesbaarheid ook niet echt ten goede komt. Begrijp me niet verkeerd hoor, ik gebruik goto ook maar eens in de 3 jaar ofzo, maar ik ben nogal efficient ingesteld wat programmeren betreft, dus als ik zoiets als wat ik hierboven beschreven heb tegen kom gebruik ik gewoon goto.Op dinsdag 04 september 2001 00:50 schreef curry684 het volgende:
[..]
Je bedoelt return zoals de rest van de wereld die gebruikt? Mensen die het nut van een afzonderlijke functiecall kennen? Dit doe je dus gewoon zo:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13Element* MyClass::FindMatchingElement() { int l_Index1; int l_Index2; for(l_Index1 = 0; l_Index1 != ListCount1; l_Index1++) for(l_Index2 = 0; l_Index1 != ListCount2; l_Index2++) if(Elements1[l_Index1] == Elements2[l_Index2]) return Elements1[l_Index1]; // If none found... return NULL; }
* curry684 vraagt zich af waarom zoveel mensen een excuus blijven zoeken om de grootste fout van C++ te mogen blijven gebruiken...
GOTO is heiligschennis. Punt.
Echte puristen vinden mijn voorbeeld ook fout, want dan mag er maar 1 return statement per functie bestaan: en dan moet je inderdaad aan de bools. Alles beter dan goto daarentegen.
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.
Het argument van de purist in deze is dat de eenduidige structuur verloren gaat: tegenover een single point of entry moet volgens deze leer EEN single point of exit staan. An sich voor sequence- en flowdiagrammen bepaald niet onlogisch overigens. Wel kut om te programmeren, en soms pijnlijk voor je performance.Op dinsdag 04 september 2001 12:00 schreef beelzebubu het volgende:
Ik zie niet in wat er fout is met meerdere returns in een functie. De functie wordt er korter van en verder niet minder zinnig ofzo....
Continue is een stuk onduidelijker als break, en voor de puristen ook verboden terrein. Break is legaal bij gratie van switch, waar je niet zonder kunt...Of is "break" gebruiken ook onoverzichtelijk? En what about "continue"? Zeflde soort functies.....
Overigens mag het ook bekend zijn dat puristen enkel en alleen langzame bank- en DB-applicaties schrijven en geen benul van snelheid hebben.
Verwijderd
Niet echt een overtuigend argument imhoOp dinsdag 04 september 2001 12:23 schreef curry684 het volgende:
Continue is een stuk onduidelijker als break, en voor de puristen ook verboden terrein. Break is legaal bij gratie van switch, waar je niet zonder kunt...
Dat zal ik lekker als excuss aanvoeren om heerlijk eigenwijs en antipuristisch gewoon lekker continue, break en return door de hele functie heen te gebruiken.Overigens mag het ook bekend zijn dat puristen enkel en alleen langzame bank- en DB-applicaties schrijven en geen benul van snelheid hebben.
Overigens, ik heb weleens geprobeerd me aan het "een return per functie" te houden maar de functie werd echt een ramp.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| functie()
{
if (...)
{
bladieblo();
if (...)
{
nogmeerbla();
if (...)
{
enzovoorts();
if (...)
{
en_hier_doet_de_functie_pas_wattie_moet_doen();
}
}
}
}
} |
al die if()s zijn nodig om het volgen van lege pointers enzo tegen te gaan. if (variable != NULL)... if (variable->bla > waarde).... enzovoorts. Ik kon ze ook niet echt in een if() kwijt....
Heel irri en onoverzichtelijk werd het allemaal. Uiteindelijk dus maar gewoon weer teruggegaan naar het heel-veel-returns-per-functie gebeuren, werd er een stuk overzichtelijker van
1
2
3
4
5
6
7
8
9
10
11
12
| functie()
{
if (!...) return;
bladieblo();
if (!...) return;
nogmeerbla();
if (!...) return;
enzovoorts();
if (!...) return;
en_hier_doet_de_functie_pas_wattie_moet_doen();
} |
Ik bedoel maarOp dinsdag 04 september 2001 12:23 schreef curry684 het volgende:
Overigens mag het ook bekend zijn dat puristen enkel en alleen langzame bank- en DB-applicaties schrijven en geen benul van snelheid hebben.
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.
Verwijderd
Op dinsdag 04 september 2001 12:23 schreef curry684 het volgende:
Break is legaal bij gratie van switch, waar je niet zonder kunt...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| boolean = FALSE;
switch (value)
{
case 1:
if (!boolean)
{
boolean=TRUE;
bla1();
}
case 2:
if (!boolean)
{
boolean=TRUE;
bla2();
}
case 3:
if (!boolean)
{
boolean=TRUE;
bla3();
}
} |
Mijn stelling:
• Voorkom goto ten allen tijde.
Er is altijd een oplossing, en bij die oplossing is altijd te traceren wat het verloop van het programma is (hetzij door variabelen, hetzij door diepere geneste control-structures, etc).
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Ik ben eigenlijk wel benieuwd naar de reden van deze afschuw van C# (althans, dat maak ik op uit je woordenbeelzebubu: """"ik heb geen mening over C#""""
(anders gaat dit topic dicht wegens overmatig geflame)
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Je kunt je D-code in HTML zetten en hiermee "mooi" opmaken, en functies/methodes kun je links van maken naar andere classes (dus andere HMTLfiles) en deze HTML files kun je laten compilen, de compiler haalt dan alle HTML zooi weg.Op maandag 03 september 2001 14:08 schreef drm het volgende:
over embedded in HTML
Als iemand me het uit kan leggen wat ze daar bedoelen, graag
[..]
denk ik
interessant draadje btw
/edit
en toen zag ik de datum van de reply voor mij
A Breakbeat A Day Keeps Religion Away.
Beide fout.Op dinsdag 04 september 2001 12:00 schreef beelzebubu het volgende:
[..]
Maar ook dan, dat sommige mensen "goto" irritant vinden, okee, kan ik inkomen. Maar return, daar kan ik dan ook echt niet iets van snappen.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22int search_in_array(int value, int array[], int array_length) { int i; for (i=0;i<array_length;i++) if (array[i]==value) return i; return -1; /* not found */ } of int search_in_array(int value, int array[], int array_length) { int i, j=-1; for (i=0;i<array_length;i++) if (array[i]==value) { j = i; break; } return j; }
Dat is toch beiden 100% gestructureerd en duidelijk? Ik zie niet in wat er fout is met meerdere returns in een functie. De functie wordt er korter van en verder niet minder zinnig ofzo....
1
| std::find( array, array+array_length, value ); |
En ja, als ik een collega jouw oplossingen zie gebruiken dan laat ik hem dat wijzigen.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Revisie traject (bij benadering):Op zondag 02 september 2001 20:48 schreef OiSyN het volgende:
[..]
nee idd, ik denk dat het daarom ook totaal niet echt van de grond zal komen. Het lijkt meer iemand met het idee dat C++ eens een keer gereviseerd moet worden, dan dat er grote namen en standaardenorganisaties er mee bezig zijn.
2002-2004 Voorstellen.
2004/5 Technical report
2005/6 Drafting
2007 Nieuwe C++ standaard.
Overigens, er is maar 1 standaardorganisatie mee bezig, ISO.
Grootste ellende met revisies van C en C++ is overigens dat er veel software in geschreven was. Als er net zo vaak een nieuwe C of C++ revisie zou uitkomen als er Java revisies komen, dan zou je echt heel veel klachten krijgen van mensen die oude code hebben.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
goto zit in C en C++, omdat het nuttig is voor niet-menselijke programmeurs. De originele Cfront voor C++ genereerde geen assembly, maar C code vol met goto's. Dat soort tijdelijke code hoeft niet leesbaar te zijn, die wordt toch meteen gedeleted als die gecompileerd is.Op dinsdag 04 september 2001 10:28 schreef drm het volgende:
[..]
En ik begrijp er helemaal niets van, dat goto nog in C, C++ en dus ook in D zit. Het verleidt je tot ongestructureerd programmeren. Het is gewoon een ongeschreven regel om geen goto te gebruiken. En er is geen enkele programmeur die het nodig heeft. Het is gewoon een lame uitkomst in alle gevallen.
Waarom zit er in elke assembly een unconditional JUMP ?
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Fout. De standaard C++ is gekomen in 1998, maar de taal stond al in 1996 vast. Alleen de STL (=library) is daarna toegevoegd. Netter is overigens een beperkt begrip.Op vrijdag 31 augustus 2001 16:33 schreef drm het volgende:
Mag ik even?!
Paar puntjes
• Java is een veel nettere taal dan C++. De standaard C++ is verdwenen, er zijn te veel "toevoegingen" in de syntax gekomen in de loop der tijden (denk bijv. aan namespaces) wat de portabiliteit niet ten goede komt.
Ik heb in omgevingen met 15M regels C gewerkt, waar ze eigen namespace regels hadden bedacht. Die leken verdacht veel op C++ regels, alleen waren ze veel pijnlijker omdat de compiler niet meewerkte.
Werken in een taal zonder namespaces is net zoiets als werken in een OS zonder directories.
En van C++, Pascal, of C# niet? 90% van alle snelheidswinst is Hardware• De syntax van C++ is in opzet compacter (vind ik persoonlijk mooier).
• De OO van C++ is verder doorgevoerd. (denk bijv. aan multiple inheritance) Dat soort functionaliteit mis je in Java echter niet als je C++ niet gewend ben.
• De snelheid van Java zal alleen maar toenemen, de toekomst zal het leren of het voor real-time applicaties geschikt gaat worden
Sterker nog, het is een taal die bijna elke laag van een systeem tot zn recht komt, ook als een systeem maar 256K geheugen heeft, geen beeldscherm, ...• Tot nog toe is C++ een taal die in elke laag van een PC-systeem tot zijn recht kan komen,
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Typedefs mogen best van Stroustrup. Ik heb hem ze zelf zien gebruiken...Op vrijdag 31 augustus 2001 18:05 schreef Otis het volgende:
[..]
typedefs mogen strict genomen van straustrupp ook niet
Maar waar ik op doelde was: templates genereren code, maar welke is pas duidelijk zodra je de templates doorneemt. Dat kan lastig zijn (idem voor operator overloads). Te pas en te onpas gebruiken kan leesbaarheid verlagend zijn.
[..]
En teveel van alles gebruiken is slecht voor de leesbaarheid. Bv. (((((((((1)))))))))
Dat is nou net de ellende, dat alle constantes hetzelde type hebben. Waarom zou enum filetype( file, dir ) en enuminderdaad.ik zat te slapen. #define is volgens straustrupp wel obsolete overigens, daar het bv macro's in de hand werkt (yuck) en constante definities op z'n 'C'-s.
[..]
Als je typesafe constantes toelaat heb je geen enums nodig, want alle constante's hebben al een type. Enums zijn dan alleen 'handig' voor rijtjes. Meer niet.
accesstype( read, write ) hetzelfde type moeten hebben?
Als dat allebei ints zijn, dan kan ik file+read*2 doen.
Da's onzin. enum's zijn (ook) handig voor bitflags.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Welnee, dan zeggen ze nog steeds dat Java 27.3 makkelijk C++ verslaat, en anders volgend jaar wel, als 28.1 uitkomt.Op zondag 02 september 2001 10:20 schreef jopiek het volgende:
Over 10 jaar vertellen ze iedereen dezelfde verhaaltjes over Java, dat Java verslagen wordt door taal X.
Ik vind dit allemaal maar onzinnige discussies....
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
gewoon ff snel een interface maken
database koppelen
dat red je in java en c++ niet in 10 minuten !!!
heel harde schopOp maandag 03 december 2001 18:21 schreef emkedouwe het volgende:
Ik vind voor GUI altijd Visual basic nog de beste !!!!~
gewoon ff snel een interface maken
database koppelen
dat red je in java en c++ niet in 10 minuten !!!
Dat zal best, maar als jij met dat VB progje een paar miljoen records moet aanpassen (zeg 180 miljoen), dan is dat C++-progje al bezig met een tweede keer, terwijl VB nog ongeveer op driekwart van de eerste keer loopt te rommelen.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Is dus absoluut niet het geval, je ziet Java alleen niet zo veel op je scherm. Het draait meer op de achtergrond op de server.
Als je Java met PHP bijvoorbeeld vergelijkt, dan is Java veel beter te schalen. Waarom is Got regelmatig plat/niet beschikbaar? Omdat dan de server vanwege de load op zijn bek is gegaan. Java heeft in eerste instantie meer overhead bij het starten, maar als het draait dan is het echt super. Er worden geen extra processen aangemaakt. Alles draait in dezelfde VM.
De snelheid van Java voor 1.3 was inderdaad bagger (wat betreft gui's dan). Alhoewel een netjes geprogrammeerde Applet in 1.1 vaak ook een hele goede optie is tegenover alsmaar nieuwe pagina's van de server laden.
Verwijderd
Wat ik mij altijd afgevraagd heb is waar dit verschil nu echt in zit. Als je kijkt naar taalconstructies zou het niet zoveel uit moeten maken: via een ODBC driver een database aanspreken is via een ODBC driver een database aanspreken, toch?Op vrijdag 07 december 2001 10:00 schreef Xenophage het volgende:
[..]
Dat zal best, maar als jij met dat VB progje een paar miljoen records moet aanpassen (zeg 180 miljoen), dan is dat C++-progje al bezig met een tweede keer, terwijl VB nog ongeveer op driekwart van de eerste keer loopt te rommelen.
Ik kan me wel iets voorstellen bij zaken als memory management, support voor grote adress spaces, foutafhandeling en kwaliteit van de code die door de compiler gegenereerd wodt, maar wat is nu de belangrijkste oorzaak van dit verschil?
With the light in our eyes, it's hard to see.
Dat is dus precies hetzelfde als een Windows emulator op bijvoorbeeld Linux. Kun je dus ook zeggen dat C++ met Win32 code platformonafhankelijk is. Waarom? Het draait immers ook onder Linux (maar wel met een tussenlaag!).
AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!
Tja, dingen als dynamic allocation enzo, dat kent VB nou eenmaal niet, maar grote address spaces wel. Je kunt zonder problemen 4GB aan strings aanmaken. Als je tenminste genoeg geheugen hebt.Op vrijdag 07 december 2001 11:40 schreef Bobco het volgende:
[..]
Wat ik mij altijd afgevraagd heb is waar dit verschil nu echt in zit. Als je kijkt naar taalconstructies zou het niet zoveel uit moeten maken: via een ODBC driver een database aanspreken is via een ODBC driver een database aanspreken, toch?
Ik kan me wel iets voorstellen bij zaken als memory management, support voor grote adress spaces, foutafhandeling en kwaliteit van de code die door de compiler gegenereerd wodt, maar wat is nu de belangrijkste oorzaak van dit verschil?
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
ODBC?Op vrijdag 07 december 2001 11:40 schreef Bobco het volgende:
[..]
Wat ik mij altijd afgevraagd heb is waar dit verschil nu echt in zit. Als je kijkt naar taalconstructies zou het niet zoveel uit moeten maken: via een ODBC driver een database aanspreken is via een ODBC driver een database aanspreken, toch?
Ik kan me wel iets voorstellen bij zaken als memory management, support voor grote adress spaces, foutafhandeling en kwaliteit van de code die door de compiler gegenereerd wodt, maar wat is nu de belangrijkste oorzaak van dit verschil?
Als je wat traag wilt laten uitvoeren moet je het vooral via nog meer lagen doen.
Direct op de database gaan zitten met de bijgeleverde libraries lijkt mij handiger...en dat lukt met C/C++ en ik geloof zelfs met Java nog altijd beter dan met VB.
Hoewel ADO niet al te slecht is...
Verwijderd
Incorrect, er is een limitatie in het standaard win32 platform wat je adress space limiteerd tot 2GB, in de enterprise versie van NT4 is dit nog op te hogen naar 3GB maar dan dient de applicatie in z'n pe header wel aan te geven dat ie hier op voorbereid is. in de w2k versies (datacenter enzo) ligt deze limiet nog hoger maar ook daar geld dat je applicatie er op voorbereid moet zijn,in VB zit je gewoon aan max van 2GB.Op vrijdag 07 december 2001 13:30 schreef Xenophage het volgende:
Tja, dingen als dynamic allocation enzo, dat kent VB nou eenmaal niet, maar grote address spaces wel. Je kunt zonder problemen 4GB aan strings aanmaken. Als je tenminste genoeg geheugen hebt.
Juist, 2 GB, sorry Yarvieh, kwas ff beetje wazig. Jij niet blijkbaar, hoe doe je dat toch na een hele week?Op vrijdag 07 december 2001 13:44 schreef Yarvieh het volgende:
[..]
Incorrect, er is een limitatie in het standaard win32 platform wat je adress space limiteerd tot 2GB, in de enterprise versie van NT4 is dit nog op te hogen naar 3GB maar dan dient de applicatie in z'n pe header wel aan te geven dat ie hier op voorbereid is. in de w2k versies (datacenter enzo) ligt deze limiet nog hoger maar ook daar geld dat je applicatie er op voorbereid moet zijn,in VB zit je gewoon aan max van 2GB.
Uhm maar ff weer on-topic, address space, hoe ging dat ook alweer, per thread, process of applicatie?
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Verwijderd
Per process.Op vrijdag 07 december 2001 13:51 schreef Xenophage het volgende:
Uhm maar ff weer on-topic, address space, hoe ging dat ook alweer, per thread, process of applicatie?
Dan zou het wel kunnen, maak gewoon 2 processes en voila 4 GB aan totale address space. Moet je alleen wel je strings kunnen uitwisselen tussen de processes.Op vrijdag 07 december 2001 13:56 schreef Yarvieh het volgende:
[..]
Per process.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Verwijderd
Dat is geen punt, IPC mechnismen genoeg, gezien het hier over VB gaat ga je denk ik uit komen op (D)COM. Ander intresant punt is waarom zou iemand die applicaties maakt die zo geheugen intensief zijn VB gebruiken?!Op vrijdag 07 december 2001 14:05 schreef Xenophage het volgende:
Dan zou het wel kunnen, maak gewoon 2 processes en voila 4 GB aan totale address space. Moet je alleen wel je strings kunnen uitwisselen tussen de processes.
Verwijderd
JSP icm Lotus Domino/Notes.
Ben nog wel bezig met JSP te leren, maar tot nu toe ben ik zwaar impressed, iig veel meer als toen ik aan PHP begon, PHP is trouwens scripting imo, JSP vind ik al veel dichter bij programmeren aanleunen, beter nog, het is gewoon programmeren.
Hum... you got me beat.Op vrijdag 07 december 2001 14:12 schreef Yarvieh het volgende:
[..]
Dat is geen punt, IPC mechnismen genoeg, gezien het hier over VB gaat ga je denk ik uit komen op (D)COM. Ander intresant punt is waarom zou iemand die applicaties maakt die zo geheugen intensief zijn VB gebruiken?!
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
JSP'tjes zijn eigenlijk Servlets die on-the-fly worden gecompiled (en vervolgens gecached)...dus je bent inderdaad gewoon aan het programmeren.Op vrijdag 07 december 2001 14:21 schreef SM-DoubleD het volgende:
weet je wat pas écht kickass is?
JSP icm Lotus Domino/Notes.
Ben nog wel bezig met JSP te leren, maar tot nu toe ben ik zwaar impressed, iig veel meer als toen ik aan PHP begon, PHP is trouwens scripting imo, JSP vind ik al veel dichter bij programmeren aanleunen, beter nog, het is gewoon programmeren.