Jump to content

Linux distro for programming

Ryujin2003

Hi everyone.

 

I'm going to college for Computer Science, with a focus on Computer Programming. I'm in several classes this semester, which have had me deem this the semester of Unix/Linux. I own 2 PC's, one custom built desktop and an MSI GS73 laptop. Both of these are obviously Windows based machines. In two of my classes, the professors are wanting us to program/code in a Unix environment. Our computer labs are all Macs. I don't own any, and don't want to live in the computer lab. I am wondering, from those with experience, would I be better off dual booting at least my laptop with Linux and Windows, or should I use Virtual Box or some other program? My one class, we are specifically coding with Haskell, where as the other one I'm not too entirely sure, but it appears to be C++, and the professor is having us do it all through Unix terminal.

 

So, dual boot or virtual environment? If virtual, is there something better than VirtualBox? I've had dual boot before, but it did mess up my Windows boot options. If there are tricks to make dual boot better (if its preferred), please let me know.

Also, is there a flavor of Linux that would be best for this? I didn't know if there was one that came with all of the required compilers for Java, Haskell, C++, and so on. I've had experience with Ubuntu, Kali, and a little bit of Mint.

 

Any guidance, comments, and suggestions are accepted.

Link to comment
Share on other sites

Link to post
Share on other sites

Personally, the Linux distribution I go for is Fedora. 

Link to comment
Share on other sites

Link to post
Share on other sites

I prefer VMware to Virtual Box

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Dual boot will be faster and less hassle imo. Though the process of setting up (one time) can take time. you can alternatively use Live version of them (no install) but that is really slow. 

Ubuntu is nice. Some school also requires Cent OS. 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, deXxterlab97 said:

Dual boot will be faster and less hassle imo. Though the process of setting up (one time) can take time. you can alternatively use Live version of them (no install) but that is really slow. 

Ubuntu is nice. Some school also requires Cent OS. 

Never heard of Cent OS?

 

I was wondering if USB liveboot would work. I didn't know if it would save anything I did when booting Linux from USB.

Link to comment
Share on other sites

Link to post
Share on other sites

Additionally, virtual environment is a nice way of multi tasking as opposed to multi-booting. It really depends on the situation for which would be the best choice. 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Ryujin2003 said:

Never heard of Cent OS?

 

I was wondering if USB liveboot would work. I didn't know if it would save anything I did when booting Linux from USB.

USB live boot should work. But in my experience they are fairly slow. If you want go install it or use virtual machine

Here, check them out https://www.centos.org/

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Ryujin2003 said:

Never heard of Cent OS?

 

I was wondering if USB liveboot would work. I didn't know if it would save anything I did when booting Linux from USB.

You can live boot off of a USB, but if it's an OS that's going to be a constant, I would recommend either installing the OS or running it in a VM on top of an OS. 

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, IAmLamp said:

Personally, the Linux distribution I go for is Fedora. 

Fedora does look pretty good with its Workstation setup.

2 minutes ago, IAmLamp said:

Additionally, virtual environment is a nice way of multi tasking as opposed to multi-booting. It really depends on the situation for which would be the best choice. 

Even if in Linux, I would be able to access the internet and look things up if(as) needed. The last time I tried a virtual environment, I used Virtual Box and had issues with my resolutions being a jacked up. I never found a way around it. It was rather annoying.

 

6 minutes ago, Arty said:

I prefer VMware to Virtual Box

Why do you prefer VMware? I've never used it, and want your opinion. I would like to start getting into good habits early one, and that means gaining some stability on what I use and why I use it.

Link to comment
Share on other sites

Link to post
Share on other sites

So then my last question......

 

Any trick to get LAN and WiFi to work afterwards? The only laptop that worked for me was my old Sony Vaio. Every other laptop has not had working LAN and WiFi after I installed any edition of Linux.

 

Are there any tricks to fixing this horrible bug? And why does this always happen?

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Nicholatian said:

Virtualisation has overhead to it, and while it isn’t always noticeable, for many heavyweight tasks like video rendering and software compilation, it can significantly slow you down. I would disadvise it to any programmer.

Where do I even start with such a disastrously flawed comment. 

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, Ryujin2003 said:

Fedora does look pretty good with its Workstation setup.

 

 

You understand that the "pretty" is gnome. You can install that on any Linux. 

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

You probably want to work with a GUI. and the thing i will recommend isnt really created for that but its possible ofcourse.

Docker, and for windows Boot2Docker (uses Hyper-V i guess) you can interact with the command line from your own cmd.exe

Every command you send with docker in it looks into hyper-V and runs whatever docker command you type.

 

Then u use docker to setup anysort of container. You can think of a container like an image which you start with VMware (but at the same time its nothing alike)

Lets say with docker you want to run the distro Debian. just use 

docker run -it debian

within a blink of an eye you get in that container you just created and for example if you want to you can just run 

rm -rf /

and it wouldnt even matter.

 

There is ALOT more to it.

 

I dont think you should use this at the moment since you probably dont have experience with any linux distro. but once you get more familair you can to to micro manage your services.

 

Quote or mention me if not feel ignored 

Link to comment
Share on other sites

Link to post
Share on other sites

If you want to go the USB route, you can always install linux to a USB stick, the full installation, just be sure it is USB 3.0, it wont be nearly as fast as an HDD, but for college programming, which is mostly text, looking things up and keeping a few PDFs open, you should be fine.

 

Porteus ( http://www.porteus.org/ ) lends itself well for this premise. It is Slackware Linux based, it looks good, and you will have access to the app center if you need additional software. I am using it on a USB 2.0 stick on an old laptop, and it still works acceptably.

 

Otherwise, you could install Lubuntu onto it.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, vorticalbox said:

You understand that the "pretty" is gnome. You can install that on any Linux. 

No, I'm not experience in Unix/Linux. Apparently, my school had been told about 5 years back, that their CS students needed more hands on experience, especially with terminal interface. So this is what I've got. I don't have the Linux experience, so I was hoping there is a distro that has all of the compilers preinstalled so I don't have to monkey around with any of that. I don't care much for looks, but it looks better than Ubuntu. I have been told the shells in Linux can be changed super easily, but again, I've got no experience with that.

 

.. And this is why I had to listen to one of the ass hats in the programming class give his hipster opinion as to why Mac is far superior to any Linux or PC based computer for programming.... Apparently MacBook Pro comes with everything under the sun.

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, IAmLamp said:

Additionally, virtual environment is a nice way of multi tasking as opposed to multi-booting. It really depends on the situation for which would be the best choice. 

Just to give each version a shot before I decide if I'm going to attempt to dual boot, I've got VirtualBox running, but it won't let me adjust the resolution, so I'm stuck with this small ass screen, and terminal takes up all the space if I open it. Not really helpful. I only have the option of 800x600 or 1024x768. I have tried looking it up online. I've changed the maximum screen size to none, and still doesn't work. Any experience with this?

Link to comment
Share on other sites

Link to post
Share on other sites

If you're doing general programming, then any of the popular Linux distributions should work. Just get yourself gcc, make, and whatever else you need if they don't already have it.

 

Otherwise, the answer is: whatever the target is. If your target is using CentOS, you should use CentOS. If the target is using Ubuntu, you should use Ubuntu.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, M.Yurizaki said:

If you're doing general programming, then any of the popular Linux distributions should work. Just get yourself gcc, make, and whatever else you need if they don't already have it.

 

Otherwise, the answer is: whatever the target is. If your target is using CentOS, you should use CentOS. If the target is using Ubuntu, you should use Ubuntu.

I'm not really too experienced, so I'm fine with any distro. My targets are Haskell and C++, per my course requirements.

Link to comment
Share on other sites

Link to post
Share on other sites

6 minutes ago, Ryujin2003 said:

I'm not really too experienced, so I'm fine with any distro. My targets are Haskell and C++, per my course requirements.

I would go with an "easy mode" distro like Linux Mint or Lubuntu. Ubuntu works if you're okay with their desktop environment.

 

C++ you can use gcc and make. make is optional, but it immensely helps with compiling code. Look into how to do make files. You can also opt for something like gdb (if gcc doesn't come with it) and ddd for debugging.

 

For Haskell, since I haven't touched that language, I'll defer you to https://www.haskell.org/platform/linux.html

 

Link to comment
Share on other sites

Link to post
Share on other sites

15 hours ago, Ryujin2003 said:

 the professors are wanting us to program/code in a Unix environment.

 

Then why do you keep searching for a Linux distribution? None of those are Unices. Some of them don't even support POSIX. (E.g. neither Arch nor Gentoo come with vi AFAIR.)

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

27 minutes ago, Dat Guy said:

Then why do you keep searching for a Linux distribution? None of those are Unices. Some of them don't even support POSIX. (E.g. neither Arch nor Gentoo come with vi AFAIR.)

It's UNIX-like which for most use cases is good enough as long as the program isn't requiring libraries outside the C standard. They'd just have to compile it on target if that's a necessity.

 

Haskell is also a really high level language to the point OS shouldn't matter.

Link to comment
Share on other sites

Link to post
Share on other sites

"Good enough" is still wrong when you can easily go the right path. Also, I'm confident that the professors have a reason to demand UNIX instead of wannabe UNIX.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

27 minutes ago, WaxyMaxy said:

Assuming you have a recent version of windows 10, you can always use the bash terminal in windows.

That's not what it's used for. It's mostly for system admins who wrote bash scripts and don't want to bother with learning PowerShell in order to do administrative stuff on a Windows machine.

 

From: https://msdn.microsoft.com/en-us/commandline/wsl/faq

Quote

Can I run ALL Linux apps in WSL?

No! WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows

 

WSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)

 

Also, even though you will be able to run many popular server applications (e.g. Redis), we do not recommend WSL for server scenarios – Microsoft offers a variety of solutions for running production Ubuntu workloads in Azure, Hyper-V, and Docker.

 

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, M.Yurizaki said:

It's UNIX-like which for most use cases is good enough as long as the program isn't requiring libraries outside the C standard. They'd just have to compile it on target if that's a necessity.

 

Haskell is also a really high level language to the point OS shouldn't matter.

 

5 hours ago, Dat Guy said:

"Good enough" is still wrong when you can easily go the right path. Also, I'm confident that the professors have a reason to demand UNIX instead of wannabe UNIX.

Because those with Macs are close enough. All the computer labs are Mac, so the class is designed around yhe one dedicated system all students jave access to. The rest of us loser PC guys need to get something, and the professors said Linux is fine since the commands for what we are doing is the same. Haskell is part of the class to get us exposed to another language. The other one is C++ only through terminal.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×