Archief - [ALG] Welke taal?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Vich

Legacy Member
NecroNeo zei:
denk het wel, maar die term wordt ook gebruikt voor sommige types inkpatroon voor printers zeker? Daarmee dat ik er ff niemeer zeker van was.
M'n msn is kenvh[at]hotmail[dot]com, om verdere offtopicness te voorkomen ;)

wlibaers

Legacy Member
.Acku. zei:
Feit is dat de meeste C++ libraries dat gewoon niet zijn. Java is dat altijd wel tenzij bij uitzondering (en die zijn heel erg schaars, dat betreft enkel libs die opzettelijk gemaakt zijn om platformafhankelijke features te gebruiken).
C# Mono is principieel ook onafhankelijk.

De standaard C en C++ libs wel. Als je natuurlijk iets gebruikt dat je slechts op een platform bestaat, zoals DirectX, dan is je programma natuurlijk niet platformonafhankelijk, maar dat ligt niet aan de taal, maar aan DirectX dat niet platformonafhankelijk is (en ja, ik ken WineX, maar dat is voor zover ik weet nog niet volledig).

Een programma dat alleen die dingen gebruikt die door de standaard gegarandeerd worden zal op alle correcte implementaties van de standaard werken. Dat betekent ook dat je bijvoorbeeld niet moet gaan veronderstellen dat sizeof(short) == 2 gewoon omdat dat op je PC gewoon bent.

C en C++ bepalen niet dat elke implementatie op elk platform exact hetzelfde gedrag moet hebben. Een groot deel is wel vastgelegd, maar er zijn wat zaken die aan het platform aangepast kunnen worden (zoals de grootte van de types). Het voordeel is dan wel dat het eenvoudiger is een implementatie voor een nieuw systeem te maken. In het geval van Java of .NET moet je daarvoor bijna een besturingssysteem bovenop het besturingssysteem gaan schrijven.

.Acku.

Legacy Member
Goed, je maakt een punt. C++ kan platformonafhankelijk zijn, maar 80% van de code ervan is dat niet.

killgore

Legacy Member
.Acku. zei:
Goed, je maakt een punt. C++ kan platformonafhankelijk zijn, maar 80% van de code ervan is dat niet.
Huh?

Meestal, tenzij je platformspecifieke programma's gaat maken (like duh), is het aanpassen van code die je schrijft naar een ander platform mssch 5%.

Met de juiste libraries is het zelfs gewoon een kwestie van de juiste #ifdefs te gebruiken bij header including en je code is onmiddelijk platformonafhankelijk.

.Acku.

Legacy Member
Ligt het aan mij of zijn er gewoon niet veel van die multiplatform applicaties in C/C++ geschreven?
Want de software op deze PC die in dezelfde vorm (zelfs na rebuild) ook op een ander platform draait kan ik met mijn kloten tellen. De Java programma's die dat juist NIET doen ook.

The Crazy Frog

Legacy Member
.Acku. zei:
Ligt het aan mij of zijn er gewoon niet veel van die multiplatform applicaties in C/C++ geschreven?
Want de software op deze PC die in dezelfde vorm (zelfs na rebuild) ook op een ander platform draait kan ik met mijn kloten tellen. De Java programma's die dat juist NIET doen ook.
In de linux wereld zijn er veel c/c++ applicaties geport naar windows:
  • Ethereal
  • Gaim
  • Evolution
  • Audacity
  • Firefox
  • Scorched3D
  • Pixel
  • TheGimp
Er zijn trouwens redelijk veel c/c++ frameworks voor crossplatform: gtk, wxWidgets, etc etc.

killgore

Legacy Member
Commerciële programmas zal je zelden geport zien, open src en zo wel vrij veel.

The Crazy Frog

Legacy Member
killgore zei:
Commerciële programmas zal je zelden geport zien, open src en zo wel vrij veel.
Photoshop? Macromedia? Office? Veel dingen komen ook uit op Mac eh, da's ook nen port.

BuiZe

Legacy Member
Qt niet vergeten te vermelden, zo kan mijn C++ thesisprogramma onder linux en windows gecompileerd worden met exact hetzelfde resultaat (gui themes uitgezonderd) zonder de minste wijziging in code of zelfs gebruik van #ifdefs.

White Label

Legacy Member
Ik zou graag mijn kennis van Java of VB.net heel wat verder uitdiepen. Daarom wil ik deze zomer iets programmeren, nu weet ik alleen niet wat. Ik ken de beginselen van Java en VB.net, ik wil gerust heel wat opzoekwerk doen maar het moet haalbaar blijven. Het zou ook wel een programma moeten worden waar ik iets aan heb, niet zoiets wat ik kan schrijven en dat voor de rest jaren op men HD staat weg te kwijnen. Hebben jullie enkele ideeën van wat ik zou kunnen programmeren want ik heb op de moment echt geen inspiratie...

Tnx in advance ;)

Cakeman

Legacy Member
White Label zei:
Ik zou graag mijn kennis van Java of VB.net heel wat verder uitdiepen. Daarom wil ik deze zomer iets programmeren, nu weet ik alleen niet wat. Ik ken de beginselen van Java en VB.net, ik wil gerust heel wat opzoekwerk doen maar het moet haalbaar blijven. Het zou ook wel een programma moeten worden waar ik iets aan heb, niet zoiets wat ik kan schrijven en dat voor de rest jaren op men HD staat weg te kwijnen. Hebben jullie enkele ideeën van wat ik zou kunnen programmeren want ik heb op de moment echt geen inspiratie...

Tnx in advance ;)
Een programmaatje dat niets meer is dan een icoontje in de systray. Het programma controleert om de x minuten (x is instelbaar) of er nieuwe mails zijn toegekomen voor een bepaald e-mail adres (POP3 ondersteuning). Wanneer er nieuwe mail is, moet er een kleine slide-up/pop-up getoond worden (MSN en Google Talk stijl) met daarin de subject van de mail, eventueel de eerste regels van de body, of de mail een attachment bevat en eventueel de grootte daarvan. Wanneer je op dat pop-upje klikt, moet er een e-mail programma (instelbaar) openen.

Have fun! :)

Bubbling Zombie

Legacy Member
The Crazy Frog zei:
Photoshop? Macromedia? Office? Veel dingen komen ook uit op Mac eh, da's ook nen port.

Maar macromedia / adobe had een "incentive" om te porten: de windows gebruikers. Waarom zouden heden ten dage grote applicaties hun windows dingen proberen te porten naar linux? Laatste die dat gedaan heeft was nero, en toen bleek dat NBR helemaal niet zo goed was als de al bestaande software was het ineens heel stil...

Vich

Legacy Member
Commerciële games zijn een goed voorbeeld van C/C++ apps die cross-platform worden gemaakt. Voor zover ik het weet de meeste console-games ook speelbaar op de PC en/of andere platforms. Dit heeft meerdere redenen(*). Met dat verschil dat deze niet altijd worden uitgegeven voor de PC omdat het PC-platform commercieel gezien niet interessant is omdat het voor extra werk mbt QA, testing en code optimizing zorgt.
Wat games betreft is de PC-markt ook erg verzadigd en is het dus moeilijk om een goed-verkopende game te maken. Ook kan men voor console-games langer de prijzen hoger houden volgens mij.
Daarbij komt ook nog eens dat sommige console games exclusief voor een bepaald platform worden uitgegeven, om commerciële redenen.

Wat ik wil zeggen is:
't Is niet omdat een C/C++ app slechts voor 1 platform wordt uitgegeven, dat het niet platform-onafhankelijk is geschreven.

(*) Die redenen kunnen zijn:
- makkelijker te testen op PC
- makkelijker te debuggen op PC
- PC executable compileert vaak sneller dan speciale compiler vr console
- PC executable kan je direct uitvoeren, moet je niet naar devkit sturen(tijdswinst)
- Devkits zijn duur(in de prijscategorie van een middelgrote auto), PC's zijn goedkoop.

Ik ga misschien wel enorm offtopic, maar 't is wel een interessante sidenote denk ik :)

.Acku.

Legacy Member
Bij talen met ene runtime environment heb je toch gewoon minder problemen om te ontwikkelen voor meedere platforms. Er worden niets eens echte testen voorzien voor de 'ports' aangezien er geen echte 'ports' zijn. Gewoon een deploy op een ander systeem.

Vich

Legacy Member
.Acku. zei:
Bij talen met ene runtime environment heb je toch gewoon minder problemen om te ontwikkelen voor meedere platforms. Er worden niets eens echte testen voorzien voor de 'ports' aangezien er geen echte 'ports' zijn. Gewoon een deploy op een ander systeem.

Volledig akkoord mee, maar dat neemt niet weg dat dit een taal niet minder cross-platform wordt als er geen runtime environment wordt gebruikt. Natuurlijk is het gebruik van een bytecode systeem wel makkelijker om iets cross-platform te krijgen.
Mijn punt is dus dat C/C++ wel degelijk cross-platform is en die bewering absoluut niet fanboy-achtig is ;)

killgore

Legacy Member
Vich zei:
Commerciële games zijn een goed voorbeeld van C/C++ apps die cross-platform worden gemaakt. Voor zover ik het weet de meeste console-games ook speelbaar op de PC en/of andere platforms. Dit heeft meerdere redenen(*). Met dat verschil dat deze niet altijd worden uitgegeven voor de PC omdat het PC-platform commercieel gezien niet interessant is omdat het voor extra werk mbt QA, testing en code optimizing zorgt.
Veel (niet alle) console-games die naar pc geport worden draaien op emulators, kan je moeilijk cross-platform noemen.
Ergens is het ook logisch dat games moeilijker te porten zijn (alleszins meer code vereisen) aangezien ze sneller terugvallen op "low-lev" drivers/apis. Natuurlijk kan je dit met goede structuur beperken en ik heb de indruk dat bedrijven er steeds meer beginnen rekening te houden.
Bv. ook: Ze moesten tot over een jaar of 2 totaal geen rekening houden met het feit dat de doorsnee gamer wel eens linux zou willen gebruiken, iets dat toch lichtjes aan aan het wijzigen is (niet dat ze een hoofdmoot worden, maar met ubuntu ed wordt linux steeds toegankelijker en meergebruikt).

Wat games betreft is de PC-markt ook erg verzadigd en is het dus moeilijk om een goed-verkopende game te maken. Ook kan men voor console-games langer de prijzen hoger houden volgens mij.
Uhu, mijn mond viel open van verbazing toen ik quake IV deze week voor mssch 10-15€ in de fnac zag liggen. K, tis al paar maanden oud, ma toch, vroeger duurde dat toch iets langer.

Met de rest ga ik akkoord, hoewel ik geloof dat je sommige bedrijven overschat, als ze weten dat het maar op 1 platform (en dan bedoel ik zowel OS als echt systeem/medium) zal uitkomen zullen ze vaak genoeg niet cross-platform coden.

White Label

Legacy Member
Cakeman zei:
Een programmaatje dat niets meer is dan een icoontje in de systray. Het programma controleert om de x minuten (x is instelbaar) of er nieuwe mails zijn toegekomen voor een bepaald e-mail adres (POP3 ondersteuning). Wanneer er nieuwe mail is, moet er een kleine slide-up/pop-up getoond worden (MSN en Google Talk stijl) met daarin de subject van de mail, eventueel de eerste regels van de body, of de mail een attachment bevat en eventueel de grootte daarvan. Wanneer je op dat pop-upje klikt, moet er een e-mail programma (instelbaar) openen.

Have fun! :)

Ik ken dus de beginselen van vb.net en java... Ik heb echt uren gezocht maar ik vind alleen prog's voor te downloaden ofwel sites waar ik totaal niets meer vooruit ben. Kun je enkele goeie sites geven voor java of vb.netwaar ik info kan vinden. Want ik begin al te twijfelen of ik dit aankan :crazy:

dJeez

Legacy Member
The Crazy Frog zei:
In de linux wereld zijn er veel c/c++ applicaties geport naar windows:
Maar zo'n port naar Windows zal wel veel meer werk inhouden dan het simpelweg aanpassen/toevoegen van wat regeltjes code hier en daar (die 5% regel gaat er alvast niet voor op) omdat er doorgaans niet aan gedacht wordt dat ze ook cross-platform zal draaien (de uitzonderingen bevestigen zoals steeds de regel). En je moet de zaken ook niet beginnen omdraaien : Photoshop was oorspronkelijk een Mac-only applicatie die pas naderhand geport is geweest naar PC.

Eigenlijk is het vrij simpel : indien er niet van de aanvang van een project (eender wat : game, business app, ...) rekening wordt gehouden met het feit dat die applicatie (ooit) cross-platform moet zijn dan zal het porten van die applicatie doorgaans een gigantisch werkje zijn. Dikwijls is het dan beter om stukken helemaal te gaan herschrijven met compatibiliteit in het achterhoofd.

Nu ja alles hangt ervan af hou je cross-platform precies interpreteert. In mijn ogen is dat het feit dat je een applicatie met slechts een minimum aan aanpassingen (uiteraard liefst geen - in een utopische wereld :p) kan doen draaien op eender welk hardware platform/OS.

Tyfius

Legacy Member
Vele van die geporte apps maken ook gebruik van een andere grafische toolkit da n die van windows. Wat het porten al een heel pak vereenvoudigd. Daarenboven zijn het dan mensen zoals u en ik die de intentie hebben om dit te doen, en onze tijd daar in zullen steken, waar het bij niet opensource/gratise applicaties die voor windows zijn ontwikkeld al een heel pak moeilijker wordt.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan