Linux

Pages: 1234
I've noticed a lot of people recently saying that Linux (especially Ubuntu) is better for programming (with the exception of the lack of Visual Studio which I hate anyway and only use because I haven't found a way of getting unreal to work with CodeBlocks). However I've never actually read people giving any concrete reasons as to why it's better. As someone who's never used Linux before, I'm quite confused about what's the same, what's different and whether or not it's worth installing another OS on my laptop that I would just use for programming. Could someone explain why it's so much better, and how much harder is it to use?
I use Linux (Fedora) exclusively. I would definitely recommend Linux to anyone involved in CS / IT, because there are so many resources available.

In terms of software development, IMO it shouldn't be any different while using an IDE.

Apparently, Ubuntu is recommended because it is easier for Linux beginners to use.

Apart from there being up to 20,000 applications available for free, there are other advantages.

Security:

Although not impossible to write viruses for Linux, virus writers shy away from Linux - it is apparently much much harder to write a virus that will work in Linux. I have never had any anti-virus software on my Linux machine. Occasionally, when I do use Windows, I have to install the last however many months worth of virus patterns, before I can do anything involving the internet. And I have to pay for that virus protection.

Unix / Linux has been around a long time, so the OS is mature, as is the software that has been around a long time.

A big advantage is the shell (command line) there are hundreds of different built in commands most of which have lots of options, and they can be scripted, meaning that one feels they can almost do anything. Probably the most ubiquitous shell is bash, but there is a selection of others like csh tcsh et al. as well .

Some of the commands are completes languages in themselves - awk - a pattern matching language springs to mind.

One can have a choice of many IDE's - I have KDevelop, QtCreator, CodeBlocks and Eclipse on my machine. All these are free, and have good functionality IMO, but how they compare to the full version of VS I don't know.

There is office software that will open / save in MS format.

I just like the whole philosophy of Linux and the way the file-system is organised.

If you want to try Linux there are several options.

1. Download and install the OS onto a memory stick and run it from there, no installation to hard disk.
2. Run Linux through a virtual machine in Windows
3. Install Cygwin which is a Linux emulator.

Have fun !!
One other thing is the customisability, you can make it look and feel the way you want. It's basically an operating system you can play around with until you are happy with it. There are many flavors, that's the other upside to it. I would recommend Linux Mint because of it's MATE and Cinnamon desktop environments, they feel similar to Windows.
@TheIdeasMan Thanks for the in depth reply. I think I'll install it on my memory stick as I have a ridiculously fast one lying around. I've gone on the Ubuntu website and noticed it has two download options, 14.04.3 which comes with 5 years of security and updates guaranteed, or 15 which comes with 9 months of security and updates. Does this mean that after that time period it will stop being secure, and if so, is there any problem with just downloading whatever the latest version is at that time?

@ChajusSaib How far does this customisability go? Can you add your own features to the OS or just alter many things that the developers let you alter?
I am not sure - I don't have Ubuntu. There is probably more info somewhere.

I am still using Fedora 17, but am about to install F22, so I am 5 releases behind (releases are every 6 months) but F17 isn't noticeably or seem less secure.

If you do install onto a hard disk (it's not recommended to use a USB long term), it's a good idea to have different partitions, such as /boot / /home /usr /opt and a couple of spare ones so you can test different Linux distros. One can have a GRUB2 boot menu, which allows the choice of which OS to boot (including windows).

Apparently F22 allows resizing of an existing partition, so you can make the windows partition smaller. Not sure if other distros do this, wouldn't be surprised if they did. If you have a PC, it might be worth having a physically separate HD to put Linux on. I used to have removable HD bays, so I could chop & change whenever I liked.

In terms of customising, there are all kinds of desktops and windows managers, which have different features. Some are more lightweight than others.

Distributions come with different spins - for example one can get a science spin which has scientific software and tools of various types as part of the distribution (automatically installed), but it doesn't stop one from installing whatever one wants.

Welcome to the Linux World !!
Thanks again. I'll come back when I've had a go at installing and running it and it's gone terribly wrong.

EDIT: One question before I actually install it, when I'm partitioning my hard drive, is it necessary to make more than one partition to start with, and if it is, what do you put in each one and how big should you make them (my hard drive is 1TB or however much memory the marketing people mean when they say 1TB)? Also, are there a standard set of drive letters for each of the partitions you mentioned, or is it just done as the user wants it?
Last edited on
If you would like to dual boot just choose the option when installing(install Ubuntu alongside Windows) and you can choose how large the partition you want. 20 GB would be well enough but I would say go with something at least around 50 GB.

You may want to get this book(free download) if you want to get started with the Linux command line: http://linuxcommand.org/tlcl.php

Last edited on
Ah thank you. I'd just been reading up on partitioning my hard drive (I've never had to). I didn't realise the installer would do it for me. Just to be sure, would the two OSes share the same C: drive, or would the 50GB include any files or programs I install on Linux? I'll have a look at that book, I imagine it'll be really useful especially if I start using the command line more so that if I want to, I can use the Linux flavours that rely more on the command line rather than the gui.
The installer partitions(divides) your hard drive for you so you will have 2 partitions, one for windows and the other one for Linux. It's like having 2 separate hard drives installed. Windows will not recognise your Linux drive unless you use a program such as Ext2Fsd to access it. On the other hand Linux can both read and write your windows drive unless you have fast boot on in windows.

How far does this customisability go? Can you add your own features to the OS or just alter many things that the developers let you alter?


You can customise it as far as you like, you can add and remove features, it is open source!
Just to be sure, would the two OSes share the same C: drive, or would the 50GB include any files or programs I install on Linux?


The 2 OS's definitely each have their own partition, although Linux can read what is on the Windows partition. They can of course share a HD via partitions, maybe that is what you meant?

Linux doesn't have a C: drive. Everything in Linux is a file, including all devices like the keyboard, ports, display, DVD drives, and peripherals for example, literally everything is a file.

Partitions are directories (themselves a file) - for example /boot / (root) /home /usr /opt /var. One doesn't have to have multiple partitions, they could all be in / , but it is quite a good idea to do so. HD's are usually quite large these days, so hopefully you have bags of room.

An advantage of partitions is that one can update or change to a different distro, or have several distro's, and things like your personal files, that is your user directory (in /home), software you installed (in /opt say), existing log files (in /var) can all remain untouched. It is just the new distro in it's own partition that is changed. Also I have a 2GB /boot partition which the system uses for doing 6 monthly upgrades to a newer version of the distro.

Another advantages of partitions is that if one manages to fill one up, it might not (depending on which one it is) crash the whole system, as opposed to it definitely ruining the whole system if the OS is on 1 partition.

Think carefully about the sizes of the partitions, will need a fair bit of room for software (/opt), and personal data (music etc) /usr/home

The Big Thing is to backup your Windows stuff before doing any installation.

Regards :+)
Just to clarify, what I meant was about when ChajubSaib suggested a partition of 50Gb and I didn't know if that would just be for putting Ubuntu itself in there, or if that 50Gb would have to include any programs I install or documents I save while running on Linux.
Another reason to develop on *nix is because developers don't even seem to care about Windows at all:
http://www.cplusplus.com/forum/lounge/175608/
I've installed it! Possibly the most annoying install I've done of anything ever but that's mostly Windows' fault. First it didn't burn correctly to disk using Windows' built in disk burner, then it point blank refused to boot from disk and there isn't a boot menu when the computer is starting up in Windows 10 so that took some googling. It's not even that different at the moment but the possibilities! Thank you for the advice and help!

EDIT: It is kind of annoying that the mouse scroll wheel no longer does that thing where if you click it down then move the mouse the page follows. I know clicking the scroll wheel works because I can use it to close tabs or open links in new tabs, but it won't make the scrolling thing. Any idea why this isn't working?
Last edited on
Excellent!

So what size partitions did you wind up using?

Just to clarify, what I meant was about when ChajubSaib suggested a partition of 50Gb and I didn't know if that would just be for putting Ubuntu itself in there, or if that 50Gb would have to include any programs I install or documents I save while running on Linux.


If you have the one partition, then everything will be in it - the OS , programs, data. If that is 50GB, then that will be fine for now - just that it is more flexible to have multiple partitions as I outlined earlier.

My Laptop came with 2 by 500GB physical HD's - I have windows on one and Fedora on the other, so I have have bags of room. Over the six years I have had this Laptop, I have only used about 13% of the disk space - I don't have a lot of video or music on HD, and haven't installed lots of software.

the most annoying install I've done of anything ever but that's mostly Windows' fault.


When I had a PC with removable HD bays, I had Linux on one & Win on the other - usually I would only have one or other pushed in while booting. One day, I had both pushed in - boy did that cause some problems. Windows likes to own things - especially the MBR. It turned out that it could then only cope with a max of 8 partitions (Primary & Logical), so it honoured the 2 windows, and 6 of the Linux ones. The 7th Linux Partition was..... you guessed it - my /home partition. So that killed off my Linux. It doesn't happen on my Laptop now because I have a GRUB2 boot menu, allows me to select what I am going to boot.

It's not even that different at the moment but the possibilities!


Awesome, go for it and don't hold back !!

Regards :+)
@shadowmouse I should have told you you don't need to burn it to a disc, you could've put it into a USB. Well to late now.

Good luck!!!

Another reason to develop on *nix is because developers don't even seem to care about Windows at all:


Join us then. jk. But us *nix folks don't get a lot of other tools as well such as Windows Presentation Foundation for example.
I let the installer choose and didn't argue with it. It said it was setting up one for files and one for Ubuntu. The files one was about 530Gb and Ubuntu 440Gb. As I said, that's what it was set to by default so I didn't see any reason to change it and when I start exploring Linux more and more I may well end up changing it. Do any of you have any idea about the scroll wheel issue?

And on the topic of customisation, is it doable to make a program which takes the place of the desktop and for example has buttons on the desktop which you can press to change things? And what about modifying the workspace switcher to allow different sets of icons for each desktop?
Last edited on
First up, there are Ubuntu forums, and Ubuntu documentation FAQ's etc on the web.

Do any of you have any idea about the scroll wheel issue?


No idea - what's wrong with it?

is it doable to make a program which takes the place of the desktop and for example has buttons on the desktop which you can press to change things?


I wouldn't be trying to make a program to take the place of the desktop - it's certainly possible to make your own, but not trivial. Instead look at what different desktops have to offer.

Change what things? The background picture, style for different things? There should be a menu option somewhere to alter these, and you should be able to make a short-cut out of it.

And what about modifying the workspace switcher to allow different sets of icons for each desktop?


I just have a bunch of short-cuts in a panel at the bottom of the screen, if there are too many apps in one workspace, I drag it to another. It may be possible to have different shortcuts for different WS, I haven't tried. Could ask on the Ubuntu forum though.

Okay, I'll go to Ubuntu forums and ask them. Thanks for all the help and I look forward to the things I find. For the record, the scroll wheel issue was an edit to one of my earlier posts, pressing down on it then moving the mouse doesn't scroll web pages like it normally does. With the multiple desktops, it was something that annoyed me when they added virtual desktop support to win10 without allowing different shortcuts on different desktops so I'm hoping it's possible to get Linux to do it. Also with the desktop, I meant for example a button that replaces the files/folders/shortcuts on the desktop with a different group of files/folders/shortcuts.
> if you click it down then move the mouse the page follows.
¡I forgot about that!
Here are two solutions, one global and the other just in one aplication (firefox)
http://unix.stackexchange.com/questions/101867/make-mouse-movements-scroll-when-the-middle-button-is-held-down


> Could someone explain why it's so much better
I have no experience developing on windows, so don't know how are things there.

I like how the package manager installs and updates the libraries that you need, put them in sane places (/usr/include, /usr/lib) and how you can use pkg-config to build against them.

But perhaps the best part is the whole libre philosophy, remarking the freedom "to study and change the program in source code form".
ne555 wrote:
I like how the package manager installs and updates the libraries that you need, put them in sane places (/usr/include, /usr/lib).
This is why I don't use *nix: those are insane locations. If I had to use *nix it would be GoboLinux. Each program or library (each package) should have its own directory. Mixing everything together is nonsensical and makes it hard to install multiple versions side by side without putting version numbers in filenames (which is also a pain).
Last edited on
Pages: 1234