Nieuws:

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

Auteur Topic: Python, goed genoeg?  (gelezen 4839 keer)

Python, goed genoeg?
« Gepost op: 2009/09/01, 20:29:38 »
Hoi iedereen :)

Geen eigen taal ontwikkelen deze keer :')

Ik heb jaren met windows gewerkt, jaaren VB geprogrammeerd, heb een niveau waarvan ik nu tevreden van ben.
Krijg op school ook nog altijd VB.net, dus het wordt onderhouden.

Maar nu ik meer dan een half jaar alleen maar Ubuntu werk, en ik met mijn VB eigenlijk huilend in een hoekje sta, zou ik graag een andere taal leren.
C en C++ lijken me wat te hoog gegrepen, ik zou graag zo simpel mogenlijk beginnen, omdat ik met de slechte programmeergewoonten van VB zit (ik doe VB heel graag, maar het is gewoon erg slecht om ermee te beginnen, maarja nu te laat)

Ik heb gehoord dat Python makkelijk in te stappen is, en vrij snel leert. Daarom is mijn intresse gewekt.
Maar: Is python wel snel genoeg? Ik programmeer graag met netwerkverbindingen en dergelijke. Zijn die niet te moeilijk, of zijn die wel snel genoeg?vraag

Nog een laatste vraagje, in VB werk je met Events die afgevuurd worden, bijvoorbeeld:

Socket.connect "ubuntu.com", 80 -> verbind je met ubuntu op poort 80.

En als je verbonden bent, gaat bijvoorbeeld het Event "Socket_Connected" in gang, dit werkt dan zo:
sub Socket_connected
Msgbox "Succesvol verbonden"
end sub
Dit geeft dus een infoboxje als je verbonden bent met Ubuntu, omdat hij die regel gaat aanroepen op het moment dat 'Socket' verbonden is.

Bestaat zoiets ook in Python, of werkt het helemaal anders? Alvast bedankt!


Edit: Als allerlaatst, ik vind programma's zonder GUI een beetje verleden tijd, dus is het moeilijk om een lay te programmeren met Python?
En welke Editor gebruik ik best?
En als echt allerlaatste, IS het mogenlijk om Python Closed source te scripten (niet onmiddelijk van toepassing, maar je weet nooit.)
« Laatst bewerkt op: 2009/09/01, 20:31:13 door Carharttguy »

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Python, goed genoeg?
« Reactie #1 Gepost op: 2009/09/01, 21:12:03 »
Python is relatief makkelijk, en vrij snel voor een interpreted taal (compileert bv. naar bytecode)
Met Python mag je closed source apps ontwikkelen.
Grafische apps kan je maken met o.a. Qt, wxWidgets of GTK+.
Persoonlijk ben ik fan van Qt omdat de andere toolkits op geen enkel punt aan Qt kunnen tippen (indien iemand mij ongelijk kan geven met volwaardige argumenten, graag doen)
Over het gebruik van events in Python weet ik niet veel, maar met Python + Qt kan je in ieder geval sowieso het signal/slot eventsysteem van Qt gebruiken, en dat is vergelijkbaar met de manier in VB, maar dan wat uitgebreider.

Wel even opmerken, PyQt is momenteel niet LGPL licensed dus daar kan je géén closed source apps mee maken (zonder commerciële licentie van RiverbankComputing).
Vermoedelijk gaat dit nog veranderen, maar er is sowieso op dit moment een LGPL-alternatief in de maak, in samenwerking met Qt Software, genaamd PySide.
Daar kan je dus wel closed source apps mee ontwikkelen zonder te betalen voor een commerciële licentie.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: Python, goed genoeg?
« Reactie #2 Gepost op: 2009/09/01, 23:42:21 »
Python heeft over het algemeen een goede documentatie dus ook over socket. Daar staan voorbeelden in om mee aan de gang te gaan.

De snelheid van python loopt achter op C/C++. Wat betreft VB weet ik het niet

Misschien dat de snelheid van Python binnenkort nog beter wordt. Google is in ieder geval druk bezig
http://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars
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!

Documentatie Terminal

Re: Python, goed genoeg?
« Reactie #3 Gepost op: 2009/09/02, 12:47:40 »
Ok, dat was duidelijk, ga maar eens aan wat python boeken beginnen ;)

Edit: Python kan toch op elk platform goed draaien? Zonder al te veel aanpassingen cross platform scripten?
Of klopt dit niet?

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Python, goed genoeg?
« Reactie #4 Gepost op: 2009/09/02, 13:13:30 »
Ok, dat was duidelijk, ga maar eens aan wat python boeken beginnen ;)

Edit: Python kan toch op elk platform goed draaien? Zonder al te veel aanpassingen cross platform scripten?
Of klopt dit niet?
Klopt. Maar dat geldt voor vrijwel elke taal, zolang je maar cross-platform libraries gebruikt en geen platformspecifieke functies nodig hebt.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Python, goed genoeg?
« Reactie #5 Gepost op: 2009/09/02, 13:24:10 »
Let wel dat ge ofwel Python geinstalleerd moet hebben waar ge het op wilt draaien, of Python mee packagen met uw programma.

Re: Python, goed genoeg?
« Reactie #6 Gepost op: 2009/09/02, 14:23:55 »
Let wel dat ge ofwel Python geinstalleerd moet hebben waar ge het op wilt draaien, of Python mee packagen met uw programma.

Yup dat weet ik. :) Maar dat is voor later, bestaan er ook zo'n soort packers? Voor Windows bestaat er Inno setup, dat is heel gemakklijk, bestaat er voor Ubuntu ook zoiets?

@ProFox: bedankt! :)

Edit: Ik ben nu het boek, Thinkpython aan het lezen, daar in lees ik dat python een taal is die geïnterpreteerd wordt en niet gecompileerd, ik compileerde mijn VB bestanden altijd naar .exe bestanden, bij Python is het dus niet mogenlijk om bijvoorbeeld een .run te maken voor Ubuntu en een .exe voor Windows?

Laatste edit: stel ik maak een kleine code:

Print "Hellow Ubuntu!"
En ik sla dit bestand op als een .py file, dan kan ik dat openen, tekst krijgt kleur enzo, maar ik kan dit niet echt openen?
Ik tik aan dat het bestand uitvoerbaar is, ik open het met terminal, maar dat opent niet echt, het sluit onmiddelijk.
« Laatst bewerkt op: 2009/09/02, 15:01:51 door Carharttguy »

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Python, goed genoeg?
« Reactie #7 Gepost op: 2009/09/02, 15:01:26 »
Je kan wel een .exe binary maken met bv. py2exe. In een populaire Linux distro zit Python meestal standaard inbegrepen en kan je grafische Python apps starten door ze gewoonweg te openen door bv. erop te (dubbel)klikken.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Python, goed genoeg?
« Reactie #8 Gepost op: 2009/09/02, 15:45:11 »
Ok! bedankt voor jullie snelle en accurate antwoorden! Ik denk dat het voorlopig wel zal lukken ;)

Edit: Misschien toch niet.

carharttguy@carharttguy-laptop:~$ cd Bureaublad
carharttguy@carharttguy-laptop:~/Bureaublad$ python haha.py
  File "haha.py", line 1
    Print "Lol"
              ^
SyntaxError: invalid syntax
carharttguy@carharttguy-laptop:~/Bureaublad$ python haha.py
  File "haha.py", line 1
    Print "Lol"
              ^
SyntaxError: invalid syntax
carharttguy@carharttguy-laptop:~/Bureaublad$ python haha.py
Traceback (most recent call last):
  File "haha.py", line 1, in <module>
    Print('Lol')
NameError: name 'Print' is not defined
carharttguy@carharttguy-laptop:~/Bureaublad$ python haha.py
  File "haha.py", line 1
    Print 'Lol'
              ^
SyntaxError: invalid syntax
carharttguy@carharttguy-laptop:~/Bureaublad$

Je ziet zelf, ik heb de regel Print "lol" op verschillende manieren proberen schrijven, hij wou dit echter nooit echt openen. Iemand een idee?
« Laatst bewerkt op: 2009/09/02, 15:49:32 door Carharttguy »

Offline Mossie

  • Lid
Re: Python, goed genoeg?
« Reactie #9 Gepost op: 2009/09/02, 16:12:38 »
Ik kan zelf geen python, maar volgens mij is python hoofdlettergevoelig (corrigeer me als ik het fout heb). "Print" zal dus ook niet werken. "print" (met kleine letter) wel (dus gewoon 'print "lol"').

Re: Python, goed genoeg?
« Reactie #10 Gepost op: 2009/09/02, 16:16:37 »
Ik kan zelf geen python, maar volgens mij is python hoofdlettergevoelig (corrigeer me als ik het fout heb). "Print" zal dus ook niet werken. "print" (met kleine letter) wel (dus gewoon 'print "lol"').

Je zou echt wel python moeten leren, want het klopt perfect, is zo'n gewoonte van VB :')

Hartelijk bedankt!

Re: Python, goed genoeg?
« Reactie #11 Gepost op: 2009/09/02, 17:09:42 »
Dat ziet ge ook door de syntax highlighting in de meeste IDEs en zelfs in Gedit.

Als ge het volgende in Gedit zet:
#!/usr/bin/env python

print "Hello world!"

Zal "print" gekleurd zijn, "Print" niet.

Re: Python, goed genoeg?
« Reactie #12 Gepost op: 2009/09/02, 17:44:40 »
Dat ziet ge ook door de syntax highlighting in de meeste IDEs en zelfs in Gedit.

Als ge het volgende in Gedit zet:
#!/usr/bin/env python

print "Hello world!"

Zal "print" gekleurd zijn, "Print" niet.

Inderdaad! Maar ik zet de eerste regel "#!/usr/bin/env python" niet in mijn code.
Waarvoor is deze nuttig? Dit lijkt me toch commentaar te zijn?

Offline Typhoner

  • Lid
    • http://typhoner.blogspot.com/
Re: Python, goed genoeg?
« Reactie #13 Gepost op: 2009/09/02, 18:09:55 »
Dat ziet ge ook door de syntax highlighting in de meeste IDEs en zelfs in Gedit.

Als ge het volgende in Gedit zet:
#!/usr/bin/env python

print "Hello world!"

Zal "print" gekleurd zijn, "Print" niet.

Inderdaad! Maar ik zet de eerste regel "#!/usr/bin/env python" niet in mijn code.
Waarvoor is deze nuttig? Dit lijkt me toch commentaar te zijn?

# is commentaar, en #! betekent: uitvoeren met dit programma

Offline vanadium

  • Lid
Re: Python, goed genoeg?
« Reactie #14 Gepost op: 2009/09/02, 19:08:47 »
Dit is vereist om het script automatisch correct met python te kunnen uitvoeren. Anders probeert de shell standaard bash, en die zal de python code uiteraard niet gebruiken. Dit speelt enkel als je poogt het uitvoerbare script uit te voeren door de naam aan de prompt in te voeren. Als je expliciet python aanroept in je commando, speelt dat geen rol.

Re: Python, goed genoeg?
« Reactie #15 Gepost op: 2009/09/02, 19:49:50 »
Dit is vereist om het script automatisch correct met python te kunnen uitvoeren. Anders probeert de shell standaard bash, en die zal de python code uiteraard niet gebruiken. Dit speelt enkel als je poogt het uitvoerbare script uit te voeren door de naam aan de prompt in te voeren. Als je expliciet python aanroept in je commando, speelt dat geen rol.

Inderdaad, dit is handig, hoef ik niet altijd met terminal m'n script te openen.

Bedankt!

Re: Python, goed genoeg?
« Reactie #16 Gepost op: 2009/09/02, 19:51:32 »
Maar tijdens het programmeren is dat natuurlijk wel handig als ge de terminal output ziet. Dan weet ge wat fout is gegaan moest het niet werken zoals gepland :).

Offline gieterke

  • Lid
Re: Python, goed genoeg?
« Reactie #17 Gepost op: 2009/09/02, 19:56:03 »
Nog even een ander vraagje. Je zegt dat je met de foute gewoonten van VB zit. Telt dit ook voor VB.NET? Want ik heb hier een cursus gekregen van men nonkel om VB.NET te leren omdat dit enorm simpel is enzo. Ben al in de helft van de cursus dusja. Maar is het zo slecht om met deze taal te beginnen?

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Python, goed genoeg?
« Reactie #18 Gepost op: 2009/09/02, 19:58:36 »
Nog even een ander vraagje. Je zegt dat je met de foute gewoonten van VB zit. Telt dit ook voor VB.NET? Want ik heb hier een cursus gekregen van men nonkel om VB.NET te leren omdat dit enorm simpel is enzo. Ben al in de helft van de cursus dusja. Maar is het zo slecht om met deze taal te beginnen?
VB.Net is opzich niet slecht. Het is in ieder geval stukken beter dan VB 6 :) Persoonlijk ben ik echter ook geen fan van .NET omdat het via een virtual machine werkt en daardoor meer resources vreet dan "normale" programma's. Ook zijn VB.Net programma's moeilijker te porten naar andere platformen. Op Linux hebben we wel Mono (dankzij Novell) dat ervoor zorgt dat we een aantal .Net programma's kunnen draaien, maar dat werkt niet altijd even eenvoudig.

Maar het is sowieso een goed begin :) achteraf kan je altijd nog andere talen leren zoals Python of C++ ;)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Python, goed genoeg?
« Reactie #19 Gepost op: 2009/09/02, 20:06:52 »
Nog even een ander vraagje. Je zegt dat je met de foute gewoonten van VB zit. Telt dit ook voor VB.NET? Want ik heb hier een cursus gekregen van men nonkel om VB.NET te leren omdat dit enorm simpel is enzo. Ben al in de helft van de cursus dusja. Maar is het zo slecht om met deze taal te beginnen?
VB.Net is opzich niet slecht. Het is in ieder geval stukken beter dan VB 6 :) Persoonlijk ben ik echter ook geen fan van .NET omdat het via een virtual machine werkt en daardoor meer resources vreet dan "normale" programma's. Ook zijn VB.Net programma's moeilijker te porten naar andere platformen. Op Linux hebben we wel Mono (dankzij Novell) dat ervoor zorgt dat we een aantal .Net programma's kunnen draaien, maar dat werkt niet altijd even eenvoudig.

Maar het is sowieso een goed begin :) achteraf kan je altijd nog andere talen leren zoals Python of C++ ;)

Ikzelf doe veel liever VB6 dan VB.net, ok het is wat verouderd, maar die .Net structuur..

En VB is wel een goede taal, maar C++ leren, zoals ProFox zegt, zal een pak moeilijker zijn dan als je bijvoorbeeld begint te programmeren in Java, Python of PHP volgens mij, VB leert je grotendeels fouten.

Bijvoorbeeld:

je hebt de code "Messagebox.show(HierjeString)"
steek in die "hierjestring" een integer, en dit gaat perfect werken.
Ook, overal hoofdletters en kleine letters door elkaar gaan gebruiken, allemaal dingen die lekker handig zijn, maar niet echt lijkt op andere talen.

Even weer een python vraagje:

#!/usr/bin/env python

import time
invoer = raw_input("wat is jouw naam? ")
Vraag = 'hallo ', invoer, ', alles goed met jou?'
invoer2 = raw_input(Vraag)
if invoer2 == "ja":
print "Mooi zo!"
else:
print "Jammer!"
time.sleep(5)

Waarom is mijn 2de vraag in godsnaam "('hallo ', 'mathias', ', alles goed met jou?')" met haakjes enzo erbij?
Alvast bedankt!

Re: Python, goed genoeg?
« Reactie #20 Gepost op: 2009/09/02, 20:13:58 »
Probeer dit eens:
invoer2 = raw_input("Hallo %s, Alles goed met jou?" %invoer)

Re: Python, goed genoeg?
« Reactie #21 Gepost op: 2009/09/02, 20:19:35 »
Probeer dit eens:
invoer2 = raw_input("Hallo %s, Alles goed met jou?" %invoer)

Dit werkt inderdaad perfect :)
en die %s, waarom?
als je alleen % zou zetten, en op het einde %invoer, zou ik het nog kunnen begrijpen dat % gelijk gezet wordt met invoer.

Sorry, ik ben echt noob, maar wil echt heel graag Python goed begrijpen. :)

Re: Python, goed genoeg?
« Reactie #22 Gepost op: 2009/09/02, 20:22:42 »
Dat heet een string formatter (nu kunt ge Googlen ;)).
Het probleem was dat ge 3 strings in Vraag zette, en als ge deze dan print, krijgt ge inderdaad die 3 strings. Dus moet ge er 1 string van maken.

Re: Python, goed genoeg?
« Reactie #23 Gepost op: 2009/09/02, 20:33:46 »
Dat heet een string formatter (nu kunt ge Googlen ;)).
Het probleem was dat ge 3 strings in Vraag zette, en als ge deze dan print, krijgt ge inderdaad die 3 strings. Dus moet ge er 1 string van maken.

Hartelijk bedankt ;) daar kan ik inderdaad wat mee ;)