Why Linux is better for (most) developers!

preview_player
Показать описание


👏 SUPPORT THE CHANNEL:
Get access to a weekly podcast, vote on the next topics I cover, and get your name in the credits:

👕 GET TLE MERCH

🎙️ LINUX AND OPEN SOURCE NEWS PODCAST:

🏆 FOLLOW ME ELSEWHERE:

#Linux #code #programming

00:00 Intro
00:42 Sponsor: Get a free issue of Admin Magazine
01:43 Language support & access
03:05 Documentation
04:47 Web Development
05:41 Command Line Tools
07:17 All the IDEs you want
08:09 Linux is available to anyone
09:41 Flexibility
11:34 Limitations
12:52 Sponsor: Get a PC made to run Linux
13:51 Support the channel

Linux works with virtually every programming language. Whether you're working with PHP, Javascript, C or C++, C#, Ruby, Python, Java, you can write, and execute almost anything. The real advantage is how you can setup and install all you need to start working with any of these languages.

Linux distributions have package managers built-in, and these give you access to anything you need to write in these languages. You don't need to install a package manager yourself, or hunt for installers to download, and then for the extra libraries and modules you might need. You can install all of them in one fell swoop, either graphically, or with one single command line, which makes it way faster to get started than on any other operating system.

And this ease of access and installation means that it's also way easier to write documentation and guides to help other people collaborate on your project, and setting up their development environment so they can get started as fast as possible.

You could also just write a bash script, so anyone who starts working on the project can just run that script, and get setup automatically.

For web development, using Linux is also a no brainer. The vast majority of servers you website or webapp will run on in production is using a Linux distro.

When you're coding your website using Linux, the way you're setting up your environment, the way you interact with your system, they're all extremely similar to the OS the website or webapp will actually run on.

Next thing is the command line utilities. Out of the box, these are simply better on Linux than on Windows, or even on macOS, if you haven't installed something like homebrew and all the tools you want to use.

Linux also has built in support for SSH.

Now, this isn't necessarily an advantage of Linux over WIndows or macOS, but it's a solid point nonetheless: most IDEs you'd want to use are on Linux. You get access to all the big ones: VS Code, Android Studio, Eclipse, IntelliJ, Zend, PHStorm, all text editors you might like, the only big one missing might be XCode, which is just on macOS.

Linux also has very high availability. Most distributions are completely free of charge. Linux works beautifully in virtual machines, something that can't be said of Windows 11, which might require a trip to the registry to bypass the TPM checks and locks MS put in place, or of macOS, which doesn't just install in a VM.

Linux is also available through WSL, so you can still use bash, and a lot of Linux programs and tools, including graphical ones, on an OS you might be more familiar with, namely, Windows.

Linux offers choice. Whatever language you want to use, on whatever device, there's a distro optimized for that. And Linux is the only OS that lets you do that with your desktop experience as well. From the choice of desktop environment, to the customization available with themes, extensions, widgets, docks, panels, tiling window managers, and more, you WILL have the exact working environment you prefer, or you'll build one that suits you.

Linux also won't force you to update in the middle of your work, and it won't nag you with ads in its menu or default apps, something that can't be said of other operating systems. It also won't make your hardware obsolete by denying it access to the latest OS upgrade.
Рекомендации по теме
Комментарии
Автор

You forgot docker, which is widely used by developers. Docker runs natively on Linux, whereas it's virtualized or even emulated, thus slower, on others OS.

haddock
Автор

As a developer i totally agree with this statements. Only reason We use windows is that companies use pre-installed in pc systems 😂

dhanushprejipreji
Автор

Important to me: Unlike Windows, Linux is not fighting me. Its not forcing me into any cloud services, online accounts, what search engine or browser i use, where so store my files and what tools i prefer. Its also not changing the GUI behind my back or installs "Apps" I neither want nor need.

thetaleteller
Автор

Something to add is the fact that if you want to work on a specific framework, there are high chances that you can start without downloading the said framework because it is already there on your system as dependency for other programs. That is usually not the case for Windows and MacOS because apps are shipped as standalone (apps don't share dependencies more like an appimage for Linux)
Moreover compile time is smaller in comparison to other OS.

guillaumef
Автор

At the end of the day, most companies prefer giving you Macs of Windows PCs due to ease of applying restrictions (like denying you sudo/admin rights) and installing their spyware :(

ukrdima
Автор

Just slightly related but personally I think it's a very nice trend. Since Oracle decided to make some licensing changes for Java we receive a lot more deliveries from vendors with Open JDK based JREs.

ialrakis
Автор

I'll mention the compile speed advantage as well. When compiling software, you will usually spawn hundreds to thousands, possibly tens of thousands of processes during the full run. The Linux kernel is just much more efficient at spawning and managing processes or threads, IIRC that sometimes results in better game performance as well.

chlorobyte_projects
Автор

The only reason why people are stuck with windows is it's software support

krishnaSagar
Автор

Regular Visual Studio (not Code) is not available on Linux unfortunately, its a great IDE and really difficult to switch from since it has all the essential tools integrated in a single package. I personally dont use it anymore but that was something I really had struggles stepping away from

TimoSluis
Автор

2:55 While it's an advantage to get started, after a while you normally transition to language specific package managers because they have advantages over system package managers (e.g. it helps to avoid the "it works on my machine"-syndrome).

kuhluhOG
Автор

It's even easier than a script to share the same Linux development environment. With devcontainers you can describe the whole environment directly in your source repo, even with additional services like local database servers that may be convenient for development.

andreaszuber
Автор

Linux, like a lot of open source software, has been built by developers for themselves, which is why it's so good for developing. At the same time however this is also a downside since it means it mostly wasn't made with "normal" users in mind.

SciDiFuoco
Автор

Definitely one of the best advantages of developing on Linux is that many bleeding edge technologies are available first on Linux - recently I remember GraalVM and Docker for example. However I recently really fell in love with Powershell for setting up my dev environment and automating tasks.

floppa
Автор

It is nice of linux to include gcc & python. I did have issue compiling something for windows, from wsl & linux native. Had to use msys2. QT is a fine UI framework if that whats stopping migration.

syrefaen
Автор

A lot of good points - in addition I would perhaps add the number of tools and the ease of debugging, perhaps not even debugging but being able to have access to how the system is working /proc for example, or seeing code execute using something like radare (which I guess can be done on windows, but with paid for tools).

Also when you introduce someone to the range of Linux command line tools it provides a good example of just how much power there is in computers sed, awk, grep and many many others.

(Something I love on both Windows and Linux is when you show someone that scary black terminal, you get the blank stare, frightened the wrong command will erase the world....and then in 10 minutes they are piping commands together and they've forgotten where their mouse is.)

dannyshaw
Автор

Absolutely prefer Linux for development. I say this as a C++ dev with decades of experience (commercial and open source)

Its almost always easier to set up and maintain a dev environment for a particular project

bubbles
Автор

Actually one big IDE, that is not available on Linux, is Microsoft Visual Studio (not to be confused with the text editor, that is named Visual Studio Code).

scifino
Автор

I use it because POSIX is a remarkably stable AND RICH set of interfaces. Porting jdupes to Windows wasn't too hard thanks to MinGW but getting Unicode working was a horror show. I actually wrote a lot of porting helper stuff that's would eventually become a separate library called libjodycode. Things like converting the Windows epoch time to the UNIX epoch time, converting UTF-8 to UTF-16 which is what Windows NT kernels have used internally since NT was created, and so on. Porting to macOS is often just a matter of writing around missing or slightly different features or interfaces.

JodyBruchon
Автор

20+ years of development on Linux. Hope for 20 more :)

poglavicas
Автор

Thanks for the video. Well done. It's good to recognize Linux's strength in the area. By the way, I don't understand the numbers in the opening slide. Should they equal 100%?

Smittron