[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)