-----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