[HN Gopher] Why You Should Learn Linux (As a Developer)
       ___________________________________________________________________
        
       Why You Should Learn Linux (As a Developer)
        
       Author : pierocapelo
       Score  : 75 points
       Date   : 2024-08-31 18:16 UTC (4 hours ago)
        
 (HTM) web link (opiero.medium.com)
 (TXT) w3m dump (opiero.medium.com)
        
       | jmclnx wrote:
       | I have been saying this at work for years, of course I am ignored
       | :)
        
         | Contusion3532 wrote:
         | More job opportunities and pay for us then :)
        
           | dgfitz wrote:
           | What I wouldn't give to find a remote, linux-heavy
           | engineering job right now.
        
             | necovek wrote:
             | Canonical?
        
               | dgfitz wrote:
               | Unfortunately I've read more than I wish I had about
               | interviewing at canonical. Not interested. Wish them the
               | best.
        
         | cuanim wrote:
         | How do you define "learning linux" though? Just learning vim
         | and general unix tools?
        
           | dgfitz wrote:
           | I think that would be a great foray, yes. If you understand
           | how to poke around the filesystem (cd, ls), manipulate the
           | filesystem (cp, mv, rm, mkdir), how to search (find, grep),
           | and how to edit and save a file (vi/vim {yes there are a
           | plethora of linux text editors, vi is ubiquitous, which is
           | the only reason I learned it}) you're in really great shape.
           | 
           | The best part is, you can learn this subset of tools in a
           | day, a week at worst.
        
       | einpoklum wrote:
       | > Why should you develop on Linux in a world where the
       | environment for developing on Windows is constantly improving?
       | 
       | 1. Because to the extent it's improving - it is through
       | supporting more cross-platform software and Linux/Unix-like
       | behavior?
       | 
       | 2. Because why even use Windows in the first place, unless
       | someone forced you to?
       | 
       | 3. The BSDs are nice too.
        
       | dundarious wrote:
       | There's no good fast and interactive debugger on Linux, similar
       | to RemedyBG or raddebugger. gf2 is just OK and is by far the best
       | I've used.
        
         | arghwhat wrote:
         | What's wrong with the gdb and lldb integration in all the
         | various IDE's? The various screenshots of RemedyBG doesn't seem
         | to suggest anything special.
        
           | dundarious wrote:
           | The watch windows are vastly inferior in the kinds of
           | formatted information they can very quickly show, as the
           | program is stepped through. Take a look at "Twenty Minutes of
           | Reasons to Use the RemedyBG Debugger":
           | https://www.youtube.com/watch?v=r9eQth4Q5jg
           | 
           | Haven't tried the Qt or KDE or Jetbrains environments in
           | about 3 years, but last I did, they were much like Visual
           | Studio -- slow, odd latency in displaying formatted values as
           | you step through, lack of easy ways to format data in a human
           | readable way in the watch window.
           | 
           | To be clear, when I say "slow", I mean the GUI is slow, not
           | the underlying debugger, which I presume is plenty fast.
        
         | Quarrel wrote:
         | > There's no good fast and interactive debugger on Linux,
         | similar to
         | 
         | relatively new Windows debuggers.
         | 
         | raddebugger had its first release in Jan 2024.
         | 
         | RemedyBG is new to me, but then, so does its starting post in
         | 2019 stating that it is looking to replace the VS debugger:
         | 
         | https://news.ycombinator.com/item?id=19337527
         | 
         | I was doing a fair bit of windows debugging then, but not a lot
         | since, and it looks a great option now having watched some vids
         | in the last 10 minutes.
         | 
         | So, thanks for the update!
        
       | greenthrow wrote:
       | It depends what you want to do. If you want to develop native
       | desktop applications or video games you're probably better off
       | doing that on Windows as the addressable market is so much
       | larger.
       | 
       | Web development on Linux makes a lot of sense because it will
       | likely be hosted on Linux, as the article says. But it's not
       | really that big of a deal typically what OS your
       | Python/Node/PHP/Ruby/etc web application is running on as you
       | typically aren't doing much OS specific things. In fact, I would
       | encourage people to keep their web applications as OS agnostic as
       | possible.
        
         | necovek wrote:
         | It's easier said than done (keep apps OS-agnostic).
         | 
         | I had to explain how AWS lambdas really run in a Linux VM when
         | a software engineer was perplexed how /tmp files were sometimes
         | persisted and sometimes weren't (and had to teach them about
         | TMPDIR, tempfile module in Python etc).
         | 
         | Cold-starts were also easier to explain to anyone familiar with
         | Linux, though that's more general.
         | 
         | Similarly, Docker permission issues during deployments strike
         | entirely differently if you are used to developing on a Mac
         | (where all file ownership gets translated to UID 0).
        
       | StrLght wrote:
       | Article makes exactly zero arguments why switching to Linux would
       | be beneficial to any developer. Instead, it argues that if
       | something breaks -- then it's your own fault, makes vague claims
       | such as "Most of the Internet runs on Linux", and says that Linux
       | is harder to "learn" than Windows.
       | 
       | If I was trying to makes sense out of this as someone who doesn't
       | use Linux daily, I'd be heavily confused and discouraged by such
       | writing.
        
         | sim7c00 wrote:
         | i encourage a lot of people to learn linux but not for
         | programming specifically. some things are easier on windows,
         | others linux i guess. if u need to crack open WSL i'd say learn
         | linux. the cmdline is nice also to learn automations and
         | scripting, but powershell is also cool to learn. i'd say it
         | really depends on what you want to do. bsd might be even a sane
         | choice. mac i havent the moneys for :D
        
           | xnyan wrote:
           | >i encourage a lot of people to learn linux but not for
           | programming specifically
           | 
           | Outside of native phone and desktop applications, 90%+ of the
           | time your code is going to run on some form of linux. Maybe
           | you can argue a developer who only does windows desktop
           | applications would not benefit from linux knowledge, however
           | I'd argue they would benefit most of all lol.
        
             | bpfrh wrote:
             | I'm not sure I agree, I think you forget web developers.
             | 
             | I think today the only reason to need to know linux is
             | actually backend dev and embedd in the sense of small pcs
             | with custom uis.
             | 
             | With the amount SaaS today most of the backend services can
             | be bough, so that also lowers the amount of developers who
             | need to know linux.
        
         | jasoneckert wrote:
         | I think the main argument the author is making about why you
         | should learn Linux is to better understand how your software is
         | hosted in the cloud on Linux servers.
         | 
         | This is also why the Mobile Web Developer program at my college
         | teaches Linux and Linux Web Hosting (including Apache and
         | Wordpress) early on. We find this also helps students feel
         | comfortable working within the macOS Terminal during all later
         | courses, as well as with git commands.
        
           | romanovcode wrote:
           | > better understand how your software is hosted in the cloud
           | on Linux servers
           | 
           | Since the days of Apache/PHP I don't think people (need to)
           | host their dev work on proper servers at their local
           | computers. So this argument is kind of invalid unless you
           | _want_ to set-up your dev machine as some kind of dummy
           | server.
        
             | worik wrote:
             | > Since the days of Apache/PHP I don't think people (need
             | to) host their dev work on proper servers at their local
             | computers. So this argument is kind of invalid unless you
             | want to set-up your dev machine as some kind of dummy
             | server.
             | 
             | True, and false
             | 
             | I do host the cloud software I work on on a local machine
             | (running Debian-12) because it is easy. I do not need to, I
             | want to and it makes me more productive
             | 
             | I also spend a lot of time in a terminal on a remote
             | machine. I have to be careful to not get the two confused
             | (I use different background colours for terminals on
             | different machines.)
             | 
             | I have done the "remote terminal on cloud software" on
             | Windows - a difficult and painful experience. Tools I take
             | for granted, and get gratis, on Linux are not there on the
             | Windows servers.
             | 
             | What ever flaws the article has it is not out of date
        
         | bobim wrote:
         | Not even mentioning the #1 reason: freedom
        
           | fuzztester wrote:
           | #2: hackability
        
             | rahen wrote:
             | This is becoming less and less the case, unless you use a
             | more DIY-oriented distribution such as Void.
             | 
             | Most systemd distributions have a lot of technical merit (I
             | like Fedora Silverblue), but they are increasingly becoming
             | monolithic, so hackability isn't one of their strengths.
             | 
             | I remember a time when Linux was pure anarchy, with loosely
             | coupled independent subsystems that could easily be
             | experimented with and replaced. Now, most distributions are
             | much closer to macOS: they "just work", but you're not
             | supposed to mess with them. So long for hackability.
        
               | worik wrote:
               | > Most systemd distributions have a lot of technical ...
               | but they are increasingly becoming monolithic,
               | 
               | I am not a fan of Systemd for irrelevant reasons. But the
               | "monolithic" nature of systems has to do with the
               | interdependence of the parts not the glue.
               | 
               | > I remember a time when Linux was pure anarchy, with
               | loosely coupled independent subsystems
               | 
               | Sounds like my Linux box I have for fun. We are still
               | making systems like that, but for business purposes we
               | were always making solid and staid systems.
               | 
               | Very little has changed, only the words we use to say it
               | (and the raw power of the underlying hardware of course!)
        
             | bananamerica wrote:
             | In many relevant ways, Windows is more easily hackable than
             | Linux. That is in no small part due to Autohotkey, but also
             | many other tools made by independent programmers.
             | 
             | Autohotkey is vastly superior to anything available on
             | Linux, where one must string together several arcane tools
             | to achieve similar scripting effects. Autohotkey serves for
             | everything, it is extreme reliable and predictable. I know
             | someone will shout "there's Autokey on Linux! And
             | pyautogui!". Rest assured, I know these tools. They're not
             | nearly as reliable and comprehensive as Autohotkey is on
             | Windows.
        
               | nequo wrote:
               | Is AutoHotkey like Emacs keybindings and hooks but for
               | the whole OS?
        
               | bananamerica wrote:
               | I would most certainly not compare Autohotkey to Emacs in
               | that way, as Emacs, powerful as it is, is not really
               | meant to be the same as Autohotkey. However, Autohotkey
               | can do pretty much anything you can think of in terms of
               | GUI OS level local automation (for cli, I'd probably use
               | WSL).
               | 
               | On Linux, I may sometimes have to glue xmodmap + xcape +
               | xbindkeys + xdotool + wmctrl + whatever-else in a bash
               | script that will probably require reading multiple man
               | pages and multiple iterations to get right. Autohotkey
               | would only require accessing a single source of solid
               | documentation, as it can all be done in a single
               | Autohotkey script that doesn't rely on any other tool.
               | 
               | More often than not GPT will give you the entire code
               | that you need on the first or second response. But it
               | only knows Autohotkey version 1.
        
           | throwawaysleep wrote:
           | A vastly overrated reason unless you are regularly in
           | conflict with corporate entities/the government.
        
             | tejtm wrote:
             | If non-corporeal entities have priorities that are
             | incongruent with a living individual preferences the
             | default should be the actual person's choice.
             | 
             | How is this even a question?
             | 
             | (edit: to not put words in anyone else's mouth)
        
             | worik wrote:
             | > A vastly overrated reason unless you are regularly in
             | conflict with corporate entities/the government.
             | 
             | Software freedom is a very important business property.
             | 
             | Closed source software can be OK while it is supported, and
             | the licencing agreements not too onerous. But when those
             | conditions no longer apply, very expensive retooling
             | ensues. I have seen this often
             | 
             | Free software does not suffer those fates.
             | 
             | This is a very important business reason for Free Software
        
             | bobim wrote:
             | Nope, example: the knowledge I build using OpenRadioss is
             | mine until I die, while the knowledge I build using Abaqus
             | is locked behind a 200k paywall.
        
         | tamimio wrote:
         | > that Linux is harder to "learn" than Windows.
         | 
         | This is completely my personal opinion, but I find Linux much
         | easier to navigate and set things up in than Windows. I barely
         | used macOS, so I can't judge that. In Linux, pretty much
         | everything can be done in the terminal, and it's easy to find
         | workarounds. If you "screw something up" badly--with no
         | snapshots/backup--you can reinstall the whole system without
         | touching the home partition, assuming it's on a separate one.
         | And we are not even talking about nixOS or the likes ones.
        
         | smartmic wrote:
         | I disagree, the author gives the main reason:
         | 
         | > You must understand why you damaged your system and why the
         | fix you applied fixed it.
         | 
         | Only GNU/Linux (in fact any free software) gives you the
         | possibility to fully understand your system. It allows you to
         | drill down to any level required. Thriving for such
         | understanding is a trait of hackers, but having the freedom to
         | do so is beneficial for any software developer- at whom the
         | article was targeted.
        
           | sva_ wrote:
           | > It allows you to drill down to any level required
           | 
           | Not really, sadly. There's a bunch of binary blobs for the
           | CPU as well as other opaque firmwares in the hardware.
        
             | nequo wrote:
             | Coreboot helps with it but not for all hardware.
             | 
             | https://en.wikipedia.org/wiki/Coreboot
        
       | mnau wrote:
       | > you will break your Linux many times.... and I had no idea how
       | to fix it.
       | 
       | Yeah, that's exactly what killed it for me. ALSA produced weird
       | sounds... After a long time of trying various things, the
       | solution was "emerge -e @world" (recompile everything).
       | 
       | I will gladly endorse the "learn the root cause why it doesn't
       | work" motto from the article. That will serve everyone well,
       | though be judicial when to apply it. Some things are not worth
       | it.
       | 
       | > Those fields are C, Unix, and Computer Networking.
       | 
       | Learning C is a dead end, soon to be nearly illegal dead end
       | (memory unsafe languages are not conductive to secure software
       | and laws on sw security are being passed).
       | 
       | I took a lot from my time with Linux, bash is great (to me
       | preferable to powershell, though idea to pass object is quite
       | appealling), but now mostly in form of WSL.
       | 
       | I have encountered a lot of weird bugs and I am at the point of
       | my life, when I don't want to spend on a long time studying
       | obscure configuration file with multitude of options (at least
       | they have often explanations and examples... sound of progress).
       | 
       | I will take my happy abstracted layer (linux docker mostly
       | -\\_(tsu)_/-).
        
         | nextos wrote:
         | Try NixOS. It's the most important advance for Linux in many
         | years. It hides a lot of complexity.
         | 
         | Most systems can be configured with a file that is just a
         | sequence of key-value pairs. For example, enabling PulseAudio
         | is simply: hardware.pulseaudio.enable = true;
         | 
         | Things are rock solid. You can try new things and it's trivial
         | to rollback to previous configurations.
        
         | sweeter wrote:
         | I mean... yea, you are literally using Gentoo bro, what would
         | you expect?
        
         | manx wrote:
         | You might enjoy using https://www.nushell.sh/
        
         | dgfitz wrote:
         | > Learning C is a dead end
         | 
         | Surely you're not serious. Learning C taught me more about how
         | a computer works than anything up to that point, asm as well.
         | 
         | Also, C23 will be released soon, this year I believe. I don't
         | think it'll be going anywhere.
         | 
         | Also also, I would really like to hear a quant weigh in on your
         | opinion. :)
        
       | koinedad wrote:
       | Every time I've tried Linux it's always been a little clunky. I
       | think it's come a long way, but recently I loaded Ubuntu on to my
       | old 2013 MacBook Pro and it works pretty well.
       | 
       | What's driving me crazy is I have all these shortcuts for Mac and
       | I'm trying to figure out the equivalent in Linux. One stupid
       | thing is paste doesn't work in the terminal... seriously? Why
       | can't I ctrl-v after ctrl-c from web browser?
       | 
       | The little cursor/word navigation shortcuts are driving me crazy
       | as well like jump word to the right or left, highlight entire
       | line, jump to end of line, etc.
       | 
       | I should probably try the Framework laptop or some other hardware
       | Linux ready though.
        
         | QuaternionsBhop wrote:
         | Backwards terminal compatibility, hooray! Ctrl+C inputs an
         | ascii command code. To copy/paste, you can use
         | Ctrl+Shift+C/Ctrl+Shift+V.
        
         | treyd wrote:
         | > One stupid thing is paste doesn't work in the terminal...
         | seriously? Why can't I ctrl-v after ctrl-c from web browser?
         | 
         | It's because copying from a terminal is ctrl+shift+C because
         | ctrl+C sends an interrupt to the program running in the
         | terminal. So paste is ctrl+shift+V to be consistent with that.
        
         | mog_dev wrote:
         | ctrl+shift+v to paste into terminal ctrl+shift+c to copy from
         | terminal
        
         | jccooper wrote:
         | Terminal has historical bindings to Ctrl-C and Ctrl-V that
         | aren't copy/paste. (Ctrl-C is especially common, being
         | "interrupt" or "quit".)
         | 
         | Use Ctrl-Shift-C and Ctrl-Shift-V for copy/paste.
        
           | koinedad wrote:
           | Ironically I use ctrl-c all the time on my Mac, so this makes
           | sense -- will try it out!
        
           | Wytwwww wrote:
           | > Terminal has historical bindings
           | 
           | Keeping that as a default is silly though. Intentionally
           | having poor UX that's unnecessarily confusing to new users
           | because of "reasons" is why Linux can never become a credible
           | consumer OS.
        
             | BanazirGalbasi wrote:
             | Keeping ctrl-C as the binding for copy is silly though.
             | Intentionally having poor UX that's unnecessarily confusing
             | to power users because of "reasons" is why Windows can
             | never become a credible developer OS.
        
               | Wytwwww wrote:
               | Having different shortcuts for the same operation in
               | different applications is just wrong.
               | 
               | > Windows can never become a credible developer OS.
               | 
               | For better or for worse it has been one for decades.
               | 
               | > Keeping ctrl-C as the binding for copy is silly though
               | 
               | Why? Also sure whatever, it can be something else as long
               | as it is CONSISTENT.
               | 
               | > confusing to power users
               | 
               | Well.. Good thing is that "power users" know how to
               | change default shortcuts and can use a different "power
               | user" profile.
        
               | pram wrote:
               | The shortcut is actually the same everywhere: Command+C
               | 
               | You obviously just switched it to mimic Windows, which is
               | why it's "inconsistent"
        
               | Wytwwww wrote:
               | You mean "Super/Meta + C" is the default for copy on
               | Linux making the whole argument redundant? I don't think
               | that's a default shortcut on Gnome or KDE....
        
             | jltsiren wrote:
             | The poor UX comes from the browser using Windows shortcuts
             | instead of something that's consistent with the rest of the
             | environment.
             | 
             | Compare this to macOS, where copy and paste are
             | consistently Cmd+C and Cmd+V. More generally, keyboard
             | shortcuts tend to use Cmd. That leaves key combinations
             | with Ctrl to their traditional uses in the terminal. Which
             | is pretty convenient, as the combinations won't randomly
             | change when you ssh to a remote Linux system.
        
           | timeon wrote:
           | > (Ctrl-C is especially common, being "interrupt" or "quit".)
           | 
           | That is same for terminal in macOS. Mac uses cmd-C/V for
           | copy/paste in gui, so it is not in conflict with ctrl in
           | terminal. Which I find nice, but ctrl+shift is sufficient as
           | well.
        
         | bpfrh wrote:
         | shift+ctrl+c is for copying from terminal, shift+ctrl+v for
         | inserting, if you still need to know.
         | 
         | The reason is that linux and the terminal is old and ctrl+c
         | sends a signal(SIG_INTERRUPT) which is used to cancel the
         | current process.
         | 
         | That means for better or worse you can't change these shortcuts
         | without inconveniencing existing users and that means these
         | shortcuts will stay.
         | 
         | That aside I don't think cmd and powershell on windows allow
         | str+c and str+v?
        
         | necovek wrote:
         | I've tried MacOS on recent Macs and, boy, it sucks.
         | Inconsistent shortcuts, buggy keyboard switchers (randomly it
         | shows an unlock screen without my quertz layout and I mess up
         | my password), and window management issues all around.
         | 
         | Audio devices randomly hit buffer overflows or something in
         | Google Meet, it randomly mutes and unmutes devices, etc.
         | 
         | Linux ain't perfect either (and really, it was much better ~10
         | years ago), but it's still so much better than either Windows
         | or MacOS.
         | 
         | Or maybe, just _maybe_ , I am used to it having used it since
         | 90s, and they all have their kludges?
        
           | Wytwwww wrote:
           | > Inconsistent shortcuts
           | 
           | Can it be more inconsistent than copy-paste working
           | differently in the terminal and all other apps, though? Of
           | course it's trivial to change and Linux is more or less fully
           | configurable (e.g. NumLock being broken on KDE for a few
           | years)
        
             | 3np wrote:
             | Ctrl+Insert / Shift+Insert should work consistently.
        
         | Wytwwww wrote:
         | > Why can't I ctrl-v after ctrl-c from web browser?
         | 
         | Same reasons numlock being off is still the default and a bunch
         | of other silly defaults (that are of course trivial to change
         | but are still annoying): masochism combined with the need to
         | prove something.
        
         | NayamAmarshe wrote:
         | > One stupid thing is paste doesn't work in the terminal...
         | seriously? Why can't I ctrl-v after ctrl-c from web browser?
         | 
         | Going from Mac to Linux, I felt that the shortcuts in Mac were
         | worse.
         | 
         | On Linux, you don't have to reach for a totally different key
         | to copy/paste from the terminal. You just add Shift to the Ctrl
         | +V and Ctrl+ C. On Mac, it's a totally different button to exit
         | CLI programs and do other things.
         | 
         | All other shortcuts are also a bit better on Linux. Ctrl + J
         | for downloads in Chromium. Ctrl+ H for history. Ctrl + Tab to
         | move through tabs. Ctrl + T for new tab. On Mac, they're very
         | inconsistent.
        
           | wiseowise wrote:
           | > Going from Mac to Linux, I felt that the shortcuts in Mac
           | were worse.
           | 
           | They're so much better on Mac, that it's not even a
           | comparison. Mac shortcuts feel like they're designed by
           | someone who actually types on a keyboard. Using COMMAND, that
           | is naturally mapped by a thumb, is so much better than
           | reaching for CTRL. And don't even get me started on idiotic
           | Windows machines having CTRL as left most button that
           | obliterates your pinky and instantly requires remapping some
           | other key, like CAPSLOCK.
           | 
           | > All other shortcuts are also a bit better on Linux. Ctrl +
           | J for downloads in Chromium. Ctrl+ H for history. Ctrl + Tab
           | to move through tabs. Ctrl + T for new tab. On Mac, they're
           | very inconsistent.
           | 
           | Mac shortcuts are literally consistent across all
           | applications, unlike Linux.
        
             | NayamAmarshe wrote:
             | I just gave you real examples of how they're so
             | inconsistent and difficult on Mac.
             | 
             | Linux uses Ctrl for most things, you don't even need to
             | lift the finger up away from Ctrl for most shortcuts. Super
             | key is only used for OS shortcuts. Linux is way more
             | consistent in its application.
             | 
             | On Mac, the distinction between Ctrl, Option and Cmd is
             | arbitrary.
        
         | 3np wrote:
         | > seriously? Why can't I ctrl-v after ctrl-c from web browser?
         | 
         | Because ctrl+c / ctrl+v are common terminal key bindings. You
         | can't on macOS, either.
         | 
         | Ctrl+Insert / Shift+Insert should work consistently across
         | apps.
        
       | pphysch wrote:
       | I don't see this as an argument for Linux as much as an argument
       | for being fluent in shell/CLI.
        
         | philwelch wrote:
         | As you become fluent in shell/CLI, you will naturally gravitate
         | towards Linux anyway, at least if you want those skills to be
         | usefully transferable.
        
       | koinedad wrote:
       | I also don't really think it's worth it, kind of like saying you
       | should learn Vim.
       | 
       | I think you show know the basics, terminal, docker related
       | things, file structure, helpful commands if you actually use it
       | for software development.
        
         | sweeter wrote:
         | if you are anything besides maybe a strictly frontend web-dev,
         | you should learn Linux (and likely already have)
         | 
         | These skills translate to embedded systems, the inner workings
         | of BSD based systems (playstation, nintendo, Mac) and obviously
         | anything Linux based (linux and android), which is pretty much
         | everything.
         | 
         | There is probably a handful of jobs where you could avoid it,
         | but for the majority, it is a useful skill.
        
           | phendrenad2 wrote:
           | I disagree. First of all, probably 90% of developer jobs fall
           | outside of the categories you mention (embedded and frontend
           | development). Most of those roles don't involve knowing the
           | difference between /shin and /bin lol
        
             | baq wrote:
             | If you don't deploy software to Linux, fine.
             | 
             | If you do and you say things like that, that's willful
             | ignorance; this is also fine if you don't want to be
             | promoted or hired by the best teams.
        
               | phendrenad2 wrote:
               | If you think I'm wrong, you can make your case without
               | the weird "you'll never get anywhere in life, kid" tone.
        
               | baq wrote:
               | I never said that and I also don't feel like trying to
               | convince anyone to be curious about how their software
               | actually works.
               | 
               | I stand by what I actually said: it's fine if you don't
               | care about those things. I wouldn't hire you if you said
               | that on my interview.
        
             | sweeter wrote:
             | My point was that these skills translate to the BSD's, mac,
             | the cloud, android, desktop linux, etc... not to say that
             | only two categories exist. I think even if you do frontend
             | you would benefit from learning linux, but it was one of
             | the larger examples of people who could eek by, by skipping
             | it. It's also not that hard to do and brings a lot of
             | benefits.
        
       | le-mark wrote:
       | Imo the best reason to learn/use Linux is because proprietary
       | operating systems will eventually disappear, sooner the better
       | imo.
        
         | Wytwwww wrote:
         | Why? I don't see any signs of that happening. The only real
         | major success stories for Linux in the consumer space Android
         | and Chrome OS are effectively (of course not technically)
         | proprietary(ish).
        
           | xtrgz wrote:
           | Steamdeck
        
             | Wytwwww wrote:
             | Still too small.
             | 
             | Also it's hardly a general purpose device, Linux is only
             | there to run Steam.
        
               | dgfitz wrote:
               | If Linux is there, and it can run steam, the implications
               | of other things it can run are... basically anything any
               | other linux box can run, no?
        
               | Wytwwww wrote:
               | Sure but most users are not interacting directly with the
               | "Linux" part (and probably they don't have much interest
               | in that anyway).
               | 
               | IMHO Linux is mostly an implementation detail for the
               | Steam Deck/OS. So sure we can put it in more or less the
               | same category as Chrome OS and Android. It's just there
               | to run a proprietary layer/interface.
        
             | ThrowawayR2 wrote:
             | The Steam Deck's sole purpose is to emulate Windows APIs to
             | run Windows games. It's not a win for Linux, it's an
             | admission that Linux's only value is as a way to avoid
             | paying the Windows tax.
             | 
             | We've heard grandiose claims that proprietary operating
             | systems are going to go away for 25 years now. We will be
             | hearing the same grandiose claims that proprietary
             | operating systems are going to go away someday for the next
             | 25 years as well.
        
             | greenthrow wrote:
             | I own a Steamdeck. It is thoroughly mediocre.
        
           | mixmastamyk wrote:
           | I've read here twice recently that Windows Server is "dead."
           | Will leave that argument to them.
           | 
           | Certainly noticeable that there's less investment in Windows
           | and less ability to charge for a proprietary OS. That leads
           | to enshittification, which is having a long term significant
           | negative effect.
        
             | Wytwwww wrote:
             | > Windows Server is "dead.
             | 
             | Perhaps. But these are entirely different segments. OSX
             | server has been dead for many years now (it was hardly even
             | a thing to begin with) yet the OS is doing just fine.
        
         | layer8 wrote:
         | Hopefully we'll have alternative nonproprietary operating
         | systems too then. A monoculture is never good.
        
         | squarefoot wrote:
         | They won't disappear, but for sure the corporations behind them
         | need to sustain huge costs that the FOSS community will never
         | see, and we're starting to see some signs: Linux is free and
         | shows no ads or collects users data; Windows costs money, yet
         | it shows ads and collects users data. One would expect the
         | opposite, and I'm glad that it's not the case.
        
         | greenthrow wrote:
         | 2025 will surely be the year of Linux on the Desktop!
         | 
         | (No it won't.)
        
       | daemonk wrote:
       | Practically, learn linux if you'll actually use it to its full
       | potential. Most webdev work where you just need to plumb together
       | components don't.
       | 
       | For personal development and satisfaction, it's always fulfilling
       | to learn something new.
        
       | wkirby wrote:
       | Sure, you ought to know how Linux works if you deploy software to
       | Linux. But you ought to use the OS that makes you a happy,
       | productive developer.
        
         | worik wrote:
         | > But you ought to use the OS that makes you a happy,
         | productive developer.
         | 
         | Exactly. Which is why Linux.
        
       | sweeter wrote:
       | > Why should you develop on Linux in a world where the
       | environment for developing on Windows is constantly improving?
       | 
       | Is it? Is it though? I've used both extensively, and I have a Mac
       | M1... and by far Linux is the best for development, Mac is
       | second, and windows is dragging farrrrr behind both.
        
         | baq wrote:
         | Mac is so far behind it isn't even close. WSL2 for most people
         | is perfectly fine and is 100% Linux. macOS docker support is
         | just bad in comparison.
         | 
         | The sad part about all of this is that Mac hardware is on
         | another level and you can't buy anything like it for other
         | oses.
        
           | Uncouple4063 wrote:
           | I'd be curious to hear what is bad about macOS docker support
           | as compared to WSL2.
        
             | baq wrote:
             | It's slow, volume support is worth calling out separately
             | as extremely slow and the whole thing is... not exactly
             | unstable, but unexpectedly brittle. I had to resort to
             | really obscure commands and clean up files in weird
             | locations when the desktop app broke on multiple occasions.
             | 
             | Now the really truly bad part is that most of it won't ever
             | be fixed because of how docker needs to run on a VM (I'll
             | happily and vocally admit I was wrong if Apple releases a
             | mac subsystem for linux.) I don't care about the desktop
             | app, I'm perfectly fine with running docker from the
             | command line, hence why WSL2 makes so much more sense for
             | me.
        
           | sweeter wrote:
           | WSL is fine as a user and can be really helpful... but one
           | thing that I've noticed is that a lot of Windows devs use
           | that as a shortcut and will target applications at WSL, which
           | usually don't work on actual Linux whatsoever. They only work
           | on WSL. A part of that is their fault, a part of that is WSL,
           | but it sucks either way.
           | 
           | Most AI projects are like this because Python is especially
           | horrific to work with package wise. I've also noticed this
           | phenomenon with Windows Docker. Idk what it is exactly, but
           | the Dockerfiles these guys write work on Windows Docker, but
           | fail miserably on Linux Docker. Its like "how is this even
           | possible?"
           | 
           | So its nice for Windows people, but not nice for literally
           | everyone else.
        
           | wiseowise wrote:
           | So far behind how?
        
           | tkiolp4 wrote:
           | I run dozens of linux VMs on my Mac without a sweat. I run
           | docker if needed in such VMs.
           | 
           | Nowadays there's no disadvantage in using Macs (silicon ones)
           | I would say.
        
         | tom_ wrote:
         | Depends what you do! I've never found anything quite as good as
         | Visual Studio for C/C++ coding and debugging. I can (and
         | have...) got by with Xcode on macOS and CLion on Linux, but
         | they're just not quite as good. (I did a stint doing Go with
         | Visual Studio Code - I suspect the same would apply to using
         | Visual Studio Code for C++, too.)
         | 
         | The Visual Studio text editor isn't amazing, but it's good
         | enough that I can put up with it (and I can always load a file
         | into Emacs when I need to do something specific), and the code
         | browsing and code completion typically works well out of the
         | box. The main draw is the debugger, which is decent, and, being
         | integrated, the debugging UI gets to reuse the reasonable text
         | editing UI for looking at and navigating source code. The
         | debugging panels are all independent, can be docked anywhere in
         | the window (or left floating), and arranged into tab groups as
         | the situation demands - a big improvement over most other
         | debuggers I've used, which have a bad habit of providing a
         | single debug state panel and/or not letting you lay things out
         | as you see fit.
         | 
         | (Once you leave Visual Studio, the Windows experience isn't
         | always ideal, but you have options, according to personal
         | taste. I have Emacs, Python, git, and the usual GNU tools (git
         | comes with a good set) - and for the stuff I do, that's enough
         | to make the experience pretty consistent whichever OS I'm
         | using.)
        
       | codazoda wrote:
       | Who wants to learn Linux? I'd be happy to teach it if there's a
       | need. I'm happy to answer any random questions about it. My email
       | address is in my profile.
        
         | deely3 wrote:
         | I have some expirience with Linux, but not so much as I want. I
         | want to install Linux on a old laptop, so is there a way to
         | quickly restore a system to some previous point in case of
         | issues?
        
           | bogwog wrote:
           | Immutable distros like Fedora Silverblue, Kinoite, etc don't
           | let you modify the base system at all, and always let you
           | roll back in case an update broke something. They're probably
           | the most reliable Linux systems available today.
        
             | manx wrote:
             | Same for NixOS
        
           | codazoda wrote:
           | I might like punishment, but I don't mind a completely fresh
           | install every once in a while.
           | 
           | The only way to not go insane is to keep notes about what you
           | like to change, why, and how. That way you can get up and
           | running with a fresh system quickly. No need for snapshots
           | and the like.
           | 
           | Some people say that I like to do things the hard way,
           | however.
        
       | Barrin92 wrote:
       | The reason why you should learn Linux, or more broadly Unix is
       | because if you're going to take software development seriously as
       | a profession for 40+ years of your life you should have an actual
       | well grounded understanding of how computing works. It's like
       | asking, should you learn how to read sheet music if you want to
       | become a musician, or should I learn Hanzi if I want to learn
       | Chinese.
       | 
       | Technically you can get away with not learning these things if
       | you wanted to do the bare minimum but if you're gonna be even
       | remotely serious about doing something as your craft just learn
       | the things that underpin what you do. Learning how Unix systems
       | work isn't just learning about a product, you're going to learn
       | about file system paradigms, input/output, kernels, networking,
       | address spaces and all the basics of CS that are everywhere.
        
       | malux85 wrote:
       | If anyone is new to Linux this is quite a good introduction I
       | have used with windows sysadmins who want to learn:
       | 
       | https://linuxjourney.com/
        
       | deepsquirrelnet wrote:
       | I realize that this is by far not the norm, but I spend nearly
       | all of my time on a computer between a browser and a terminal. In
       | the past, I've had such a hard time trying to figure out how to
       | use windows that I've nearly quit jobs over it.
       | 
       | I hated the wsl experience and had some network issues with it
       | that I couldn't resolve, making it nearly unusable. I ended up
       | finding m2 in conda, and that was for me, the best compromise. If
       | you're looking to dabble in Linux command line apps, that'd be my
       | recommendation.
        
       | tamimio wrote:
       | Honestly, it depends on what kind of developer you are. If you
       | are doing mostly web development, I don't think you will need
       | Linux specifically; Windows or macOS will be just fine. However,
       | if you are doing embedded systems, robotics, etc., then learning
       | it is a must. Sometimes when new engineers join, I tell them to
       | learn Linux. Some start learning it while the majority just
       | ignore it, only to find out a few months later that the
       | embedded/SBC is running Linux and now they have to!
        
         | marcosdumay wrote:
         | > If you are doing mostly web development, I don't think you
         | will need Linux specifically
         | 
         | That leads to the nightmare that is Windows servers running
         | custom code.
         | 
         | Nope, if you are doing web development, you should learn Linux
         | too. You are excused if you are doing Windows desktop software,
         | or working on one of those proprietary platforms that only run
         | on Windows. But even on the second case, you should learn Linux
         | so you can look for alternatives, as they are a very degrading
         | experience.
        
       | CalRobert wrote:
       | I switched from windows 7 to Ubuntu and never looked back.
       | Bizarrely I find desktop Linux to be closer to the (very good)
       | windows 7 experience than modern windows is. I detest the
       | nagginess and ads in windows now. Not to mention trying to force
       | Microsoft accounts to use your own damn computer. Meanwhile Apple
       | is slightly better but wants to wall the garden on Mac, scaring
       | people away from using software that apple didn't approve.
        
       | Garlef wrote:
       | The success of Linux is a testament to how horrible operating
       | systems must have been before it.
        
       | eichi wrote:
       | We'd better learn Linux system interface for most of back-end,
       | infra or even front-end trouble shooting. But you don't need to
       | learn about complex shell scripting or internal level. Also,
       | knowing how Linux abstract communication to the machine is
       | beneficial.
        
         | baq wrote:
         | There are people who have no idea how to use sed and will
         | insist you need spark or hadoop for a few gigabytes of data.
         | 
         | 'Complex shell scripting' as in 'putting together a pipeline
         | with sed and awk and maybe jq' will save you time and money on
         | both Windows and Mac... if you let it.
        
       | NayamAmarshe wrote:
       | If I were hiring, I'd give special preference to Mac and Linux
       | users.
       | 
       | Not because you can't learn Linux on Windows but because using
       | Linux is usually a sign that the person is not afraid of a little
       | discomfort, not afraid to learn more about the computer they use
       | and willing to accept change and even willing to try new things.
       | 
       | Linux represents a different mindset than Windows and for me,
       | it's very easy to tell who loves what he does and who doesn't,
       | who loves a challenge and who doesn't, who can get stuff done in
       | any situation and who doesn't. All because I used to be a Windows
       | user and I can easily compare the mindset that went into
       | justifying sticking to a difficult OS.
        
         | clircle wrote:
         | Thank goodness you aren't hiring, since you apparently believe
         | that you can judge a person's abilities based on OS preference.
         | God help your org if they decide to grant you more
         | responsibility.
        
       | wiseowise wrote:
       | > Can you see my point here? If you do not learn Linux, you will
       | keep hitting a wall on your skill development because Linux is
       | everywhere.
       | 
       | No, I don't. Bash is not limited to Linux.
       | 
       | > But if you use the right approach for when things are broken,
       | it will pay off, In a relatively short time, you will get better,
       | your developing speed will grow and you will have better usage of
       | many tools you use daily as a software developer.
       | 
       | You know how do you get better as a developer? By actually
       | _developing_ stuff instead of cosplaying as a Unix graybeard.
        
       | sz4kerto wrote:
       | "But what you must know is that WSL has a lot of problems when
       | compared to a full Linux OS. Because WSL is basically a virtual
       | machine of Linux running on Windows, it will be a lot slower and
       | memory-consuming"
       | 
       | Wow, this is just so extremely wrong.
        
       | LunicLynx wrote:
       | I would love to. For me the main issue was that things are
       | unnecessary cryptic.
       | 
       | Take vim for example, what a hostile tool for a newbie. Reboot
       | machine much?
       | 
       | No offense towards vim, like any tool it's great when you know
       | it.
       | 
       | Is this the whole sentiment for Linux, it's great when you know
       | it? Does it help you to get to know it? No!
       | 
       | Yeah, yeah, so much documentation etc. etc.
       | 
       | But if you don't have a freaking folder under / saying programs
       | then you failed. Different for all the distros? You failed hard.
       | 
       | So if anyone makes this stuff more logical, beginner friendly, I
       | will be among the first to jump ship. Until then I stay with
       | windows and see linux as a means to run containers.
        
         | wiseowise wrote:
         | > Take vim for example, what a hostile tool for a newbie.
         | Reboot machine much?
         | 
         | Literally says "type :q<Enter> to exit" on a boot screen.
        
       | BigParm wrote:
       | You should use Linux because it has the best tooling. That's why
       | you never see a Windows Docker container.
        
       | rmbyrro wrote:
       | > Yes, Linux breaks, but only if you do not know what you are
       | doing
       | 
       | Depends on the distro. I used to break Arch all the time. It's
       | fun and teaches a lot, but at some point it gets on the way of
       | productivity. It's a choice.
       | 
       | If you're on Windows and want to try Linux, start with Ubuntu.
       | You can do your daily business for years without breaking
       | anything.
        
       | unchar1 wrote:
       | The WSL section doesn't really make sense
       | 
       | >But what you must know is that WSL has a lot of problems when
       | compared to a full Linux OS. Some packages will not be up to date
       | and sometimes will not be as functional as a Linux distro.
       | 
       | AFAIK it's just a regular linux distro (in a VM), so I'm not sure
       | why it would have different packages?
        
       ___________________________________________________________________
       (page generated 2024-08-31 23:01 UTC)