summaryrefslogtreecommitdiff
path: root/posts/why-linux-is-hard.adoc
blob: 8851b3845301be9b08e7bd87ef5efb2599beba83 (plain)
    1 Why Linux is Hard
    2 =================
    3 :author:  Aaron Ball
    4 :email:   nullspoon@oper.io
    5 
    6 
    7 I have had several conversations with people recently who frustratedly asked me
    8 the question, "Why is Linux so hard?". I have had this conversation enough that
    9 I think it is time for a post about it. Before we dive on in though, a quick
   10 disclaimer.
   11 
   12 While I prefer Linux to other OSes, I will try to avoid making quantitative
   13 statements about other OSes. I think they all work fine, though I disagree with
   14 them somewhat. I just prefer Linux. I also don't think anyone more or less
   15 intelligent for preferring one OS over another.
   16 
   17 Let's get started!
   18 
   19 . <<preconceptions, You already have preconceptions of how an OS should work>>
   20 . <<server-v-desktop, Server VS Desktop>>
   21 . <<not-enough-xp, You don't have enough experience>>
   22 . <<no-linux-to-bowels, People tend to go from no Linux, to the bowels of Linux>>
   23 . <<just-work, But an OS should just work>>
   24 . <<summary, Summary>>
   25 
   26 
   27 [[preconceptions]]
   28 You already have preconceptions of how an OS should work
   29 --------------------------------------------------------
   30 
   31 Firstly, let's talk about who talks to me about their Linux frustrations.
   32 
   33 * Regular Windows users
   34 * .Net developers using Windows
   35 * Firmware developers using Windows
   36 * Java developers using Windows
   37 * Security analysts using Windows
   38 * Regular MacOS users
   39 * Developers using MacOS
   40 
   41 You might notice a trend in that list. Each one of those people uses Windows or
   42 MacOS primarily. This brings me to my first point. If you have a preferred OS
   43 already, you also have preconceptions about how an OS should work. Those
   44 preconceptions line up with the way your preferred OS operates.
   45 
   46 If you live in the United States, consider how different Europe is. Their
   47 traffic signs are in different languages, speed limits are usually in
   48 kilometers per hour rather than miles per hour, the UK drives on the left and
   49 not the right, stoplights work slightly differently, they drive manual
   50 transmissions and the US drives automatic. All of this is so very different
   51 from the United States, yet traffic still flows relatively fine in both parts
   52 of the world.
   53 
   54 To bring this to operating systems, when you take a look at the filesystem
   55 looking for your personal files, you'll either look for **C:\Users\Me** or
   56 **/Users/me**. Linux keeps this at **/home/me**.
   57 
   58 Consider that in Windows, your settings are all in the binary registry. This
   59 has its pros and cons. Linux stores most of its configs in text files in
   60 **/etc/**. This also has its pros and cons. The Linux/POSIX developers just
   61 solved the problem in a different way. Incidentally, IBM's AIX has a hybrid
   62 text-based config file system and a binary registry, but you still don't
   63 interract with it like you do with the Windows registry. HP's HPUX does not,
   64 and is more like Linux. MacOS also stores its configs in text-based config
   65 files.
   66 
   67 Another great example is that MacOS uses the command key for hotkeys, and
   68 Windows and Linux use Ctrl. If you want to copy some text in Windows and Linux,
   69 you would use **Ctrl + v**. In MacOS you would use **command + v**.
   70 
   71 Every OS is different because they were developed by different people with
   72 different ideas on how to solve the problems at hand. This doesn't necessarily
   73 make an OS bad or more difficult than others just because it is different.
   74 
   75 
   76 [[server-v-desktop]]
   77 Server vs Desktop
   78 -----------------
   79 
   80 To be honest, I have rarely heard frustrations about the difficulties of Linux
   81 from someone trying to use a desktop Linux distro (like Ubuntu, Mint, or
   82 Manjaro). Those distros are designed for ease of use. Most of the time, I hear
   83 frustrations from someone who is trying to configure a Linux server.
   84 
   85 That said, a Windows desktop support professional is not the same thing as a
   86 Windows server administrator. The knowledge required for those two jobs is
   87 significantly different, and arguably the Windows server admin skillset
   88 requires much more time to learn than those required to be a desktop support
   89 person.
   90 
   91 You should not think that Linux as a server should be just as easy as Windows
   92 or MacOS as a desktop. The Linux desktop distros are just about as easy to use
   93 as Windows or MacOS, but a server requires much more knowledge to run than a
   94 desktop, regardless of which OS you are using.
   95 
   96 
   97 [[not-enough-xp]]
   98 You don't have enough experience
   99 --------------------------------
  100 
  101 Another reason you might have difficulty with Linux is because you don't have
  102 enough experience with it. This may seem like an obvious statement, but I would
  103 like to argue that an operating system is not meant to be easy. Sure, we try to
  104 make them as easy as we can, but if you consider how much your operating system
  105 does, you might begin to appreciate the difficulty of learning all the
  106 properties (especially the advanced properties) of it.
  107 
  108 Consider, that [depending on your age] you have likely been using your
  109 preferred operating system since childhood. During that time, you played,
  110 experimented, failed, experimented, etc. You did that through high school,
  111 college, and your adult life. Being conservative, I would suggest that amounts
  112 to about 10 years of experience with your OS of choice.
  113 
  114 How many years of experience do you have with Linux? If you ask anyone who has
  115 used Linux for 10 or more years, they probably won't say it is that hard,
  116 except maybe to say that every OS has a learning curve.
  117 
  118 Further, for many years, people have wondered why children learn languages
  119 faster than adults. My personal views on that aside, I think operating systems
  120 are no different. Linux is likely your second or third OS. Plus as an adult,
  121 you likely already have a full time job, personal life, schedule to keep, meals
  122 to cook, children to take care of, etc. You likely don't have the time to learn
  123 Linux to the level you know your preferred OS. You almost certainly don't have
  124 time to put 10 years in or to condense that time without sacrificing
  125 productivity somewhere else.
  126 
  127 
  128 [[no-linux-to-bowels]]
  129 People tend to go from no Linux, to the bowels of Linux
  130 -------------------------------------------------------
  131 
  132 Many of the people I have spoken with about why Linux is so difficult have
  133 little to no experience with Linux, but are trying to do very advanced things
  134 with it, usually out of necessity for their job. This explains why they think
  135 Linux is so hard. You didn't start using Windows by programming serial busses,
  136 doing block device forensics, or building and configuring web servers did you?
  137 
  138 No. You probably played solitaire. At the most complex, you probably worked on
  139 some documents or browsed the web. These things are very easy on desktop Linux
  140 distros as well, but that isn't where people tend to start with it for some
  141 reason. You can't jump in to some of the most complex parts of Linux and expect
  142 you knowledge of your preferred OS to work in the bowels of Linux. No complex
  143 tool works like that.
  144 
  145 
  146 [[just-work]]
  147 But an OS should just work
  148 --------------------------
  149 
  150 From a desktop perspective, I don't disagree.
  151 Admittedly, Linux has a relatively steep initial learning curve. Linux is
  152 definitely harder to learn at first, but is easier to learn the more advanced
  153 operations once you get past the initial hurdle. Conversely, Windows and MacOS
  154 are very easy to learn up front, but the more advanced operations are
  155 significantly more difficult. A lot of this has to do with assumed defaults
  156 that Linux prefers not to make but the other OSes do.
  157 
  158 Also, per the first point of this post regarding servers versus desktops,
  159 servers can't just work. By nature, they are complex, serve many different
  160 purposes, and require some relatively advanced knowledge to successfully build
  161 and configure.
  162 
  163 
  164 [[summary]]
  165 Summary
  166 -------
  167 
  168 Using an operating system in any advanced capacity is difficult unless you have
  169 already invested the time in learning how to do what you need. Unfortunately,
  170 companies often want to use Linux because of its cost (free), without first
  171 considering whether their workforce posesses the skillset necessary to
  172 administer it. I don't want to sound dismissive, but this situation is caused
  173 by poor decision making, not Linux.
  174 
  175 But moving forwards, consider that whatever the reason you need to learn the
  176 mystical black magic of Linux, is in fact not a problem, but an opportunity.
  177 Knowing just Linux opens up a very large portion of the job market to you.
  178 Knowing Linux **and** another OS further opens the job market. Plus, they say
  179 doing your routines in a different way is good for maintaining
  180 link:https://en.wikipedia.org/wiki/Neuroplasticity[neuroplasticity].  :)
  181 
  182 
  183 [role="datelastedit"]
  184 Last edited: {docdate} {doctime}

Generated by cgit