View Single Post
Guest | Posts: n/a | Thanked: 0 times | Joined on
#8
noobmonkey: I haven't used Eclipse much myself, but it's written in Java, and is rather heavyweight - depending on the resources of your computer, you want something lighter. My personal preference is KDevelop4, although it's technically still in beta (due out in March, I believe). If you want to use the Qt toolkit (which is awesome), then you can't do much better than KDevelop. It has lots of nifty code introspection features, and what they call "Semantic Highlighting", which is essentially syntax highlighting hooked into the parser, so that it colors things more intelligently (e.g. local variables each get a different shade, so that you can follow the code more easily when scanning down it quickly). I'm not sure if debugging is fully working in the current beta (and Ubuntu doesn't have the latest beta available anyway), but when it does, it will support reverse-step, so that you can move backwards in the execution of your program.
If you need something in the mean time, Qt Creator, while not nearly as featureful, is decent for C++ coding with Qt. If you want to use Python, I've heard good things about the Eric IDE, but I've never tried it. If you want to do GTK apps, then Anjuta is another IDE you might want to try.
One thing to note is that not all IDE's will automatically set up the build for you like Visual Studio does (see previous comment about "pampering" - no offense, but it's kind of true). The old-school way of doing it was to manually write a Makefile, which then gets parsed by a program called make, which then compiles it in an automated fashion. However, thanks the to the Magic of modern software, you don't have to do things the hard way. I'd recommend you look at qmake (for Qt apps) or cmake (for anything). They make things pretty simple to do, and some IDEs wil work with them nicely. As an example, a simple, single-binary, standalone C++ app can be built using cmake with the following lines in the CMakeLists.txt file
Code:
PROJECT("myfoo")
ADD_EXECUTABLE(myfoo myfoo.cpp mybar.cpp)
That compiles myfoo.cpp and mybar.cpp into a binary called myfoo. That simple. You can, of course, get fancy with it, but both qmake and cmake make things pretty easy, and have a low entry barrier - you can dive in with almost exactly what I wrote above, to get going.

As for languages, C++ is good for speed, but Python is rather easier to learn (case in point, I was able to help friends with basic homework without ever having actually used the language). Python is more memory-intensive, though. C++ is not a pretty language, but it's powerful, universal (well, not quite as universal as C, but close), and not terribly difficult. As I mentioned, though, if you use C++, look into Qt - it makes things oh so much easier. You can also use Qt with Python, for that matter.

Being new to Linux, there's a lot you'll need to learn. If you can, try dual-booting a physical machine with Ubuntu, and use it for day-to-day computing as much as is practical - that's the easiest and quickest way to pick it up, especially since working in a VM is a bit of a bother. If you Google "free Ubuntu books", or some thing like that, you should find some eBooks that will get you started with Ubuntu, and for more technical guides about the kernel, the shell, scripting, etc, try The Linux Documentation Project. If you want to quickly get your feet wet in Ubuntu itself, UbuntuCat has a wealth of good newbie guides and cheatsheets to get you familiar with concepts like package management, and other things that are different from Windows. (His blog is usually an interesting read too, although it's not all about software :P). Once you're comfortable with the pretty GUI, start getting used to the terminal. The terminal is your friend in Linux - there is usually a graphical way to do most common tasks, but if you know what you're doing, the terminal is often faster, and usually more powerful. If you want to poke around in it, here's some things to start you off (Google for tutorials to find out more):
Code:
Check which directory you're in:
pwd
List the contents of the current directory:
ls
or:
ls /path/to/somewhere
(note: absolute paths begin with "/".  "." means the current directory, so "./foo" means "the subdirectory called foo in the current directory")
"ls -l" will give you more info, and appending -h will make the numbers nicer to read

List with hidden files:
ls -A

Change to another directory:
cd /path/to/directory
(note that *nix uses / for a delimiter, not \ like Windows.  \ can be used to escape special character like spaces if they occur in paths that you're typing, as in "\ " or "\"" for a literal quote.  Also note that *nix is case sensitive unless it tells you otherwise.

move files:
mv source dest
what it sounds like - paths are specified the same as before

echo strings:
echo string

print out (and optionally concatenate) files:
cat file1 [file2....fileN]

read the "fine" manual (RTFM):
man commandname

most programs also will give basic usage info if you add a "--help" or "-h" switch, but not all will, so it's best to try man first.
Start there, and work your way up. Learn as you go, find tutorials, and use the OS as much as you can. I'm sure you're a bit impatient to get going, but you're much better off trying to get a good handle on Linux before trying to code on it - it'll save you a lot of frustration. If you've looked and you can't find what you need - ask. Maemo Talk is friendly, and the Ubuntu Forums are as well. Above all, have fun learning

Hope this helps,
 

The Following 6 Users Say Thank You to For This Useful Post: