Windows 8 và thời của JavaScript

20/06/2011 08:32

Sau nhiều lời đồn đoán về hệ điều hành tiếp theo của Microsoft, tại hội thảo công nghệ All Things Digital 2011 (31/5-1/6/2011 - California, Mỹ), Steven Sinofsky - người lãnh đạo bộ phận phát triển Windows của Microsoft - chính thức giới thiệu giao diện mới của Windows 8.

Không ít người lập trình ứng dụng trên Windows thay vì phấn khởi chào đón vận hội mới lại tỏ ra lo ngại khi biết rằng phần mềm ứng dụng kiểu mới của Windows 8 được xây dựng dựa trên HTML5 và JavaScript. Vì sao không là nền tảng .NET quen thuộc?

Đầu năm 2011, khi Microsoft khẳng định quyết tâm xây dựng phiên bản tiếp theo của hệ điều hành Windows cho mọi loại thiết bị có màn hình với kích cỡ từ trung bình trở lên, bao gồm máy tính bảng và máy tính cá nhân truyền thống, xuất hiện nhiều ý kiến phê phán từ giới truyền thông cho rằng lẽ ra Microsoft phải mở rộng hệ điều hành Windows Phone để dùng cho máy tính bảng (như Google đã làm đối với hệ điều hành Android) thay vì cố gắng "nhồi nhét" Windows vào thiết bị di động như máy tính bảng. Luận điểm quan trọng của sự chỉ trích là giao diện của Windows hoàn toàn không phù hợp với màn hình cảm ứng của máy tính bảng và máy tính bảng có phạm vi ứng dụng khác với máy tính cá nhân.

Theo cách nhìn của Microsoft, máy tính bảng là một loại máy tính cá nhân. Như là sự giải đáp cho mọi lời công kích, Windows 8 có hai giao diện khác nhau: giao diện Aero truyền thống giống Windows 7 và giao diện Metro giống Windows Phone 7 dùng cho màn hình cảm ứng. Trong giao diện Metro, mọi nội dung số hoặc phần mềm được biểu diễn bằng những ô hình được xếp theo kiểu lát gạch trên màn hình và phần mềm khi hoạt động luôn chiếm trọn màn hình, thuận tiện cho thao tác của ngón tay. Thật hợp lý khi không có những cửa sổ chồng lên nhau, không có những nút bấm nhỏ bé, không có thanh cuộn (scrollbar) ngang và dọc trên màn hình cảm ứng của máy tính bảng. Phần mềm kiểu mới trong giao diện Metro được gọi là immersive app (ứng dụng hòa nhập). Mỗi ứng dụng sẽ luôn có giao diện đặc thù như trong trò chơi điện tử, khiến người dùng... "đắm chìm" vào nó.


Giao diện Metro của Windows 8.


Giới truyền thông đánh giá Windows 8 là bước phát triển nhảy vọt từ Windows 7, tương tự như "khoảng cách" giữa Windows và DOS. Những ứng dụng Windows truyền thống vẫn có thể xuất hiện nguyên vẹn trong giao diện Metro nhưng chúng được ví như "cửa sổ DOS" trong Windows thuở nào, dùng để chạy những legacy app (ứng dụng di sản). Tuy vậy, đối với người lập trình ứng dụng, khái niệm ứng dụng toàn màn hình immersive app dường như đưa họ trở lại thời kỳ xây dựng phần mềm trên DOS khi phải tự lo liệu mọi thứ để tạo nên giao diện người dùng.

Giao diện đa dạng của ứng dụng kiểu mới trên Windows 8 thực ra không làm cho giới lập trình Windows e ngại. Điều làm họ lo lắng chính là thông tin không đầy đủ từ Microsoft khiến mọi người đều hiểu rằng những ứng dụng Windows hiện nay sẽ trở thành ứng dụng di sản trên Windows 8. Phần lớn giới lập trình Windows, những người từng đầu tư công sức để nắm vững nền tảng .NET và Silverlight bỗng thấy rằng mình không còn đứng ở mũi nhọn của công nghệ Microsoft, bỗng thấy rằng thành quả của mình đang lui vào quá khứ và phải nhanh chóng trang bị kiến thức về HTML5 và JavaScript giống như những người lập trình Web! Vì sao Microsoft không ưu tiên phát triển nền tảng .NET để trở thành phương tiện chủ yếu tạo ra immersive app?

Windows 8 được xây dựng nhằm mục đích mở rộng hệ sinh thái Windows để chiếm lĩnh thị trường máy tính bảng nhưng hiệu ứng nhãn tiền dường như lại là sự gạt bỏ một bộ phận quan trọng của hệ sinh thái ấy ra khỏi cuộc chơi.

Sự lo lắng chuyển thành làn sóng bất mãn tại diễn đàn của giới lập trình .NET và Silverlight:

"Tôi vừa xem xong đoạn phim giới thiệu chính thức Windows 8 ở YouTube. Tôi thích giao diện mới nhưng họ buộc chúng ta tạo ra ứng dụng bằng HTML và JavaScript. Đó là điều vớ vẩn nhất mà tôi từng biết. Microsoft đã có sẵn nền tảng chỉn chu là Silverlight nhưng bỗng dưng họ muốn chúng ta phải dùng thứ JavaScript quái đản ấy! Tôi thực sự thất vọng".

"Quả là một tin kinh khủng! Tôi thực sự bị sốc. Sinofsky nói rằng vẫn có thể chạy ứng dụng Silverlight trong trình duyệt. Như vậy nghĩa là những gì chúng ta đầu tư vào .NET chỉ còn là để chạy ứng dụng Silverlight trong trình duyệt? Silverlight đâu thể làm mọi thứ. Họ nói là sẽ vẫn có chỗ cho chúng ta nhưng liệu đó là xó xỉnh nào?"

"Không hiểu sao Microsoft lại đi dùng thứ HTML và JavaScript hổ lốn để tạo ra ứng dụng cho màn hình cảm ứng. Tôi quá thất vọng vì họ không dùng .NET. Đành từ bỏ công cụ Visual Studio và rèn luyện kỹ năng sử dụng Notepad đi thôi!".

"JavaScript chỉ thích hợp cho công việc đơn giản. JavaScript là ngôn ngữ lập trình tồi tệ cho một ứng dụng cỡ vừa, thậm chí còn kém hơn Pascal. Công cụ lập trình JavaScript đều ở thời đại đồ đá".

"Đã đến lúc phải tránh xa Microsoft. Họ điên mất rồi! Dường như 'thành công' của Vista chưa đủ đối với họ".


Tranh biếm thể hiện sự phản kháng của giới lập trình .NET.


Thất vọng với viễn cảnh trở thành "công dân hạng hai" trên Windows 8, giới lập trình .NET đã dè bỉu HTML và JavaScript. Lời chê bai có một phần sự thực. JavaScript được thiết kế để tạo nên phần mềm đơn giản nằm trong trang mạng HTML và chạy được nhờ trình duyệt. Chính vì đơn giản, JavaScript trở nên cực kỳ phổ biến và việc dùng JavaScript để tạo nên ứng dụng phức tạp được nạp qua mạng (như Gmail) luôn là kỳ công thuộc loại "tay không đánh giặc", được mọi người ngưỡng mộ.

Do cuộc cạnh tranh sôi động giữa các trình duyệt, JavaScript ngày càng làm được nhiều việc hơn. Các trình duyệt hiện đại đều biên dịch tức thời mã JavaScript để đạt được tốc độ cao. Nhiều phần mềm JavaScript phức tạp (như trò chơi Angry Birds ở cửa hàng ứng dụng Chrome Web Store) hoạt động với tốc độ không hề thua kém native app (ứng dụng bản địa).

Những phần mềm JavaScript "làm việc nặng" xuất hiện ngày càng nhiều. Nhóm JSmad.org tại Châu Âu tạo ra "máy nghe nhạc MP3" chỉ bằng JavaScript. Điều này nghĩa là JavaScript phải dùng những dãy (array) chứa dữ liệu lớn và phải giải mã âm thanh trong thời gian đủ nhanh để đáp ứng mọi tốc độ bit (bit rate) khả dĩ.

Lập trình viên Fabrice Bellard (Pháp) mô phỏng thành công hệ điều hành Linux 2.6 bằng JavaScript. Bellard cũng dự định dùng JavaScript để mô phỏng hệ điều hành DOS và Windows 3. Điều này tạo ra khả năng sử dụng những phần mềm "cổ xưa" trên DOS và Window 3 trong cửa sổ trình duyệt.

Với sự xuất hiện của HTML5, JavaScript càng quan trọng, tựa như chất keo kết dính nhiều công nghệ khác nhau (SVG, WebGL,...). Ứng dụng JavaScript trong trình duyệt càng mạnh mẽ, vai trò của hệ điều hành tại chỗ (local OS) càng mờ nhạt.

Tuy nhiên, sự phát triển không luôn diễn biến theo một chiều. Tiềm năng của HTML và JavaScript đã thực sự thoát khỏi trình duyệt! Trên hệ điều hành WebOS của Công ty HP, HTML và JavaScript được dùng như phương tiện chính để tạo ra ứng dụng bản địa, hoạt động toàn màn hình. Trước Microsoft, HP đã gọi loại ứng dụng như vậy là immersive app. Trong immersive app trên WebOS, người lập trình JavaScript dễ dàng sử dụng các dịch vụ tại chỗ của WebOS, dễ dàng điều khiển phần cứng đặc thù của thiết bị (các ống kính, các bộ cảm ứng,...). HP dùng thuật ngữ native JavaScript (JavaScript bản địa) để chỉ sự thân thuộc của JavaScript với hệ điều hành WebOS, với phần cứng của những thiết bị do HP sản xuất.

HP dự định đưa WebOS lên máy tính cá nhân, hoạt động song song với Windows. Mọi máy tính cá nhân (và cả máy in) của HP sẽ gắn bó mật thiết với các thiết bị di động dùng WebOS của HP.

Để chuẩn bị cho việc tung máy tính bảng TouchPad ra thị trường trong tháng 7/2011, HP đã gửi tặng TouchPad cho nhiều công ty phần mềm. Thế mạnh của TouchPad thể hiện ở chỗ các ứng dụng JavaScript hiện có của Chrome Web Store đều dễ dàng di cư lên HP và trở thành ứng dụng bản địa tinh tế. Do thị trường phần mềm trên iOS (dùng cho iPhone/iPod/iPad) và trên Android đã đông đúc, nhiều lập trình viên bắt đầu xem xét đến việc chuyển sản phẩm của mình lên TouchPad nhờ công cụ mô phỏng của HP.


Máy tính bảng TouchPad của HP dùng hệ điều hành WebOS.


Cùng với iOS, Android, Chrome OS, hệ điều hành WebOS xiết chặt vòng vây quanh Windows nhưng đồng thời mở ra lối thoát cho Windows. Đó chính là lý do vì sao Microsoft ưu tiên sử dụng phương thức tương tự WebOS trên Windows 8 như một mũi đột phá, thay vì tiếp tục tự co cụm trong cộng đồng lập trình Windows hiện có. Trên Windows 8, trình duyệt sẽ vẫn tồn tại nhưng công nghệ của Web sẽ "tan chảy" vào hệ điều hành, trở nên tinh tế hơn, gắn bó mật thiết với hệ điều hành Windows. Dự định tiến xa hơn HP, Microsoft sử dụng thuật ngữ native HTML (HTML bản địa), một thuật ngữ bị phản đối gay gắt vì đi ngược lại với bản chất trung tính của HTML.

Giới lập trình .NET thực ra không phải lo lắng vì ứng dụng JavaScript bản địa trên Windows 8 chắc chắn sẽ sử dụng ngày càng nhiều những thành phần khác thuộc công nghệ Microsoft. Nhìn theo lợi ích của Microsoft, đó là giải pháp đúng đắn để hóa giải những thách thức của thời đại "hậu PC".

NGỌC GIAO


Ý kiến bạn đọc (0)
Tên   Email

Lên đầu trang