I got into Python recently because I wanted make a gtk+ program, but didn’t want to deal with c. I would highly recommend it to anyone, it is easy but powerful and cross platform too (there’s even a dos port!)
I started using Python on a personal dare a few months ago, and it has rapidly become my language of choice for my own projects. It is fast and powerful.
To me, coupling Python with some of the graphics libraries available (except the standard Tkinter, which I personally don’t care for), such as wxPython, PyQT, and GTK, offers the cross-platform development experience I always wanted from Java; but never quite received. Python also works better than Java, and is easier to install, on the *BSD family of operating systems.
The graphics library I like best is wxPython. I like the fact that when run under Windows you get a native Windows look, and when run under a GTK environment, you get a GTK look. This helps my apps blend in better with the surrounding environment. I also deeply appreciate the quality class library documentation available on the wxWindows web page (wxPython is a port of the wxWindows library).
I highly recommend Python to anyone interested in doing programming. It is a great language.
Qt is a multi platform toolkit, and there are excellent bindings for other languages such as Java and Python. Yet, this toolkit is not officailaly a multi-language toolkit because trolltech does not officially support the other languages. It doesen’t matter that tis a C++ toolkit when it can work with other languages like Java and Python.
Its just that companies which are using other languages which have Qt bindings will most likely not choose Qt because they don’t have official support from Trolltech. That’s really a shame, Qt could be much mroe popular than it is now if it would support other languages too.
For example Java’s toolkit IMO is not as good as Qt and many people might want to use the completley multi-platform java with the multi platform Qt toolkit, a stellar combination!
I really hope that as trolltech expands in teh enxt 1-3 years they will have official support at least for Java and Python, the work is almsot entirely done for them anyway.
Java is not slow, in fact even on Python’s website they mention that Python is generally significantly slower than Java, only Java’s GUI toolkit is slow. Ina ddiition Java 1.5 is really a lot faster.
Personally as I don’t particually care about cross platform as I’m just creating little apps for myself I find the pyObjC bridge great. All of Cocoa available from Python, and the ability to make native acting apps from python (drag ‘n frop install etc.). You can even easily mix in Obj C objects for the bits that need the extra speed replacing Python this pure Obj C as you go along in your optimisation.
I know I could do the same from Java but I simply prefer to use Python for personal reasons. It will be nice when Apple bundles this with the latest OS X.
Java is slow is some places, fast in others…just like Python.
I’ve found that working in Python is definitely faster than Java, in some cases execution-wise and definitely development/design time-wise. Python’s runtime takes less time to load and start executing code. Python takes a lot less memory. Python takes less time to write. Python takes less time to think about how to do something (both simple and complex): it does not require 3 classes to read a file of characters line by line. Python doesn’t require you to make an int primitive a First Class Integer just to store it in a container, then make you cast the Integer class then call a method off that Integer class to get the int value. Python has an interactive interpreter that allows you to try out different code snippits/ideas without having to go through the “code, save, compile, execute” process–you just type in a line of python code and it gets executed.
In my opinion, Python is a great language to learn. When I use it, it reminds me of when I was a ten year old having fun programming my commodore.
How much does 1.5 speed things up? Psyco, a jit-like execution environment for Python, speeds up typical Python code by 4X.
I do Java development for a living. I’d rather be doing Python. It gets out of your way and lets you solve your problems faster.
I am getting ready (in the next few weeks) to take on Python for the first time as a VB6 replacement for writing small utils – personal stuff and such. (Planning on doing cross-platform stuff in Windows and Linux).
What is the preferred GUI toolkit for Pything development? I’ve heard Tkinter sucks and wxpython is pretty good, but I haven’t heard much about pyqt or any of the others that might exist.
I downloaded the Boa Constructor app that was written in wxpython, and notied that when you right click on a textbox, you don’t get the ‘cut/copy/paste’ popup menu that shows up in the standard Windows textbox control. That kind of blows whale cock, but suppose it’s not that big of a deal to add the functionality, so long as other parts of the toolkit behave as one might expect from the native widget set.
You can get python bindings for almost any toolkit out there : qt, gtk, fox, wxwindows, tk. Personally I would go for either wxWindows or gtk, wxWindows has a native look on both Windows and linux but is more complex while gtk has the advantage of being open source and there’s an ok tutorial at : http://www.moeraki.com/pygtktutorial/
I would second the use of wxPython. It can be tricky to start, but once you get going, you find that it has some incredibly powerful but easy-to-use widgets (wxGrid, wxHTML and so on). Plus, I developed an app recently for Windows and Linux, and someone wrote to me saying that it ran perfectly well (no code changes *whatsoever*) on OS X! Not bad at all!
I decided to pick up python this summer to expand my horizons, and in just 3 weeks I’ve written a few small GTK apps (with rather little previous knowledge of GTK), and just last night wrote a small database abstraction layer for my website.
Eric S. Raymond wrote an absolutely fabulous article about how Python replaced Perl as his language of choice.
I was a complete C hacker (maybe wannabe.. but I’m not bad), and it only took 3 weeks for me to completely turn that around, learn python syntax and libraries, learn GTK, and think in objects. Things like inheritance and overloading finaly make sense and are put in a syntax that is not disgusting (C++) or overbearing (java).
It’s become by far my language of choice for most jobs.
I have found that using PyGTK + Libglade to be a most potent combination for rapid application development; a modification of sjbrown’s old tutorial can be found on my site : http://nondeus.org/docs/python/glade1/ , and I’m currently working on another tutorial for a larger project that will cover more GTK and events/signals, and loving every minute of development!
Python is definately faster to develop in. The APIs are very cleanly designed (for speed of coding, rather than academic elegence), and in general it has much less structural complexity than Java. Its runtime dynamic typing can be irritating (lots of runtime errors from typos) but it can also be incredibly useful (adding methods to an object at runtime). However, it will definately be slower than Java. First, dynamic typing makes it very hard for a JIT engine to emit type-specific machine code for simple types like ints and floats, unless you use a very powerful dynamic optimizer like Psyco. Also, member lookup in objects are implemented as a hash-table lookup, as opposed to the table-based method used by Java and C++.
The speed situation should get better. Psyco keeps improving (right now, it’s rather easy to “break” the optimizer by increasing abstraction). There are also plans to port it to Parrot, the Perl6 JIT engine designed specially for dynamically typed languages.
I got into Python recently because I wanted make a gtk+ program, but didn’t want to deal with c. I would highly recommend it to anyone, it is easy but powerful and cross platform too (there’s even a dos port!)
I really got into it because I wanted to program in Qt without learning a hard language like C++.
I learned Python frm a good book here: http://www.amazon.com/exec/obidos/ASIN/0596000855/qid=1054510984/sr…
and I larne da lot about Qt from here: http://doc.trolltech.com/
It’s worked out great, probably the best way to program in Qt is with python.
More information: http://www.riverbankcomputing.co.uk/pyqt
I quickly learned out of a very nice book available online freely here: http://www.opendocspublishing.com/pyqt/index.lxp?lxpwrap=book1.htm
I use Eric 3 as my IDE, I wish it were update more, but its still a very good IDE.
I’m surprised Trolltech does not officially support Python and even Java in addition to C++.
[snip]There are no bugs in Python[/snip]
There are ALWAYS bugs. Maybe you are being sarcastic though. : )
*sigh* Yet another troll. No one has ever claimed there are no bugs in open source.
I think it would be better if you posted as “Minister Muhammed Saeed al-Sahaf.” That way the sarcasm would be even more crushing.
(IHBT. HAND)
QT is a C++ toolkit. You can’t expect them to start *oficially* supporting java and python. Anyway, Python will work much faster than java, obviously.
powerful and cross platform too
and extensible via new modules.
I started using Python on a personal dare a few months ago, and it has rapidly become my language of choice for my own projects. It is fast and powerful.
To me, coupling Python with some of the graphics libraries available (except the standard Tkinter, which I personally don’t care for), such as wxPython, PyQT, and GTK, offers the cross-platform development experience I always wanted from Java; but never quite received. Python also works better than Java, and is easier to install, on the *BSD family of operating systems.
The graphics library I like best is wxPython. I like the fact that when run under Windows you get a native Windows look, and when run under a GTK environment, you get a GTK look. This helps my apps blend in better with the surrounding environment. I also deeply appreciate the quality class library documentation available on the wxWindows web page (wxPython is a port of the wxWindows library).
I highly recommend Python to anyone interested in doing programming. It is a great language.
Qt is a multi platform toolkit, and there are excellent bindings for other languages such as Java and Python. Yet, this toolkit is not officailaly a multi-language toolkit because trolltech does not officially support the other languages. It doesen’t matter that tis a C++ toolkit when it can work with other languages like Java and Python.
Its just that companies which are using other languages which have Qt bindings will most likely not choose Qt because they don’t have official support from Trolltech. That’s really a shame, Qt could be much mroe popular than it is now if it would support other languages too.
For example Java’s toolkit IMO is not as good as Qt and many people might want to use the completley multi-platform java with the multi platform Qt toolkit, a stellar combination!
I really hope that as trolltech expands in teh enxt 1-3 years they will have official support at least for Java and Python, the work is almsot entirely done for them anyway.
Java is not slow, in fact even on Python’s website they mention that Python is generally significantly slower than Java, only Java’s GUI toolkit is slow. Ina ddiition Java 1.5 is really a lot faster.
Personally as I don’t particually care about cross platform as I’m just creating little apps for myself I find the pyObjC bridge great. All of Cocoa available from Python, and the ability to make native acting apps from python (drag ‘n frop install etc.). You can even easily mix in Obj C objects for the bits that need the extra speed replacing Python this pure Obj C as you go along in your optimisation.
I know I could do the same from Java but I simply prefer to use Python for personal reasons. It will be nice when Apple bundles this with the latest OS X.
Java is slow is some places, fast in others…just like Python.
I’ve found that working in Python is definitely faster than Java, in some cases execution-wise and definitely development/design time-wise. Python’s runtime takes less time to load and start executing code. Python takes a lot less memory. Python takes less time to write. Python takes less time to think about how to do something (both simple and complex): it does not require 3 classes to read a file of characters line by line. Python doesn’t require you to make an int primitive a First Class Integer just to store it in a container, then make you cast the Integer class then call a method off that Integer class to get the int value. Python has an interactive interpreter that allows you to try out different code snippits/ideas without having to go through the “code, save, compile, execute” process–you just type in a line of python code and it gets executed.
In my opinion, Python is a great language to learn. When I use it, it reminds me of when I was a ten year old having fun programming my commodore.
How much does 1.5 speed things up? Psyco, a jit-like execution environment for Python, speeds up typical Python code by 4X.
I do Java development for a living. I’d rather be doing Python. It gets out of your way and lets you solve your problems faster.
I am getting ready (in the next few weeks) to take on Python for the first time as a VB6 replacement for writing small utils – personal stuff and such. (Planning on doing cross-platform stuff in Windows and Linux).
What is the preferred GUI toolkit for Pything development? I’ve heard Tkinter sucks and wxpython is pretty good, but I haven’t heard much about pyqt or any of the others that might exist.
I downloaded the Boa Constructor app that was written in wxpython, and notied that when you right click on a textbox, you don’t get the ‘cut/copy/paste’ popup menu that shows up in the standard Windows textbox control. That kind of blows whale cock, but suppose it’s not that big of a deal to add the functionality, so long as other parts of the toolkit behave as one might expect from the native widget set.
> only Java’s GUI toolkit is slow
Yes, I agree with you, but a possible solution is to use wx4J :
http://www.wx4j.org.
You can get python bindings for almost any toolkit out there : qt, gtk, fox, wxwindows, tk. Personally I would go for either wxWindows or gtk, wxWindows has a native look on both Windows and linux but is more complex while gtk has the advantage of being open source and there’s an ok tutorial at : http://www.moeraki.com/pygtktutorial/
I would second the use of wxPython. It can be tricky to start, but once you get going, you find that it has some incredibly powerful but easy-to-use widgets (wxGrid, wxHTML and so on). Plus, I developed an app recently for Windows and Linux, and someone wrote to me saying that it ran perfectly well (no code changes *whatsoever*) on OS X! Not bad at all!
In addition to Tyr’s link, there is also the wxPython wiki: http://wiki.wxpython.org/ .
Have fun!
I decided to pick up python this summer to expand my horizons, and in just 3 weeks I’ve written a few small GTK apps (with rather little previous knowledge of GTK), and just last night wrote a small database abstraction layer for my website.
Eric S. Raymond wrote an absolutely fabulous article about how Python replaced Perl as his language of choice.
I was a complete C hacker (maybe wannabe.. but I’m not bad), and it only took 3 weeks for me to completely turn that around, learn python syntax and libraries, learn GTK, and think in objects. Things like inheritance and overloading finaly make sense and are put in a syntax that is not disgusting (C++) or overbearing (java).
It’s become by far my language of choice for most jobs.
I have found that using PyGTK + Libglade to be a most potent combination for rapid application development; a modification of sjbrown’s old tutorial can be found on my site : http://nondeus.org/docs/python/glade1/ , and I’m currently working on another tutorial for a larger project that will cover more GTK and events/signals, and loving every minute of development!
Before Python I experimented with Ruby, and I must say Python has surprised me in a good way.
First of all, Python has a great Windows support compared to Ruby.
Twisted (http://twistedmatrix.com/) played to Python’s strength as well.
On the database front, Python has a well supported driver standard.
And finally, Python’s syntax is much cleaner than anything else I have ever seen.
Cheers
Python starts up much faster. Uses less memory.
Java probable performs better on benchmarks but startup takes time.
My computer works fine with python. Only have a pii 266 &32 megs.
Lets not mix signals people.
check out who started this thread:
http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&threadm=3EDA…
Wait, why would i want to use GTK or Wx when ther eis Qt?
Python is definately faster to develop in. The APIs are very cleanly designed (for speed of coding, rather than academic elegence), and in general it has much less structural complexity than Java. Its runtime dynamic typing can be irritating (lots of runtime errors from typos) but it can also be incredibly useful (adding methods to an object at runtime). However, it will definately be slower than Java. First, dynamic typing makes it very hard for a JIT engine to emit type-specific machine code for simple types like ints and floats, unless you use a very powerful dynamic optimizer like Psyco. Also, member lookup in objects are implemented as a hash-table lookup, as opposed to the table-based method used by Java and C++.
The speed situation should get better. Psyco keeps improving (right now, it’s rather easy to “break” the optimizer by increasing abstraction). There are also plans to port it to Parrot, the Perl6 JIT engine designed specially for dynamically typed languages.
From the Python site:
“According to a simple benchmark, Python 2.3 is about 10-20% faster than Python 2.2.2”
A month or two away from release I believe. : )