Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Wat is een aanrader in de Programeerwereld  (gelezen 5291 keer)

Wat is een aanrader in de Programeerwereld
« Gepost op: 2009/09/02, 19:03:30 »
Hallo Programmeurs,

Ik ben op zoek naar een programmeertaal die je heel gemakkelijk port naar andere besturingssystemen.


Programmeertaal

Ik heb talen hieronder neergezet

  • Python
  • C/C++

Welke taal kan ik het beste kiezen? Of raden jullie anders aan?

Ik wil aan de andere kant ook wel de moeilijk kant op want nu gaat het leren sneller als je 13 bent


Toolkits

Wat bedoelen ze met toolkits?
Moet je dezen ook programmeren of zijn hier programma's voor?
Waar geven jullie voorkeur aan?

Hieronder heb ik nog wat toolkits neergezet..
  • GTK+
  • QT

Wat is een goede IDE?
« Laatst bewerkt op: 2009/09/02, 19:34:28 door Dooitze de Jong »

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #1 Gepost op: 2009/09/02, 19:27:41 »
Ik ben op zoek naar een programmeertaal die je heel gemakkelijk port naar andere besturingssystemen.

Programmeertaal

Ik heb talen hieronder neergezet

  • Python
  • C/C++

Welke taal kan ik het beste kiezen? Of raden jullie anders aan?
Python is interpreted, een beetje trager, "gemakkelijker" (meer high level), vrij goed te porten alhoewel je wel een python interpreter geïntalleerd moet hebben (py2exe e.d. kan wel helpen om er een executable van te maken op systemen als windows)

C++ is een meer low-level taal die compileert naar low-level machinecode, daarom is deze taal zéér snel. Het is moeilijker om in te programmeren, maar de STL (Standard Template Library) geeft je een aantal handige functies om bv. met strings (karakterreeksen) te werken.

C is C++ maar dan niet object-geörienteerd en met veel minder mogelijkheden (bv. geen STL). C is niet noodzakelijk sneller dan C++.

Toolkits

Wat bedoelen ze met toolkits?
Moet je dezen ook programmeren of zijn hier programma's voor?
Waar geven jullie voorkeur aan?

Hieronder heb ik nog wat toolkits neergezet..
  • GTK+
  • QT

Toolkit betekent eigenlijk gewoon: pakket met tools. Je hebt verschillende soorten toolkits. Qt en GTK+ zijn naar mijn bescheiden mening niet echt vergelijkbaar aangezien Qt véél meer functionaliteit biedt dan GTK+. GTK+ dient enkel om je programma's van een grafische interface te voorzien. Qt doet dit ook (en met een veel betere integratie op verschillende platformen dan GTK+) maar Qt kan ook nog veel meer dingen doen.

Je moet een toolkit niet programmeren, aangezien een toolkit een extra hulpmiddel is in de programmeertaal die je kiest. Wel zal je met de toolkit moeten leren werken, maar meestal maakt een toolkit het net eenvoudiger :)

Om een grafische interface te ontwerpen kan je een designer tool gebruiken, voor GTK+ heb je bv. Glade en voor Qt heb je Qt Designer (die tegenwoordig ook geïntegreerd zit in de Qt Creator IDE)

Mijn favoriete toolkit is Qt. Ik kan geen enkel punt bedenken waarin GTK+ beter is. Ik heb hier namelijk al erg vaak discussies over gehad met GTK+ ontwikkelaars, maar ze hebben mij nooit kunnen vertellen waarom ze GTK+ gebruiken en waarom GTK+ beter zou zijn. Als Qt ontwikkelaar kan ik echter wel honderden redenen bedenken waarom ontwikkelen in Qt veel leuker, efficiënter en makkelijker is. Ik lijk wel een verkoper ;) ...ik zou het trouwens wel prettig vinden als een GTK+ ontwikkelaar me ongelijk kan geven.

Waar GTK+ misschien wel beter voor geschikt is, is om grafische interfaces specifiek voor GNOME of Xfce te maken. Maar je programma zal er op andere platformen (zoals KDE, Windows, Mac) nogal lelijk uitzien... Qt daarentegen neemt de native interface van elk platform over (KDE, GNOME, Xfce, Windows, Mac...)

PS: als cross-platform programmeren belangrijk is (dus het porten naar andere besturingssystemen) dan denk ik sowieso dat er geen alternatief voor Qt bestaat. Bij Qt is het een kwestie van een .pro-bestand openen op een ander systeem, hercompileren door op een knop te drukken, en je programma is gecompileerd en kan draaien op het andere systeem. Niet alleen desktopsystemen trouwens, Qt ondersteunt o.a. ook Windows CE, Embedded Linux en Symbian.
« Laatst bewerkt op: 2009/09/02, 19:29:31 door profoX »
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Wat is een aanrader in de Programeerwereld
« Reactie #2 Gepost op: 2009/09/02, 19:33:56 »
Dus je moet eerst de basis programmeren en daarna een interface toevoegen

Wat is een goede IDE

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #3 Gepost op: 2009/09/02, 19:41:08 »
Dat ligt er maar aan wat je wil programmeren.

Voor Qt/C++ programma's gebruik ik Qt's eigen IDE: Qt Creator
Andere populaire IDE's die voor meerdere talen/toolkits geschikt zijn, zijn KDevelop en Eclipse.

Je kan de GUI ook eerst ontwikkelen en tegelijkertijd functionaliteit aan je programma toevoegen.
Wel is het beter om eerst een programmeertaal een beetje "gewoon" onder de knie te krijgen vooraleer je met toolkits gaat beginnen.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Wat is een aanrader in de Programeerwereld
« Reactie #4 Gepost op: 2009/09/02, 19:44:12 »
Wat voor taal gebruik jij?
Is anjuta IDE iets

Offline track

  • Lid
Re: Wat is een aanrader in de Programeerwereld
« Reactie #5 Gepost op: 2009/09/02, 19:46:15 »
Hoi Dooitze,

als je een .py- bestand met gedit opent zie je de commando's etc. netjes gekleurd.
Dit is al het erste beginsel van "toolkit".  Dus iets dat je helpt dat je niet op alles moet letten
en vaak ook bepaalde taken zelf over neemt.  Een echte toolkit is stukken uitgebreider uiteraard.

Even bij de keuze van de taal:
C / C++ zal je eerder gebruiken als je basisfuncties programmeert (b.v. ook drivers ..) en
python is beter geschikt als je praktische toepassingen wilt maken.  Leuke tools of scriptjes
om iets automatisch uit te voeren.
Als je van Assembler houdt zal je in ieder geval liever C pakken ...

track

p.s.:  ik gebruik ook eclipse, voor Java dan.
        mijn eigen ervaring is meer met C, maar ik heb vroeger ook met Assembler gegeprutst ..
« Laatst bewerkt op: 2009/09/02, 19:50:44 door track »

Re: Wat is een aanrader in de Programeerwereld
« Reactie #6 Gepost op: 2009/09/02, 19:47:12 »
Ge moet ook niet speciaal een IDE hebben. Ik programmeer gewoon in Gedit en de terminal, gaat perfect.

Zelf ben ik begonnen met direct een grafisch programma te schrijven (in GTK ;)), en dan zo ook in ene weg Python. Dus het moet niet persé eerst de taal, dan de toolkit zijn. Maar ik merk toch dat als ik wel eerst wat Python cursussen had gedaan, dat alles waarschijnlijk wat beter en makkelijker was gegaan op het begin.

Re: Wat is een aanrader in de Programeerwereld
« Reactie #7 Gepost op: 2009/09/02, 19:48:11 »
C / C++ zal je eerder gebruiken als je basisfuncties programmeert (b.v. ook drivers ..)

track

Waar nog meer voor dan?

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #8 Gepost op: 2009/09/02, 19:48:50 »
Ik heb Anjuta nooit geprobeerd, maar als het je wat lijkt, probeer het gewoon :)

Ik programmeer in verschillende talen, maar meestal de volgende:
Qt/C++ voor grafische cross-platform programma's
C of C++ voor libraries of commandline programma's
Python voor simpele scriptjes of kleinere programma's

"The right tool for the right job" daar komt het op neer.
Python kan echter ook voor grote programma's gebruikt worden, en C++ voor hele kleine programma's... dus mijn keuze hoef je zeker niet te volgen als je dat niet wil :)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Wat is een aanrader in de Programeerwereld
« Reactie #9 Gepost op: 2009/09/02, 19:51:51 »
Ik programmeer in verschillende talen, maar meestal de volgende:
Qt/C++ voor grafische cross-platform programma's

Wat is cross-Platform? Net zoiets als Openshot Video?

Citaat
Python voor simpele scriptjes of kleinere programma's
Waar versta je kleine programma's onder?

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #10 Gepost op: 2009/09/02, 19:52:18 »
C / C++ zal je eerder gebruiken als je basisfuncties programmeert (b.v. ook drivers ..)

track

Waar nog meer voor dan?
C en C++ kunnen voor zowat alles wat je kan bedenken gebruikt worden. Je kan er een heel besturingssysteem mee programmeren, of een hardware driver, of een gewoon programma, of een spelletje...

Python kan ook voor veel dingen gebruikt worden, maar niet voor zaken als een besturingssysteem of een hardware driver. Daar is Python vanwege de interpreted natuur niet voor geschikt.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #11 Gepost op: 2009/09/02, 19:54:36 »
Wat is cross-Platform? Net zoiets als Openshot Video?
Cross-platform betekent dat het programma op alle gangbare platformen werkt (Linux, Windows, Mac, Solaris, *BSD... en in het geval van Qt nog veel meer)

Python voor simpele scriptjes of kleinere programma's
Waar versta je kleine programma's onder?
Dat is maar waar ik het _persoonlijk_ voor gebruik. Python is ook wel geschikt om grotere applicaties of simpele games mee te ontwikkelen (voor high-end 3D games waar je zoveel mogelijk performance moet kunnen halen is C/C++ natuurlijk wel beter geschikt)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline track

  • Lid
Re: Wat is een aanrader in de Programeerwereld
« Reactie #12 Gepost op: 2009/09/02, 19:58:42 »
...
Waar nog meer voor dan?
voor een geheel Linux soms ?   Intern is meer dan de helft van Linux in C(++) geschreven.
Ik zelf heb vroeger ook tekstfilters in C geschreven (toen nog onder DOS..)

Maar je vroeg naar portabiliteit.  Bij een C- programma moet je stukken van de code
voor de desbetreffende omgeving aanpassen.  Anders lukt het niet.  Die taak kan een toolkit
gedeeltelijk overnemen.
Bij Python  moet je de goede interpreter voor de desbetreffende omgeving hebben.
(en wat je verder moet aanpassen hangt af van wat je wilt doen)

track

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #13 Gepost op: 2009/09/02, 20:00:26 »
Maar je vroeg naar portabiliteit.  Bij een C- programma moet je stukken van de code
voor de desbetreffende omgeving aanpassen.  Anders lukt het niet.  Die taak kan een toolkit
gedeeltelijk overnemen.
track
Als je de ANSI C standaard volgt en je gebruikt standaard C functies, dan werken C programma's prima op eender welk platform.
Je moet er natuurlijk wel voor zorgen dat extra libraries of toolkits die je gebruikt, dat die ook cross-platform zijn.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Wat is een aanrader in de Programeerwereld
« Reactie #14 Gepost op: 2009/09/02, 20:03:51 »
Dus QT is Cross-Platform

Offline Joshua822

  • Lid
Re: Wat is een aanrader in de Programeerwereld
« Reactie #15 Gepost op: 2009/09/02, 20:09:42 »
Dooitze de Jong, heb je al geprogrammeerd of ga je ermee beginnen?

In het tweede geval ga ik je sterk aanmoedigen om met Python te beginnen. Je hebt in C(++) een degelijk begrip van zaken als condities, lussen, arrays, variabelen enzovoort... nodig wil je niet je hoofd dagen tegen een muur gaan kloppen.

Leer eerst Python : het zal je deze zaken leren begrijpen, ook is Python sowieso makkelijker.

Je kunt, zoals gezegd ook grote applicaties programmeren in Python. Het is gewoon ongeschikt op toepassingen waarvoor snelheid heel kritisch is of er op een laag niveau wordt gewerkt ( No main() function, welcome to kernel land! :D ).

Ik wens je veel succes. En ik hoop ook dat je binnenkort mijn C vragen kunt beantwoorden ;)

-edit-

Ja, Qt is cross platform.

Re: Wat is een aanrader in de Programeerwereld
« Reactie #16 Gepost op: 2009/09/02, 20:11:29 »
Dus QT is Cross-Platform

GTK anders ook. Mijn programma werkt perfect onder Linux en Windows. Op Mac nog met kleine foutjes, maar het is mogelijk.

Offline track

  • Lid
Re: Wat is een aanrader in de Programeerwereld
« Reactie #17 Gepost op: 2009/09/02, 20:13:18 »
profox:  praktisch heb je gelijk.  Want de variatie van de headers gebeurt intern al door "compiler-switches".
En de toolkits doen dit vaak al perfect voor jou.  Maar niettemin moet het wél gebeuren... en je moet het weten.

"portabel" betekent in principe, dat je het kunt overzetten naar een ander systeem.
"Cross Platform" betekent eigenlijk dat je iets op systeem A programmeert en later op systeem B laat draaien.

In het praktijk heb je vaak allebei tegelijk.

track

Re: Wat is een aanrader in de Programeerwereld
« Reactie #18 Gepost op: 2009/09/02, 20:15:27 »
Edit: Heb al gevonden dat Qt blijkbaar ook andere bindings heeft :)
« Laatst bewerkt op: 2009/09/02, 20:20:20 door Carharttguy »

Re: Wat is een aanrader in de Programeerwereld
« Reactie #19 Gepost op: 2009/09/02, 20:18:20 »
Dooitze de Jong, heb je al geprogrammeerd of ga je ermee beginnen?

Ik ga ermee beginnen, ken een heel klein beetje python. Daarom is de vertaling van het boek Think Python ook zo handig

Citaat
Ik wens je veel succes. En ik hoop ook dat je binnenkort mijn C vragen kunt beantwoorden Wink

Thanks


Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #20 Gepost op: 2009/09/02, 20:21:24 »
Dus QT is Cross-Platform

GTK anders ook. Mijn programma werkt perfect onder Linux en Windows. Op Mac nog met kleine foutjes, maar het is mogelijk.
Het is echter niet simpel om een GTK+ programma te packagen als een stand-alone binary op Windows of Mac. Ook zal de interface er nogal lelijk uitzien op Windows en Mac in vergelijking met een Qt applicatie op die platformen.

"portabel" betekent in principe, dat je het kunt overzetten naar een ander systeem.
"Cross Platform" betekent eigenlijk dat je iets op systeem A programmeert en later op systeem B laat draaien.

In het praktijk heb je vaak allebei tegelijk.
Mijn punt is dat C programma's die volgens standaarden zijn geschreven geen aanpassingen nodig hebben om op andere systemen te werken. Vanzelfsprekend is de compiler op elk systeem wel anders geïmplementeerd, maar dat geldt ook voor interpreters of virtual machines bij bv. Python en Java. Als programmeur moet je je daar echter niets van aantrekken.

Nog even over Qt, ik begin nu net met python, en zou graag later wat met Qt gaan doen, maar ik vind op de site alleen als info:

Citaat
Qt Creator is a new cross-platform integrated development environment (IDE) tailored to the needs of Qt developers.  It includes:
    * An advanced C++ code editor
    * [...]

is die dan ook wel geschikt voor Python?
Ja. Er is een Python binding van RiverbankComputing, genaamd PyQt, maar deze is wel GPL/closed source cross-licensed. Dat betekent dat je er gratis en voor niks open source programma's mee mag maken, maar als je closed source software wil schrijven heb je een commerciële licentie nodig.

Qt Software werkt sinds kort echter samen met OpenBossa en anderen om een nieuwe versie van Python/Qt te ontwikkelen die LGPL licensed is, en waarmee je dus zowel open source als closed source programma's mag maken zonder te hoeven betalen: PySide
Het is trouwens goed mogelijk dat PyQt van RiverbankComputing ook nog overstapt op LGPL-licenties... dat valt af te wachten..
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Wat is een aanrader in de Programeerwereld
« Reactie #21 Gepost op: 2009/09/02, 20:23:47 »
Wat raden jullie mij nou precies aan???

Re: Wat is een aanrader in de Programeerwereld
« Reactie #22 Gepost op: 2009/09/02, 20:25:34 »
GTK anders ook. Mijn programma werkt perfect onder Linux en Windows. Op Mac nog met kleine foutjes, maar het is mogelijk.
Het is echter niet simpel om een GTK+ programma te packagen als een stand-alone binary op Windows of Mac. Ook zal de interface er nogal lelijk uitzien op Windows en Mac in vergelijking met een Qt applicatie op die platformen.

Kan ik gerust tegenspreken :). Mijn PyGTK programma ziet er op Windows beter uit dan de meeste programma's. Op Mac nog niet, omdat ik eerst de foutjes eruit wil halen voordat ik aan het thema begin, maar daar kan dus het standaard thema gebruikt worden.

En ook dat packagen is een eitje met py2exe. Als uw exe is gemaakt met py2exe, zet ge gewoon de etc, lib en share (waar ge alle overbodige dingen uitjast) folders van GTK in dezelfde map als uw programma en het werkt.
« Laatst bewerkt op: 2009/09/02, 20:27:17 door Nunslaughter »

Offline track

  • Lid
Re: Wat is een aanrader in de Programeerwereld
« Reactie #23 Gepost op: 2009/09/02, 20:35:41 »
...
Ik ga ermee beginnen, ken een heel klein beetje python.  ...
En dat raad ik je dus precies aan !

Tenzij je echt absoluut gelukkig bent met wiskundige theorie  is het beste dat je kunt doen
gewoon met Python in te stappen.  Je begint sowiese met "kleinere programma's".
En die heb je met Py zeker sneller an de praat.

track

p.s.  profoX: 
...
Mijn punt is dat C programma's die volgens standaarden zijn geschreven geen aanpassingen nodig hebben om op andere systemen te werken. ...
Was dat maar waar !  Ik heb een C-programma van een Borland 1 compiler toen niet op een  Borland 6 compiler aan de praat gekregen. 
Laat staan op een Linux- gcc .  De headers en includes passen gewoon niet mits zij niet echt portabel zijn geschreven.
« Laatst bewerkt op: 2009/09/02, 20:38:17 door track »

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Wat is een aanrader in de Programeerwereld
« Reactie #24 Gepost op: 2009/09/02, 21:03:57 »
Het is echter niet simpel om een GTK+ programma te packagen als een stand-alone binary op Windows of Mac. Ook zal de interface er nogal lelijk uitzien op Windows en Mac in vergelijking met een Qt applicatie op die platformen.

Kan ik gerust tegenspreken :). Mijn PyGTK programma ziet er op Windows beter uit dan de meeste programma's. Op Mac nog niet, omdat ik eerst de foutjes eruit wil halen voordat ik aan het thema begin, maar daar kan dus het standaard thema gebruikt worden.

En ook dat packagen is een eitje met py2exe. Als uw exe is gemaakt met py2exe, zet ge gewoon de etc, lib en share (waar ge alle overbodige dingen uitjast) folders van GTK in dezelfde map als uw programma en het werkt.
Leuk om te horen dat het bij jou zo goed werkt.. kan je mij misschien eens een .exe opsturen, ik zou dit graag met mijn eigen ogen willen zien ;) (ik neem aan dat het zowel op Windows Vista als Windows 7 perfect werkt?)

Was dat maar waar !  Ik heb een C-programma van een Borland 1 compiler toen niet op een  Borland 6 compiler aan de praat gekregen.  
Laat staan op een Linux- gcc .  De headers en includes passen gewoon niet mits zij niet echt portabel zijn geschreven.
Nouja, je hebt natuurlijk wel verschillende C standaarden en verschillende compilers die niet aan die standaarden voldoen...
« Laatst bewerkt op: 2009/09/02, 21:36:08 door profoX »
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)