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

26/03/2016 08:26 PM | Công nghệ

Đâ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ệ.

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

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.

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ổ.

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ạn và khô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”.

Theo Nam Nguyễn

Theo Trí Thức Trẻ

Cùng chuyên mục
XEM

NỔI BẬT TRANG CHỦ

NĐT quỹ Hustle Fund: Sốc vì startup Việt mất nhiều cổ phần từ quá sớm, gợi ý công thức gọi vốn thông minh

Nhận nhiều vốn đầu tư chưa chắc là điều tốt. Đừng bán đi quá nhiều cổ phần ở giai đoạn đầu khi định giá công ty còn thấp. Chỉ có như vậy, bạn mới có thể chắc chắn nhận được phần trả công xứng đáng khi công ty thành công.

Bài học cuộc sống

Biệt đội cano 0 đồng – Những người hùng thầm lặng ở 'rốn lũ' miền Trung

Với 3 cano, 10 thuyền hơi máy và khoảng gần 10 thuyền SUP, Biệt đội cano 0 đồng có thể len lỏi vào ngóc ngách của từng ngôi nhà nhỏ để giải cứu hay cứu hộ người dân ở những nơi hẻo lánh nhất. Rất nhiều những tiếng kêu tuyệt vọng trong đêm nhờ họ mà không trở thành lời nói cuối cùng...

Từ ngày 5/12, trốn thuế có thể bị phạt gấp 3 lần số tiền trốn

Mới đây, Chính phủ vừa ban hành Nghị định số 125/2020/NĐ-CP quy định xử phạt hành chính về thuế, hóa đơn; trong đó quy định phạt tiền từ 1 đến 3 lần số thuế trốn đối với hành vi trốn thuế.

Phía sau hậu trường không-hề-hào-nhoáng của YouTuber Quỳnh Trần JP: Một mình làm mọi việc, ngày chỉ ngủ 3-4 tiếng

Tuy rất yêu công việc YouTuber nhưng Quỳnh Trần JP không ít lần bày tỏ rằng công việc này không hề hào nhoáng, sung sướng, dễ kiếm tiền như mọi người thường nghĩ.

Đọc thêm