LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (http://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   [SOLVED]Suggest me a good Distro for programming (http://www.linuxquestions.org/questions/linux-newbie-8/%5Bsolved%5Dsuggest-me-a-good-distro-for-programming-4175508221/)

sameer.n.soni 06-17-2014 01:18 AM

[SOLVED]Suggest me a good Distro for programming
 
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.

sag47 06-17-2014 01:33 AM

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.

jdkaye 06-17-2014 01:36 AM

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

kooru 06-17-2014 02:05 AM

Welcome to LQ!
If you want to learn Linux as well, I suggest Slackware.

273 06-17-2014 02:13 AM

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.

qlue 06-17-2014 06:53 AM

Quote:

Originally Posted by jdkaye (Post 5189156)
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.

RockDoctor 06-17-2014 07:25 AM

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.

jdkaye 06-17-2014 09:38 AM

Quote:

Originally Posted by qlue (Post 5189259)
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

jdk

DavidMcCann 06-17-2014 12:44 PM

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.

rtmistler 06-18-2014 08:51 AM

Quote:

Originally Posted by 273 (Post 5189175)
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.

sameer.n.soni 06-19-2014 03:56 AM

Thanks everyone
 
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.

rtmistler 06-19-2014 08:43 AM

Quote:

Originally Posted by sameer.n.soni (Post 5190370)
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.

qlue 06-19-2014 11:26 AM

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.

jdkaye 06-20-2014 01:00 AM

Quote:

Originally Posted by qlue (Post 5190567)
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


All times are GMT -5. The time now is 09:39 PM.