Why program on Linux?
Note: Been using Windows since Win 3.11, and Linux since ~ 2005. Not a programmer by trade,
but I do use my machine to code quite a bit when I get the time (mostly C/C++, PHP, Perl at
the moment). Current main distro is Arch Linux.
I am aware that some of you program on Linux, so I was just wondering why? What benefits does it offer over Windows?
I use Ubuntu for my HTPC but it just seems kind of unpolished to me and not as good as Windows 7.
The one main benefit I have come to love about GNU/Linux and other similar UNIX-like
operating systems is that they are inherently designed with tinkering and writing
software in mind. They are operating systems by developers for developers.
The thing that gets on my nerves the most about Windows is that while I don't
necessarily consider it to be a bad product it has so obviously been designed
with average Joe in mind that it's been dumbed down a lot and lots of choices
and options have either been removed completely or made extremely cumbersome
to achieve/set/change.
Now, that in and of itself is not necessarily a bad thing, and a completely
legitimate strategy (tbh I think it's a much more viable strategy for broad
marketing and getting computers to the masses), but it does make Windows and
its underlying philosophy less suited to my personal preferences and tastes.
The major example about this would be the extremely tight integration between
the operating system and the graphical shell (the overall Windows GUI) in Windows.
In Linux and similar operating systems the command line interface carries a much
greater importance than the GUI, and in fact you are not even required to run
a GUI.
And when you do, you have a plethora of different desktop environments and window
managers to choose from, and most of them can be quite extensively configured to
suit your individual tastes (personally, I usually prefer a tiling window manager
for work, for example).
While you do of course have the powershell in Windows, the fact that it's more
of an add-on to the GUI than the other way around clearly shows, and makes live
quite a bit more complicated for a CLI lover like myself.
Another thing which I much prefer in Linux than Windows is that configuring the O/S
and its components is much more transparent; usually it's achieved by editing pure
text files rather than ticking boxes in a dialog window. Of course, many prefer the
latter way of doing things, but personally I find it very convenient to be able to
edit a machine's configuration in a text editor on another machine and then configure
a system simply by copy-pasting a few text files onto it.
Anyway, as for programming itself, here's what I personally appreciate about coding
on Linux/UNIX-like systems:
- Since the system is very configurable and those configurations are very easily
portable, I can set up a machine exactly the way I like it and port that config
to other machines on which I'm doing work. This results in better work flow and
higher productivity.
- The inherent design principle that the system is supposed to be easily
tinkered with also adds to that flexibility.
- The open source culture makes acquiring and modifying existing code, whether
that be for satisfying personal curiosity or to actually achieve something
productive, easy and dependable.
- In the years I've been running both Windows 7 and Linux on our household
machines, I have found Linux to be more stable. I wouldn't consider Win 7
to be an unstable system (at least not for me), but I have had noticeably
more issues with it than with any of my Linux setups. Not that Linux is 100%
stable or completely free of other issues, of course. This is just a personal
observation from a very small test sample though.
- Centralized software repositories with signed packages. No downloading
software from different websites. It's all right there, verified and secure.
Definitely right with your main statement about Linux being entirely unpolished. It really is.
I'd say this very much depends on what aspect of the O/S you look at. Desktop
environments and integration with other devices is definitely easier on
Windows, but from what I've used myself, that has often been more of an issue
of vendors not properly supporting Linux rather than an inherent fault of Linux
itself (getting pictures off my Canon Eos 600D is quite a bit more convenient
in Win than in Linux, and don't get me started about scanners and printers...).
Same thing with office documents. The open document standards are quite mature
at this point, the problems I've seen in my personal use have almost exclusively
been related to Microsoft's proprietary document standards not being properly
translated/converted.
But for programming, I have found Linux to be much more polished and convenient
than Windows, at least for the languages in which I've written software. And the
fact that I encounter many fewer stability issues with my Linux machines than with
their Windows counterparts makes me think much more highly of its kernel than of
the Win kernel.
Overall I do agree that there are many small niggles in Linux that still need
to be fixed. But I wouldn't call the O/S unpolished in its entirety, just certain
parts of it.
However most compilers run well under linux, I mean it's open-source like the majority of software out there now so it encourages a lot of community development and support. The terminal (bash) is really powerful and so it's great to use for interacting with a compiler that doesn't tie you into Microsoft's versions of software like C++. Most compilers are also available as a GNU port (such as GCC) so you can often get the standard implementation of your language's compiler rather than a platform-specific version like you would find with Visual C++. This makes porting code from linux to windows easier than the reverse.
That's my reasoning anyway. There are a lot of things I've grown to enjoy using linux for revolving around programming. The free software that supports most aspects of work is a real bonus.
Indeed a very valid point. Vendor lock-in is one my my major pet-peeves when
it comes to using MS or other proprietary products. And the power of the
command line is really something I've come to appreciate.
Overall, it's maybe not so much about which O/S is inherently and objectively
superior in its entirety, but it depends a lot on your personal preferences
and what language you write software in. For somebody who's scared of the
command line, programming on Linux is probably not really something I'd
recommend, but then again, such a person maybe shouldn't be programming in the
first place. :lol:
EDIT: Ninja'd :lol:.
Spartan's opinions seem to follow a similar pattern though, I agree with his
post.
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 accountSign in
Already have an account? Sign in here.
Sign In Now