-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On June 7, 2004 09:03, Shawn wrote:
> I'm finally making the switch from my Windows desktop to a Linux desktop.
> �The one thing that's holding me back some is the development environment.
> �In Windows, I'm used to working with VB, the .NET Studio, Homesite, etc.
> �The web development area isn't a problem (using Quanta), but the desktop
> development area is. �As near as I can tell, there is no clear comparison
> in Linux.

the mind-set tends to be quite different when developing on UNIX and UNIX-like 
platforms when compared to Windows. instead of monolithic tools that are the 
beginning and the end (and often dictate your language and API), toolchains 
made up of small purpose-built, API-agnostic tools are emphasized. instead of 
"press and pray" actual knowledge of the system is encouraged (where "system" 
is whatever aspect of the overall OS you are dealing with). so, it isn't 
surprising to experience a bit of "culture shock" coming from a Windows dev 
env to a Linux one .... fortunately, it's a friendly culture on this side, 
and an easy one to pick up on...

first, stop thinking of tools as the central tenet of development. they are 
vastly important, but as support items. when this is realized, you can let go 
of the idea that everything must look like <insert favourite IDE here>, or 
expect your text editor cum programming environment to dictate how you write 
code.

in Linux, the key is to think in terms of APIs: what are the libraries you are 
using? what are their design patterns? how do you want your code to end up 
looking?

_then_ you pick the tools that aid and abet you in pursuit of your goals. 
maybe that is KDevelop and Qt Designer. maybe it's vim and a konsole (or 
twelve). maybe it's emacs. throw in yacc, make, auto*, gdb, valgrind, ldd, 
etc.... and you have a dev env that is as flexible and agile as anyone could 
hope for. and this environment revolves around your needs and your choice in 
APIs.

which is why you can program a GNOME program in KDevelop or a Java app in vim 
or a WxWidget app in emacs, etc... the tools are there to support your choice 
of APIs, not the other way around. so you need to start with what you want 
your code to look like, and what libraries you want to use (even if that's 
just libc =)

> on the language chosen. �But there seems to be an intuitive wall that I
> can't seem to get through for the desktop apps.

where are you getting stuck, exactly?

> So, I'm looking for tips and/or tutorials on how to BEGIN programming for
> the Linux desktop. �Thanks in advance.

without knowing exactly where you are getting stuck, here's what i usually 
suggest, assuming a basic knowledge of C++ and a desire to do some KDE 
hacking (if you wish to work in Python or some other higher level language, 
the steps are similar, though the details are a bit different)

install (if you haven't already) the Qt documentation. not only does it 
provide complete API coverage, it comes with a step-by-step tutorial, 
including sample apps, that takes you through each step of building a Qt app. 
from starting a basic app through to things like using QCanvas. IIRC there 
are 12 chapters. (though it's been a while =)

next, visit the KDE Developer site, in particular the docs area:

        http://developer.kde.org/documentation/

there are tons of HOWTOs, tutorials and examples there. be sure to download 
the KDE API docs for handy reference. they are very, very useful.

finally, remember that the community is the support team and a HUGE resource; 
there's a strong tradition of sharing and a large library of previous art. 
grab some KDE apps from apps.kde.org, freshmeat.net or KDE itself and take a 
look at how they are written and put together. go onto irc.openprojects.net 
and join #kde-devel when coding and questions when you get stuck. if you 
really want to get neck-deep, subscribe to some of the devel lists.

hth as a start ...

- -- 
Aaron J. Seigo
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43
while (!horse()); cart();
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iD8DBQFAxUsQ1rcusafx20MRAgwVAJ431GZxKsDHvx2VsgZQnNx/rliDvQCcDrQy
3wmmqHfbjct15y6KsoDgJG8=
=F9dB
-----END PGP SIGNATURE-----

_______________________________________________
clug-talk mailing list
[EMAIL PROTECTED]
http://clug.ca/mailman/listinfo/clug-talk_clug.ca

Reply via email to