Một lập trình viên trong cơn tức giận vừa "hủy diệt" Internet chỉ bằng 11 dòng code

Đây là một câu chuyện hy hữu xoay quanh cơn giận dữ của một lập trình viên, các tranh chấp bản quyền và hé lộ cách hoạt động của nhiều ông lớn công nghệ.

Trong tuần này, một lập trình viên trong cơn nóng giận đã gián tiếp làm gián đoạn một loạt phần mềm có vai trò sống còn cho nhiều đại gia Internet bằng cách xóa một chương trình đơn giản chỉ gồm 11 dòng code.

Mọi chuyện bắt đầu với một lập trình viên tên là Azer Koçulu, người đã viết một đoạn code không có gì đặc biệt gọi là Kik dựa trên ngôn ngữ lập trình phổ biến Node.js. Koçulu đã đưa module Kik lên NPM, một nền tảng giống như chợ ứng dụng đối với các lập trình viên bằng ngôn ngữ Node.js, để họ có thể tải xuống miễn phí và sử dụng tùy ý.

Một Kik khác

Kik, một mạng xã hội nổi tiếng cùng tên đã chú ý đến sự việc trên và gửi email cho Koçulu, yêu cầu anh phải đổi tên module của mình. Theo thú nhận của Koçulu trên một đoạn blog, yêu cầu ban đầu của Kik là hợp lý. Tuy nhiên, Koçulu lại chẳng thèm đếm xỉa đến yêu cầu này.

"Khi tôi bắt đầu viết code cho Kik, tôi chẳng hay biết có một công ty cùng tên. Và không ai có thể bắt tôi phải đổi tên đứa con của mình", Koçulu ngạo nghễ viết.


Koçulu xóa bỏ Kik khỏi NPM cùng các đoạn các đoạn code khác vĩnh viễn.

Mặc dù Koçulu giữ bản quyền của Kik, CEO của NPM, Isaac Schlueter, đã tước quyền sở hữu của anh đối với module trên mà không hỏi ý kiến. Tức giận, Koçulu tuyên bố trên blog rằng anh sẽ xóa bỏ Kik khỏi NPM vĩnh viễn, cùng với các đoạn code khác của anh.

Vấn đề là tuy Koçulu đã tạo ra một module NPM bình thường và cơ bản nhưng lại rất phổ biến gọi là "npm left-pad". Đó là 11 dòng code dài và thực sự không có gì phức tạp nhưng đã được tải xuống 575.000 lần. Và khi nó biến mất, các lập trình viên của Reddit, Twitter và nhiều nơi khác đã thấm đòn ngay tức khắc.

Hiệu ứng domino

Mọi chuyện đã trở nên lộn xộn như thế nào?

Một module kiểu như npm left-pad về cơ bản có tính năng giống như một phím tắt để lập trình viên không phải viết một đống code lằng nhằng và dựa trên đó để phát triển phần mềm nhanh hơn. Nếu một lập trình viên dùng NPM module, điều này đồng nghĩa với việc "viết đoạn code này sau" và người viết phần mềm chỉ cần tải đoạn code này xuống khi thích hợp.

Mặc dù việc phát triển phần mềm theo quy trình này tương đối thuận tiện, nó đã tạo ra một hệ thống domino nguy hiểm. Một module Node.js được phát triển dựa trên một module khác, module này lại được phát triển dựa trên một module khác nữa. Cứ thế, mọi chuyện vẫn hoạt động bình thường cho đến khi npm left-pad bị xóa xổ.


Npm left-pad bị xóa xổ dẫn đến một loạt phần mềm bị gián đoạn và không thể hoạt động.

Bùm, cả chuỗi domino đã sụp đổ. Các dự án phần mềm phổ biến như Babel, giúp Facebook, Netflix, và Spotify chạy code nhanh hơn, và React, giúp các nhà phát triển phần mềm xây dựng giao diện tốt hơn, đột nhiên bị gián đoạnkhông thể hoạt động được nữa. Tổng cộng, hơn 1000 dự án phần mềm đã bị ảnh hưởng.

Khắc phục vấn đề này đòi hỏi các lập trình viên phải loại bỏ sự phụ thuộc dây chuyền trên và đảm bảo rằng không còn thứ gì bị ràng buộc với 11 dòng code ngớ ngẩn kia nữa.

Và vì thế, trước sự hoảng loạn của các nhà phát triển phần mềm trên toàn thế giới, NPM đã buộc phải có giải pháp gỡ bỏ sự ràng buộc giữa các module lập trình và đưa ra hệ thống sở hữu bản quyền tách biệt hơn.

Sau tất cả, cơn bão đã chấm dứt, và npm left-pad đã hoạt động trở lại. Nhưng những vết thương do nó gây ra thì vẫn còn nhức nhối. Có người đã tự hỏi "Phải chăng chúng ta đã quên cách lập trình rồi ư?" và hối thúc các lập trình viên xem xét lại quy trình phát triển ứng dụng của mình.

Koçulu thì nói rằng "Mặc dù tôi cảm thấy có lỗi vì đã làm ảnh hưởng đến công việc của nhiều người, điều tôi làm thực ra lại có lợi cho cộng đồng trong dài hạn. NPM sẽ không còn duy trì được sự độc quyền trong cộng đồng phần mềm nữa".

Loading...
TIN CŨ HƠN
Cuộc đời dị thường của nhà khoa học Nikola Tesla

Cuộc đời dị thường của nhà khoa học Nikola Tesla

Trong lịch sử, chúng ta luôn ghi nhận Thomas Edison là nhà phát minh vĩ đại nhất trừ trước đến giờ tuy nhiên ngay trong thời đại của ông cũng có một nhà phát minh tài năng không kém. Đó chính là Nikola Tesla.

Đăng ngày: 18/02/2025
Acsimet - nhà bác học vĩ đại của Hy Lạp cổ

Acsimet - nhà bác học vĩ đại của Hy Lạp cổ

Archimedes của Syracuse là một nhà toán học, nhà vật lý, kỹ sư, nhà phát minh, và một nhà thiên văn học người Hy Lạp. Dù ít chi tiết về cuộc đời ông được biết, ông được coi là một trong những nhà khoa học hàng đầu của thời kỳ cổ đại.

Đăng ngày: 11/02/2025
Thời thơ ấu của những thiên tài vĩ đại

Thời thơ ấu của những thiên tài vĩ đại

Tác giả của những phát minh vĩ đại, những đóng góp to lớn cho lịch sử nhân loại. Newton, Einstein, Napoleon được cả thế giới biết đến như những người hùng thực sự. Tuy nhiên đằng sau sự tài năng đó, họ ẩn chứa những tuổi thơ bình dị hay khác thường mà chúng ta rất đáng tìm hiểu.

Đăng ngày: 16/01/2025
Thomas Edison & những phát minh vĩ đại

Thomas Edison & những phát minh vĩ đại

Thomas Edison là nhà khoa học, nhà sáng chế và một thương nhân đã phát minh ra rất nhiều thiết bị có ảnh hưởng tới cuộc sống của chúng ta.

Đăng ngày: 31/12/2024
Những nhà khoa học lỗi lạc nhất trong lịch sử

Những nhà khoa học lỗi lạc nhất trong lịch sử

Các nhà khoa học là những người rất quan trọng đối với nhân loại. Nhờ có những phát minh, công trình nghiên cứu của học mà thế giới mới phát triển như ngày nay.

Đăng ngày: 11/11/2024
Top 11 phát minh làm rạng danh người Việt

Top 11 phát minh làm rạng danh người Việt

Người Việt ở khắp nơi trên thế giới luôn mang lại niềm tự hào cho dân tộc bằng nhiều phát minh khoa học có ý nghĩa to lớn với nhân loại.

Đăng ngày: 24/10/2024
Cuộc đời của những thần đồng bất hạnh trong thế kỷ XX

Cuộc đời của những thần đồng bất hạnh trong thế kỷ XX

Tài năng của những thần đồng này được bộc lộ ngay từ khi còn rất nhỏ... tuy nhiên chúng cũng bị chôn vùi và lụi tàn.

Đăng ngày: 28/09/2020
Tiêu điểm
Khoa Học News