Alarmnummer schreef op 08 september 2003 @ 09:09:
Ik had eerlijk gezegd zo`n antwoord niet van je verwacht Soultaker. De jar die je wrapt voor windows die kan natuurlijk ook voor andere platformen gebruikt worden. Het is alleen de opstarter die platform specifiek is, niet de rest van het systeem.
Accoord; dat bezwaar is misschien niet terecht.
Het probleem aan de oplossing die sun aanbied is dat niemand een jar herkend als opstartbaar bestand (althans niet de gemiddelde gebruiker). Daarom zie ik ook enorm veel java applicaties met een .sh en .bat opstart script. Je kan nog een stapje verder gaan en gewoon een exe genereren voor het opstarten. En wat maakt het uit als de jar gewrapped is, of in het andere geval: als de exe niets anders is dan een opstart 'script'. Voor de gemiddelde windows gebruiker (en niet voor de computer goden zoals wij *ahum*) is dit herkenbaar en java valt dan veel minder snel door de mand.
Het maakt mij wel uit, want ik kan me al levendig voorstellen dat zo'n gewrapte applicatie niet op te starten is als je een alternatieve VM gebruikt. Die wordt dan niet herkend en dan
moet ik per se de Sun VM (of een andere ondersteunde VM) gaan installeren omdat die applicatie vindt dat 'ie niet werkt met mijn eigen VM (wat zou kunnen, maar niet bij voorbaat waar is). Met een .bat filetje kun je dat soort restricties er nog wel uit hacken (al is het ook dan irritant) maar met een .exe file is dat allemaal veel lastiger.
Overigens start ik al tijden mijn .jar files door er gewoon op te klikken in explorer of vanuit het run/start menu, net zoals ik .exe files, .com files, .py files en .bat files kan starten. Dat de gemiddelde gebruiker dat niet kan lijkt me sterk; bij een default installtie krijg de gebruiker niet eens bestandsextenties te zien, dus kan 'ie een .jar file net zo goed aan klikken als een .exe file (zeker als de omschrijving iets van "Java Applicatie" is).
Ik vraag me dan ook af waarom een "domme" (of laten we "gemiddelde") gebruiker die .jar file zou moeten kunnen uitvoeren, als een installer al gewoon snelkoppelingen in het start menu kan plaatsen.
Verder is het grootste deel van de desktop ossen windows en ik heb persoonlijk het volgende met grafische applicaties -> fuck platform onafhankelijkheid. Maak gebruik van de compontenten die je systeem je aanbied en gaat niet eewig liggen worstelen met halfgebakken oplossingen. [...]
Ik moet zelfs toegeven dat ik weiger java applicaties te draaien onder windows, omdat het er altijd anders uitziet, altijd anders werk en vaak vervelende krengen zijn om op te starten.
Als java succes wil hebben aan de desktop kant, moeten ze juist meer van dit soort componenten gaan maken.
Nu doe je net alsof het noodzakelijk is dat Java voor alle soorten gebruikersapplicaties wordt gebruikt. Ik betwijfel of dat de juiste instelling is: voor platformafhankelijke systemen bestaan immers allang veel betere tools. Dat blijkt wel uit het feit dat je zelf ook constateert: aan het gebruik van Java voor platformspecifieke toepassingen kleven veel nadelen. Ten dele zijn die veroorzaakt door grove fouten in het beleid van Sun, maar voor een groot deel worden die ook veroorzaakt door het feit dat Java specifiek ontworpen is om een onafhankelijk, vaststaand ontwikkelplatform te bieden.
Ik vind dan ook dat je onderscheid moet maken tussen beperkingen die een logisch gevolg zijn van de ontwerpdoelstelling en beperkingen die het gevolg zijn van slechte ontwerpbeslissingen. De laatste wil je waarschijnlijk corrigeren; de eerste waarschijnlijk niet. In de tweede categorie valt wat mij betreft het ontwerp van de GUI API's, in de eerste categorie de eis dat binaries platformafhankelijk zijn.