Madthumbs gives development advice.. Forgets to mention a few things...

https://lemmy.world/post/49448859

  1. The most popular IDE (VS Code) runs on MacOS, Windows AND Linux. VS Code dwarfs other IDE's. Weird how VS Code wasn't mentioned in the list (as well as a lot of other cross platform software like Slack, Zoom, Firefox, Chrome, etc)...
  2. Most tools businesses use are moving to cloud, with a basic electron (or similar) frontend only. And Linux is used in 90% of the cloud infrastructure. The idea that you don't need Linux knowledge for services that will run on Linux servers, is a bit outrageous..
  3. In general, jobs aren't advertised as "Linux" or "windows" development. There is a general expectation for web / cloud developers however to be knowledgeable in Linux. In our business, there is a mix of all 3 OS's.
  4. Android Studio will run on Linux/MacOS and Windows for Android development.
  5. Xcode will NOT run on Windows, and VS Code will NOT run on MacOS. Developers who rely on both of these require mixed platforms. There is no single platform that is perfect
  6. Xcode is poorly rated by developers: https://apps.apple.com/gb/app/xcode/id497799835?mt=12&see-all=reviews&platform=mac . In practice, many developers only use Xcode at all for the building tools (its required). However, there are plenty of remote build services as an alternative, and particularly for large projects, build servers can be fairly common.
  7. Most companies don't need tools like solidworks. It's an engineering tool.. Just like most engineers don't need the tools I developed.
  8. A lot of developers (such as ourselves) use NodeJS which is portable. Even for our main server, bash scripting isn't used (we use SystemD for init scripts).
  9. Unreal does support Linux development: https://dev.epicgames.com/documentation/unreal-engine/linux-development-quickstart-for-unreal-engine . Particularly with the introduction of the Steamdeck, Steam Frame and Steam machine, we'll likely see a lot more linux development and testing
  10. Suspiciously, the list of software provided is similar to: https://old.reddit.com/r/linux/comments/1krtrbp/i_cant_recommend_linux_to_my_peers_because_of/
  11. Many Init systems? No.. Almost everyone uses SystemD now
  12. Many Packaging systems? Nope. At worst, use Flatpak (which is broadly supported, and common in enterprise distros). Otherwise, RPM / DEB covers almost everyone. It's worth noting, Windows has many different packaging systems and formats, like MSI and exe's (and nuget).
  13. Developers will confirm the dependency issue is not a REAL issue, but rather "theoretical". Flatpak has a good solution for this. The last option (even in windows), would be to static link libs.
  14. The filesystem DOESN'T matter. In fact, it matters less in Linux generally (as filesystems like FAT32 had MAJOR limitations)..
  15. Graphics stacks differing? What part of the Graphics stack specifically? Every major distro (including Enterprise ones like RHEL 10) has moved to Wayland entirely. If we're talking libraries, Linux supports Vulkan and OpenGL well.. The anomaly is actually MacOS, as they use their own proprietary Metal API. Even Desktop environments matter far less now because of the unification caused by Freedesktop standards.
  16. In general, developers tend to try to use toolkits which are portable between OS's. This has become increasingly important because of the division of IOS and Android. In practice though, a lot of developers almost avoid it entirely by just using cloud / web servers, and this reduces maintenance
  17. The claim that anyone is telling people to learn bash to make money is not a real conversation..

People should use the OS they prefer. However, for a lot of developers these days, it is valuable to have knowledge ranging between all 3 for different reasons. Desktop apps are slowly being replaced in a lot of cases by cloud apps too, and Linux knowledge can be valuable.

What do others think? Leave your thoughts (no, wrong opinion)

6 points · 3 comments · view on lemmy.world

3 Comments

slazer2au@lemmy.world · 4 pts · 26d (1 reply)

I would say he is arguing in bad faith, but that would require him to accept people with dissenting opinions to argue to.

To that end I shall call it an unhinged rant.

Would you agree @madthumbs@lemmy.world

waterSticksToMyBalls@lemmy.world · 4 pts · 25d

He doesn't argue, he just bans anyone who comments

TootSweet@lemmy.world · 2 pts · 25d

Most of the tools I'd ever want to use in the development sphere are written/managed in a Linux-first (or at least *nix-first) way and Windows/Darwin (even though Darwin is kinda sorta *nix, it's the red-headed stepchild of the *nix world) are second-class citizens.

For instance, I'm a fan of the Go programming language. Go supports "plugins" -- runtime-loadable libraries -- but they're conspicuously not supported on Windows. Apparently they're expected to be in a future release, but they used to be supported on Windows and then Windows support was ended because it couldn't be maintained because Windows is awful. A quotes from the ticket where they're resurrecting that feature: "it [isn't supported] because Windows notoriously has more friction in its design and is terribly designed at the system level." There's pushback against that quote from a Windows fanboy, but the Windows fanboy acknowledges that Windows support in Go is second-class at best. In which case if I want to write in Go, I ought to do so on something other than Windows. (Like Linux, for instance.)

Even Java whose slogan used to be "write once, run anywhere" seems pretty janky on Windows compared to Linux.

Of course, Windows more than any other OS is notorious for having made developers' lives harder in many ways. Filesystem path separators. (Because of them, you can't just do "path" + "/" + "to" + "/" + "file.txt". You have to do path.join("path", "to", "file.txt").) CRLF line endings. (God do I hate CRLF with a fiery passion.) A different way of doing language codes than anyone else. Not to mention embrace-and-extend like what they did to Java back in the day. And, I'm quite certain it's on purpose.

And, you're so right about cloud being all Linux. Some of my team where I work is on Windows, but every one of the Windows folks has several different systems for compatibility with Linux installed. WSL, Git Bash, Cygwin, Putty. Not to mention Docker Desktop has a Linux VM built in under the hood specifically for compatibility with 99% of everything that runs in Docker that anyone cares about. And when they use the wrong Linux compatibility thing, or use it in the wrong way, things break. They all seem to prefer to run things in Git Bash over WSL even though Git Bash is way jankier and causes more issues. I've lost track of how many times I've had to tell a developer on my team to switch from Git Bash to WSL or prepend a command with winpty (and even then qualify that with "YMMV" because sometimes even those don't work.)

Some folks where I work also use MacOS and they have certain weird issues as well. I just talked to one guy today who wasn't able to set up pulling/pushing from/to the corporate Git host with SSH keys and instead had to use some HTTP method different from what anyone else on the team is doing. MacOS has fewer issues than Windows, to be fair, but it's still a step removed from the "gold standard" (Linux). And the graphical system is super opinionated and locked down.