My current netbook which I use in sch is also Arch Linux only. I even have to read a guide to on how to install it. =.=
That's very good for you. At least you are willing to dive into the terminal world
Windows users are damn fortunate to be able to only click the next button.
I have my early computing experience using DOS and Windows, and true enough for most stuffs Windows make it mostly click and drag, which is good. But from a developer standpoint, you are more fortunate because the route you have taken would bring you much deeper foundation and knowledge than any Windows only developer will. You will be exposed to another side of software development where it is filled with a strong public community and tons of utilities and tools at your disposal.
I feel that it's sad for CS students to graduate without even using the terminal, or playing around with ur system. It's like when u actually have to DIY, all the textbooks and stuff u learn are not going to save u.
Of course, CS doesn't teach you how to put together a system, it's mostly a hobbyist skill set. It's very valuable indeed. You are right too, not just CS, for any software developer, if you don't know terminal, you are just still at the tip of the iceberg.
Using common sense, before graphical interface is popularize by PC, the cream of the crop in the IT industry are working on terminal. They are perfected daily use cases of development and best practices using terminals. In these terminal environments, tools and utilities are built to excel. Where in the daily operations of a development is doing mundane operations at times, the kind of automation and precision that a developer can get from skilful handling of terminal is invaluable.
On the developer point, why Mac? Visual Studios is not that bad la. But of course my experience is far lesser than urs. So please pardon me for any stupid or wrong stuff that I said.
There is nothing wrong with Visual Studio, but it is a monster. XCode also isn't better in this aspect. It's basically how Microsoft Windows is designed and its user interfaces and design concept that doesn't make it a development heaven.
I thought you never ask why Mac is better. Mac is lousy before OS X. When I was still a Microsoft Windows fanatic, someone long ago told me Mac is better. I debated with him, however, when I look back together, I gathered the kind of answers one nowadays heard about why stick with Windows is some of the following
- I have use it for years, I'm comfortable with it.
- I have some software only running in Windows.
- I need to play games and there are more titles in Windows, or better in Windows.
- My school or office is using Windows, the environment is not suitable to use Mac.
While some of these reasons are valid, but as a software developer, all these reasons are not good enough to not use Mac. I have being using Mac OS X for 10+ years, so if you can address me as an advance mac os x user. So why Mac ?
- It is a beautifully designed machine. I seek for perfection in development at times, and if you call Apple products badly design, you probably can't find another vendor that does better. My opinion of course.
- It has a powerful unix operating system at your disposal.
- It has all the basic utilities found in a unix system that allow a veteran developer to exercise all the skill sets working in terminal environment, like bash, vim, emacs, awk, sed, perl, php.... (you name it). If you work in a Linux environment for years, you will quickly appreciate the kind of power you get working between utilities riding on the powerful unix shell. In windows, you basically need to find an application just to get work done and yet not necessarily portable to another application. In linux, you integrate and glue things up easily using ruby, python, perl or other expressive scripting language, working on the same level as other common utilities like sort, uniq, cat, and so forth.
- Mac has package managers like hebrew and macports with repositories supported by a strong public community. Need a ruby, erlang, or ffmpeg, or any software normally found in Linux environment ? Do a "sudo port install ..."
- Mac has a sufficiently good user interface and user experience desktop when you just want to point and click to get work done.
- Using Parallels, VMware Fusion or Virtual Box, nothing is stopping you from having one or multiple Windows environments running within Mac OS X to get your other applications that only works in Windows working. I'm a Parallels user for a long time, the kind of integration you get between Mac and Windows guest OS is so seamless that it is like having 2 OS running side by side within the same machine. It's not that Windows doesn't have virtualization environment, VMWare also run in Windows, but it pales when compared to the kind of integration that Parallels offers between Mac and Windows.
If you are using multiple Apple products, like I do, obviously using iPad and Mini, iPhone, MBP, you will appreciate the seamless integration between all devices. Before Windows 8, integration doesn't exist. When Windows 8 finally comes, it sucks real big time. I got myself a license of Windows 8, and not decided to use, and go back to Windows 7 and XP on my guest VM. If you ask me for my opinion of Windows 8 and it's RT future, I have one word for them "MESSY"
That's being said, I didn't abandon Windows, I'm still waiting for Microsoft to clean up their mess, where my main platform is Mac, and getting my job done day in day out with leisure and precision.
I know you mentioned about Linux, why not use a Linux desktop or laptop. Give you one fantastic use case. The last time I reformatted my Mac OS X is when it's Leopard. Before that, I always love to start from fresh each time Apple release a new OS. After Leopard, I upgraded to Snow Leopard, Lion, and now Mountain Lion. These are 3 major OS upgrade mind you, try doing it in Linux, I guarantee you break something. If you are lucky, you still can boot into single user, or maybe just the graphic drive screw up. If you are unlucky, you reinstall everything. It's only recently that a couple of distribution turn to rolling distribution.
If you are like me, using my Mac for work and home, the last thing you want is to reinstall your OS just because of an upgrade. And which is the backup and recovery solution that is as seamless as Time Machine ? One phrase commonly found in unix environment, "Don't fix it if it ain't broken". The way I read this statement, if it's production environment, you be caution and don't anyhow change the environment alas you break your rice bowl. For any other purposes, you don't change because you are just asking for trouble. lolx. Linux is robust when it's working fine when you tested everything and they gel properly. If not, when something broke list API changes between the libraries or utilities, it's so hard to detect them. The fact that it is contributed by the public community can sometimes be quite a hazard, so when we choose which utilities to work, we are often quite careful if it's an enterprise solution.
One of the most common with Linux system on laptop is X just don't work properly for some laptops when going video output. It's a common thing nowadays when you are going for presentation. Getting Nvidia and ATI to open source their driver is like asking them to die. Linus have so much issue with Nvidia folks where he basically give them a middle finger, which you can read from this article at
http://www.techspot.com/news/49025-...ves-them-the-middle-finger-during-speech.html
Graphical portion is something Linux fall short in, the X server is basically a wrong model for physical desktop. it makes all the sense as a server-client network model in virtual desktop concept, but it bloat the system a lot and create unnecessary latency when both server and client exist in the same system. Microsoft Windows UI is very responsive, much faster in my opinion than even Mac OS X due to the kind of tight integration it has. It's so tight that for Windows Server Core, you still need a GUI! They basically can't strip away into terminal mode unless you revamp the whole Win32 API. Without optimistic support from graphical cards company like Nvidia and ATI and Intel guilty of it too(silly outsource of GMA500 chipset to PowerVR), you would find much future on the graphical aspect of Linux, just too draggy from the business perspective.
So you see why I have chosen Mac. Apple basically control the whole stack from physical hardware to software and even the ecosystem. Sometimes we must agree, too much cooks spoilt the broth. Yes Apple offer lack of flexibility in some cases, but it's always a give a take.
Choose Apple Mac if you want a complete ecosystem, choose Linux flexibility and you find holes all over the place, stick with Microsoft Windows and you get yourself Fxxk by their messy integration between classic Windows Win32 and RT.