'Quan trọng là môi trường phát triển và triển khai phải giống nhau càng tốt', Linus Torvalds, cha đẻ của Linux, đã nhấn mạnh điều này khi nghe về việc Mac chuyển sang sử dụng chip ARM.
Trong góc độ công nghệ, sản phẩm quan trọng nhất của Apple năm nay sẽ không phải là iPhone hay iPad Pro mà là những chiếc Mac dùng chip ARM sắp sửa ra mắt. Sau 15 năm gắn bó với 'người bạn thân' Intel, Apple sẽ chuyển máy Mac sang dùng chip tự thiết kế dựa trên tham chiếu của ARM. Bước đi này được coi là đặc biệt hiếm thấy trong lịch sử Apple nói riêng và lịch sử công nghệ nói chung. Ngay đến Microsoft, đối thủ lớn của Apple, vẫn chưa thể tối ưu hệ điều hành PC của mình cho nền tảng chip vốn bị coi là chỉ dành cho thiết bị di động.
Thực tế là từ lâu Apple đã nổi tiếng với khả năng tùy biến chip siêu đẳng, và quả thật chuyển Mac sang ARM sẽ đem lại những lợi ích riêng. Những chiếc Mac Mini 'mẫu' dùng A12Z khi chạy giả lập vẫn có thể vượt mặt chip Intel Core về hiệu năng CPU và GPU tích hợp. Khi tùy biến con chip của chính mình, Apple có thể làm được điều mà những chiếc máy Mac Intel (hay Windows/Linux) chỉ có thể mơ đến: cho phép CPU và GPU chia sẻ bộ nhớ chung, sở hữu các tính năng chuyên biệt (như xử lý ML/DL) hoặc tăng bảo mật khi dùng cả chip vào khâu mã hóa.
Tuy vậy, những lợi thế này cũng sẽ khiến Apple phải chấp nhận nhiều đánh đổi. Một vài trong số đó có thể tạo ra những 'thảm họa' dành cho coder.
Đầu tiên và dễ nhận thấy nhất, nhà phát triển ứng dụng Mac sẽ bắt buộc phải tiến hành kiểm thử lại ứng dụng của họ, bao gồm cả những ứng dụng vốn đã đang chạy tốt trên MacOS nền Intel. Cần phải chỉ ra rằng Apple đã nỗ lực hết sức để thuyết phục các coder rằng việc đưa app có sẵn lên ARM là hết sức dễ dàng: nhà phát triển chỉ cần thêm một bản build cho arm64 trên Xcode. Nhưng nếu đã có kinh nghiệm làm phần mềm, bạn chắc chắn sẽ hiểu rằng coder không thể chỉ nhấn nút Build rồi gửi ngay lập tức gửi thành phẩm tới người dùng. Chưa bàn đến việc công ty nhà phát triển app cho Mac phải bỏ tiền ra mua máy Mac ARM mới, họ sẽ phải tính đến chuyện gia tăng nhân lực cho khâu kiểm thử.
Việc kiểm thử lại sau khi chuyển đổi là bắt buộc. Bài học đến từ chính Apple 15 năm trước: khi Mac được chuyển từ PowerPC sang Intel, nhà Táo cũng đưa ra những lời hứa rất mỹ miều với Rosetta (giả lập) và Universal Library (biên dịch cả 2 kiến trúc chip). Sau gần 1 năm, nhiều nhà phát triển lớn như Aspyr, Adobe hay 'người bạn thân' Microsoft vẫn chưa thể hoàn thiện các ứng dụng cho Mac Intel. Khó hiểu nhất trong số này có lẽ là Microsoft: dù là một nửa còn lại của bộ đôi 'Wintel', dù luôn coi MacOS là một nền tảng quan trọng để bán Office, Microsoft vẫn không thể ra mắt Office 2008 for Mac đúng hẹn và cũng chẳng thể giải quyết hết vấn đề của phần mềm này khi lên kệ.
Tại sự kiện WWDC 2020 vừa diễn ra, Adobe và Microsoft lại xuất hiện. Cả hai đều được Apple giới thiệu như những đối tác quan trọng trong hành trình chuyển từ Intel sang ARM. Tuy nhiên, bài học từ quá khứ vẫn còn đó. Cho đến năm 2009, nhiều ứng dụng của Adobe vẫn gặp nhiều lỗi trên máy Mac sử dụng chip Intel. Theo thống kê của Cnet vào năm 2009, thậm chí một số ứng dụng của Apple cũng gặp vấn đề trên Mac Intel. Nếu Apple và các công ty phần mềm lớn như Adobe và Microsoft vẫn gặp khó khăn, liệu các nhà phát triển macOS khác có thể yên tâm?
Đọc đến đây, bạn có thể đặt ra câu hỏi: nếu tôi không phát triển ứng dụng cho MacOS mà chỉ sử dụng Mac để thực hiện công việc DevOps, lập trình Python, NodeJS hoặc Java, phát triển ứng dụng cho Android và iOS, liệu tôi có cần lo lắng không? Câu trả lời vẫn là có. Chúng ta đang nói về những thay đổi có ảnh hưởng rộng rãi. Quyết định lớn này của Apple không chỉ ảnh hưởng trực tiếp đến bạn mà còn đến những người tạo ra các công cụ mà bạn sử dụng để kiếm sống. Google rất ưa chuộng Mac, và Microsoft, Jetbrains, Oracle cũng vậy. Khi Apple chuyển sang sử dụng chip ARM, nhưng Jetbrains và Google vẫn gặp vấn đề trong việc hoàn thiện IntelliJ và Android Studio cho Mac ARM chẳng hạn, việc lập trình Java hoặc ứng dụng Android của bạn chắc chắn sẽ bị ảnh hưởng.
Và rõ ràng sẽ có những lập trình viên bị ảnh hưởng trực tiếp hơn. Dễ nhận thấy nhất là nhóm lập trình viên cần sử dụng Windows trên Mac. Khi Windows chạy trên chip ARM của Microsoft (Surface Pro X) vẫn gặp vấn đề, chúng ta không thể kỳ vọng vào một trải nghiệm Windows tốt trên chip ARM của Apple. Việc mua Mac nhưng cài đặt Windows có vẻ hơi lạ cười, nhưng lại là lựa chọn hợp lý. Với các công nghệ phát triển đa nền tảng như Xamarin của Microsoft hoặc Flutter của Google, bạn vẫn cần một máy Mac để biên dịch ứng dụng iOS. Chuyển đổi giữa MacOS và Windows trên Bootcamp cũng là một lựa chọn hợp lý nếu bạn thường xuyên làm việc trên máy chủ Linux nhưng đôi khi cần dùng PowerShell, hoặc nếu bạn phải tạo báo cáo trên Oracle/AWS và PowerBI chẳng hạn.
Cho đến bây giờ, máy Mac sử dụng chip Intel vẫn là những thiết bị duy nhất có khả năng hỗ trợ mọi nền tảng. Việc chuyển sang sử dụng chip ARM sẽ làm mất đi ưu điểm đó.
Đáng lo ngại nhất, các lập trình viên sử dụng Mac có thể phải đối mặt với một vấn đề không thể giải quyết: máy Mac mất đi vị thế là một thiết bị dễ sử dụng, hỗ trợ nhiều phần mềm thương mại chất lượng và tương thích với Linux.
Nỗi lo này được Linus Torvalds, cha đẻ của Linux, đề cập. Đầu năm 2019, khi Mac ARM chỉ là tin đồn, ông đã đứng về phía Intel/AMD: 'Nếu bạn phát triển trên x86, bạn sẽ muốn triển khai trên x86... Điều này vẫn đúng ngay cả khi bạn phát triển những thứ có vẻ là đa nền tảng như chạy script Perl chẳng hạn. Đơn giản vì bạn cần môi trường phát triển và triển khai giống nhau càng tốt'.
Theo thống kê của IDC vào tháng 6 vừa qua, x86 vẫn chiếm đến 90% thị trường máy chủ. Quan điểm của Linus là việc phát triển trên ARM và triển khai lên x86 sẽ gặp nhiều vấn đề. Trong thời gian ngắn, lập trình viên sử dụng Mac sẽ phải đối mặt với những thách thức này: thị trường máy chủ vẫn sử dụng x86, trong khi Apple lại chỉ cung cấp PC sử dụng ARM.
Rõ ràng Apple đã nhận thức được mối lo ngại này. Tại WWDC, công ty của Tim Cook đã không quên trình diễn việc sử dụng phần mềm giả lập Parallels để chạy Linux Debian. Tuy nhiên, cho đến nay cả Apple và Parallels (công ty độc lập) vẫn chưa rõ liệu phiên bản Debian này chạy trên kiến trúc arm64 hay x86_64. Với việc Rosetta không hỗ trợ nhiều tập lệnh hiệu suất cao của x86 (như AVX), có thể Mac ARM sẽ không thể giả lập x86_64, chỉ hỗ trợ x86_32. Có lẽ, Apple đã chọn Debian arm64 để trấn an lo ngại về x86.
Ở phía ngược lại, Microsoft tiếp tục thể hiện tình yêu với Linux thông qua Terminal mới, lớp giả lập WSL và các nỗ lực khác để cho phép lập trình viên dùng Windows vẫn có thể làm việc với Linux một cách dễ dàng. Trong khi đó, máy Mac, từ một lựa chọn phần cứng đa nền tảng, dần dần trở thành một lựa chọn dành riêng cho lập trình viên iOS, iPadOS và các hệ điều hành của Apple.
Liệu điều này đáng giá để từ bỏ Intel?