Người viết bài này đã có nhiều năm sử dụng Windows, Mac, Linux và đây là những gi đúc kết được để khuyên các bạn trẻ chuẩn bị mua máy tính theo nghiệp lập trình.



Hiện nay có 3 hệ điều hành rất phổ biến là Windows, MacOSX, Linux. Windows thì có Windows 7 và 10. MacOSX có 2 phiên bản Sierra và High Sierra. Ngoài ra có loại Hackintosh cài trên PC, laptop dùng chip Intel nhưng không do Apple sản xuất. Linux thì có nhiều biến thể, distro, nhưng nhìn chung anh em dùng Ubuntu, Mint nhưng bản Manjaro, Suse thường cái nghịch chơi chứ không dùng thường xuyên.

Sử dụng Windows

Windows vẫn là hệ điều hành phổ biến bình dân nhất cho dân văn phòng. Nhưng với lập trình viên chuyên nghiệp tôi xin các bạn nghĩ lại. Sau đây là trải nghiệm của tôi sau 1 tháng cài Windows 10 64 bit để lập trình:

Bash Shell không có

Đầu tiên là Windows có cmd (command line), Power Shell nhưng lại không có Terminal chạy Bash Shell như Linux.
Hầu hết cú pháp của Power Shell đều rất khác lạ với Bash Shell, có những lệnh phải viết hoa, rất là dài dòng khó nhớ. Các software bổ trợ cũng ít nên không làm được gì nhiều so với Bash Shell có cài thêm các đồ chơi Fish Shell, Oh My ZSH. Muốn dùng Bash Shell trên Windows 10 có mấy cách:

Cả 3 cách chả có cách nào hay cả và đầy đủ cả. Nhất là khi cấu trúc ổ đĩa trên Windows (ổ C://, ổ D:// ...) khác với hệ thống Linux

Phần mềm quản lý gói kém

Nếu MacOS có HomeBrew, Ubuntu có Apt-Get, Alpine có apk, RedHat có yum, thì Windows có chocolatey. Tiếc là chocolatey gồm những phần mềm có giao diện nhiều hơn là những phần mềm hữu ích chạy trên command để lập trình có thể viết script tự động hoá chúng.

Chạy Docker trên Windows thì thôi dùng VMWare và VirtualBox

Để chạy Docker trên Windows có 2 cách: phổ biến nhất là cài Docker for Windows. Docker for Windows cần có Hyper-V chạy một máy ảo MobyLinux. Mà Hyper-V đã chạy thì VMware hay VirtualBox khỏi chạy. Sử dụng Hyper-V để chạy ảo hoá hệ điều hành Linux, hay Mac trong Windows khá là kém, không có tuỳ chỉnh cho driver màn hình.
Nếu sử dụng Docker ToolBox cùng với VirtualBox cũng được nhưng VirtualBox sẽ tạo ra các lớp mạng rất lằng nhằng vào Windows, sau đó để public một cổng (port) trong Docker container ra ngoài mạng LAN thì rất là cực. Trải nghiệm cài Docker for Mac của tôi khác hẳn, VMware vẫn chạy song song, không bị xung đột. Rõ ràng, Hyper-V quá yếu thế so với VMware hay VirtualBox.

Visual Studio nặng nề, không còn là duy nhất để lập trình C#, .NET

Visual Studio 2015 trở đi, bộ cài ban đầu là file exe rất nhỏ, khi cài đặt installer sẽ kéo về độ 3-5GB dữ liệu. Thời gian cài đặt rất lâu, kích thước lên đến 20.5 G theo Quora. Để lập trình một ứng dụng C#, bạn là người mới vào nghề, ổ SSD là 256G, thì bộ cài công cụ đã choán gần 1/10 ổ SSD của bạn. Visual Studio Code, hay công cụ JetBrain Rider.net cài nhẹ nhàng hơn Visual Studio nhiều. Bạn thậm chí có thể lập trình C# bằng dotnet core chạy tốt trên Linux và dùng VIM với OmniSharp.

Phần mềm chỉ có trên Mac mà không có trên Windows

Tiêu biểu nhất là SketchApp, công cụ thiết kế giao diện, UX trên Mac. Tool này rất cần với dân lập trình. Để thay thế, trên Windows, bạn sẽ phải dùng Photoshop hoặc Adobe XD. Ngôn ngữ Crystal, chạy nhanh như C, cú pháp như Ruby mới có bản trên Mac, Linux, nhưng lại chưa có trên Windows.

Có quá nhiều Trojan, malware khi dùng Windows

Cho dù bạn không vào những trang web đen. Nhưng khi lập trình chắc chắn sẽ có lúc bạn cần tìm sách Ebook, PDF miễn phí ở đâu đó thay vì phải mua. Thế là một loạt các đường link phải click vào, rồi tự động bật ra khiến bạn vô tình cài đặt trojan, malware vào máy mình lúc nào không hay. Máy xài Windows độ khoảng 2 tháng bắt đầu chậm ì ạch vì quá quá nhiều phần mềm mà bạn không thể hiểu nó làm gì mặc nhiên khởi động.

Ubuntu để làm hệ điều hành lập trình?

Đây là cách không tệ chút nào. Ubuntu 17.10 hiện giao diện khá mượt và tốt. Tuy nhiên LibreOffice còn kém Microsoft Office rất xa. Nếu bạn làm quản lý, chắc chắn bạn khó có thể dùng LibreOffice để cộng tác với các khách hàng vốn đã quen dùng Office. Gimp, phần mềm chỉnh sửa ảnh, sẽ chỉ hợp cho những dị nhân chứ không cho người cần làm việc hiệu quả nhanh gọn. Để đối phó, bạn có thể cài Windows 7 ảo hoá bên trong Ubuntu. Bằng cách này, bạn vẫn dùng được các phần mềm tốt trong Windows.
Trước đây tôi có ưa dùng Linux Mint. Nhưng từ Ubuntu 17.10 tôi thấy rằng Ubuntu đã gọn gàng, nhẹ hơn.
Linux rất phù hợp với lập trình viên chuyên lập trình back end như Node.js, Golang, quản lý hệ thống. Họ không cần phần mềm đồ hoạ quá phức tạp. Các IDE phổ biến như JetBrains Web Storm, PyCharm, PHPStorm, CLions, Goland, Sublime Text, VisualCode đều có thể chạy tốt trên Linux.

Nếu bạn là lập trình viên web front end, hay lập trình viên di động, Linux sẽ không phải lựa chọn tốt nhất. Bạn không có Photoshop, SketchApp sẵn mà phải chuyển vào hệ điều hành ảo hoá để dùng. MacOSX mà chạy ảo hoá thì chậm kinh khủng.

MacOSX + Apple quá tuyệt nhưng đắt

Một chiếc laptop MacBook sẽ là một khoản đầu tư không nhỏ (18-40 triệu) với sinh viên. Việc nâng cấp máy MacBook lên 8G hay 16G, hay thêm một ổ SSD tương đối tốn kém. Nếu bạn có đủ tài chính, không thích vọc vạch, có ngay một chiếc laptop tốt để lập trình hay mua MacBook.
MacOSX có tính năng AirPlay cho phép streaming hình ảnh desktop lên AppleTV. Chức năng này làm trình chiếu rất là tốt.

Hackintosh = MacOSX + hacked drivers

Tôi vẫn quen dùng Hackintosh từ những năm 2011. Bản chất Hackintosh vẫn là hệ điều hành MacOSX (một biến thể của Unix) + các driver chế cháo không được thừa nhận mà cũng không được kiểm thử cẩn thận để cài được máy chip Intel. MacOSX tương thích đến 90% với Linux, chạy được 100% các phần mềm GNU, thiếu đâu thì dùng HomeBrew cài là có.

Ưu điểm Hackintosh là cài được trên phần cứng rẻ. Nếu hỏng có thể thay từng bộ phận máy tính giá mềm hơn máy tính tương tương của Apple rất nhiều. Nhược điểm lớn nhất, đáng ghét nhất của Hackintosh là nó rất khó cài trên máy tính PC, laptop không do Apple sản xuất. Thường là bạn sẽ phải thuê chuyên gia cài Hackintosh với giá 200 đến 250k mỗi lần cài. Hackintosh chỉ chạy trên máy dùng chip Intel chứ không với AMD. Với laptop có GPU on chip Intel và card đồ hoạ rời, bạn không thể tận dụng cả 2 card đồ hoạ (khi cần ít xử lý đồ hoạ, dùng GPU on chip, khi làm 3D, chơi game, chuyển qua dùng card rời), Hackintosh buộc bạn phải hoặc GPU on chip hoặc đồ hoạ rời.

Trong MacOSX (hoặc Hackintosh), bạn vừa làm đồ hoạ mà vừa lập trình rất thuận tiện. Hiện nay Microsoft đã có Visual Studio for Mac, JetBrains có Rider.net.
Cản trở lớn nhất đó là khi cài Hackintosh lên laptop, xác suất đến 60% bạn sẽ phải mua card Wifi BroadCom để thay thế cho card Wifi hiện có, các phím function, bàn di chuột, nhận dạng vân tay sẽ không có tác dụng, thậm chí động tác đơn giản như sleep máy tính với Hackintosh khiến Hackintosh ngủ mà không tỉnh nổi. Nếu bạn vượt quá được mấy thứ lắt nhắt khó chịu đó, thì mới dùng Hackintosh.

Khi dùng Hackintosh với card Nvidia, chắc chắn bạn không dùng Airplay được nữa mà phải dùng Chrome Cast. Trình duyệt Chrome có chức năng truyền hình ảnh tab hoặc cả desktop hoạt động tới với AirServer hoặc Chrome Cast.

Dell M6800 RAM 16B, card đồ hoa Nvidia K3100
Hiện nay tôi đang dùng một laptop Workstation 2nd hand Dell M6800. Tôi khá ưng với chiếc laptop có màn hình 17 inch, FullHD, RAM có thể nâng lên 32G. CPU có 8 lõi. Khi cài Hackintosh, nó đã có sẵn card Broadcom nên không phải thay thế, phím tăng giảm âm lượng ok, phím tăng giảm độ tương phản không tương thích, bàn di chuột và cảm biến vân tay cũng không hoạt động. Nhìn chung là đủ dùng rất tốt để lập trình với chiếc laptop 20.5 triệu. Trước đó tôi cài Windows 10, 64 trên laptop này nhưng được 1.5 tháng không hiểu sao, các ứng dụng chạy rất là chậm, để biên dịch một ứng dụng golang đơn giản mất gần 1 phút trong khi ở máy khác chỉ mấy 1-2 giây.