Cross Platform applicatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 02-09 09:14
Ik wil een applicatie bouwen die zowel op een windows als linux machine zal werken. Maar ik kom er niet uit welke programmeertaal ik ga gebruiken. En welke programmeertaal het beste is.

Je kan Java gebruiken. Hiervoor moet je zorgen dat je de runtime van java moet geïnstalleerd worden.
Je kan ook Vb.net gebruiken in samenwerking met het monoframework.
Ik lees ook over c / c++ , deze kunnen volgens mij ook gebruikt worden om cross platform te schrijven.
Maar welke taal is nu het meeste op cross platform gericht. Ik heb al wat compare tabellen bekeken, maar het is me allemaal toch nog niet over duidelijk. Iemand misschien al ervaring met het bouwen van cross platform applicaties?

Acties:
  • 0 Henk 'm!

  • Kwastie
  • Registratie: April 2005
  • Laatst online: 08-09 15:51

Kwastie

Awesomeness

Wat voor taal je kiest ligt helemaal aan wat voor soort applicatie je wilt gaan bouwen

Wil je een desktop applicatie, dan is het misschien een idee om qt (c++) te gebruiken.
Maar voor server software zou ik eerder gaan voor Java of Python.

Maar zou ik niet kiezen voor mono omdat deze taal niet word ondersteunt door de Microsoft en ze dus nooit kunnen garanderen dat je applicatie ook goed werkt op Linux.

When I get sad i stop being sad and be awesome instead


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zo'n beetje elke taal is wel crossplatform te gebruiken. C/C++ hebben libraries om op Linux te kunnen draaien, Delphi kent diezelfde libraries, .Net kent zoals je zelf al zegt Mono. Java is, als taal die gericht is op crossplatform, de eerste taal waar ik aan denk maar welke taal je kiest is gewoon afhankelijk van de verdere eisen die jij aan je applicatie stelt. Zoals eigenlijk altijd in de "welke taal"-discussie die hier om de zoveel weken wel eens voorbij komt...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Perl werkt ook multiplatform.

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

En anders wellicht er een webapp van maken ?

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zullen we onze replies van iets meer onderbouwing voorzien dan dat we allemaal ons favoriete taaltje gaan lopen roepen? We hebben dit topic, itt de vele andere "welke taal moet ik nemen", open gelaten om eens te zien waar het schip strandt en binnen 3 replies is het alweer een opsomtopic... Een lijstje met suggesties kunnen we allemaal wel vinden in 2 seconden... het is de onderbouwing (ofwel: de reden waarom je voor platform X kiest) die interessant is.

Als hier geen zinnige discussie uit voort komt zullen we onze beslissing het topic open te laten toch maar weer moeten gaan herzien. En dat zou zonde zijn.
Mike2k schreef op dinsdag 06 juli 2010 @ 23:48:
En anders wellicht er een webapp van maken ?
Dat moet natuurlijk maar net kunnen, maar het zou wel fijn zijn als dit soort informatie (wat voor applicatie gaat het worden / wat moet het doen) inderdaad even was vermeld in de topicstart.

[ Voor 47% gewijzigd door RobIII op 07-07-2010 00:02 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja, imho is het puur afhankelijk van wat voor soort app je wilt.
Wil je een pure number crunching app zonder GUI dan zou ik kiezen voor C / C++ / Java
Wil je een app met GUI dan zou ik of kiezen voor Java of voor qt
Wil je een webapp dan of java of willekeurige scriptingtaal.

.Net zou ik lekker laten zitten, in theorie is het multi-platform. In praktijk werkt MS alleen aan het windows gedeelte, het mono gedeelte is niet 100% up-to-date...
C / C++ valt perfect te doen voor cli-applicaties, ik ken enkel geen universeel gebruikte GUI's daarvoor.
Qt valt nog wel te gebruiken, maar zie ik vrij weinig op windows gebruikt worden...
Scripttalen zou ik voornamelijk voor webapps oid inzetten.
Java valt eigenlijk wel overal voor te gebruiken. Het enige "nadeel" wat ik daarvan nog weet is dat je met een initiele opstarttijd van de virtual machine zit ( maar wat is 5 sec extra opstarttijd voor een app die je 3 uur gebruikt )

Het belangrijkste wat je in je achterhoofd moet houden is dat je alles multi-platform moet opzetten. 1x een geinig winforms effectje pakken en je mag het in je linux app gaan nabouwen...

Persoonlijk ben ik bij de grotere apps meer voorstander van het maken van een server-client idee. GUI is imho het moeilijkste om dit multiplatform volgens de platform standaarden op te zetten.
Kweek dit dan ook zoveel mogelijk los van je business logica zodat je gewoon voor windows / linux enkel een andere GUI hoeft te maken ( waarin je dan de nieuwste silverlight grapjes ed kan gebruiken ), het echte number crunching gedeelte (=server)kan je dan makkelijker multi-platform maken.
Dan kan je als er behoefte aan is later ook makkelijker een mobile-app of een web-app eraan knopen. Dat is enkel een andere GUI...

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 00:17
Gomez12 schreef op woensdag 07 juli 2010 @ 00:27:
Dan kan je als er behoefte aan is later ook makkelijker een mobile-app of een web-app eraan knopen.
Op zich een aardig punt. Met WebSockets valt er best fijn realtime te communiceren met een server, zodra die een beetje ingeburgerd worden (ergo, niet door welgeteld twee development browsers in totaal ondersteunt worden :|) kun je samen met bijvoorbeeld een canvas al verdraaid veel doen wat je tot dusver eerder aan een losse client zou overlaten - en werkt het met wat aanpassingen ook gelijk op mobieltjes ed. Iets realistischer en meer op de korte termijn kun je met flash / silverlight ookal een aardig eind komen.

Zelf heb ik een client/server app in JAVA geschreven die in principe cross-platform is. In principe, want de (GUI) client heeft onder linux nog wat nare trekjes met betrekking tot fonts en positionering. Valt wel op te lossen maar het gaat dus niet geheel automatisch goed. De server is enkel CLI en die draait weer wel prima op alle platformen waar ik'm op getest heb (OS-X, Ubuntu, Vista, 2003).

Van C++ weet ik in elk geval twee OSS projecten die zowel onder windows als linux te compilen zijn (Mangos en XBMC), dat zijn beide toch vrij grote projecten dus het kan zeker - al zitten bij beide projecten wel aardig wat directives in de source om het allemaal in goede banen te leiden.

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
C met de QT libs is zeker een optie, ik weet niet hoe het nu zit. Maar vroeger moest de gebruiker ook de QT libs installeren.

Andere optie die ik zelf voor een paar kleine interne crossplatform projecten (windows + osx) gebruikt hebt is realbasic of real studio zoals het sinds kort heet. Niet de meest snelle lowlevel taal op deze aardkloot, maar voor 250 euro hadden wij een crossplatform sleur/pleur gui builder met een makkelijk aan te leren taal die meer naar java/c/php neigt dat naar basic, waarin ook nog redelijk eenvoudig plugins gemaakt konden worden in een low level taal als C/C++

Hangt er beetje vanaf wat voor soort applicatie je wil gaan bouwen, voor een spel zou ik het niet gebruiken. Ik had toen de opdracht een soort van uren systeem frontend te maken wat het ook op de mac deed en 1 een installeerbare executable kon worden gedownload zonder dependency met een 3rd party framework als .net of java. En dat is precies wat realbasic je geeft, met 1 druk op de knop exporteer je het project voor 3 target platforms.

Mocht je later mobiel willen gaan, dan heb je bij real wel een probleem,want dat ondersteunen ze niet. En gaat ook niet gebeuren als was het alleen maar omdat apple geen 3rd party frameworks binnen de store toe laat :?

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • beany
  • Registratie: Juni 2001
  • Laatst online: 19:58

beany

Meeheheheheh

kwaakvaak_v2 schreef op woensdag 07 juli 2010 @ 08:55:
Mocht je later mobiel willen gaan, dan heb je bij real wel een probleem,want dat ondersteunen ze niet. En gaat ook niet gebeuren als was het alleen maar omdat apple geen 3rd party frameworks binnen de store toe laat :?
Zat ontwikkelaars die voor niet-apple mobiele platformen ontwikkelen. Andriod, Nokia, etc. Die markt is groot genoeg. Zeg nooit nooit ;)

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

beany schreef op woensdag 07 juli 2010 @ 09:09:
[...]

Zat ontwikkelaars die voor niet-apple mobiele platformen ontwikkelen. Andriod, Nokia, etc. Die markt is groot genoeg. Zeg nooit nooit ;)
Toch kun je de iPhone niet negeren als je mobiel wil gaan, dus hij heeft een valide argument.

Anyway, we zijn nu vrolijk met zijn allen aan het speculeren over wat te doen in welke situatie, maar als de topicstarter zijn eisen niet post kunnen we zo nog wel even doorgaan. Laten we even op tegenbericht wachten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 02-09 09:14
Een gehele webapp kan ik er niet van maken. Ik moet zowel voor linux als windows gaan schrijven. Omdat ik gegevens van de pc wil gaan raadplegen. En je zou deze gegevens ook via een applicatie moeten kunnen bekijken. Niet alleen een webapp.

Maar het gegevens over de business logica te scheiden is zowiezo het eerste punt waar ik rekening mee houd.
Ik wil alles gescheiden houden. Dus een client , common ( zowel client als server ) en server gedeelte.
Dus dat kan ik al makkelijk apart houden. En op deze common en server zal ik geen gui gebruiken dus , hiermee moet ik enkel rekening houden op de client.

Java ben ik minder voorstander van, als je runtime crashed, is het ook gedaan met je applicatie. Bij c/c++ heb je dit niet?

Vb.net programmeer ik nu. Maar als ik het zo hoor is het mono framework niet het stabielste wat er bestaat.

Dus ben ik aan het denken over c/c++ , hierin heb ik nog geen ervaring maar volgens mij gaat deze syntax richting java? Daarmee heb ik dan wel een beetje ervaring.

Zijn er eigenlijk compilers/IDE die zowel een linux als windows versie hebben? Als je dan wil switchen tussen linux en windows. :)

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 12-09 17:18

DexterDee

I doubt, therefore I might be

Zo te lezen ben je op zoek naar een programmeeromgeving die kant-en-klaar is op verschillende platformen, waardoor je een lage instapdrempel hebt. Bovendien zou je het liefst native code willen compilen, zonder runtime libraries, environments of interpreters. Je wilt bovendien ook relatief gemakkelijk een cross-platform UI in een visuele editor maken.

Een van de projecten die hier allemaal aan voldoet is het Lazarus project. Deze biedt een volledig functionele visuele programmeeromgeving in Windows, Linux en MacOSX. De Lazarus IDE biedt je een volledige visuele programmeeromgeving met geïntegreerde debugging en compile en build tools. De UI widgets zijn volledig cross-platform waardoor je gehele applicatie 100% ongewijzigd op meerdere platformen gecompileerd kan worden. De programmeertaal in Lazarus is Pascal, aangezien Lazarus zwaar is geïnspireerd op Delphi. Bijkomend voordeel is dat Lazarus volledig gratis te gebruiken is.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

Verwijderd

RobIII schreef op dinsdag 06 juli 2010 @ 23:58:
[...]

Zullen we onze replies van iets meer onderbouwing voorzien dan dat we allemaal ons favoriete taaltje gaan lopen roepen? We hebben dit topic, itt de vele andere "welke taal moet ik nemen", open gelaten om eens te zien waar het schip strandt en binnen 3 replies is het alweer een opsomtopic... Een lijstje met suggesties kunnen we allemaal wel vinden in 2 seconden... het is de onderbouwing (ofwel: de reden waarom je voor platform X kiest) die interessant is.

Als hier geen zinnige discussie uit voort komt zullen we onze beslissing het topic open te laten toch maar weer moeten gaan herzien. En dat zou zonde zijn.

[...]


Dat moet natuurlijk maar net kunnen, maar het zou wel fijn zijn als dit soort informatie (wat voor applicatie gaat het worden / wat moet het doen) inderdaad even was vermeld in de topicstart.
Daar komt deze topic sowieso op neer. Als TS wat meer achtergrond onderzoek had gedaan dan had TS ook op het zelfde lijstje kunnen maken met alle mogelijkheden erbij.

Dus naar mijn inziens heeft deze topic weinig zin. Ergo: UTFS lijkt mij een zinnige statement.

Acties:
  • 0 Henk 'm!

  • Comp_Lex
  • Registratie: Juni 2005
  • Laatst online: 21:28
Ik maak zelf gebruik van wxWidgets i.c.m. Code::Blocks. Ik schrijf zelf programma's in C++, maar wxWidgets geeft ook de mogelijkheid om te werken met andere talen. De documentatie is ook behoorlijk goed.
Je kunt trouwens met Qt geen "native ports" creëren, wat met bijvoorbeeld wxWidgets wel kan. Je kan daarmee gewoon een native look-and-feel in je programma krijgen. Qt is alleen native op KDE. Je kunt met Qt waarschijnlijk wel sneller een programma in elkaar flansen, maar het werkt dan wel trager dan wxWidgets wegens het feit dat er in wxWidgets veel gebruik wordt gemaakt van voorgedefinieerde macro's en minder virtual functions.

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

@sven: je hebt nog steeds niet gezegd wat je app moet gaan doen...
"Gegevens van de client raadplegen" is zo abstract als "mijn internet doet het niet" ;)

Details please ;)

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • Ruben314
  • Registratie: Juli 2001
  • Laatst online: 08-07 19:44
Zou je (net als DexterDee) aanraden in ieder geval even naar Lazarus te kijken:

http://lazarus.freepascal.org/

Officieel nog in beta, maar werk hier zelf nu al een jaartje of twee mee en nooit problemen gehad.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Sven_Vdb schreef op woensdag 07 juli 2010 @ 12:46:
Een gehele webapp kan ik er niet van maken. Ik moet zowel voor linux als windows gaan schrijven. Omdat ik gegevens van de pc wil gaan raadplegen.
Zou je eerst eens uit kunnen leggen wat je nu precies wilt? Want gegevens van de pc raadplegen is afaik juist een heel erg tricky multi-platform stuk. Wil je onder windows iets van de onderliggende hardware raadplegen dan heb je bijna altijd system calls nodig, hetzelfde onder linux...
Java ben ik minder voorstander van, als je runtime crashed, is het ook gedaan met je applicatie. Bij c/c++ heb je dit niet?
Hoe bedoel je dit? Je app zal 10.000x eerder crashen als je virtual machine. Java is geen hobby projectje waar ze even in 2 avonden de virtual machine in elkaar gezet hebben. En als je app crashed dan helpt c/c++ je ook niet automagisch...
Dus ben ik aan het denken over c/c++ , hierin heb ik nog geen ervaring maar volgens mij gaat deze syntax richting java? Daarmee heb ik dan wel een beetje ervaring.
Imho is het grote nadeel van c/c++ dat als je alles volgens de officiele standaarden doet dat het werkt, maar dat zo ongeveer elke IDE wel eigen uitbreidingen op de standaard heeft die niet cross-platform zijn.
Afaik prefereert een Visual Studio qua help / assists etc toch de winforms / silverlight etc. Je zal dus met een Visual Studio een stuk van het standaard gedrag moeten negeren...
Zijn er eigenlijk compilers/IDE die zowel een linux als windows versie hebben? Als je dan wil switchen tussen linux en windows. :)
Qua compilers kan zo ongeveer alles op alles gecompileerd worden ( simpel gezegd vwb de hier genoemde talen ) Het grote verschil zit hem in de standaard library's etc. Als iets by default een winforms iets pakt, dan moet je dat weer gaan negeren etc.

Totaal andere optie btw ( geen ervaring mee, maar misschien iemand anders ) zou je het niet voorzichtig in Windows kunnen programmeren ( dus geen bleeding edge technieken die net 1 maand terug in windows gebouwd zijn ) en dan voor linux uit kunnen leveren met Wine?
Afaik werkt Wine an sich wel goed, tuurlijk zullen bepaalde dingen het niet doen. Maar defensief en rustig programmeren nadat je eerst de zwakke punten van Wine opgezocht hebt lijkt me toch wel te doen...

Acties:
  • 0 Henk 'm!

  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 02-09 09:14
Met gegevens van client raadplegen bedoel ik gegevens van de hardware uitlezen.
Zoals gegevens van de harddrive, gpu, cpu, ...

Dat dit op bij linux en windows anders moet aangeroepen worden. Daar ben ik mij bewust van.
Deze logica zal dan ook gescheiden worden voor beide delen.

Mij lijkt lazarus er net oud uit. Je ziet het er zo niet aan dat dit nog beta is en dit verder ontwikkeld word.
Voor Java moet je een runtime installeren, voor c/c++ niet.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Sven_Vdb schreef op woensdag 07 juli 2010 @ 21:25:
Met gegevens van client raadplegen bedoel ik gegevens van de hardware uitlezen.
Zoals gegevens van de harddrive, gpu, cpu, ...

Dat dit op bij linux en windows anders moet aangeroepen worden. Daar ben ik mij bewust van.
Deze logica zal dan ook gescheiden worden voor beide delen.
Wat wil je dan precies cross-platform hebben? Feitelijk moet je al 2 ( of meer ) clients bouwen, dan zie ik niet meer in waarom je dan enkel de interface cross-platform wilt hebben ( helemaal niet omdat je waarschijnlijk toch verschillende GUI's gaat hebben naar gelang de mogelijkheden van het platform )
Mij lijkt lazarus er net oud uit. Je ziet het er zo niet aan dat dit nog beta is en dit verder ontwikkeld word.
Voor Java moet je een runtime installeren, voor c/c++ niet.
Laat ik het zo zeggen : ik wens je veel succes met een fatsoenlijke GUI op te zetten in official C / C++...
Je zal dan toch extra frameworks nodig hebben, C/C++ is in basis bar slecht in GUI's

Acties:
  • 0 Henk 'm!

  • pascalw
  • Registratie: Februari 2008
  • Laatst online: 05-09 20:23
Wat ik een erg mooie oplossing vind is wat ze bij Transmission hebben gedaan; business logica geïmplementeerd in C/C++ en daar bovenop voor elk platform in native GUI.

Dat is natuurlijk wel vrij bewerkelijk, maar zo krijg je wel voor elk platform de echte "look and feel" van dat platform en je kunt je client goed aanpassen aan standaarden van het OS.
De meeste hierboven genoemde cross-platform oplossingen voelen op OS X bijvoorbeeld vaak erg native aan.

Acties:
  • 0 Henk 'm!

  • Sven_Vdb
  • Registratie: Januari 2006
  • Laatst online: 02-09 09:14
@Gomez12: Als ik paar jaar geleden in java programmeerde moest je daar ook de GUI zelf opbouwen in code. Dus dit zal hetzelfde zijn bij c/c++.
Alleen als je .Net zou gebruiken , kan je drag en drop controls gebruiken.
Dus extra frameworks gebruiken die daartoe bijdragen is nu ook het probleem niet. Je zal altijd wel met frameworks werken. Nu ik in .net bezig ben gebruiken we toch ook agatha voor de server afhandeling.

Dus de extra frameworks zal niemand over vallen denk ik. :)
Pagina: 1