[SOLVED] [SOLVED]Suggest me a good Distro for programming
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hello everyone. I`m a newbie here as everyone can see. I`m a school student and programming is `bout to be started. I have learnt that Linux is better than Windows for programming as it`s open-source so easy to learn and understand the codes. But as there are a a lot of distros outta there I`m sort of confused that which one is good for me to start.
I`ve used Ubuntu hence I know a little `bout Linux. I have provided my PC specs below for you all to `bout my machine and get an idea if that distro would be able to run in my machine smoothly.
CPU: Intel Core 2 Duo E7200 2.53 GHz
RAM: 2 GB
Hard Disk: 97.6 GB (63.3 GB already occupied by Win 7)
Can be extended
Motherboard: Intel G41 Express Chipset
Thanks in advance.
Last edited by sameer.n.soni; 06-19-2014 at 02:48 AM.
Reason: Got my solution. Thanks to everyone
Any distro that has build tools (which is pretty much all of them). Ubuntu has build tools. If you're familiar with that then you should use the build tools that come with Ubuntu so that you don't face the learning curve of a new distro.
I'd suggest Debian. You can install it without any desktop environment or with a minimalist DE. It's repositories are very large so you'll be able to find just about anything you want in the way of programming languages/libraries/tools and so on.
jdk
Distribution: Debian Sid AMD64, Raspbian Wheezy, various VMs
Posts: 7,680
Rep:
What tools will your teachers learn to teach you programming and in which language? Can they give you any pointers?
I only ask because when I did a course in C++ we all decided we would stick with Microsoft Visual C++ for our classes (the college used Windows) as the desktop environment was easy to use and we could concentrate on the code and not having to use separate editors, compilers, linkers and debuggers. I don't say that is the right thing to do but if your teacher has decided upon a development environment for that reason you may run into problems if you use something else so at the very least it would be good to know they will support you if you do.
I'd suggest Debian. You can install it without any desktop environment or with a minimalist DE. It's repositories are very large so you'll be able to find just about anything you want in the way of programming languages/libraries/tools and so on.
jdk
I'd second that and also suggest Crunchbang, a minimalist variant of Debian. Crunchbang has a post install script that runs automatically the first time you login and gives you the opportunity to install various development packages that you may need.
One downside of Debian/Ubuntu is that the development packages are separate from the binaries. Figuring out the names for a required development library can be an issue if you've never built anything from source before.
Most Linux distros should run smoothly with your machine. In your position, my first inclination would be to use the OS suggested by your teacher. Having taught programming classes (back in the day) in which the students used a variety of operating systems, I've found that sometimes the problems are with the OS, not the language. If students were using an OS with which I was unfamiliar, I'd often be unable to assist them in getting their code to run.
One downside of Debian/Ubuntu is that the development packages are separate from the binaries. Figuring out the names for a required development library can be an issue if you've never built anything from source before.
Usually it's pretty trivial to figure out the names:
Code:
libpython3.4 - Shared Python runtime library (version 3.4)
libpython3.4-dev - Header files and a static library for Python (v3.4)
libklibc - minimal libc subset for use with initramfs
libklibc-dev - kernel headers used during the build of klibc
libcxgb3-1 - Userspace driver for Chelsio T3-based iWARP adapters
libcxgb3-dev - Development files for the libcxgb3 driver
Your computer will run anything, so that's not a problem. Any distro will have programming languages available, so that's not a problem. Pay no attention to people who say you ought to use their distro; naturally they think it's the best, because they chose it!
Have a word with your teacher. If you're going to be using something like Microsoft C or Miscrosoft Basic, then using Linux will not be a good idea! But if you're doing a language that has a standard form, like Python, Linux would be fine.
If they say it's OK to use Linux, then choose whatever you like. If you've used the Ubuntu family and like one, then that will be fine.
What tools will your teachers learn to teach you programming and in which language? Can they give you any pointers?
I only ask because when I did a course in C++ we all decided we would stick with Microsoft Visual C++ for our classes (the college used Windows) as the desktop environment was easy to use and we could concentrate on the code and not having to use separate editors, compilers, linkers and debuggers. I don't say that is the right thing to do but if your teacher has decided upon a development environment for that reason you may run into problems if you use something else so at the very least it would be good to know they will support you if you do.
This is an excellent point. Learning to program in Linux is helpful; the core of Linux is C. As others have mentioned most distributions will have build tools, Ubuntu and MINT are ones I'd recommend, and since you have Ubuntu, then open a command line, type
Code:
gcc --version
gdb --version
to verify that you have GCC and GDB and get programming. Write the basic C Hello World program and compile it on the command line using GCC and run it.
I suggest that you do NOT use a distribution fully limited to just the command line. Why? Because you're learning, you'd benefit by having multiple terminals, an editor, and a web browswer open. You can use one terminal to do your compilations and debugging, another terminal to look at manual pages for calls and library functions, you'll use the browser to search for answers, and you'll benefit by having an editor open; I like gnuemacs but there are many, many others and you can edit your source while leaving the terminal prompt alone in case there was a syntax error telling you the error and the line it occurred on. Because if you compile at the command prompt, have errors, and then vi the file right there, your screen gets filled with the vi of your source, thus losing the error report. Why give yourself that much grief, have multiple terminals and windows available.
I'd also suggest that you learn shell programming, likely BASH programming. Don't worry about becoming an expert, but learn some fundamentals. I suggest this because in many Linux architectures I have the total solution involves booting the system, running scripts as part of that, and then running my applications. In some cases, scripts are still invoked by my programs because they were easier to get done what I needed versus a C program solution.
For C++ you can still do that with GCC on Linux.
You can also run the Eclipse environment to do things like Android development on Linux, honestly I have found that it surprisingly worked better on Windows. That may be because of the Linux computer capabilities as well as the distribution I was using, but it was a night and day difference for me, Windows worked better in XP and Win7 for Android so that's what I continue to use. It also didn't have any oddball detection problems for the phones or tablets. Go figure, you'd think Linux would work pretty well with the Android development kit. This wasn't my experience.
C++ or C# for GUI programming, you'll want to start with Visual Studio and use their templates.
If you're going to consider Qt programming, either Windows or Linux works pretty well.
And there are a ton more languages. Basically if you're starting in programming, my recommendation is that you never restrict yourself to one language or turn your back on things merely due to bias or opinion. The most successful persons around the workplace IMHO are those who will do the tasks they're asked to do regardless of the language, tools, or environment; and the ones who get the same tired tasks all the time (you'll hear them complain that they never get any good projects) are in that rut because they continually shun programming efforts which they don't "agree" with; a.k.a. they refuse to learn Python, or Tcl, or HTML, just ... because they're stubborn.
Thank you everyone for helping me out. But would you mind if I ask for suggestions for a distro which has some entertainment tools as well. I don't have any problems adapting to a new distro.
Thank you everyone for helping me out. But would you mind if I ask for suggestions for a distro which has some entertainment tools as well. I don't have any problems adapting to a new distro.
I'm sure no one minds and many would have comments to offer. My suggestion is to mark this thread as solved and create another thread (if you haven't already) in either the Newbie or other forums. For instance, under the Software forum there is one for Linux Games, and if you were more interested in multimedia such as videos, web browsers, email, etc then there's one for Linux Desktop and there's one for Linux General. Peruse the Forums page if you like. Don't worry if you do place something in a forum that's not quite the best match, worst case is a moderator will move the thread, it won't be lost, you'll still be subscribed to it; and their intentions would be to get a question the best exposure that it merits, not because they're angry that someone posted a question that wasn't quite the best fit for the subject of the forum.
Enjoy! And glad that you're comfortable digging in to Linux! Sounds to me like you may end up being a very helpful poster to others as your knowledge grows.
I'd go so far as to say, "try all of them."
My opinion; (and it is only an opinion)
yum based distros tend to be geared towards servers while apt based distros tend to be more suitable for general desktop use. The rest are "geeky" distros that are good for learning the more obscure aspects of Gnu/Linux. (such as how to configure xorg etc.)
Avoid distros intended for security testing though unless you have a specific use case for them. And keep at least one good live CD for recovery purposes. (I like System Rescue CD but feel free to choose your own.)
Any Debian/Ubuntu based variant will have many games available and usually have several games installed by default.
I'd go so far as to say, "try all of them."
My opinion; (and it is only an opinion)
yum based distros tend to be geared towards servers while apt based distros tend to be more suitable for general desktop use. The rest are "geeky" distros that are good for learning the more obscure aspects of Gnu/Linux. (such as how to configure xorg etc.)
Avoid distros intended for security testing though unless you have a specific use case for them. And keep at least one good live CD for recovery purposes. (I like System Rescue CD but feel free to choose your own.)
Any Debian/Ubuntu based variant will have many games available and usually have several games installed by default.
+1
I agree with qlue. Unless you have any specific "games tools" in mind, I'd say just about any "full-featured" linux distro will have the means to play the same games.
jdk
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.