I want to quit using windows and start using Linux (archlinux) for all my programming tasks like a Real Programmer (tm). I like editing and building from the command line, but I am only confident with nano and directly calling gcc (instead of make). Any suggestions for a newbie like me?
whats nano? what do you mean calling gcc instead of make?
yu better straight away try ubuntu..its very user friendly and a linux oriented....open source too...yu will hav the gorgeous graphics...very good s/w assistance too
I've already got arch linux set up with the KDE desktop... should I switch to ubuntu instead?
The taste of linux never lies in graphic but in it kernel architecture... Try tweaking with your kernel using programming .First of all understand its architectural implementation avoid using GUI use only shell whatever you want(bash,tshell,k shell).learn shell scripting for automating things(running one programming after the other) compile each and every software code you get ,know about run levels, virtual memory management .use of VI will help you a lot when your source code is very big and the machine in which you build and run has less memory(embeded systems). Gcc G++ are good for c,c++ programming, for java use openjdk. If you have habit og using IDE for programming i suggest you to use codeblocks for c,c++ and eclipse for java n all. I have never used clang compiler but people say that it is good.For reference go for Operating system principles design by galvin.(heard tanenbaum O.S book is also very good)
A small correction ,linux is not an operating system its a kernel where as windows are considered to be an O>S with extra tag like NT ,XP,vista,7 etc so pedantically speaking we cant compare an O.S(windows) with kernel(Linux). I guess
right about linux being a kernel, and my operating system actually being Archlinux GNU/Linux. When I said linux in my OP, I actually meant linux in the sense of the whole software ecosystem (GNU/Linux, POSIX environment, gcc toolchain, bash, some free linux distribution, etc.)
What can I accomplish under a Linux environment, that I cannot do (or do but with great difficulty) under Windows or Mac OS? I like how efficient the CLI environment is (my archlinux is configured to start in bash; the GUI desktop is turned on manually for now). Setting up wireless is a pain, but I'm sure a simple Python script will help me manage it easily.
So, in regard to your most recent question, there's not really much you can do that you couldn't do on the other platforms. Linux exposes the same types of APIs that Windows and Mac do so the same tasks are available. If you're looking to become a Real Programmer (tm) - I'd recommend getting acquainted with vim and learning make. The syntax for make is actually dead simple. This link describes the basic format: http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html
There is absolutely no reason to use Linux if you don't want to have fun configuring your system and playing with the extra exposure. make is a complicated beast built on simplicity, and most makefiles are so terrible they're auto-generated by things like autotools, which are a disaster in their own right. More modern alternatives exist, like cmake. Familiarizing yourself with these build tools is a necessity, but which ones you use is a careful call that can make your life easier. cmake is cool, qmake is used for Qt projects and also makes life a lot easier.
Join our real-time social learning platform and learn together with your friends!