Disclaimer: This is my Setup and how I like to work. If you like to develop on Windows or OSX then this is totally fine and as long as it keeps you productive it is the best tool for you.
My problems with Windows
Windows 10 gets better with every update. With the new Terminal and WSL, it was a way more pleasant experience but it still had some flaws.
🐌 WSL(1) compared to a native Linux was at least for me 10x times slower. Even with WSL2 it was not much faster and working with docker and WSL was just a mess. I had to restart my machine after some hours of work because somewhere was a memory leak.
🙈 Currently, I'm working on a Laravel/PHP project and some PHP extension would not work with Windows. So I needed to run the backend in a VirtualBox and this would cause my ThinkPad T480 to bluescreen randomly.
💣 Also other development tools that only work on Unix system either needed a special setup or would not work at all with Windows. Sometimes they would work with WSL but for example symlinks would be broken or not work at all in WSL.
📮 One thing I could not get to work or sometimes it would work sometimes not is notifications in Windows. Randomly they would not show in the bottom right but when I would open the notification center I would see them. This happened mostly with notifications from browsers.
☎ The Windows Phone companion App was not working for me most of the time. When it did it would now show half of the notifications. I removed the App on my phone from every possible energy saving mod and all that stuff and It still would not work.
😵 The general flow of working did not feel right for me. It is maybe not a problem with Windows but just how my brain works. We are just not the best match. One example is when you press the key (No its not the Windows key just because it has the windows flag on it) and start to type the application you want to open, it would take ages to find anything and if it would find something it was the wrong thing. It was these small things that added up and made it not very pleasant to use.
🐧 Switching to Manjaro/Arch
First of all I'm not new to Linux. I was using Linux now for over 10 years. Back in the days when Ubuntu was actually good. Where you had to compile your Wifi drivers to make them work with Linux. Which by the way you don't have to do anymore. I was working on elementary OS at some point and even fixed the Ubuntu build system. I was installing Arch without any UI. One of my favourite distros was Archbang.
My workflow and my setup might not be the best setup for someone who has never used Linux. I have no problem with changing configuration files from the terminal. In a lot of cases I find it easier to do that then looking around in a UI. If you want to use Linux I would start with something easy to install like Ubuntu/Fedora/Mint/Manjaro. Something that has a UI to install your base system.
💻 Is hardware important?
Not as important as it was a few years ago. Now mostly everything is supported out of the box. Some vendor features may not work. I'm still disappointed in Lenovo and that the new fingerprint scanner is not working. Usually, Thinkpads are working out of the box with every Linux Distro. I have a T480 and I had to do 0 configurations regarding hardware. But you should do some research before buying or switching to Linux. Maybe your vendor is doing something strange or uses some strange hardware. It is also more common to see that Hardware vendors has hardware bugs which they solve in software. I don't like that trend at all.
🤔 Why did I go with Manjaro?
Manjaro is based on Arch Linux and it comes with all the goodies of arch. Just to name a few: The Arch wiki, Arch is a rolling release, The AUR and mostly vanilla packages. Manjaro on top has a UI to install your base system and I don't want to do that on my own because it was fun the first 10 times but at some point you just go with a graphical installer. That is the main reason I used Manjaro as my base. Usually, I would go with Antergos but sadly it is not developed anymore.
👣 Why do I use Gnome Shell?
It is the desktop that does most of the things I want out of the box.
Pressing and typing will search for Apps first and then maybe on the internet. +m opens the notifications panel. Where you have a calendar, weather and notifications. It has good extensions that I use and like. Gnome Tweaks lets me configure all the small things I miss by default. Like showing the minutes and hours in the top bar. It has a better Night Light feature where it removes the blue light from your screen. If you want to know about a deep dive into my setup. Comment down below and I can write about it more in detail!
🏗 Development setup?
I use Visual Studio Code as my main Editor/IDE. Besides that I have the following browsers installed: Firefox, Firefox Nightly, Chromium, Chrome, Brave and Gnome empathy. Besides that I use git, docker, npm, yarn and all the other standard thing that are needed for web development. I use the Gnome Terminal with bash and oh-my-bash. I use gcolor3 it is a color picker build for gnome. Flameshot for making screenshots. The rest like slack, teams, figma and other apps I just open in Firefox or Chrome. Why should I run them locally? Electron will just eat my RAM 🤣. Again if you have question please comment down below!
💭 Misc thoughts
So In general it just feels more like home to me. I still have a second laptop with Windows which is mostly used for gaming. Of course it is not the perfect setup. I had to manually fix some things and optimize them. This also means that the T480 feels faster and snappier because except chrome nothing is eating into the 16gb of Ram. GSConnect or KDEConnect is a replacement software for Windows Phone and it works so much better. I see all the notifications and I can reply in almost every one of them. It still has some small bugs but at least it works.
👋Say Hello! Instagram | Twitter | LinkedIn | Medium | Twitch | YouTube
Top comments (74)
Going out on a tangent here but..
I'm working on a raspberry pi home server at the moment .
It got me thinking, that given a Linux stack.
Maybe a raspberry would be a great developer companion.
It could do all the work, just mount a share from any client and code away in whatever environment you like.
There's probably a bunch of "what if's" to solve.
Like you would definitely need to setup the Pi to use a SSD of some sort
to get decent performance over the SD card.
I think RAM and docker would be too much for the PI
but I'm just guessing.
Works for my home server, but I have not stress-tested it tho. :)
I agree with the line "as long as it keeps you productive it is the best tool for you". My primary desktop at home is a Gentoo box and my work machine is Windows -- mainly because we still do some .net work that doesn't play nicely with Mono, and I'm hoping .net 5 (probably 6, considering the latest news) will fix that. But for now, my work machine is Windows because it lets me get stuff done -- even though the stuff that I do which doesn't need Windows (like the Vue/TS frontend for our site) builds and tests way faster on my older , 4-core home machine (about 7 years old: i7 3770k vs 6-core i7-8750 Windows laptop: mod) and I really prefer the entire environment I have there.
Your laptop and OS is just a tool like a hammer 🔨👍
the company I work for right now has the same problem with old .Dot stuff.
Yes in general building stuff is way faster on Linux at least from my experience.
Yeah, we have a few people using macs too, so I'm always trying to look for ways to be platform-agnostic, but also remember that our hardware and software are just tools to enable us to make stuff (:
Yeah I also have used OSX for like 2 years. :D
To be honest I would love not to care too much about the OS at all anymore. I just want it out of my way.
And for me that's Gnome Shell :D
My thoughts exactly. I'm not a fan of GNOME -- but my preferences should mean absolutely nothing on your machine (:
(I used to use GNOME 2, but I don't like the direction it went -- fortunately, on Linux, I can choose something else, so yay!)
you have so many options :D
At some point, I was using something like i3 :D
This gives me a reason to look at options for Linux more than I have before trying some. I too am looking at switching - though I'd keep my Mac, only because I still need it for Mac-specific stuff.
If you have an old laptop just try Linux on that :)
We have iPhones and Mac's because of Safari.
Since Safari handles a lot of modern stuff poorly or different we call it now the new IE :D
I actually have no laptops - only desktops, but the combination of distribution and hardware I chose is known to work. I located the hardware and am creating a USB boot disk as I type this.
Just try before you buy(in) is what i meant :D
I’ve completed the distribution selection process and prepared the computer it will be installed on. All I need now is that mouse I ordered from Amazon to arrive.
Good luck and have fun :)
I have a SSD with Windows 10 and one with a distro of PopOS. I keep Windows 10 because, although game support is getting much better with Linux, it's still not quite there for me. Love PopOs and would want it as my daily driver if I could
Yeah I have a Razer Blade 15 with windows only but I only use it for gaming :D
I want to try PopOs some day :D
PopOS is similar to Manjaro in that it has much better support for video cards built in.
Okay cool didnt know that. I thought its ubuntu based
It is, but they added support for both Nvidia and AMD graphic cards. I'm not sure if it's a 1 to 1 correlation on how well the support is vs Manjaro. I tried Manjaro for a bit, but felt more confident with PopOs in the end. So don't quote me on that. But I do know it has much more support than unbuntu.
Since I have a intel GPU in the t480 I'm using I don't need to do any extra magic.
But I think the razer blade which has both intel and Nvidia I would then go with popOS
I like how smoothly interface works with Pop. It really feels faster than anything I've tried (maybe with an exception of Deepin). However I am unable to compile on Debian derivative fingerprint scanner driver (github.com/rindeal/libfprint-vfs_p...) while on Manjaro those are readily available AUR packages.
Hence compared to Windows the only things that do not work under Manjaro are: hibernation (but that stopped working under Windows as well with BIOS update probably), freefall HDD protection and LED indicating mic status.
BTW for AMD Wani both Pop and Manjaro loaded by default the same AMDGPU version.
Yeah the fingerprint scanner on the t480 is also not working for me :/
EndeavourOS is a nice successor to Antergos for GUI arch installs too. I would recommend checking it out.
The only thing I miss is a few windows programs, and game support, but the latter is improving regularly with Proton.
Yeah proton is amazing from a development perspective.
I also hope that wine or some virtualization will be fast enough so you can run windows app without a too big performance hit on Linux
Brings back memories. I used to spend so much time hacking around Linux. I even have a spare x230 running arch, I barely have the time to use it though. Since osx being the primary setup for work, I have started to use it for personal dev tasks too. Apart from the hardware being overly priced as hell. Its a decent mix of usability and a unix like env. Anyways, good luck with the switch and enjoy.
Nice to hear :)
And yeah the x230 was a great laptop :D
I was usuing OSX for like 2 years. It is kind of okay :D but nothing special ;)
Thanks enjoying it now for over 2 weeks :D
Linux is great and I am also a Linux lover but the graphic tooling is not there yet and if you need to work with blender and affinity products(photoshop alternative and illustrator) than you will need to dual boot.
I will have to do that soon unfortunately.
I just wanted to add this for anyone that is a frontend dev or graphic designer.
Also as much as I like Inkscape the interface is not as clear and doesn't have a lot of tutorials like the other products.
Thanks for writing this article and your experience @michael "lampe"Lazarski
PS: Affinity was also asked to make their software compatible with Linux but they responded with a NO!.
Yes thats true.
I don't do much graphic stuff but yeah all the adobe stuff does not work in Linux and Wine or virtualization makes adobe products even slower when they already are.
We just changed to Figma which works in the browser so at least mockups can be done on Linux or in the browser.
I know a designer who prefers Gimp to Photoshop but I would say he is the exception to the rule.
In the long run, this will be solved by webapps but sadly not in the near future.
At least we have Figma and Blender now :)
I agree with you Figam rocks but blender might be a problem with OpenCL in my case doesn't work.
I always liked working with it by rendering on GPU.
Strange but last time I used blender it was in university which is almost 10 years ago.
But I know people who use blender on Linux and also as rendering machines with linux in the cloud
I guess it depends on each case. In the old days when cycles and blender 2.72 where famous these problems were not present. But they are now unfortunately.
The era of Vulkan and mesa made some changes and also the lack of support from AMD makes everything worse.
So in short Blender 2.8 doesn't recognize my video card no matter what I do. I also installed OpenCL.
So this is a good thing for everyone to keep in mind GPU might not work.
Thanks for the quick follow up.
Okay that sucks :/
I hope AMD will up there game with the new GPU's as they did with the new CPU's when it comes to open source if they really want to compete with Intel. Especially in the server market it is important to have good Linux support.
Have you connected your laptop to large size monitor ?
Manjaro drivers does not work , I have spent weeks on getting it to work. But with no success
I am using Manjaro 20 XFCE with a dual monitor setup, Lenovo T470 laptop and Dell 24" monitor. It worked out of the box although I had a slight challenge with closing the laptop lid. Solved it by editing a conf file. Manjaro KDE edition was flawless. I have not tested Gnome yet.
I'm right now moving so I have no monitors at home
but normally it worked out of the box.
The question is. Why you switch back to windows in the first place?
I changed companies and the Laptop I got had windows 10 preinstalled so I gave it a try
Oh, that is sad dude. Companies should not enforce dumb OS choices like these. Even tools like text editors should not be enforced.
It was not enforced by the company.
We have all OS'es and all kinds of setups.
It was just the notebook they gave me :D
Always though electron is better at memory management then browsers, because it should optimise it for specific app... Oh well. Guess will try going back to browsers. Probably will try moving everything to Safari for best performance. 😊 As well didn't knew oh-my-bash exists. Wonder if powerlevel10k supports it (should be faster then zsh).
Electron is basically chrome :D So yeah it eats a lot of RAM :D
powerline. It's not 100% the same but almost.
But you're using VS Code, that runs in electron.
Yeah I'm waiting for the browser version :D
I mean I try to run everything I can not in Electron.
If I can run it in the browser I run in in the browser
If not then I run electron app version.
Perhaps this is what you're looking for: theia-ide.org/
Also, microsoft codespaces, or GitHub codespaces (2 products that do the same thing almost)
Yeah I need to check them both but I'm skeptic that you can replicate the dev expierience 1 to 1 :D
I really enjoyed experimenting with Linux, but for work I’m too reliant on dotnet, VS code is good, but it’s not visual studio and it had issues debugging. I can’t afford the time to spend fixing it when there’s a deadline to hit so back to windows.
Will give it another go, as generally it was a much better experience (especially docker)
For .NET I would still use windows.
It's just to integrate into the Windows Eco System.
It comes back to usuing the right tools for the right job.
Also dual booting is a thing :)
Dotnet not .NET
It worked wonderfully (apart from the debugging issues).
I’m looking forward to retrying it once I’ve got some more time to dedicate to working through the niggles.
Okay I thought that DotNet and .NET are the same things?
But I never worked with either of them nor came to close to it :)
Dotnet is natively cross platform. It’s Microsoft’s way of keeping developers who have 20 years invested in c# on board in the new world order of Linux servers, docker containers and cloud services.
Okay thank you for the information.
I've used Windows most of "Desktop" life (about 15 consecutive years). Then I decided to give Linux a shot. It was better in many ways. But after a while it became obvious that was worse in other ways.
So after about 3 years of Linux, I realized that neither OS was ultimately better than the other. They both have their good parts and their ugly parts. (I won't get into details unless anybody is curious).
So I came to the conclusion that the best solution was actually a hybrid one (i.e. dual-boot).
Now I have the best of both worlds!
Or have 2 laptops as I do :D
T480 and a Razer Blade
But yeah dual boot is also an option ;)
Or that :D
I'm running Deepin DE V20 on "RebornOS" -- which is a fork of the now-defunct Antergos. It's by the guy who did most of the Deepin work for Antergos back in the day. Comes with a few useful bells and whistles.
That Deepin V20 was quite buggy initially, but a recent update seems to have sorted things out. Pretty spiffy. Makes one wonder why Gnome can't look as polished.
If you really like Gnome, it's available, along with a bunch of other desktops:
The RebornOS website litereally doesn't say what it is. After five minutes of poking through the "about" and "wiki" pages and so on, it doesn't say what it's based on!
Oh Cool I did not know that someone is working on a fork of antegros!
Totally agreed, Windows is doing a great job to unify the development in the Microsoft OS but the flaws makes you go back into native Linux.
I'm a full stack dev too, mainly doing PHP/Laravel and I was using Laragon at the beginning but the problem happens when I was trying to use some plugins and installs that only works on Unix (like Image Optimizers). Tried WSL and I like it a lot at the beginning but then the performance was bad, poorly Developer Experience, then I went full Ubuntu and since then 0 issues doing code in there and I love working in Linux (6 months ago).
HaHa sounds like you had almost the same experience as me :D
Have fun with Linux :)
Thanks, lets say that using WSL was my training before going full Linux 😎
HaHa yeah at least to understand the system a little bit :D
It is a good start :D
Also to understand server ;)
Mine is opposite:
I am windows user from beginning and tried linux many times (still i propose it in office) but back to windows 10 and i am very happy.
the only complaint about windows (10) is antimalware scanning which slows down system with CPU usage when running composer install, yarn etc.
otherthan that it has perfect setup, especially with laragon i don't need to waste much time and i use babun so i run mostly linux commands only on a windows pc comfortably.
WSL never impressed me and found many issues with it but overall, i would stick with windows only except for antimalware.
biggest issue with linux is permissions when a pc is shared between multiple users (not admins) in regards to /var/www/html folder, again related to composer install, yarn etc.
I think you don't need to use laravel in
/var/www/htmlsince this is a shared folder.
You should install and run all of this anyway in docker.
We are using
vesselwhere I just start some docker container.
since i work with beginners, i don't want to overwhelm them with docker (already they need to learn a bunch)
and i use /var/www/html because it is shared folder, multiple users use same pc with their own login but need to access same folders (to avoid cloning projects again and again) and with
/var/www/htmlthey don't need another webserver (like php artisan serve) also we work on frontend/html projects too