Bạn có bao giờ nghĩ rằng mình sẽ “độ” chiếc xe mới cáu bằng cách tự viết một phần mềm? Câu chuyện quanh chiếc xe hơi dưới đây minh họa sống động cho thời đoạn mà chúng ta đang sống: đầy thách thức nhưng cơ hội luôn mở ra.
Vài tháng trước tôi có về thăm lại trường đại học cũ của mình. Tôi gặp giáo sư cũ dạy bộ môn Toán - Khoa học máy tính. Chúng tôi đi bộ dạo quanh trường và ông có khoe mới mua được một chiếc xe đời 2018 mới mà ông rất lấy làm thích thú. Số là ông nhường lại chiếc xe cũ hơn của ông tặng cho cô con gái rượu lên 17 tuổi để đi làm thêm, nên “được” nâng cấp xe. Chợt ông mở điện thoại, hỏi tôi: “À, tôi đố anh tại làm sao mà quyển sách nói MP3 của tôi hiển thị như thế này?” Tôi nhìn vào ảnh chụp của ông, thì thấy một danh sách các tập tin MP3 của ông xếp trong một thư mục trong màn hình giải trí của chiếc ô tô đời mới.
Điều lạ là chúng hiển thị không theo thứ tự nào cả, từ Track 1, nhảy sang Track 5, rồi sang Track 2. Ông có nói rằng mình rất thích nghe sách nói nên thường mang theo đĩa để nghe trên đường đi. Nay chiếc ô tô mới không có đầu đọc đĩa, nên thôi được, ông mất công nén đĩa vào một chiếc USB. Nhưng vì chiếc xe này phát loạn xí ngầu nên mỗi lần hết một đoạn ông lại phải loay hoay để chuyển tới chuyển lui tới đoạn tiếp theo, rất dễ mất tập trung gây nguy hiểm trên đường. Tôi trả lời, vì phần mềm trên xe không đủ thông minh để xếp trước danh sách tập tin trước khi nạp vào để chơi. Ông nói, đúng, nhưng vì sao danh sách này lại không được đọc theo thứ tự? Lúc đó thì tôi chịu.
Thì ra, khi chép các tập tin lên ổ USB, máy tính không chép và ghi danh mục các tệp tin theo thứ tự, vì hầu hết các chương trình trên máy tính khi đọc mới xếp. Phần mềm của chiếc xe này phạm lỗi không xếp khi đọc. Khi ngồi mày mò trên Google một tối để tìm hiểu lý do, ông đọc thấy những người khác trên diễn đàn thảo luận cùng vấn đề của chiếc xe đó. Sau đó, ông viết một chương trình để đi xếp rồi “chữa” lại danh mục tập tin theo thứ tự để phần mềm trên xe không phải xếp nữa. Ông kết luận: “Đáng ra chiếc xe 30.000 đô la tôi bỏ tiền túi ra mua phải tự biết xếp và không được bắt tôi ngồi viết phần mềm chữa nó mới phải.” Rồi hai thầy trò cười ha hả.
CƠ HỌC HAY PHẦN MỀM?
Chưa cần phải kể đến Trí tuệ nhân tạo (AI) khi xe tự lái, đúng là cuộc sống vốn không hề đơn giản này chỉ ngày càng tăng thêm phần phức tạp khi phần mềm ăn sâu vào những việc tưởng chừng thuần túy cơ học. Một trong những việc để lại ấn tượng cho tôi nhiều nhất trong thời gian gần đây là việc hãng xe Volkswagen bị Ủy ban Bảo vệ Môi trường Hoa Kỳ phạt vì tội “ăn gian” khí thải NO/NO2 gấp 40 lần cho phép vào năm 2015. Điều trái khoáy là các chiếc xe này được lập trình để chỉ “ăn gian” khi ra đường để tăng tốc, nhưng chấp hành rất nghiêm chỉnh khi chiếc xe nghĩ rằng mình đang ở trong phòng thí nghiệm. Một việc tưởng chừng như rất cơ học như phản ứng hóa học để biến xăng diesel thành động năng thải ra bao nhiêu khí thải cũng chịu ảnh hưởng rất lớn từ phần mềm.
Một ví dụ cơ học khác là bạn nghĩ khi đạp phanh, chiếc xe sẽ truyền lực để má phanh ép vào bánh xe để dừng xe lại. Điều này cũng không còn đúng nữa. Với các xe điện tân tiến, khi bạn đạp phanh để dừng, chiếc xe không phải lúc nào cũng dùng má phanh để giảm tốc như bạn nghĩ. Tùy vào tình huống và lựa chọn của bạn, chiếc máy tính điều khiển chiếc phanh sẽ quyết định có gắn máy phát điện vào bánh xe để quay động cơ phát điện để vừa giảm tốc và sạc pin luôn thể không. Phương thức giảm tốc này gọi là Phanh tái tạo năng lượng (Regenerative brake). Nếu như việc này được quyết định một cách an toàn, bạn sẽ có một chiếc xe ít tốn điện hơn, và hệ quả là chạy được xa hơn. Bên cạnh đó, má phanh của bạn còn rất lâu mòn, mà lại chẳng mất gì cả.
Chính bản thân tôi làm phần mềm cũng không thể tin có một ngày sống trong một thế giới mà chiếc xe của tôi sẽ an toàn hơn, ít hao mòn động cơ, tiêu tốn ít nhiên liệu, và thải ra ít khí thải độc hại hơn bằng một bản cập nhật phần mềm chứ không cần ai mó tay thay đổi gì cả. Nhưng cũng rất có thể chiếc xe sẽ kém an toàn đi và làm thế giới ô nhiễm hơn, nếu như thay đổi trong phần mềm là thay đổi để phục vụ mục đích xấu. Chiếc xe của bạn cũng có thể có tính cách tốt-xấu, nó có thể làm gì phụ thuộc rất nhiều vào những dòng mã lệnh khác là phần mềm mã nguồn mở). Sở dĩ tôi dùng chữ tự do thay vì mã nguồn mở vì phần mềm nguồn mở chưa chắc đã cho người sở hữu quyền tự do thay đổi.
Để hiểu được điều này, chúng ta cần hiểu biết khái quát về việc phát triển phần mềm. Phần mềm chạy trên máy tính, điện thoại hay xe hơi hiện nay đều được một người ở đâu đó viết bằng một ngôn ngữ lập trình cấp cao. Các ngôn ngữ này được dạy cho sinh viên trong các trường đại học. Sau đó người ta dùng một chương trình gọi là trình biên dịch để chuyển ngôn ngữ này thành các con số 0 và 1 và ghi vào một con chip có bộ nhớ để ra lệnh cho chiếc xe. Ngôn ngữ lập trình cấp cao, tức là “mã nguồn”, thì rất dễ hiểu, sinh viên đại học cũng có thể hiểu được, nhưng số 0 và 1 thì cần những chuyên gia làm việc trong nhiều tháng may ra mới hiểu được.
Trong các điều kiện bình thường nhà sản xuất phần mềm sẽ không công bố mã nguồn vì đó là mồ hôi công sức của các kỹ sư và nhà nghiên cứu của họ. Tuy nhiên, các hãng xe thường không viết phần mềm từ con số 0 mà dựa vào nền tảng có sẵn từ phần mềm của người khác. Nhiều khi họ phải công bố mã nguồn của phần mềm khi họ sử dụng các nền tảng phần mềm này. Khi họ công bố mã nguồn thì bạn biết phần mềm đang chạy trên chiếc xe của mình sẽ làm gì vào lúc nào. Việc biết chiếc xe của mình làm gì vào lúc nào là một sự tiến bộ - nếu bạn không biết đọc mã nguồn, có rất nhiều người trên thế giới này biết đọc mã nguồn sẽ nói cho bạn và truyền thông biết khi mã nguồn có vấn đề. Tuy nhiên, nếu bạn thấy có điểm bất hợp lý và muốn thay đổi, hoặc có người trên thế giới này có thể thay đổi được mã nguồn, thì chưa chắc bạn đã cài đặt được những thay đổi này vì con chip trên chiếc xe cần xác nhận chữ ký điện tử như đã nói ở trên.
Ý tưởng của những người làm phần mềm tự do là tiến một bước tiếp theo trong việc mang quyền thay đổi này đến cho người dùng. Những phần mềm này cho phép bạn cài đặt phần mềm của chính bạn lên xe mà không có giới hạn gì cả. Ví dụ, nhóm comma. ai của George Hortz (nhà nghiên cứu bảo mật trên iPhone) giờ cung cấp phần mềm tự lái trên xe và cho bạn “chế” xe của mình thành xe tự lái. Nhóm Automotive Grade Linux (AGL) cung cấp phần mềm giải trí đầy đủ trên xe. Có nhiều người hiện tại “chế” một tablet Android hoặc iPad trên xe vừa dùng để dẫn đường vừa để giải trí.
Tôi có một dự án nhỏ gọi là Crankshaft cũng có mục đích tương tự để cung cấp tính năng giải trí trên xe tích hợp với điện thoại thông minh Android. Tôi rất mừng khi thấy hàng ngàn người dùng trên thế giới sử dụng phần mềm của tôi để giúp họ lái xe trên đường một cách an toàn, tiện dụng, vui vẻ hơn. Chúng tôi có một nhóm chia sẻ ảnh công khai trên trang web của dự án, trong đó có nhiều người chế những chiếc xe cổ từ năm 1955 của họ để cung cấp cho chiếc xe những tính năng giải trí tân kỳ.
Phần mềm tự do cũng không phải là không có vấn đề. Việc phát triển phần mềm tự do thường được một nhóm nhỏ những người có ít khả năng về tài chính, thời gian phát triển vào lúc họ nhàn rỗi. Như vậy chất lượng của các phần mềm này có thể sẽ không bằng các phần mềm sở hữu độc quyền ở giai đoạn đầu tiên. Tuy nhiên, Facebook, Google, Apple và hầu như tất cả các công ty lớn cũng chạy server đáng giá hàng tỉ đô la của họ trên những phần mềm Tự do. Khi các dự án phần mềm này lớn mạnh, họ cũng có những chế tài để kiểm soát chất lượng sản phầm của mình.
Dù là phần mềm sở hữu độc quyền hay phần mềm tự do, cá nhân tôi cho rằng chúng ta đang ở một giai đoạn nhiều thử thách, câu hỏi, và cơ hội. Chúng ta không cần phải đồng ý và hài lòng với một giải pháp. Một thị trường tự do có nhiều lựa chọn là điều vô cùng tốt cho người sở hữu, khi chúng ta dành nhiều thời gian trên đường hơn. Sự an toàn, tiện nghi của chiếc xe của bạn đóng một vai trò ngày càng quan trọng trong cuộc sống. Tôi mong chúng ta nhìn thấy những cơ hội để cùng phát triển.
Điều cuối cùng tôi nhận ra, nhiều khi sự sáng tạo và đổi mới không bắt đầu từ những công ty tiền tỉ. Ngay cả một đế chế như Apple cũng xuất phát từ Hội người tự chế máy tính (Homebrew Computer Club) vào năm 1975. Điều đáng mừng là tôi nghĩ chúng ta đang sống ở trong một thời kỳ mà chuyện sáng chế, mày mò dễ dàng và đơn giản hơn bao giờ hết. Bạn không cần những thiết bị tối tân để bắt đầu sáng tạo mà chỉ cần lên mạng với một chiếc máy tính để thấy được và góp phần vào việc định hình thế giới ngày mai. Với tư cách là một người phát triển phần mềm tự do như một thú vui, tôi mong các bạn sinh viên, nhà sáng tạo ở Việt Nam tham gia vào việc định hình này, biết đâu bạn sẽ làm một Apple hay Tesla tiếp theo ở căn phòng của mình.
Trương Nguyễn Hữu Huân
Tiến sĩ ngành Tin-Sinh - Kỹ sư phần mềm tại Tesla