Answer the question
In order to leave comments, you need to log in
What are the advantages of *nix, linux over windows (for a web developer)?
everyone says "Get off Windows", "if you have Windows, then it's tough", "If you are under Windows - my condolences."
Are there any better answers to this question? A system unit with Windows now with the following characteristics: i7 / 16gb / 256ssd
Answer the question
In order to leave comments, you need to log in
1. you get an environment close or identical to production.
2. you get a distinct console / came out of the box.
3. you get rid of a lot of questions like "everything works locally, but uploaded it to the server and got an ass" (or vice versa).
4. you have a better understanding of how everything works on the server.
with the current development of technology and the performance of iron, there is no need to break yourself.
you can try it in a virtual machine (docker / vagrant) / dual boot and decide for yourself whether it's worth it or not.
I don't have any problems.
Unless your specific software used for your tasks works fine with Windows.
For example, in my case Ansible and Docker are used, which is not supported on Windows. You have to use Vagrant. It's convenient enough. But it still eats resources.
And so - even Vim feels good on Windows . Native. Not cygwin.
Microsoft understands this too.
And now they have built the Ubuntu Linux subsystem into Windows 10 . This is not virtualization, but a full-fledged subsystem.
And many things, like the same fonts, work better on Windows than on Linux.
They may say that it is better to use the same environment for development as for production.
But the fact is that even if you are sitting on Ubuntu Desktop, then your environment is seriously different from the environment of the FreeBSD, CentOS, Debian, Ubutntu Server server. And for a full-fledged CI, all the same, smart guys categorically recommend even using Docker on Linux for full-fledged emulation.
But Docker can also be used on Windows. True, it starts up there a little longer.
Where exactly to develop, where it is more convenient for you - this is your own business. A matter of your preference. There are no objective reasons in our time, when Docker, Vagrant and virtual machines exist, when a bunch of applications originally made for *nix run in native under Windows - there is no reason to build yourself. In addition to curiosity - how does it live there on other systems.
Those who troll you have another reason: they like to show themselves smarter. How - after all, Linux can be configured by hand.
Yeah of course.
Or use ready-made desktop distributions. No wonder Ubuntu is so popular.
Or if you have mastered ArchLinux, then you have built yourself a completely miserable environment according to ready-made manuals.
Toreally picking up the skills to manually configure Linux - it takes a huge amount of ease and time than your friends who troll you are unlikely to have.
In fact, 99% of those who talk about the flexibility of Linux - further than installing Apache and MySQL from packages - do not know how to do anything themselves. In fact, working in the same desktop environment configured by other people. But don't you know how to do the same under Windows?
It doesn't matter if you're running Ubuntu or Windows.
Best practices advise using a toolkit that is completely isolated and independent of the developer's workplace - virtual machines, Vagrant, Docker, separate physical servers.
By using Docker even under Windows, you'll get even more of a reproducibility advantage than those around you who tell you to just switch to Linux. If on weaker hardware this would be significant (Docker under Linux starts faster), then on yours it is not important what to work on.
Generally there is no difference.
It is necessary to work in the system in which it is convenient.
Participated in the development of a large web service. All development was done on Windows. There were no problems. Everything works great to this day.
I would add the following to the list of Linux advantages:
- in Linux, UTF-8 is used everywhere by default, and in Windows - CP1251
- in Linux, files with extensions 1.JPG and 1.jpg will "point" to different files, for Windows it is the same file (when working with Git in Windows, this sometimes bothers you - you see a JPG, you want to rename it to jpg, but nevermind).
- according to my personal observations, the file system in Linux is faster than in Windows (Ext4 vs. NTFS; the same hard drive).
- well, and as a bonus: in Linux, you can't "quickly gamble for several hours while the project is compiling" - but these are already trifles.
In the end, you need to choose the system where it is convenient to work - now any software can be run on any OS.
Just change. Windows has already begun to degenerate - the pursuit of the number of installations of win10 is proof of this. We ourselves are actively implementing Linux in the company, on security issues - it is still much more reliable, at a much lower price (after looking at how much win8 costs). There is of course instability, inconsistency of updates.
Most Linux developers are Russians, secondly, the army is actively switching to Linux, since it is possible to check the source code.
The most important argument: purely so as not to feed Microsoft - because in win10 you will have to pay for each mouse click.
What are the advantages of *nix, linux over windows
Virtualization on modern processors works quickly, there is no need to work in the same system as on the server. Vagrant/Virtualbox allow you to develop for the desired system, while remaining in your usual. You need to work in a system that allows you to effectively perform the required tasks, without being distracted by its maintenance, updates, repairs, etc.
IMHO, existing operating systems in this regard can be arranged in this order:
1. MacOS
2. Windows
3. Linux
З.Ы . I myself use Linux on the desktop, but only because I really don’t like user tracking and I take the privacy of my data seriously. Otherwise, I would have used MacOS for a long time.
I use ubuntu, python, pycharm, bash, pyenv, docker, postgres. Very satisfied, very quickly you can juggle the environment. On Windows, it would take me much more time: either click on the shit, or tweak its castrated terminal, or put bash and a normal terminal, and this again opens the software site, click to the download button. In Ubuntu, I type one team and sit smoking bamboo, stretching my arms, legs, back. In the meantime, everything is ready - with a half kick and 2 sittings.
Or maybe it's just a matter of taste and I just don't know Windu very well. But shouldn't there be more difficulty with a paid product than with a free one? Now if I try to do something for work on Windows, then it hurts me very, very much.
It is unlikely that those who tell you so understand the real essence of the problem. It is unlikely that those who tell you this are themselves using the identity of the environment for development and operation. This is only important for web developers, since servers in production usually run on Linux. For others, it doesn't matter. As a rule, for non-web developers, there are good platforms under Windows and MacOS X. But you can debug on Ubuntu and not be able to put into production without jambs. Learn Docker, Vagrant. They will help to make you an identical environment both during development and during operation. Then both on Windows and on MacOS X you will be able to work with identical software without any problems and bypass your "advisers". A small detail - the server must also use Docker.
1. In stability and performance (of course, this is not about Windows!)
2. In the ability to build a "local stand" (Apache+PHP+MySQL)/platform, similar to the one that is probably used on 80% of hosting servers (the remaining 20% - it's Nginx (Apache alternative) )
...
Enough?
I write in th. Under Windows mod, the code is executed in almost a second, and under Debian in 50ms. The difference is on the face (why such a big gap I xs)
If you use a container engine (see Docker), then there is not much difference. At work I sit in ubuntu, at home windows 7. All projects (both work and home are exclusively in the docker), so there are no problems with anything.
Yes, while there are some problems with docker itself under Windows, but according to the manuals, everything is configured in 1-2 hours and no longer bothers.
I use Sublime as an IDE, so again there are no problems on windows / ubuntu.
By the way, I completely forgot: the obvious plus of Windows is that Photoshop / Illustrator is not under a virtual machine.
Well, look. websites run on linux. you install the same server for yourself, for example, ubuntu 20.04 and it has a package manager in which you can conveniently install the programs you need. Some software still needs to be downloaded from the official site, for example nodejs, and then it’s not difficult to set it up, and since the console is rich in linux, it will be convenient for you to use it. For example, you need to archive a directory. In windows, you need to go to this directory using the file manager, select the directory and click pack, but you will most likely pack it into this winrar, which is by no means *nix way. And in linux you write
tar zcvf html_00.tar.gz html/
and that's it. Then a teacher to use vim, with the help of it you can generally master a text editor and make changes to configs or even write code in vim. Here is an example, look.
sudo apt install apache2 php php-mbstring mysql-server
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question