While it is different, Linux is no more difficult than any other OS. I'll disagree with that; it also depends on what you're purpose for using it is:
- (general) the commandline UI is utterly unintuitive and the help-system is terrible (man).
- (web-hosting) the file-ownership / file-permissions are incredibly brittle and fragile.
- (development) dependance on archaic and/or inefficient and/or fragile tools [make, ./configure, automake] drag development down.
- (development) dependance on text1 as the lingua franca for programming is very deeply ingrained; even moreso than other OSes due to Linux's love afair with piping between utils an scripting.
- (general) the perceptions that it is more secure than other systems (e.g. windows) can/does lead some to rather insecure practices.
For general-use the command-line for VMS is supposed to be vastly superior, as it is for security (I don't have a VAX, Alpha, or Itanium; so I haven't really been able to test).
For development, Windows is slightly better — but its incredibly hampered by the requirements of some SW packages for POSIX (unix-like environment) depending on the aforementioned
./configure,
make et al.
1 — Text is not a bad form for reading, but it is terrible for storage and computation of programs as it essentially surrenders all syntactic and semantic knowledge (which then have to be recomputed), and they can be accessed/modified by anyone/anything at any time, meaning that a perfectly compilable file may not be compilable in any subsequent compiling (and this is unknowable, again forcing the recalculation [compilation] previously mentioned).
There is a difference between "difficulty" and "my opinion of usefulness/superiority/etc".
That is why I chose that word.
Text is not a bad form for reading, but it is terrible for storage and computation of programs as it essentially surrenders all syntactic and semantic knowledge (which then have to be recomputed), and they can be accessed/modified by anyone/anything at any time, meaning that a perfectly compilable file may not be compilable in any subsequent compiling (and this is unknowable, again forcing the recalculation [compilation] previously mentioned). Actually, for reading, text is inferior to even basic HTML markup.
However, for writing computer code, text is fine (as long as you have a decent editor). From time to time, someone comes along with an idea for a graphical programming language, where you create algorithms visually, but these never seem to amount to anything. To be sure, there are fancy IDEs, such as Xcode, which are geared to producing GUI apps. These can help out by generating boiler-plate code, maintaining the project build script, and doing certain refactorings. But, ultimately, you are still left dealing with textual source code, be it Objective C, Java, C#, whatever.
Text is also quite robust for data storage and transmission, e.g., CSV, XML, YAML, JSON. However, binary formats will outperform text, at the cost of some increase in fragility.