Nieuws:

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

Auteur Topic: C++ & QT  (gelezen 9328 keer)

C++ & QT
« Gepost op: 2010/01/19, 13:34:03 »
Hallo allemaal,

Ik wil eigenlijk wel weer verder gaan met programmeren.
Heb een tijdje andere dingen gedaan, maar...

Ik kan al een "beetje" programmeren in PHP en Python, en heb met die kennis al websites en PyGTK programma's gemaakt.
Nu wil ik het grafische gedeelte sowieso in QT maken, i.v.m. Cross-Platform, dat moet ik nog leren.

Nu is mijn vraag, kan ik mijn programma's beter in Python of C(++) schrijven?
« Laatst bewerkt op: 2010/03/05, 23:04:26 door rick.blub »
Volop Ubuntu 12.04 gebruiker.

Re: Python of C(++)
« Reactie #1 Gepost op: 2010/01/19, 13:44:24 »
Dit is een vraag die hier al verschillende keren is teruggekomen.
Ik zou persoonlijk, voor het werken met QT, c++ aanraden, dit omdat deze in de QT-ontwikkelomgeving inzet, en je dus maar op debug moet klikken om alles te testen.
Als je met python werkt dan mis je een heel stuk van dat debugger gedeelte. Verder heeft QT grotendeels zijn eigen bibliotheken en heb je daar normaal gezien niet zo veel echte C++ voor nodig.
Verder heeft de syntax van c++ wel veel weg van php, ik denk maar aan de ; op het einde van iedere lijn, hoe de lussen zijn opgebouwd, ...
http://leerubuntu.org (ubuntu zonder moeilijke woorden)
VoidWarranties (Hackerspace) Antwerpen
Microsoft isn't evil, they just make really crappy operating systems. - Linus Torvalds

Re: Python of C(++)
« Reactie #2 Gepost op: 2010/01/19, 14:00:58 »
QT ga ik ook gebruiken, daar kon ik wel genoeg over vinden.
Python kan ik ook al, heb ik zelfs al (niet echt zinvolle) programma's i.c.m. GTK+ geschreven.
Nu vindt ik het niet erg om C++ te gaan leren. QT is ook nog nieuw voor mij, dus eigenlijks is de vraag,
Is het nuttig om C++ te gaan leren?
Volop Ubuntu 12.04 gebruiker.

Re: Python of C(++)
« Reactie #3 Gepost op: 2010/01/19, 14:07:37 »
QT ga ik ook gebruiken, daar kon ik wel genoeg over vinden.
Python kan ik ook al, heb ik zelfs al (niet echt zinvolle) programma's i.c.m. GTK+ geschreven.
Nu vindt ik het niet erg om C++ te gaan leren. QT is ook nog nieuw voor mij, dus eigenlijks is de vraag,
Is het nuttig om C++ te gaan leren?
Het is altijd nuttig om c++ te gaan leren.
Het is echter wel zo dat python zo goed als 100% platformonafhankelijk is, terwijl je met c++ vaak je code toch wel wat moet gaan herschrijven. De verschillen zijn niet zo groot, maar ze zijn er wel.
Het is een keuze die je bij jezelf moet leggen, als je gewoon aan open-source programma's wil bijdragen kom je al ver met python (al zijn er ook heel veel projecten met c++, en het belangrijkste deel van linux, namelijk de kernel, is ook in c++ geschreven). Wil je op de arbeidsmarkt ook iets met je programmeerskills doen, dan is python zo goed als waardeloos. Dit is ook niet helemaal waar, want eens je de logica achter het programmeren doorhebt maakt het eigenlijk niet meer veel uit welke taal je gebruikt.

Gewoon eens zelf nadenken of je aan een nieuwe uitdaging toe bent, de c++ syntax is wel een stukje lastigger als die van python.
Bij c++ moet je echt variabelen gaan declareren, ga je moeilijkheden tegenkomen met het omzetten van de ene variabele naar de andere,...

Java zou ook een goede keuze zijn, maar daar heb ik mezelf nog niet echt in verdiept.
http://leerubuntu.org (ubuntu zonder moeilijke woorden)
VoidWarranties (Hackerspace) Antwerpen
Microsoft isn't evil, they just make really crappy operating systems. - Linus Torvalds

Re: Python of C(++)
« Reactie #4 Gepost op: 2010/01/19, 14:29:36 »
Okee, ik ga eens naar C++ kijken :D
Volop Ubuntu 12.04 gebruiker.

Re: Python of C(++)
« Reactie #5 Gepost op: 2010/01/19, 15:17:09 »
Dan heb je nog die leuke vraag:
Waar te beginnen???

Wat is een goede tutorial om C++ en QT mee te leren?
Volop Ubuntu 12.04 gebruiker.

Re: Python of C(++)
« Reactie #6 Gepost op: 2010/01/19, 15:48:38 »
Dan heb je nog die leuke vraag:
Waar te beginnen???

Wat is een goede tutorial om C++ en QT mee te leren?

Voor die dingen is een hele wiki-pagina gemaakt:
http://wiki.ubuntu-nl.org/community/ProgrammerenInUbuntu/
http://leerubuntu.org (ubuntu zonder moeilijke woorden)
VoidWarranties (Hackerspace) Antwerpen
Microsoft isn't evil, they just make really crappy operating systems. - Linus Torvalds

Offline EarthMind

  • Lid
Re: Python of C(++)
« Reactie #7 Gepost op: 2010/01/19, 18:47:59 »
Waarom niet beide leren? Je zal hoogstwaarschijnlijk wel gevallen komen waar de een beter is dan de andere om te gebruiken.

Persoonlijk leer ik zelf liever Perl (waar ik ook nu mee bezig ben) dan Python omdat deze veel meer vrijheid geeft (wat ook nadelig kan zijn voor de leesbaarheid van je broncode als je overdrijft) en omdat deze een databank van duizenden openbron archieven heeft: http://www.cpan.org/.
Geen Dropbox maar Wuala!

Offline Emil

  • Lid
Re: Python of C(++)
« Reactie #8 Gepost op: 2010/01/19, 21:25:24 »
Het is altijd nuttig om c++ te gaan leren.
Het is echter wel zo dat python zo goed als 100% platformonafhankelijk is, terwijl je met c++ vaak je code toch wel wat moet gaan herschrijven. De verschillen zijn niet zo groot, maar ze zijn er wel.
Het is een keuze die je bij jezelf moet leggen, als je gewoon aan open-source programma's wil bijdragen kom je al ver met python (al zijn er ook heel veel projecten met c++, en het belangrijkste deel van linux, namelijk de kernel, is ook in c++ geschreven). Wil je op de arbeidsmarkt ook iets met je programmeerskills doen, dan is python zo goed als waardeloos. Dit is ook niet helemaal waar, want eens je de logica achter het programmeren doorhebt maakt het eigenlijk niet meer veel uit welke taal je gebruikt.

Gewoon eens zelf nadenken of je aan een nieuwe uitdaging toe bent, de c++ syntax is wel een stukje lastigger als die van python.
Bij c++ moet je echt variabelen gaan declareren, ga je moeilijkheden tegenkomen met het omzetten van de ene variabele naar de andere,...

Java zou ook een goede keuze zijn, maar daar heb ik mezelf nog niet echt in verdiept.
Als je C++ in combinatie met Qt gebruikt kun je ook gemakkelijk platformonafhankelijke code schrijven. De Linux kernel is trouwens hoofdzakelijk in C geschreven en niet in C++.

Re: Python of C(++)
« Reactie #9 Gepost op: 2010/01/20, 08:27:11 »
De Linux kernel is trouwens hoofdzakelijk in C geschreven en niet in C++.

Dat maakt voor miij verder tog niet uit, of wel?
Het verschil tussen C en C++ is toch dat C++ nieuwer en uitgebreider is, of heb ik dat verkeert.
Volop Ubuntu 12.04 gebruiker.

Offline idefix

  • Lid
Re: Python of C(++)
« Reactie #10 Gepost op: 2010/01/20, 10:50:19 »
De Linux kernel is trouwens hoofdzakelijk in C geschreven en niet in C++.

Dat maakt voor miij verder tog niet uit, of wel?
Het verschil tussen C en C++ is toch dat C++ nieuwer en uitgebreider is, of heb ik dat verkeert.
Juist. C++ is eigenlijk C met enkele vernieuwingen en uitbreidingen, waarvan de grootste uitbreiding Objectgericht Programmeren (OOP = Object Oriented Programming) is. Neem wel je tijd om C++ te leren, het is een van de moeilijkste (doch interessantste) programmeertalen. Als je geen of minder tijd wil investeren in studie, is Python een betere keuze.
Anderzijds hoor je steeds meer dat C en C++ vaker voor systeemprogrammatie gebruikt worden (drivers e.d.), terwijl voor toepassingen eerder naar Python, Java, Ruby,... gegrepen wordt. Dit komt vooral omdat C en C++ je nog met pointers laat werken, waardoor je makkelijk fouten maakt (die tot geheugenlekken en zo kunnen leiden).
De "hogere" talen (Java, Python,...) gebruiken pointers achter de schermen. Als programmeur heb je ze niet meer nodig.
De "hogere" talen hebben bovendien kant en klare ingewikkelde datastructuren die je in C en C++ zelf nog moet schrijven. Dus waarom nog het warm water uitvinden?
Tenslotte zijn C en C++ minder overdraagbaar (platform-onafhankelijk) dan bvb Python.

Voila, dat is mijn insteek. C en C++ zijn zeer interessant om te leren, maar als het louter gaat om het schrijven van toepassingen, zal je sneller resultaat hebben met Python, java,...
Support bacteria. They're the only culture some people have.

Re: Python of C(++)
« Reactie #11 Gepost op: 2010/01/20, 18:01:39 »
Ik doe dit gewoon om te hobbyen en mijn vrije tijd op te vullen.
Dus ik ga de uitdaging met C++ aan :P
Volop Ubuntu 12.04 gebruiker.

Offline Emil

  • Lid
Re: Python of C(++)
« Reactie #12 Gepost op: 2010/01/20, 18:06:21 »
Juist. C++ is eigenlijk C met enkele vernieuwingen en uitbreidingen, waarvan de grootste uitbreiding Objectgericht Programmeren (OOP = Object Oriented Programming) is. Neem wel je tijd om C++ te leren, het is een van de moeilijkste (doch interessantste) programmeertalen. Als je geen of minder tijd wil investeren in studie, is Python een betere keuze.
Anderzijds hoor je steeds meer dat C en C++ vaker voor systeemprogrammatie gebruikt worden (drivers e.d.), terwijl voor toepassingen eerder naar Python, Java, Ruby,... gegrepen wordt. Dit komt vooral omdat C en C++ je nog met pointers laat werken, waardoor je makkelijk fouten maakt (die tot geheugenlekken en zo kunnen leiden).
De "hogere" talen (Java, Python,...) gebruiken pointers achter de schermen. Als programmeur heb je ze niet meer nodig.
De "hogere" talen hebben bovendien kant en klare ingewikkelde datastructuren die je in C en C++ zelf nog moet schrijven. Dus waarom nog het warm water uitvinden?
Tenslotte zijn C en C++ minder overdraagbaar (platform-onafhankelijk) dan bvb Python.

Voila, dat is mijn insteek. C en C++ zijn zeer interessant om te leren, maar als het louter gaat om het schrijven van toepassingen, zal je sneller resultaat hebben met Python, java,...
Dat de kernel in C geschreven is en niet in C++ maakt nu niet echt uit nee, ik zei het maar gewoon omdat het fout was ;) Voor kernelontwikkelaars maakt het wel uit: Linux: C++ In the Kernel?

Als je veel van Qt gebruikt (Qt is veel meer dan een GUI toolkit) kun je met C++ ook heel gemakkelijk cross-platform code maken. Met Qt zul je het wiel of het warm water iig ook niet opnieuw moeten uitvinden.

Offline Joshua822

  • Lid
Re: Python of C(++)
« Reactie #13 Gepost op: 2010/01/20, 18:46:20 »
Citaat
Juist. C++ is eigenlijk C met enkele vernieuwingen en uitbreidingen, waarvan de grootste uitbreiding Objectgericht Programmeren (OOP = Object Oriented Programming) is.

Voor object gericht programmeren hoef je niet voor C++ te kiezen. Dat kun je in C ook ( bijvoorbeeld: function pointers, je mag geen functie declareren in een struct, maar wel een pointer naar een functie ). Ik heb daar wel erg weinig ervaring mee, maar geloof me, het kan.

C++ heeft echter andere gebieden waar het in uitbloeit : templates ( deze zijn enorm handig eens je ze begrijpt ! ), namespaces, polymorphism,...

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: Python of C(++)
« Reactie #14 Gepost op: 2010/01/20, 19:41:57 »
Neem wel je tijd om C++ te leren, het is een van de moeilijkste (doch interessantste) programmeertalen. Als je geen of minder tijd wil investeren in studie, is Python een betere keuze.
Daar ben ik het helemaal mee eens. C++ kan erg lastig zijn, zeker voor een beginnend programmeur! Ik zou dit echt niet als eerste taal om te leren aanraden.

Zelf heb ik laatst ge-experimenteerd met C++ en Qt. Zie het QLogic onderwerp.
De C++/Qt code vond ik er een stuk makkelijker uitzien dan de C++ waar ik mee was begonnen. Je zou bijv. kunnen beginnen door extra functionalitieit aan dit programmaatje toe te voegen.
Toch zou ik om te beginnen Python of Java aanraden.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline idefix

  • Lid
Re: Python of C(++)
« Reactie #15 Gepost op: 2010/01/20, 19:51:05 »
Ik doe dit gewoon om te hobbyen en mijn vrije tijd op te vullen.
Dus ik ga de uitdaging met C++ aan :P

That's the spirit! Het is zeker de moeite waard, want het geeft veel voldoening!
Support bacteria. They're the only culture some people have.

Re: Python of C(++)
« Reactie #16 Gepost op: 2010/01/20, 21:25:50 »
Ik doe dit gewoon om te hobbyen en mijn vrije tijd op te vullen.
Dus ik ga de uitdaging met C++ aan :P
That's the spirit! Het is zeker de moeite waard, want het geeft veel voldoening!
Zo ben ik ook aan PyGTK en het bouwen van websites begonnen.
Ook het opzetten van een eigen server, maar dat lukte dan weer niet XD
Volop Ubuntu 12.04 gebruiker.

Re: Python of C(++)
« Reactie #17 Gepost op: 2010/01/21, 21:16:12 »
Heb die eerste C++ & QT tutorial gevolgt, met succes.
Die 2e maakt geen gebruik van QDevelop, welke ik wel wil gebruiken... (iets gemakkelijker ;))
Zijn hier nog meerdere tutorials over?
Volop Ubuntu 12.04 gebruiker.

Re: C++ & QT
« Reactie #18 Gepost op: 2010/03/05, 22:04:08 »
Ben ik weer.

Gaat goed met leren, heb eerste programma geschreven =D
Met QDevelop kan ik hem makkelijk compileren voor linux,
Hoe kan ik een uitvoerbaar bestand maken voor windows?
Lieft onder linux, maar windows mag ook.
Volop Ubuntu 12.04 gebruiker.

Re: C++ & QT
« Reactie #19 Gepost op: 2010/03/06, 09:58:41 »
Ben ik weer.

Gaat goed met leren, heb eerste programma geschreven =D
Met QDevelop kan ik hem makkelijk compileren voor linux,
Hoe kan ik een uitvoerbaar bestand maken voor windows?
Lieft onder linux, maar windows mag ook.
Ik denk dat het gemakkelijkste is dat je je code op een windows-bak zet en het daar compileert met compiler naar keuze...

- SeySayux
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline Joshua822

  • Lid
Re: C++ & QT
« Reactie #20 Gepost op: 2010/03/06, 10:14:35 »
Citaat
Hoe kan ik een uitvoerbaar bestand maken voor windows?
Lieft onder linux, maar windows mag ook.

Dat is mogelijk in GNU\Linux ;) GCC kan crosscompilen, maar niet standaard. Je zult dus je eigen GCC crosscompiler moeten opzetten.

Hier is alvast een nuttige link naar een draadje op het forum van cplusplus.com:
http://www.cplusplus.com/forum/unices/3700/

Trouwens, zoals SeySayux al zei: de eenvoudigste manier blijft om het programma gewoon op Windows te compileren.

Offline Double12

  • Lid
Re: C++ & QT
« Reactie #21 Gepost op: 2010/03/06, 11:23:42 »
Voor object gericht programmeren hoef je niet voor C++ te kiezen. Dat kun je in C ook ( bijvoorbeeld: function pointers, je mag geen functie declareren in een struct, maar wel een pointer naar een functie ). Ik heb daar wel erg weinig ervaring mee, maar geloof me, het kan.
Met veel moeite kun je inderdaad met C ook wel objectgeorienteerd programmeren. C++ is er echter helemaal voor gemaakt om objectgeorienteerd te werken, je hoeft geen function pointers in objecten te zetten; je kunt gewoon classes maken waar functies in zitten.

Re: C++ & QT
« Reactie #22 Gepost op: 2010/03/06, 11:52:30 »
Dat is mogelijk in GNU\Linux ;) GCC kan crosscompilen, maar niet standaard. Je zult dus je eigen GCC crosscompiler moeten opzetten.

Hier is alvast een nuttige link naar een draadje op het forum van cplusplus.com:
http://www.cplusplus.com/forum/unices/3700/

Zal ik eens naar kijken.

Trouwens, zoals SeySayux al zei: de eenvoudigste manier blijft om het programma gewoon op Windows te compileren.

Ga ik eerst voor.
Welke compilers zijn er voor windows, en welke is is een goede?
Volop Ubuntu 12.04 gebruiker.

Offline Joshua822

  • Lid
Re: C++ & QT
« Reactie #23 Gepost op: 2010/03/06, 17:03:10 »
Ik zou gaan voor Dev Cpp.

Als je een tekstgebaseerde compiler wilt, zou ik gaan voor Cygwin. Ik gebruik dit ook als ik op Windows werk en ik vind het erg aangenaam werken. Maar neem wel even de documentatie door! MinGW is een goed alternatief.

Citaat
Met veel moeite kun je inderdaad met C ook wel objectgeorienteerd programmeren. C++ is er echter helemaal voor gemaakt om objectgeorienteerd te werken, je hoeft geen function pointers in objecten te zetten; je kunt gewoon classes maken waar functies in zitten.

Het hangt er ook vanaf wat je met object georiënteerd programmeren bedoeld. Maar data en functies bundelen kan wel zonder veel moeite. Het enige wat jammer is, is dat we steeds het type struct variabel moeten geven aan de functie. Hier is een voorbeeld van wat ik bedoel:
// m.b.v. een function pointer in een type struct
a.functie(a);
// m.b.v. een functie die een variabel van een bepaald type struct neemt
functie(a);

Maar C++ biedt natuurlijk meer dan alleen het bundelen van data en functies in classes. En als je zo'n voorzieningen in C implementeert wordt het inderdaad een rommeltje.

Re: C++ & QT
« Reactie #24 Gepost op: 2010/03/06, 20:01:59 »
Ik zou gaan voor Dev Cpp.
Dev-cpp is geen compiler. Het is een IDE, zoals NetBeans, Eclipse, ... Het komt standaard geleverd met mingw (zie onder) maar kan zowat iedere compiler gebruiken.

Citaat
Als je een tekstgebaseerde compiler wilt, zou ik gaan voor Cygwin. Ik gebruik dit ook als ik op Windows werk en ik vind het erg aangenaam werken. Maar neem wel even de documentatie door!
Cygwin is een linux-"emulator" voor Windows. Programma's die gecompileerd zijn in Cygwin draaien niet in Windows zonder een hele hoop extra linux-libraries.

Citaat
MinGW is een goed alternatief.
MinGW is feitelijk GCC voor Windows met wat extra unix-tools.

Verder heb je ook nog Borland C++, MSVC, en anderen. Maar voor zover ik weet is de beste gratis compiler nog altijd GCC. (voor de meeste moet je betalen, en behoorlijk)


- SeySayux
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net