I see quite a lot of PHP developers using Windows operating system. And there’s nothing wrong with that. But if you look closer…
Ok, I’ll be honest – I’ve been there myself and I know the difference. Before buying my first Macbook and switching to Mac OS, I was a Windows user, using XAMPP to run local web-server. And it was OK, but…
One of the main goal for testing the software is that you should be testing in an environment as close to a live environment. And this is where it goes wrong.
What is XAMPP, or other alternatives, basically? They install all the software you need to code PHP and make it work on your machine. It’s Apache, MySQL and PHP itself. And it’s run on Windows environment, of course.
But if we want to move to live server, especially with projects on Laravel, it’s usually a dedicated server with SSH access and Linux operating system. Which raises possibility of “It works on my computer but doesn’t work on the server, OMG why” to a whole new level.
Oh, and did I mention that live server will likely have Nginx instead of Apache? And another argument – have you tried to play with subdomains instead of localhost/project folder-like URLs in your XAMPP? Good luck with that!
Not only that. The problem with Windows that it’s all based on, well, windows. I mean, graphical interface, drag’n’drop and mouse. Which is fine and awesome for a home user, but in development world you can do so much more faster with command line. And if you are not used to it, you will have problems deploying projects.
It was actually OK earlier with frameworks like CodeIgniter which didn’t need any kind of command line interface to make it work. Current framework leaders Laravel and Symfony heavily rely on thing like Composer, Artisan etc. So you won’t even be able to move on with just drag’n’dropping or copy-pasting files manually.
To be honest, you can actually use Windows command line (I prefer Git Bash then, actually), but again – it’s different from Linux environment and some things might work unexpectedly or even not work at all.
So, your options are to work locally on Linux, or buy a Mac which at least has a Terminal really close to Linux one. And yes, learn those commands, it’s not that difficult.
Ok, I hear you scream:
“But I don’t want to use Linux and don’t have money for Mac!”
I know, I know. Linux is not that friendly for home users or gamers, and Mac hardware is quite expensive (though if you compare to similar specifications Windows laptops, actually really close). But there is a way.
I present to you… Virtual Machines!
Now, whatever operating system you’re using, you can install Linux OS within your OS. And I will tell you more – it’s absolutely easy. With Laravel Homestead.
Actually, there are several things to be installed, but as a result – you will have not only Linux environment, but also all server software to run your web-projects there.
As I switched quite recently myself, I agree that there is some learning curve here, and some stuff to configure here and there, and something might not work out of the box, but hey – as a result, you will be one of the cool guys! I’m joking, of course, it’s not about being cool, it’s about being a professional developer – and Linux is a part of LAMP stack, whether you want it or not.
Final argument from Laravel world – have you ever watched Laracasts videos? Jeffrey Way uses Terminal for all of his lessons and it makes the result so simple that it’s hard to find an argument not to use it. Same for any video by Taylor Otwell, creator of Laravel himself. Have you ever seen them using Windows?