Những dòng code nhỏ làm biến đổi cả thế giới

Đăng bởi Pham Danny
Thứ Sat,
06/11/2021

Khởi đầu từ những dòng code nhỏ này, email, tàu vũ trụ Apollo 11, trình duyệt web, Google, Bitcoin và nhiều điều khác nữa đã được tạo ra và thay đổi hoàn toàn thế giới từ đó đến nay.

Năm 2009, chỉ bằng một đoạn code nhỏ, Facebook đã làm thay đổi thế giới mạng xã hội khi đưa vào một tính năng mới: nút "like". Công ty lúc đó đã mường tượng về viễn cảnh người dùng Facebook thường bận rộn đến mức không thể để lại các bình luận bằng text dưới bài đăng của bạn bè và họ cần một phím bấm đơn giản để đánh dấu sự quan tâm của mình. "Boom" - nó đã thay đổi cách mọi người tương tác với nhau trên mạng xã hội ngày nay.

Ước tính đến năm 2012, nút "Like" đó đã được bấm đến hơn 1.000 tỷ lần. Nhưng nó cũng mang lại các tác dụng phụ ngoài ý muốn: Mọi người đăng tải một bức ảnh và một cách vô thức, ngồi bấm F5 liên tục để nhìn số "like" tăng lên. Rồi sau đó, chúng ta sẽ thắc mắc tại sao ai đó lại có nhiều like thế kia. Và rồi một cuộc đua ngầm diễn ra, chúng ta sẽ dần thay đổi thói quen online của mình: cố gắng tỏ ra vui nhộn hơn hoặc sâu sắc hơn, … tất cả chỉ để có được nhiều like hơn cho mỗi bài đăng.

Đó chỉ là một trong vô vàn các ví dụ hiện tại cho thấy các dòng code đang định hình lại cuộc sống của chúng ta như thế nào. Chúng tồn tại như một thế giới ngầm cạnh chúng ta, nhưng hiếm khi chúng ta thấy được chúng và thậm chí chúng còn quá bí hiểm đối với đại đa số người dùng thông thường, những người sử dụng chúng hàng ngày.

Dưới đây là những dòng code đơn giản, nhưng sau khi xuất hiện, chúng đã làm thay đổi thế giới mà chúng ta từng biết trước đây.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 1.

 

Trái với suy nghĩ của mọi người, việc lập trình mã nhị phân đã có từ lâu trước cả khi máy tính xuất hiện. Basile Bouchon được tin là người đầu tiên đục lỗ trên giấy và dùng nó để điều khiển một cỗ máy khi vào năm 1725, ông phát minh ra khung dệt có thể dệt theo mô hình có sẵn dựa vào câu lệnh được nạp vào thông qua các tờ giấy đục lỗ sẵn. Lỗ đục trên tờ giấy là "1" còn phần không đục là "0". Trải qua hàng trăm năm, nhiều thứ đã thay đổi nhưng các viên gạch cơ bản cho lập trình vẫn giữ nguyên như vậy.

 

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 2.

 

Trước tiên phải kể đến sự xuất hiện của máy tính điện tử lập trình được đầu tiên trên thế giới: máy tính ENIAC (viết tắt của Electrical Numerical Integrator and Computer). Hoàn thành vào năm 1945, nó có khả năng cấu hình cho mỗi vấn đề bằng cách nối dây giữa nhiều thành phần của nó.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 3.

Một vài năm sau, Klára Dán von Neumann và nhà khoa học Nicholas Metropolis của phòng thí nghiệm Los Alamos đã kết nối ENIAC để chạy dòng code hiện đại đầu tiên trên thế giới: hàng trăm câu lệnh số học được thực thi từ một bộ nhớ chỉ có thể đọc.

Với các câu lệnh này, họ mô phỏng được vụ nổ của một số thiết kế bom nguyên tử đang được đánh giá tại phòng thí nghiệm Los Alamos theo một hệ thống phức tạp và lập bản đồ phân phối xác suất về các kết quả có thể xảy ra. Cho đến hiện nay, những thế hệ kế tiếp nhau của khoảng 20.000 thẻ lệnh này vẫn được sử dụng tại Los Alamos.

 

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 4.

Cuối năm 1961, một nhóm sinh viên và nhân viên trẻ của MIT bắt đầu được tiếp cận máy tính DEC PDP-1 vào buổi đêm. Đó là máy tính dân sự hàng đầu lúc đó với giá 120.000 USD (hơn 1 triệu USD ngày nay), với độ dài câu lệnh tới 18-bit và sử dụng băng giấy làm bộ nhớ lưu trữ.

Trong suốt 5 tháng, các lập trình viên trẻ tuổi này đã tạo nên trò chơi điện tử đầu tiên - Spacewar - dành cho 2 người chơi cùng điều khiển các con tàu không gian tham gia vào trận chiến trong khi phải tránh né trọng lực của một ngôi sao ở giữa màn hình.

Spacewar - Trò chơi điện tử đầu tiên trên thế giới 

Spacewar nhanh chóng phát tán trong cộng đồng "hacker" đầu tiên và sau đó được hãng DEC phân phối trong mỗi máy tính PDP-1. Trò chơi này ảnh hưởng đáng kể đến cộng đồng lập trình viên vào những năm 60 và truyền cảm hứng cho nhiều thế hệ trò chơi điện tử sau này. Với ảnh hưởng của mình, nó đã được đưa vào Viện bảo tàng Lịch sử Máy tính và thường xuyên trình diễn trên chiếc máy tính PDP-1 cuối cùng. 

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 6.

Năm 1961, các hacker của Học viện MIT đã tạo ra một hệ thống cho phép hàng loạt người dùng đăng nhập vào cùng một máy tính và họ bắt đầu để lại các tin nhắn ngắn cho nhau. Năm 1965, một nhóm các coder quyết định tạo nên một hệ thống câu lệnh chính thức cho việc gửi, nhận và hiển thị các thông điệp kỹ thuật số nhỏ này.

Ban đầu những người cấp cao hơn chống lại việc sử dụng câu lệnh "MAIL" này và cho rằng nó hơi phù phiếm. Nhưng sau đó việc sử dụng thành công đến nỗi vào năm 1971, thậm chí MIT còn nhìn thấy tin nhắn rác đầu tiên trên thế giới: Một thông điệp chống Chiến tranh Việt Nam.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 7.

Máy tính dẫn đường trên tàu Apollo 11 AGC là một điều kỳ diệu: nó có sức mạnh tính toán còn yếu hơn cả một thiệp chúc mừng hiện nay, thế nhưng nó hiệu quả một cách đáng kinh ngạc.

Trên tàu vũ trụ, không gian lưu trữ và năng lượng hoạt động của máy tính đều bị giới hạn, nghĩa là mỗi tác vụ phải được tính toán cẩn thận để AGC – máy tính dẫn đường của tàu Apollo 11 – luôn tập trung vào nhiệm vụ quan trọng nhất. Nếu nó hết bộ nhớ để thực hiện tác vụ, nó sẽ không thể làm được gì.

Nhóm phát triển AGC biết rằng, điều này có thể xảy ra mà họ không ngờ tới. Vì vậy, họ tạo ra BAILOUT. Khi máy tính có nguy cơ hết dung lượng (hoặc tràn bộ nhớ), AGC sẽ kích hoạt BAILOUT để lập lịch cho các hoạt động ít quan trọng hơn và vì vậy, nó có thể tiếp tục xử lý các tác vụ quan trọng khác.

Hóa ra sự cẩn thận này không hề thừa. Khi tàu đổ bộ Eagle cách bề mặt Mặt Trăng khoảng 9km, máy tính AGC phát ra tín hiệu cảnh báo "1202" – lỗi cho biết máy tính sắp quá tải – mà các phi hành gia không hề biết. Câu lệnh BAILOUT được kích hoạt và AGC bỏ qua các nhiệm vụ không quan trọng để tập trung vào các công việc quan trọng hơn. Phải đến 30 giây sau, những người điều phối dưới Trái đất mới nhận ra phần mềm trên AGC đã làm tốt như thế nào. Sau đó, BAILOUT còn giải cứu cho AGC thêm 3 lần nữa trước khi Neil Armstrong đặt chân lên Mặt Trăng.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 8.

Mỗi khi bạn bắt tay vào học một ngôn ngữ lập trình nào mới, hướng dẫn đầu tiên bạn làm là khiến máy tính hiển thị dòng chữ "Hello, World" (Xin chào thế giới). Nó trở nên nổi tiếng khi hiện diện trong hướng dẫn về Ngôn ngữ lập trình C vào năm 1974, nhưng lần xuất hiện sớm nhất của nó được ghi nhận từ năm 1972 trong hướng dẫn của B, một ngôn ngữ lập trình khác.

"Hello World" là một câu lệnh đẹp đẽ cho phương pháp sư phạm. Một tác vụ nhỏ, đơn giản và mang lại cảm giác mọi người có thể làm được. Dần dần nó trở thành tiêu chuẩn khi trở thành một giải pháp dễ dàng và thân thiện giúp minh họa sự khác nhau giữa các ngôn ngữ lập trình. Hơn nữa, nó cũng giúp các lập trình viên đảm bảo mọi thứ hoạt động chính xác khi cài đặt một môi trường mới.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 9.

Năm 1972, Dennis Ritchie đã đưa ra một quyết định định mệnh: biểu diễn văn bản bằng ngôn ngữ lập trình mới của mình với một thứ được gọi là chuỗi kết thúc null (null-terminated string). Ý tưởng về nó đã có từ trước đó nhưng Ritchie đưa nó vào trong ngôn ngữ lập trình mới của mình, được gọi là C và di sản của nó đã đi cùng chúng ta từ thời điểm đó đến nay.

Có 2 cách chính để các ngôn ngữ lập trình biểu diễn một đoạn văn bản: nó có thể có độ dài rõ ràng – như "chứa chính xác 10 ký tự không hơn". Hoặc nó kết thúc bằng null – "Đây là một loạt ký tự, hãy tiếp tục cho đến khi bạn đạt tới byte-zero ở cuối, chúc may mắn".

Một sai lầm cực kỳ phổ biến trong lập trình C là sao chép một chuỗi dài thành một chuỗi ngắn hơn và làm tràn phần cuối của chuỗi – có nghĩa là bạn đang phá hủy dữ liệu khác vừa mới sinh ra ở gần đó. Nó giống như việc viết nguệch ngoạc ra bên ngoài mép bảng trắng.

Không chỉ khiến chương trình hoạt động sai, các lỗi như vậy còn có thể bị khai thác để thay đổi hành vi của một chương trình bằng cách thuyết phục nó cho phép ghi đè lên bằng một dữ liệu khác. Đây chính là phương pháp tấn công tràn bộ nhớ đệm nổi tiếng, gần như mọi cách khai thác bảo mật bạn từng biết đến đều khởi đầu bằng kiểu tấn công này, hiện diện đầu tiên với sâu Morris Worm vào năm 1988. Với C và C++ vẫn đang là nền tảng của thế giới, các lỗ hổng này đã song hành cùng chúng ta suốt 50 năm qua.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 10.

Internet Relay Chat hay nổi tiếng với cái tên IRC, chương trình trò chuyện xuất hiện từ trước khi đa số mọi người biết internet là gì. Nó là chương trình phổ biến đầu tiên cho phép mọi người chat nhóm với nhau. Để tham gia vào một kênh chat nào đó, người dùng phải gõ một dòng lệnh như "/join #[tên kênh chat]".

Nếu bạn muốn biểu lộ điều gì đó về bản thân mình, bạn có thể gõ "/me is so tired," và nó sẽ chia sẻ tên bạn cùng với từ "so tired" cạnh một dấu sao. Nó vẫn rất cơ bản nhưng đây chính là điểm khởi đầu cho các ứng dụng trò chuyện tức thời cũng như việc sử dụng câu lệnh trên máy tính ngày nay.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 11.

Cả Robert Morris và internet đều đang trẻ tuổi khi "Sâu Morris" phát động cuộc tấn công lớn đầu tiên trên internet vào năm 1988. Khoảng 10% trong tổng số 60.000 máy tính có kết nối internet lúc đó đã bị tấn công, gây ra thiệt hại hàng triệu USD và đã khiến tờ New York Times lần đầu phải nhắc đến từ "Internet". Ngay cả những người hiểu biết về công nghệ lúc đó cũng bất ngờ về mức độ tàn phá lan rộng của loại sâu máy tính này.

Thậm chí Morris, khi đó mới chỉ là một sinh viên 23 tuổi của trường Cornell khi viết nên sâu máy tính này, cũng không ngờ nổi tác hại khủng khiếp của nó. Điều này khiến Morris trở thành cái tên đầu tiên bị truy tố theo Đạo luật Lạm dụng và Lừa đảo Máy tính của Mỹ. Sau khi bị kết án quản chế 3 năm, Morris trở thành nhà đồng sáng lập vườn ươm startup nổi tiếng Y-Combinator và là trợ lý giáo sư về khoa học Máy tính tại trường MIT. 

 

 

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 12.

Ngài Tim Berners-Lee đã thay đổi thế giới khi giới thiệu hyperlink, một đoạn code ngắn gọn giúp bất kỳ ai cũng có thể truy cập vào thế giới Web. Ý tưởng liên kết thông tin không hề mới, nhưng điều đặc biệt nằm ở việc ghép nối dấu câu theo quy ước của nhiều hệ thống máy tính với nhau để đi tới định dạng "//" trên thanh URL và sau đó là tên của các thành phần khác trong liên kết.

Lúc đó ông Berners-Lee vẫn còn lo ngại về khả năng tương thích ngược, khái niệm siêu liên kết đã đặt nền móng cho các thành tựu khác trong tương lai như nút BUY NOW, các lượt thích, lượt tweet và còn hơn thế nữa. Sự lo ngại của ngài Berners-Lee cho thấy, khi bạn đứng ở đỉnh cao của một cuộc cách mạng công nghệ, điều khó nhất là dự đoán được điều gì xảy ra tiếp theo.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 13.

Giờ đây việc mỗi người lưu trữ hàng nghìn bức ảnh khác nhau là điều quá bình thường, nhưng trước đây, mỗi hình ảnh từng tiêu tốn một lượng lớn dữ liệu. Điều này thay đổi vào năm 1992 khi tổ chức Joint Photographic Experts Group công bố các thông số của một tiêu chuẩn mới – JPEG – để dữ liệu mỗi hình ảnh nhỏ hơn. Mặc dù lúc đó cũng có nhiều định dạng ảnh nén khác, nhưng JPEG nhanh chóng trở thành tiêu chuẩn trên toàn cầu, một phần vì miễn phí bản quyền.

JPEG tận dụng được định dạng nén mất dữ liệu (lossy compression) – quá trình loại bỏ một số chi tiết trên hình ảnh mà mắt người không nhận ra được chẳng hạn như các biến đổi nhỏ về màu sắc. Sau này định dạng nén mất dữ liệu cũng tạo tiền đề cho một cải tiến khác vào năm 1992: file nhạc MP3 – định dạng âm thanh loại bỏ bớt một số dữ liệu mà tai người không thể phát hiện được.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 14.

Các trình duyệt trước Mosaic thường hiển thị khá phức tạp. Dù nó xử lý khá tốt phần văn bản, bạn buộc phải xem hình ảnh ở một cửa sổ riêng biệt. Nhóm hacker Mosaic, đứng đầu là Marc Andressen, muốn một trình duyệt sắp xếp hình ảnh và text ngay cạnh nhau. Họ làm cho web trở nên thân thiện, như một tờ báo hoặc một tạp chí kỹ thuật số. Cuối cùng Mosaic cũng thúc đẩy các chuẩn HTML phát triển vượt bậc khi các nhà quản trị web trên toàn thế giới bắt đầu yêu cầu nhiều thẻ tag hơn để làm các trang web trông bắt mắt hơn.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 15.

Các đoạn code HTML nhỏ xíu này gần như không nhìn được, nhưng chúng là nền tảng cho cả ngành công nghiệp quảng cáo kỹ thuật số, khiến chúng trở thành trung tâm cho hàng loạt vấn đề hiện đại: giám sát, theo dõi, hợp nhất ngành truyền thông và thậm chí cả tin giả.

Mục đích ban đầu của các hình ảnh trong suốt 1 pixel này là để điều chỉnh layout của trang web. Nhưng dần dần, các công ty biết rằng bằng cách tải xuống các pixel này, họ biết được ai đang truy cập và họ ở đâu, cũng như kích hoạt một cookie được tải xuống. Cookie đó cho phép nhà quảng cáo theo dõi mọi hành động của bạn trên web. Từ đó nó dẫn đến nút Like trên Facebook – một công cụ theo dõi trên mọi website nó được nhúng vào – và mang lại hàng tỷ USD doanh thu cho các công ty truyền thông.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 16.

Ông Ward Cunningham lần đầu phát minh ra Wiki khi giới thiệu trang web WikiWikiWeb, như một cách đơn giản nhất có thể để chia sẻ thông tin. Ông sử dụng một ngôn ngữ đánh dấu cơ bản, bao gồm các dấu ngoặc đơn, xâu chuỗi các từ với nhau mà không có dấu cách và dấu nháy đơn xung quanh văn bản, giúp các nhà biên tập có thể cập nhật và tổ chức thông tin liên kết giữa các trang - một hệ thống vẫn được sử dụng rộng rãi ngày nay trên các trang wiki, bao gồm cả Wikipedia ra mắt vào năm 2001.

Giao diện dễ truy cập biến wiki trở thành một công cụ đắc lực cho một trong số các hình thức cộng tác tích cực nhất trên internet, từ theo dõi các lỗi bảo mật cho đến ghi chú. Nhưng cũng giống như mọi công cụ có thể chỉnh sửa trực tuyến, wiki dễ bị phá hoại và gây tranh cãi về những gì nên hay không nên đăng tải. Đó là lý do tại sao Wikipedia đưa vào cả các trang thảo luận và các quy tắc về cách người biên tập có thể thêm thông tin mới. 

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 17.

Trước PageRank, các cỗ máy tìm kiếm chỉ cố gắng tìm thông tin dựa trên việc từ khóa có khớp với từ có sẵn trong tài liệu hay không. Nhưng hai nhà sáng lập của Google, Larry Page và Sergey Brin, họ đã có một ý tưởng tuyệt vời: tri thức là xã hội – và tìm kiếm cũng vậy. Họ tạo ra PageRank, thuật toán xếp hạng mức độ liên quan của trang web dựa trên việc có bao nhiêu trang liên kết với nó.

Không chỉ tìm kiếm, thuật toán này đã cách mạng hóa cách nhân loại sắp xếp tri thức của mình trên internet. Với vai trò của mình trong việc sắp xếp thứ hạng trên internet, thuật toán này đã đặt nền móng cho Google để trở thành một người khổng lồ công nghệ như ngày nay.

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 18.

Đến hiện tại, cho dù bạn là người lạc quan, nghi ngờ hay chẳng hiểu gì về Bitcoin, bạn đều thấy rằng, đồng tiền số này đã nổi tiếng toàn cầu. Dù nó có thực sự hữu dụng hay không vẫn đang có hàng nghìn tỷ USD trên toàn thế giới trực tiếp rót vào nó. Nhưng điều quan trọng hơn cả là công nghệ nền tảng bên dưới đồng tiền số này – chuỗi blockchain – đã được nghiên cứu cho vô số các ứng dụng thực tế khác nhau, từ bầu cử cho đến loại bỏ các công việc giấy tờ tốn kém.

Mọi việc bắt đầu từ năm 2008, khi nhà sáng tạo ẩn danh Satoshi Nakamoto công bố sách trắng về việc ra mắt Bitcoin. Các dòng code này cho thấy khả năng vô cùng thấp của việc một ai đó tấn công và chiếm lấy chuỗi blockchain Bitcoin. Vì thế nó đã thuyết phục thế giới rằng một hệ thống tạo nên từ những người không quen biết, không đáng tin cậy, có thể trở nên đáng tin cậy như thế nào. Từ đây, Bitcoin đã mở đường cho việc tạo ra gần 3.000 đồng tiền số khác nhau cho đến nay.

 

Những dòng code nhỏ làm biến đổi cả thế giới - Ảnh 19.

Được Facebook tạo ra như một cách đơn giản, nhanh gọn thể hiện sự đồng tình của người dùng với một nội dung nào đó trên mạng xã hội này, nhưng cuối cùng, nút Like đã tận dụng sự thành kiến nhận thức của người dùng cũng như sức mạnh thiết kế để thúc đẩy chúng ta chia sẻ nhiều thông tin hơn nữa.

Kết hợp với công nghệ pixel theo dõi đã nói ở trên, nút Like cho phép Facebook đi theo chúng ta khắp mọi nơi trên internet và thu thập mọi dữ liệu về thói quen lướt web của người dùng. Sau đó, Facebook lấy thông tin đó để tạo nên thuật toán xác định hành vi người dùng để bán cho các nhà quảng cáo.

Nếu bạn muốn quảng cáo một sản phẩm ngoài trời nào đó, Facebook sẽ nhắm mục tiêu đến những người từng "like" các bài đăng về đi bộ đường dài, truy cập website cắm trại hoặc có người bạn thích hoạt động ngoài trời. Và khi người dùng "like" một quảng cáo nào đó của công ty, thông tin đó sẽ được phản hồi lại thuật toán của Facebook để củng cố thêm độ tin cậy cho việc nhắm mục tiêu. Tất cả chỉ vì một ngón tay màu xanh lam.

Gửi bình luận của bạn:
popup

Số lượng:

Tổng tiền:

Lọc