Đưa lại từ bài viết của tôi ở The Manager.
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.
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 mát, tổn thấ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 mà người viết quyết định. Một chiếc xe giờ không chỉ là khối thép - hình dáng, mẫu mã, động cơ bao nhiêu lít hay tấm pin bao nhiêu Watt-giờ. Một phần hồn của chiếc xe còn là phần mềm trên xe tiện dụng, an toàn, và đáng tin ra sao. So với phần mềm, phần cứng rất dễ kiểm tra. Bạn thường có thể cưa một khối hợp kim ra để kiểm tra nó chứa bao nhiêu kim loại gì, chất lượng thuộc tính như thế nào. Bạn cũng có thể mang một viên pin, một lít xăng ra để đo hiệu năng, nồng độ. Nhưng bạn nói chung không thể biết phần mềm được lập trình như thế nào. Vấn đề của công nghệ là câu hỏi chúng ta có nên tin vào phần mềm hay không, và làm sao củng cố được sự trong sạch của những hành động mà phần mềm quyết định giúp bạn. Ở một mức bao quát hơn, chúng ta cần nghĩ và làm gì khi thế giới ngày càng vận hành và phụ thuộc nhiều vào phần mềm hay AI mà không một ai trong trên thế giới này hiểu hay kiểm soát được hết?
Một người dùng “chế” đầu chiếc xe Buick 1955 với phần mềm tự do Crankshaft ở trong gara
Một người dùng “chế” đầu chiếc xe Buick 1955 với phần mềm tự do Crankshaft ở trong gara
PHẦN MỀM SỞ HỮU ĐỘC QUYỀN
Vì có rất nhiều cải tiến có thể đạt được bằng phần mềm, nên phần mềm trở thành một tài sản quý giá. Để bảo vệ quyền sở hữu trí tuệ của mình, các nhà phát triển phần mềm qua nhiều năm đã phát minh ra rất nhiều phương thức để làm phần mềm khó hiểu hơn cho người ngoài cuộc. Ví dụ, nhà sản xuất có thể mã hóa để người ngoài dù có đọc được nội dung con chip chứa mã lệnh cũng không hiểu được nó đang làm gì. Ngoài ra, họ còn có thể dùng chữ ký điện tử để phần cứng không chạy bất cứ mã lệnh nào mà họ không viết ra. Họ có thể làm cho chiếc xe ngừng chạy nếu người dùng không mua phần cứng chính hãng của họ. Việc này làm giảm khả năng đối thủ cạnh tranh của họ sẽ làm nhái được sản phẩm của họ, nhưng đồng thời cũng làm giảm tính trong sạch và tước đi nhiều quyền tự do cho người sử dụng. Người sử dụng trước kia có toàn quyền được sử dụng, thay thế, nâng cấp chiếc xe làm cho chiếc xe của mình tốt lên. Người sở hữu xe trước kia được sử dụng chiếc xe đến bao giờ, trong điều kiện nào đều là quyết định của người sở hữu. Giờ khi có câu chuyện về phần mềm riêng độc quyền, mọi chuyện không đơn giản chỉ còn là quyết định của người sở hữu chiếc xe nữa. Nếu chiếc xe không chịu chạy với phần cứng mới, và hãng sản xuất không bán hay không hỗ trợ chiếc xe nữa, bạn có thể có một cục thép nằm trong gara.
Ở Mỹ, thỉnh thoảng tôi vẫn thấy những chiếc xe từ giữa thế kỷ 20 rất đẹp chạy trên đường phố. Những hãng sản xuất những chiếc xe đó có thể đã không còn tồn tại nữa, hoặc tồn tại thì cũng đã ngừng bán và hỗ trợ những dòng xe đó từ lâu. Để làm cho những chiếc xe này chạy được, người sở hữu phải sửa chữa nó từ linh kiện cũ, từ nguồn không chính hãng. Họ cũng có thể thêm vào các linh kiện, tính năng giải trí, dẫn đường từ các hãng thứ ba mới. Người rành xe sẵn sàng làm nhiều việc để chiếc xe mình yêu thích chạy được lâu dài. Và để thay đổi chiếc xe như vậy, thì chiếc xe phải chấp nhận bộ phận nào lắp vừa, thì nó sẽ chạy. Nhưng có thể cũng như việc bạn thay phím Home trên điện thoại Apple, bây giờ không phải cứ cái gì vừa thì những sản phẩm bạn sở hữu cũng sẽ chạy. Với những điện thoại mới của Apple có bảo mật vân tay, khi bạn thay phím Home, điện thoại mới sẽ không cho bạn sử dụng chức năng bảo mật vân tay, thậm chí có một số phiên bản phần mềm sẽ từ chối chạy.
Thường thì cách để người dùng tin vào sự bền bỉ của chiếc xe là dựa vào uy tín của hãng sản xuất. Những hãng xe tên tuổi lớn thường sẽ có nhiều người tham gia quyết định và khả năng họ làm một việc chỉ có lợi trước mắt là nhỏ hơn. Họ cũng có thể hỗ trợ sản phẩm của mình lâu hơn những hãng khác. Một đời xe có nhiều người dùng thì cũng có nhiều lý do để bạn mua được linh kiện thay thế chính hãng rẻ và dễ dàng hơn.
PHẦN MỀM TỰ DO
Gần đây, một xu hướng mới của giới làm phần mềm là sử dụng phần mềm tự do (hay ở Việt Nam còn có tên gọi 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.
Một chiếc xe sử dụng phần mềm nguồn mở Crankshaft làm trung tâm giải trí

Một chiếc xe sử dụng phần mềm nguồn mở Crankshaft làm trung tâm giải trí

Để 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.