1st programming language for GUI
I want to learn a programming language on my own. At college, I'm currently learning Visual Basic .NET(started, not that far into it) and later Java and ASP.NET.
But I want to learn other languages. I want to program GUIs preferably. Also preferably cross-platform. I'd like to program apps in *nix first and then maybe Windows, Mac OS X... What language or "language learning path"(ex: first this language then this one) would be good for this goal? |
Cross Platform: wxWindows, wxPython, Tcl/Tk, Python/Tkinter
Others: GTK, QT wxPython and Tkinter are the easiest to learn. |
GTK+ is a cross-platform GUI toolkit, but I've never tried installing it on MS Windows. There's a new native GTK+ port for Mac OS X that looks promising, so I'd suggest that GTK+ is a good way to go.
I'd suggest using either Perl or Python to try it out -- both languages come with bindings to GTK+. I'd also suggest eventually trying out Glade for building your GUI graphically. |
id say no matter what your planning to program, stick with vb.net until your quite comfortable with programming... ie, until you can, say, make a decent text editor clone with save/open/new file functionality.
after getting the basics down and becoming comfortable, i agree java is a next good step (or c++), as youll expand your knowledge incredibly on programming and OOP design and how everything actually works. with java you can run your program on any OS as long as the JRE is installed, including of course your GUI apps you want. i think java is amazing, but the down side of it is that its slower.. i dont find it slower but thats what everyone says. edit: asp is, ahem, useless... at least how i learnt it in school. |
Java is good choice. Build once run anywhere, but not pretty. Visual environments come with wizards that let you build skeleton apps and you can build fine guis around them. When you start manipulating raw data and fields in strange ways and you are over budget and deadline is tomorrow morning? Lisp has been around 40 years, but you can't build guis with it. Lots of insignificant silly parentheses but its great for AI. AutoCAD is written in it. There's an interesting blurp about debugging $100M hardware 100 million miles from home at http://www.flownet.com/gat/jpl-lisp.html. My friend told me all roads lead to lisp, not Rome. It's not going to be easy. The best advice I've heard was when you appreciate the run-of-the mill everyday rudimentary stuff, like mixing beakers and regents, you will make a great scientist; if all you covet is the noble prize, you won't make it.
|
I think qt designer and c++ or other lang. is great.
|
Quote:
|
Yeah, Java is a good language to start learning GUI, event handling and threading techniques (may I recommend Java Swing, Oreilly). Please keep in mind, the paradigm for GUI programming differs between tool kits and implementations, so you have to relearn somethings as you move about, but the concepts are still similar.
Qt is also fun, but they make you go through a lot of hoops, it seems, to use on a win32 (you have to get license agreements etc). I only use QT on linux. |
Java Swing is definitely a good choice as Java is very portable and the Java Tutorial (http://java.sun.com/docs/books/tutorial/uiswing/) tells you pretty much all you need to know as a beginner. The only really tricky thing is threads and timers, but even they aren't that hard to learn about from the tutorial.
|
i just got graduated from college and i have a big advice for you:
try not to learn everything that exists but if you wanna learn something make sur e to learn it as good as possible(especially when you are paying $$ to learn it). if you are a beginner programmer i recommend that you stay way from gui until you can do your assignments completely on your own, after that go to vb.net, java then c and c++. if you are a experienced programmer at this point then go for c and c++ right away and use the comon packages for graphical development including qt nad gtk. if you be able to learn javax.swing in the mean time it will be a big plus for you as well. |
Quote:
As far as the concepts go, languages are the details of the implementation, so they are not really that important (learn the differing paradigms of languages, procedural, oop, purely functional, etc). Do not forget the importance of studying algorithm design and the mathematical proofs that go with it. Not to mention Linear algebra, digital design, and all advanced calculus that are key to understanding processors at low and high levels. These are commonly overlooked by the more practical business programmer and IT curriculums, but are needed for efficient solutions. Sure you can build working applications without this knowledge, but when it comes to competition, the fastest average asymptotic implementation will have a better performance. |
All times are GMT -5. The time now is 12:06 PM. |