Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

C, C# of C++, welke leer ik best voor mijn doel(en)?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweaker leden,

Graag zou ik leren programmeren in C. Ik heb hiertoe verschillende redenen en zal even kort opsommen waarvoor het moet dienen.
Voor men beroep hou ik me voornamelijk bezig met het elektrisch design en de (plc) programmering van nieuwe/vernieuwde machines voor ons bedrijf. Sinds kort werkt ook een buitenfirma aan een van onze lijnen door deze te upgraden met een beckhoff sturing. Aangezien we daar zelf nog geen ervaring mee hebben, ging ik wat rondkijken naar de programmeeromgeving en dergelijke. Het blijkt dat in de programmeeromgeving C en C++ ondersteund worden.

Nu wil ik ook in mijn vrije tijd de mogelijkheid hebben om wat software met "moderne" gui's te maken. Zo wil ik bijvoorbeeld voor men vriendin, een logopediste, een programma 'ontwikkelen' om haar administratie (opmaken rekeningen, agenda, patiëntdossier, enz.) makkelijker en netter te maken.

Aangezien ik daarbuiten ook nog wat speel met elektronica, zou het leuk zijn om kleine stukjes software te kunnen schrijven voor usb I/O interface etc. Natuurlijk ook met een GUI zodat je bv. met pijltjes of coördinaten een robotje aanstuurt.

Ik was al wat beginnen rondkijken naar de tutorials op cplusplus.com en learncpp.com. Het valt me op dat je daar vooral zaken in console omgeving tegenkomt.

Kan iemand me duidelijk maken welk type C-taal voor mijn toepassingen het best kan dienen?

Alvast érg bedankt!

Verwijderd

Absoluut C++. Als ik het met familie/vrienden over PLCs heb hoor ik nooit iets anders dan C++, maar daar houdt mijn eigen kennis helaas ook op.

Voor leuke GUIs is het een moeilijkere keuze. Als je van plan bent enkel voor Windows te programmeren, is C# waarschijnlijk een goede keuze. C# kan overigens geport worden naar Linux en dergelijke. Dit wordt echter gedaan met frameworks waar ik persoonlijk niet zo'n fan van ben, omdat ze nooit volledige functionaliteit geven, en ook minder performant zijn. Voor cross-platform GUI libraries wordt in C++ vooral GTK en Qt gebruikt, maar beide hebben een vrij zware leercurve.

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Je kan ze ook alle drie leren. Want voor een business app is C# toch wel heel makkelijk, in ieder geval makkelijker dan C++ of C. Voor de andere doeleinde geldt het weer andersom. Maar als je de basis van programeren, de denkwijze, door hebt moet het niet heel lastig zijn 2 van de 3 goed te beheersen. Zelf doe ik ook Javascript, C#, VB.Net, VBA en Java. Dan moet je wel eens wat opzoeken, maar het is goed te doe nvoor de rest.

  • martijnnos
  • Registratie: Januari 2005
  • Niet online
Ik denk persoonlijk dat je het beste voor C++ kan gaan, daar kan je alles in doen wat je wilt. Zolang je maar weet hoe en aangezien je toch voor de PLCs C++ moet kennen lijkt me dat het eenvoudigst.(niet dat het perse eenvoudig is.)

Voor de GUI in Windows volstaat waarschijnlijk MS VS 2012 GUI bouwer zit blijkbaar alleen in de pro versie.
Je kan voor de GUI ook WxWidgets, Qt(met Qt creater kan je drag en drop Gui bouwen)

Zie voor een hele lijst met oplossingen, met de min en pluspunten:
http://wiki.wxwidgets.org...ompared_To_Other_Toolkits

Verder geen ervaring, maar ben ook net een beetje begonnen met C++ met GUI en ondersteuning voor verschillende besturingssystemen.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Linus Torvalds over C versus C++ voor low, level spul:
http://article.gmane.org/...ersion-control.git/57918/ :)

C# is niet erg geschikt voor microprocessor werk. Er is volgens mij een Arduino die op een dialect van C# werkt maar dan houdt 't wel een beetje op.

https://niels.nu


  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Hydra schreef op dinsdag 17 december 2013 @ 19:36:
C# is niet erg geschikt voor microprocessor werk. Er is volgens mij een Arduino die op een dialect van C# werkt maar dan houdt 't wel een beetje op.
Micro Framework FTW, maar dat zal je zo goed als nergens tegenkomen.

Daarnaast zie je dat veel systemen een soort can C++ draaien, arduino e.d. is toch al weer snel C.

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 10:45
Hydra schreef op dinsdag 17 december 2013 @ 19:36:
[...] C# is niet erg geschikt voor microprocessor werk. Er is volgens mij een Arduino die op een dialect van C# werkt maar dan houdt 't wel een beetje op.
Jup, netduino draait .net compact micro* framework.
Verwijderd schreef op dinsdag 17 december 2013 @ 18:36:
[...] Voor cross-platform GUI libraries wordt in C++ vooral GTK en Qt gebruikt, maar beide hebben een vrij zware leercurve.
GTK wellicht, maar Qt is vrij eenvoudig. Met een goed boek leer je jezelf dat echt snel aan.

[ Voor 0% gewijzigd door Caelorum op 17-12-2013 20:02 . Reden: * blijkbaar micro en niet compact framework ]


  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 30-10 12:53

Douweegbertje

Wat kinderachtig.. godverdomme

Is het niet gewoon makkelijker om even aan die 3e partij te vragen waarin ze programmeren? Dan kun je dat gewoon nemen en sluit het wat beter aan.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-11 15:12
Hydra schreef op dinsdag 17 december 2013 @ 19:36:
C# is niet erg geschikt voor microprocessor werk. Er is volgens mij een Arduino die op een dialect van C# werkt maar dan houdt 't wel een beetje op.
Met je eerste opmerking ben ik het eens, maar aangezien er meer op deze aardbol is dan Arduino : Google

Anyways, voor embedded stuff kun je niet om C heen. Voor de administratie-applicatie die je noemt zou ik zelf eerder C# of consorten pakken.

[ Voor 14% gewijzigd door farlane op 17-12-2013 22:46 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • jmzeeman
  • Registratie: April 2007
  • Laatst online: 21-11 08:42
Ik zou ze gewoon alle drie leren maar wel in een specifieke volgorde. Begin bij C dat is op zich een redelijk simpele taal met weinig rare fratsen en ingewikkelde constructies. Maar C bevat wel een paar belangrijke concepten die je als programmeur zou moeten kennen al is het alleen maar om andere talen beter te begrijpen. Ook zou C doordat het vrij lowlevel is goed moeten aansluiten op je huidige kennis.
Daarna zou ik me eerst gaan verdiepen in het object oriented concept en vervolgens met C++ of C# verder gaan. C# zou ik de mooiste volgende stap vinden omdat die taal net iets meer bescherming biedt tegen rare constructies en het een vrij uniforme programeer stijl heeft. Ook het feit dat je je geheugen management niet meer hoeft te doen zal dan een verademing zijn.
C++ bied je een object oriented omgeving met geavanceerde taal constructies waarmee je heel mooie dingen kan doen maar ook je zelf op allerlei nieuwe manieren in je voet kan schieten. Ik denk wel dat in jou branche C en C++ de meest relevante talen zijn.
Persoonlijk zou ik me bij het leren van een taal niet te druk maken over extra frameworks en libraries. Als je wat meer talen kent kan je daarna voor elke projectje kiezen wat het meest geschikt is. <SlechteAutoAanalogie>Een programmeur die maar één taal kent is als een auto monteur met alleen maar sleutel 12</SlechteAutoAnalogie>

[ Voor 50% gewijzigd door jmzeeman op 18-12-2013 08:56 . Reden: perongeluk op verstuur geklikt ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-11 15:12
jmzeeman schreef op woensdag 18 december 2013 @ 08:28:
Ook het feit dat je je geheugen management niet meer hoeft te doen zal dan een verademing zijn.
Als je er niet een GC voor in de plaats krijgt die niet alles kan opruimen zodat je alsnog zelf resources moet gaan opruimen zou ik het met je eens zijn.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • jmzeeman
  • Registratie: April 2007
  • Laatst online: 21-11 08:42
farlane schreef op woensdag 18 december 2013 @ 08:52:
[...]

Als je er niet een GC voor in de plaats krijgt die niet alles kan opruimen zodat je alsnog zelf resources moet gaan opruimen zou ik het met je eens zijn.
Een beetje met het risico om off topic te gaan. Maar ik ken heel weinig dingen die de GC niet voor je kan opruimen. Enige wat ik zo even kan bedenken is een lopende timer. Daarnaast zijn er natuurlijk eventhandlers die voor beginnende .NET programmeurs voor contra intuitieve referenties zorgen (the number of memory leaks in .NET applications is too damn High!). En van sommige resources zoals files wil je vaak zelf bepalen wanneer die vrij worden gegeven. Maar over het algemeen denk ik dat het uit handen geven van het memory management het ontwikkelen een stuk sneller maakt en een hoop fouten voorkomt. Ik heb er volgens mij wel eens cijfers over gelezen maar heb er even geen bron van.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
GC? Ruimt geen temporary files op, geen window handles, geen mutexen. Eigenlijk alles wat IDisposable in .Net wel doet. Is natuurlijk geen toeval: IDisposable is uitgevonden om de interactie met C++ destructors te vergemakkelijken, en die kunnen alles opruimen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
MSalters schreef op woensdag 18 december 2013 @ 13:23:
GC? Ruimt geen temporary files op, geen window handles, geen mutexen. Eigenlijk alles wat IDisposable in .Net wel doet. Is natuurlijk geen toeval: IDisposable is uitgevonden om de interactie met C++ destructors te vergemakkelijken, en die kunnen alles opruimen.
De .NET GC roept Dispose aan alvorens objecten die IDisposable implementeren op te ruimen. Daarnaast bevat C# ook gewoon destructors, alleen heten ze daar finalizers. Het groote verschil met C++ is dat je zelf enkel de controle hebt over wanneer Dispose aangeroepen wordt (door dat zelf te doen en niet aan de GC over te laten) en niet over wanneer de finalizer aangeroepen wordt en de rest van het object echt opgeruimd wordt.

[ Voor 19% gewijzigd door R4gnax op 18-12-2013 13:32 ]


  • jmzeeman
  • Registratie: April 2007
  • Laatst online: 21-11 08:42
MSalters schreef op woensdag 18 december 2013 @ 13:23:
GC? Ruimt geen temporary files op, geen window handles, geen mutexen. Eigenlijk alles wat IDisposable in .Net wel doet. Is natuurlijk geen toeval: IDisposable is uitgevonden om de interactie met C++ destructors te vergemakkelijken, en die kunnen alles opruimen.
Als je je finalizers niet goed implementeert gaat t inderdaad niet goed werken natuurlijk.

Daarnaast is t natuurlijk een beetje een non argument om iets wat in 99.9% van de gevallen perfect werkt en in 0.1% niet dan maar meteen helemaal af te schrijven. Je moet altijd zelf na blijven denken maar t feit dat ik niet bij elk stringetje moet gaan na denken hoe ik dat op sla vind ik persoonlijk een groot voordeel (En ja in C++ zijn daar natuurlijk allemaal mooie dingen voor maar mijn vergelijking was met C). Daarnaast was t niet mijn intentie nog die van de topic starter om een discussie als deze op te starten. Volgens mij hebben C, C++ en C# (en bijna alle andere talen) hun sterke en zwakke kanten en moet je per situatie kijken wat het beste past.

[ Voor 41% gewijzigd door jmzeeman op 18-12-2013 13:49 ]


  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 22-11 22:27

Guldan

Thee-Nerd

Beckhoff Plc's hebben ook libraries zodat je er met C# tegen aan kan praten. Zie oa: http://infosys.beckhoff.c...ncat.ads.sample07.htm&id= voor wat meer informatie.

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-11 15:12
R4gnax schreef op woensdag 18 december 2013 @ 13:30:
De .NET GC roept Dispose aan alvorens objecten die IDisposable implementeren op te ruimen. Daarnaast bevat C# ook gewoon destructors, alleen heten ze daar finalizers.
jmzeeman schreef op woensdag 18 december 2013 @ 13:32:
[...]
Als je je finalizers niet goed implementeert gaat t inderdaad niet goed werken natuurlijk.
M.a.w. je moet alsnog zelf je spul opruimen, precies wat je met een GC probeert te vermijden.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Hoihoi, dank voor de vele reacties! Hoewel sommige ervan nog als chinees in de oren klinken, begrijp ik wel de meeste. En zoals hierboven door jmzeeman wordt aangegeven, was het niet men bedoeling een discussie op te starten rond welke taal best is, maar een vraag te stellen aan jullie met (véél) meer ervaring omtrent welke taal voor mijn toepassingen het meest geschikt is.

Ik veronderstel dat ik de vraag misschien hoor te herformuleren.
- Welk type C zou het best dienen om applicaties met een (windows 7/moderne stijl) GUI te maken?
Mijn wensen zouden zijn:
1) administratieve software maken (opmaken rekeningen, agenda, patiëntdossier, afprinten, opslaan als,...)
2) monitoring software maken (bv. via ADS communicatie aan foutlogging en overzicht huidige status etc te doen)

- Welk type C zou het meest geschikt zijn om applicaties te maken (al dan niet met een basic GUI) om te interfacen met elektronica? Neem nu bv. dat er aan de usb poort een FTDI bordje hangt met daaraan een 433MHz transceiver (zender/ontvanger, seriële data). De microcontroller software is een verhaal apart en gebeurt waarschijnlijk in picbasic, flowcode of iets dergelijks.

Stel dat ik dan ga voor Visual studio express 2013 in combinatie met C++ en WxWidgets. Kies ik hiermee een goede combinatie om administratieve applicaties en monitoring applicaties (vb. via TCP/IP poort een foutcode uitlezen van plc) te maken die kunnen praten via bv. usb en die een meer windows 7 stijl look hebben?

Zijn er ook suggesties van websites, film tutorials of (e-)boeken waarmee ik al een enkele stappen in de "juiste" richting kom?

P.S. Ik verwacht niet het supersnel te leren, maar zou toch graag tussen 1 a 2 jaar al wat resultaten boeken.

/edit: link aangepast --> ging naar verkeerde pagina (labview)

[ Voor 3% gewijzigd door Verwijderd op 18-12-2013 17:29 ]


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
"Welk type C" - beetje een misvatting dat de drie talen varianten van elkaar zijn. C++ is wel een opvolger van C, maar C# is de Microsoft variant van Java.

C is in elk geval geen handige taal voor UI's (geen OO taal). Seriele data verzenden is geen groot probleem, dat kan elke taal dus ook deze 3.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
farlane schreef op woensdag 18 december 2013 @ 15:00:
M.a.w. je moet alsnog zelf je spul opruimen, precies wat je met een GC probeert te vermijden.
De juiste manier om in C# een finalizer te implementeren is in 99.99% van alle gevallen om niet een finalizer te implementeren.

Via IDisposable zijn alle unmanaged resources al op te ruimen. Het enige wat jij als auteur van een bepaalde class die met unmanaged resources werkt hoeft te doen is het disposable pattern te implementeren.

Als consumer van een class hoef je in principe niets te doen. Als je vat wilt nemen op wanneer je programma resources vrij gaat geven, om dat bijv. zo vroeg mogelijk te doen, dan kun jij expliciet Dispose aanroepen of dan kun jij een `using` blok gebruiken. Maar als je dat niet doet, dan zal de GC dat voor je doen zodra het object opgeruimd wordt.

Zolang de auteur van de klasse zijn werk goed gedaan heeft en IDisposable juist geimplementeerd heeft, zul jij er geen resource leak mee kunnen veroorzaken.

[ Voor 4% gewijzigd door R4gnax op 18-12-2013 19:45 ]


Verwijderd

Topicstarter
R4gnax schreef op woensdag 18 december 2013 @ 19:44:
[...]


De juiste manier om in C# een finalizer te implementeren is in 99.99% van alle gevallen om niet een finalizer te implementeren.
blablabla...
... dank voor de topic vervuiling. Als je dan ook iets van toegevoegde waarde had inzake mijn vragen, dan had ik er helemaal geen probleem mee dat je er iets anders bij nam. Mag ik je vragen voor die discussie een ander topic te openen?
MSalters schreef op woensdag 18 december 2013 @ 19:40:
"Welk type C" - beetje een misvatting dat de drie talen varianten van elkaar zijn. C++ is wel een opvolger van C, maar C# is de Microsoft variant van Java.

C is in elk geval geen handige taal voor UI's (geen OO taal). Seriele data verzenden is geen groot probleem, dat kan elke taal dus ook deze 3.
Dank voor je reactie! Bedoel je met dat laatste dan algemeen de "groep" C of doel je specifiek op het eigenlijke C ipv C++ of C#?

Is er dan een andere taal/omgeving beter voor GUI's? Dan leer ik C++ wel voor men werk, maar voor men privé iets anders. Het is de bedoeling de software op windows te draaien, hoewel ik open sta om alles open source + cross platform te maken. Maar het moet dan wel de meer grafische (W7) look kunnen hebben.

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 10:45
Verwijderd schreef op woensdag 18 december 2013 @ 20:29:
[...] ... dank voor de topic vervuiling. [...]
Voor klachten is er ook een ander topic ;) Also dit is heel normaal in programmeer gerelateerde topics hier op GOT..
[..] Dank voor je reactie! Bedoel je met dat laatste dan algemeen de "groep" C of doel je specifiek op het eigenlijke C ipv C++ of C#?
Alle drie de talen, maar zoals al eerder is aangehaald is C# niet te vergelijken met C/C++. C# is een managed taal die draait met een virtual machine zoals Java.
Is er dan een andere taal/omgeving beter voor GUI's? Dan leer ik C++ wel voor men werk, maar voor men privé iets anders. [...] Maar het moet dan wel de meer grafische (W7) look kunnen hebben.
C++ is prima geschikt om GUI's mee te maken. Met behulp van GTK+, WxWidgets, Qt of 1 van de andere honderden frameworks. C# met WPF sluit uiteraard goed aan bij de 'W7' looks. Zelfs in C is het wel mogelijk GUI's te maken, maar het is absoluut niet de meest geschikte keuze.

Verwijderd

Topicstarter
Caelorum schreef op woensdag 18 december 2013 @ 21:04:
[...]

Voor klachten is er ook een ander topic ;) Also dit is heel normaal in programmeer gerelateerde topics hier op GOT..

C++ is prima geschikt om GUI's mee te maken. Met behulp van GTK+, WxWidgets, Qt of 1 van de andere honderden frameworks. C# met WPF sluit uiteraard goed aan bij de 'W7' looks. Zelfs in C is het wel mogelijk GUI's te maken, maar het is absoluut niet de meest geschikte keuze.
Bedankt, ook voor de terechtwijzing. Ik ben dan ook een groentje hier ;)

Dan denk ik voor C++ of C# te kiezen. Ik zal van beide enkele tutorials onder de loep nemen en dan eerst verder gaan met hetgeen me best ligt.

Bedankt allemaal! Verwacht binnenkort maar programmeer-tips-vragen :)

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 10:45
Let met C++ wel op dat je kijkt naar tutorials voor C++11 of "modern C++". Overigens omdat je ook met hardware bezig wilt zijn is C++ wellicht makkelijker omdat het een superset (met kanttekeningen) is van C. Daardoor is de overstap naar C wellicht eenvoudiger. C is overigens misschien zelfs beter om mee te beginnen, omdat het een vrij kleine en overzichtelijke taal is, waardoor het eenvoudiger te leren is dan C++ of vermoed zelfs C#.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-11 15:12
Verwijderd schreef op woensdag 18 december 2013 @ 17:24:
- Welk type C zou het meest geschikt zijn om applicaties te maken (al dan niet met een basic GUI) om te interfacen met elektronica? Neem nu bv. dat er aan de usb poort een FTDI bordje hangt met daaraan een 433MHz transceiver (zender/ontvanger, seriële data). De microcontroller software is een verhaal apart en gebeurt waarschijnlijk in picbasic, flowcode of iets dergelijks.
Als je C leert, kun je de talen die je noemt ( PIC basic? ieuw! ) achterwege laten en je uP ook in C programmeren, wat eigenlijk de defacto taal is voor een microcontroller. ( Behalve PIC's die zitten nog in het assembly tijdperk denk ik. Just kidding. )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • flipkipse
  • Registratie: Mei 2010
  • Laatst online: 08-11 02:27

flipkipse

Google it

C:
leuk voor microcontrollers als een ATMEGA 328p
C++:
Leuk om game engines mee te maken, grafisch? no way!
C#:
Easy graphics, en ruimt alles achter je kont op.

Certified Google Teacher.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-11 15:12
flipkipse schreef op donderdag 19 december 2013 @ 13:45:
C:
leuk voor microcontrollers als een ATMEGA 328p
C++:
Leuk om game engines mee te maken, grafisch? no way!
C#:
Easy graphics, en ruimt alles achter je kont op.
Sorry maar geen van je opmerkingen is echt zinnig:
- Linux en Windows zijn geschreven in C en draaien ook op de servers.
- Een van de meest demanding grafische type applicaties ( 3D games) zijn voornamenlijk geschreven in C++
- C# ruimt niet alles achter je kont op, zoals al eerder werd opgemerkt.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Oljoner
  • Registratie: Augustus 2013
  • Laatst online: 22-10 12:04
Voor de administratieve applicatie zou ik sowieso geen desktopsoftware meer schrijven, maar wel een web applicatie. Dan speelt de hardware & os (en versies van os) maar weinig rol.
Imo is java + een webframework daar ideaal voor. Leer je imo ook veel mee + het ligt min of meer in dezelfde lijn als C++. Tevens hoef je hiervoor geen licenties aan te kopen (C# & .NET vereisen dit wel voor de volledige IDE's dacht ik?).

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 10:45
Als je plugins wilt gebruiken wel ja, op die handvol plugins na die ook in de Express edities werken van Visual Studio. Maar die Express edities (die je ook commercieel mag gebruiken) voldoen vaak ruimschoots hoor :)

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Ik denk dat je voor C++ eigenlijk ook C moet kennen, dus waarom niet gewoon met C beginnen. De meeste mensen die beginnen met programmeren willen toch liever eerst gewoon simpele input -> output programma's schrijven geen elegante OO patterns dus dat deel van C++ zit je alleen maar in de weg.

iOS developer


Verwijderd

Topicstarter
Hmm ik heb ook eens naar die Qt software gekeken. Die lijkt me eigenlijk ook leuk. Ik ga deze eens proberen...

  • _Silencer
  • Registratie: Januari 2006
  • Laatst online: 29-05 03:32
PLC programmatie is voornamelijk toch met de IEC 61131-3 talen zoals Structured Text. Bij Beckhoff kan je C/C++ gebruiken voor real time taken die in de kernel draaien. Dus vergeet maar alle standaard C++ desktop code die vol zit met dynamische allocaties van geheugen. Als je een taak hebt die determistisch moet draaien op één milliseconde kan je het al vergeten (malloc/new verwerkingstijd is niet voorspelbaar). In C++ moet je dan zorgen dat alles gealloceerd wordt tijdens initialisatie fase of enkel stack geheugen gebruikt. Voor de GUI kan je bijna alles gebruiken met de ADS driver (is gewoon een C communicatie bibliotheek) en er zijn al reeds gemaakte koppelingen met C++, C#, ... Daarbij voor de C/C++ real time functie moet je zelf extra bij betalen op het standaard PLC pakket. De ADS library is altijd gratis.

PLC programmatie -> ST
GUI programmatie -> C++ (ADS en Qt) of C# (ADS en Winforms)
Pagina: 1