Nieuws:

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

Auteur Topic: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening  (gelezen 1648 keer)

Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Gepost op: 2011/12/30, 08:21:37 »
Omdat  Python 2.7+ met wxPython 2.8+ zowel op een PC 32 bit met XP als op een PC 64 bit met Linux Ubuntu perfect werken en een enorme grafische bibliotheek en routines aanbieden via wxPython ben ik al wat aan het oefenen geweest. (Met Geany als editor op beide systemen)
Gaat snel en is wel leuk om te programmeren.

Maar wat Python betreft:
Ik bemerk dat bepaalde syntax vanaf Python 3+ zodanig veranderd dat men serieus wat routines zal moeten hercompileren en vooral alle gemaakte py-bestanden grondig zal moeten doorlopen en testen.
Dat is natuurlijk niet leuk, en ik bemerk dat de aanleunende organisaties (bv. wxPython) nog niet direct meevolgen en heden nog enkel met Python versies 2.6 + 2.7+ of 2.8+ werken.
Dat geeft mij de indruk dat iedereen die nu met Python werkt zijn huiswerk van de laatste jaren opnieuw kan overdoen.


Daarom ging ik ook eens kijken en testen met C++ omdat die compiler toch standaard in het systeem van Ubuntu zit. (en die c++ bestanden kunnen dan ook weer in die Geany als IDE bewerkt worden).
De structuur lijkt mij dicht aanleunend met wat ik al 18 jaren doe met Basic PDS.
Eénmaal de syntax aangeleerd lijkt mij die C++ (en later bijvoorbeeld aangevuld met GTK routines) een redelijk te programmeren taal.
En... in C++ zie ik ze niet direct hun syntax overhoop halen.

Zie ik het verkeerd of zit ik er dicht bij?
Graag jullie mening,
groeten aan allen,
Rudy

Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #1 Gepost op: 2011/12/30, 11:20:08 »
Python 2.7 zal nog een lange tijd ondersteund worden, en veel Linux distributies zullen nog lang deze versie meeleveren. Er is dus geen haast bij om naar Python 3 te porten.
Er bestaat ook een 2to3 script dat aangeeft wat veranderd moet worden en zal heel wat werk besparen:
http://docs.python.org/library/2to3.html
http://wiki.python.org/moin/2to3

Het gebeurt ook niet elk jaar dat Python zo grote veranderingen doorvoert, ze wouden gewoon alle tekortkomingen van de 2.x versie oplossen, en daar zaten nu eenmaal syntaxwijzigingen in.

Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #2 Gepost op: 2011/12/30, 14:49:54 »
Python en C++ zijn heel erg verschillende talen.

Python is goed voor kleine tot middelgrote projecten, waar de snelheid van uitvoering niet zo van belang is. Met Python kan je heel eenvoudig en snel een programma schijven, maar om het verder uit te bouwen kan soms lastig worden. Bovendien is de ondersteuning voor Python op Windows en Mac OS X niet zo optimaal als op Linux (niet dat het onmogelijk is), zeker wanneer het aankomt op een distribueerbare versie van je programma maken: op Linux is het vrij eenvoudig om de onbrekende dependencies met de pakketbeheerder te installeren (er van uit gaande dat de pakketbeheerder de juiste versie van je dependency levert), terwijl op Windows en Mac gebruikers meestal een kant-en-klaar binary verwachten en niet nog zelf dingen willen gaan installeren (vooral op Mac, waar momenteel drie verschillende pakketbeheerders door elkaar gebruikt worden die allemaal verschillende versies van verschillende pakketten hebben, wordt dit lastig).

C++ is geschikt voor het grotere werk, maar let op: je kan sneller fietsen, maar zonder zijwieltjes. Dat wil zeggen dat je meer dingen zelf zal moeten doen, zoals een buildsysteem onderhouden voor je programma, e.g. met CMake, en zelf zorgen dat alles een beetje cross-platform is (alhoewel WxWidgets hier al voor een groot deel zal helpen).

WxWidgets, zoals veel toolkits, gebruikt eigenlijk maar een kleine subset van C++ (bijvoorbeeld geen templates of exceptions), zodat de leercurve nog goed meevalt ten opzichte van een volledige C++. Merk op dat C++ bepaalde features heeft die vele male krachtiger zijn dan wat je in Python aantreft (en ook moeilijker te begrijpen).

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

Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #3 Gepost op: 2011/12/30, 17:02:24 »
Goede middag,
aan beide forumleden: reeds bedankt voor de duidelijke info.

Programma's die ik moet herschrijven:
Er zijn twee kanjers bij die ik in PDS + assemblerroutines voor dbf-files (DBLIB van Los Angeles USA).
Het ene is een fabrikatieprogramma voor het maken en berekenen van verf lijm en vernisformules.
De tweede is een kleurenmengprogramma om pigmenten in gewicht of volume (fluid ounces) te mengen.
Elk is zo maar eventjes 10Mb broncode, maar elk wel in een 20-30 tal modules.
Op het wenslijstje staan ook:
Een labelprogramma om etiketten te ontwerpen en af te drukken op een thermische printer (TEC B-452)
Een numerologisch programma.
enz...

Met dat numerologisch prog. ga ik eerst oefenen om de taal onder de knie te krijgen. (Als ik daar een fout in maak is dat niet zo erg =D

Zal dit weekend de tutorials voor Python en C++ eens goed doornemen.
Ik laat het onderwerp nog even open voor mogelijke reacties van andere forumleden.
« Laatst bewerkt op: 2011/12/30, 17:04:22 door Rudy Martens »

Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #4 Gepost op: 2011/12/30, 22:02:05 »
Als je met Assembler overweg kan, raad ik zeker C++ aan. C++ is een zeer gestructureerde taal, omdat deze sterk getypeerd is en je moet instaan voor je eigen geheugenallocatie, in tegenstelling tot het meer laissez-faire Python, dat zwak getypeerd is en garbage collection heeft (wat niet wegneemt dat zwakke typering [1] [2] [3] en garbage collection [1] [2] niet mogelijk is in C++)

C++ heeft een zeer interessante techniek (die ik in nog in geen enkele andere programmeertaal ben tegengekomen) genaamd RAII. Kortweg gezegd betekent dat omdat objecten op het einde van hun scope (het einde van de functie of bij het vernietigen van het object waar ze toe behoren) vernietigd worden, hun destructor -- de functie die wordt aangeroepen bij de vernietiging -- bepaalde bronnen kan terug kan vrijgeven. Zo kan je een bepaalde bron (bijvoorbeeld een stuk geheugen, een netwerkverbinding, een open bestand) aan een object koppelen, en wordt deze bron automatisch terug vrijgeven wanneer het object vernietigd wordt. Geen vervelende close()-functies of try-catch-finallys.

En dat is maar één leuke (en veelgebruikte!) techniek in C++.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

[OPGELOST] Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #5 Gepost op: 2012/01/02, 14:19:11 »
Seysayux:
Mijn assembler is nog uit de jaren "stillekes" uit de oude 80xx boeken en dertig jaren niks mee gedaan. Ik heb het wel nog tot +-15 jaren goed kunnen gebruiken om routines op te gebruiken vanuit Basic PDS.
Het hoeft geen betoog dat dit hopeloos antiek geworden is en ik er nu totaal niet meer overweg mee kan.
Op een 386 type processor met XP 32 bit lopen die oude programma's nog uitstekend maar... voor de nabije toekomst hoef ik jou/jullie niet te vertellen dat dit spoedig "voltooid verleden tijd" zal wezen. Daarom mijn uitkijken naar een nieuwe (multiplatform) programmeeromgeving

Ondertussen heb ik nog wat verder gezocht (Google) en uitgepluist (boekhandels) en heb besloten om bescheiden te beginnen met Python maar dan wel ineens met één van de  Python 3.xx - versies.

Als instapper merk ik in versie 3.xx  mooie verbeteringen qua leesbaarheid of syntax-logika tegenover de 2.xx versies.
Een klein voorbeeld ivm iteratie daarvan (bron: Wikipedia):
it = iter(sequence)
while True:
    try:
        value = it.next() # in Python 2.x
        value = next(it) # in Python 3.x
    except StopIteration:
        break
    print(value)

Eenmaal Python wat deftig onder de knie ga ik zeker wat uittesten met C++

Bedankt voor jullie raad!


« Laatst bewerkt op: 2012/01/02, 14:21:13 door Rudy Martens »

Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #6 Gepost op: 2012/01/02, 15:16:14 »
for(auto& value: sequence) {
    cout << value;
}
:D

Ik raad persoonlijk aan om eerst Python (basisbeginselen programmeren), dan Java (sterke typering), en dan C++ (pointers,references, operator overloading, templates, ...) te leren :) Zo heb ik het ook gedaan (alhoewel ik Basic gebruikt heb in plaats van Python, maar Python is gewoon een moderne Basic after all)
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline Nardon

  • Lid
Re: Python 2.7 met wxPython 2.8 of toch maar c++ ? Uw mening
« Reactie #7 Gepost op: 2012/01/19, 10:51:56 »
for(auto& value: sequence) {
    cout << value;
}
:D

Ik raad persoonlijk aan om eerst Python (basisbeginselen programmeren), dan Java (sterke typering), en dan C++ (pointers,references, operator overloading, templates, ...) te leren :) Zo heb ik het ook gedaan (alhoewel ik Basic gebruikt heb in plaats van Python, maar Python is gewoon een moderne Basic after all)

Ik vind Python veel krachtiger dan Basic.. :P Je zegt het alsof Python een taal is alleen maar om programmeren te leren. Dat is helemaal niet waar, ook al is het een simpele taal om te leren, het neemt niet weg dat Python perfect is voor een hele hoop doeleinden en een enorm krachtige, moderne OOP taal is.(behalve waar performance echt cruciaal is zoals bijvoorbeeld in een 3D engine kun je beter C++ gebruiken).