Người tạo ra Ruby, Yukihiro Matsumoto (Matz), phát hành phiên bản công khai đầu tiên của ngôn ngữ lập trình vào tháng 12 năm 1995khiến Ruby sắp bước sang tuổi 30. Nó lan rộng khắp các nhóm tin Usenet tiếng Nhật, một cách phổ biến để trao đổi hội thoại và phương tiện truyền thông trước World Wide Web, và sau đó tiếp cận các cộng đồng rộng lớn hơn trong suốt cuối những năm 1990.
Điều này là nhờ cộng đồng thân thiện của Ruby và một phần không nhỏ là nhờ Matz. (Cộng đồng có phương châm, “Matz rất tốt, và vì vậy chúng tôi cũng tốt.”) Tại Ruby Konferenze châu Âu hàng năm — EuRoKu — ở Sarajevo, Matz cho biết anh tạo ra Ruby vì anh “lười biếng và đầy kiêu ngạo”.
Điều đó nghe có vẻ không phải là lời biện minh cho việc tạo và duy trì một ngôn ngữ lập trình trong 30 năm, nhưng đó là dấu hiệu cho thấy sự khiêm tốn đầy chế nhạo của anh ấy đã nuôi dưỡng Ruby và giữ cho nó trở thành một cộng đồng luôn chào đón trong nhiều thập kỷ.
30 năm lịch sử Ruby
Ngôn ngữ lập trình xuất hiện khi sự phát triển nhanh chóng của các công nghệ liên quan đến web bao gồm các ngôn ngữ nhẹ, dễ học và dễ chạy hơn như PHP và Python. Mặc dù cả ba ngôn ngữ đều có vô số cách sử dụng khác nhau, nhưng thời gian và các yếu tố bên ngoài thường khiến chúng trở nên phổ biến rộng rãi hơn. Đối với Ruby, đây là Đường ray khuôn khổ vào năm 2004 và hai cuốn sách – của Dave Thomas Lập trình viên thực dụng vào năm 1999 và TẠI SAO (sâu sắc) Hướng dẫn về Ruby vào năm 2005*.
Mặc dù cuốn sách của Thomas không đề cập chi tiết về Ruby nhưng nó có đề cập đến nó và tác giả tiếp tục quảng bá ngôn ngữ này trong nhiều năm sau khi xuất bản nó. Nhìn chung, cuốn sách đã thành công lâu dài và góp phần làm tăng sự quan tâm đến Ruby trong thời kỳ đầu ra đời.

💜 của công nghệ EU
Những tin đồn mới nhất từ bối cảnh công nghệ EU, câu chuyện từ người sáng lập thông thái Boris của chúng tôi và một số tác phẩm nghệ thuật AI đáng nghi vấn. Nó miễn phí hàng tuần trong hộp thư đến của bạn. Đăng ký ngay bây giờ!
Đôi khi, Ruby on Rails giống như một điều may mắn và một lời nguyền đối với chính Ruby. Đối với nhiều nhà phát triển, họ là một và giống nhau. Các sự kiện Rails thường có nhiều người tham dự hơn. Nhiều tính năng và thay đổi gần đây trong Ruby được đưa lên từ Rails.
Cuối cùng, người tạo ra Rails và người sáng lập 37Signals, David Heinemeier Hansson (DHH), là một cái tên được biết đến nhiều hơn trong cộng đồng công nghệ và lập trình rộng lớn hơn và có tiếng nói lớn trên mạng. Một người tham dự EuRoKu mà tôi đã nói chuyện đã nói rằng mặc dù cộng đồng không muốn thừa nhận điều đó nhưng hai dự án có mối liên hệ chặt chẽ với nhau.
Nhiều trang Web 2.0 xuất hiện vào đầu những năm 2000 chạy trên Rails và nhiều trang vẫn chạy (ít nhất một phần), bao gồm Airbnb, GitHub, Twitter (nay là X), Netflix và Shopify (một nhà tài trợ và đóng góp lớn khác cho Ruby). Rails đã giới thiệu nhiều tính năng mà bất kỳ nhà phát triển lớn tuổi nào (như tôi) sẽ nhớ chúng đã mang tính đột phá như thế nào và nhiều nhà phát triển trẻ giờ đây sẽ coi đó là điều hiển nhiên. Là một nhà phát triển PHP Drupal vào thời điểm đó, tôi nhớ mình đã ghen tị khi nhìn vào các tính năng như tạo, quản lý và di chuyển bảng cơ sở dữ liệu.
Mặc dù tính năng theo dõi cụm từ tìm kiếm và sở thích của Rails chỉ bằng một phần tư so với trước đây nhưng mức sử dụng thực tế vẫn gần đạt mức cao nhất. Điều này cho thấy nhiều nhà phát triển sử dụng nó đều ở cấp cao và phần lớn biết họ đang làm gì.
Cuộc khảo sát Planet Argon năm 2024 xác nhận điều này: gần 70% số người được hỏi có hơn 7 năm kinh nghiệm và đã chạy ứng dụng của họ trong khoảng cùng một khoảng thời gian. Tôi không biết có bao nhiêu mới các dự án chọn Rails, nhưng có đủ những dự án có sẵn để duy trì sự quan tâm lành mạnh cho một dự án 20 năm tuổi.
Nếu bạn loại bỏ mức độ quan tâm cao nhất trong vài năm của Ruby sau khi Rails phát hành, thì Ruby vẫn phổ biến như 30 năm trước. Theo thống kê của Tiobenó phổ biến hơn một chút. Cuộc khảo sát về Tràn ngăn xếp năm 2023 xếp mức độ phổ biến của Ruby ở mức 16 trên 50 ngôn ngữ và một cuộc khảo sát của IEEE từ năm 2024 Và PYPL báo cáo về điều tương tự.
Thật dễ dàng để đưa ra những so sánh thống kê tiêu cực hoặc không chính xác với một đốm sáng chưa từng có, nhưng hãy trừu tượng hóa chúng theo thời gian và bạn sẽ thấy một câu chuyện khác.
Mọi ngôn ngữ có bề dày lịch sử vài thập kỷ đều có mức độ kỹ thuật hoặc cộng đồng nhất định và tôi cũng có ấn tượng tương tự với Ruby nói chung và tại sự kiện EuRuKo. Cộng đồng này rất thân thiện và nồng nhiệt nhưng chứa đầy những tài liệu tham khảo và những cái tên chẳng có ý nghĩa gì với tôi. Đúng là tất cả các cộng đồng đều làm điều này ở một mức độ nào đó và có thể các sự kiện khác hỗ trợ những người mới đến, nhưng có rất ít cuộc nói chuyện ở cấp độ mới bắt đầu.
30 năm tiếp theo
Nhưng quá khứ xa xôi đã đủ rồi. Ruby gần đây đã thêm, thay đổi hoặc lên kế hoạch gì để khiến các nhà phát triển hiện tại quan tâm và có thể thu hút những nhà phát triển mới?
Ruby là một ngôn ngữ thông dịch, nghĩa là nó được chuyển đổi từ mã con người có thể đọc được sang mã máy có thể chạy được khi chạy, thường là trong một máy ảo chạy trên máy vật lý. Một lời chỉ trích hiện đại đối với Ruby và tất cả các ngôn ngữ được dịch là chúng quá chậm so với quy mô của các ứng dụng hiện đại.
Ruby có một trình thông dịch mặc định, CRuby (trước đây là “Matz’s Ruby Interpreter”), giúp dịch mã thành các hướng dẫn do máy ảo Ruby chạy. Nhưng Ruby và cộng đồng đã bổ sung thêm các trình thông dịch thay thế và hiệu quả hơn, đặc biệt là trong vài năm qua, bao gồm nhiều tùy chọn trình biên dịch “đúng lúc” (JIT), đây là một kỹ thuật phổ biến để mang lại tốc độ mã được biên dịch cho các ngôn ngữ được thông dịch.
Các ngôn ngữ lập trình khác, chẳng hạn như C, C++ và Rust, là các ngôn ngữ được biên dịch, biến mã mà con người có thể đọc được thành mã mà máy có thể đọc được trước khi chạy. Mặc dù không được thiết kế chủ yếu để chạy dưới dạng ngôn ngữ được biên dịch, nhưng các tùy chọn khác đều có thể thực hiện được với Ruby.
Tuy nhiên, việc biên dịch ngôn ngữ không có gì mới và như tôi đã đề cập trong phần tổng kết KubeCon EU, WebAssembly (WASM) là hiện tại đối với một số người và là tương lai đối với nhiều người. Về cơ bản, WASM cho phép bạn chạy các ngôn ngữ được hỗ trợ trong trình duyệt (nhưng hiện tại cũng cung cấp nhiều ngôn ngữ hơn, có thể đó là bài đăng trong tương lai), đưa các ứng dụng phức tạp và mạnh mẽ lên trình duyệt. Kể từ năm 2022, Ruby đã có thể biên dịch sang WASM. Nếu bạn đã sử dụng Mastodon trong trình duyệt thì đó là ứng dụng Ruby on Rails chạy dưới dạng WASM.
Khi Ruby bắt đầu hoạt động, nguyên khối là mẫu kiến trúc ứng dụng phổ biến – một cơ sở mã lớn được viết bằng một ngôn ngữ xử lý tất cả chức năng và dịch vụ. Trong những năm gần đây, microservice đã trở thành thiết kế kiến trúc phổ biến hơn, ít nhất là trong thế giới lý tưởng.
Thay vì một cơ sở mã lớn, đa chức năng, đơn ngữ, một ứng dụng được chia thành nhiều mảng cơ sở mã và ngôn ngữ giao tiếp với nhau. Ruby chưa bao giờ thực sự được thiết kế với kiến trúc này và bạn có thể theo dõi sự suy giảm của nó theo các đường song song với sự gia tăng của các dịch vụ vi mô.
Trong những năm gần đây, Ruby đã bổ sung thêm các tính năng để theo kịp những thay đổi có thể gây ngạc nhiên hoặc thu hút các nhà phát triển không phải Ruby. Chúng bao gồm mã không đồng bộ và mã luồng, cho phép các ứng dụng giao tiếp đồng thời với các ứng dụng và dịch vụ khác.
Nhiều ngôn ngữ hiện đại hỗ trợ các tính năng này, nhưng cú pháp của Ruby đơn giản hơn JavaScript. Các nhà phát triển tại EuRuKo rất hào hứng với một số tính năng sắp ra mắt khác, tất cả đều tiếp tục bổ sung các tùy chọn sáng tạo để viết mã bằng ngôn ngữ.
Mặc dù nhiều nhà phát triển hiện có thể loại bỏ Ruby như một lựa chọn để bắt đầu, nhưng nó cũng đã truyền cảm hứng trực tiếp và gián tiếp cho nhiều ngôn ngữ khác có thể phù hợp với nhà phát triển sử dụng nhiên liệu vi dịch vụ hiện đại.
thuốc tiênxuất hiện lần đầu cách đây 12 năm, lấy cảm hứng từ Ruby và người tạo ra nó, José Valim, cũng đến từ cộng đồng Ruby. Elixir được tối ưu hóa hơn cho khả năng xử lý đồng thời cao và độ trễ thấp, khiến nó phù hợp với ngành tài chính và viễn thông.
Pha lêđược tạo ra cách đây mười năm, cũng có các thành viên của cộng đồng Ruby là người bảo trì. Cú pháp của nó lấy cảm hứng từ Ruby nhiều hơn nhưng bổ sung thêm các tính năng giúp ngôn ngữ ổn định và đáng tin cậy hơn, bao gồm cả việc chạy như được biên dịch thay vì được thông dịch.
Động cơ cộng đồng
Tại sao các nhà phát triển Ruby lâu năm vẫn sử dụng nó mặc dù có rất nhiều tùy chọn mới và hấp dẫn mà họ có thể lựa chọn? Dave Thomas kể cho tôi nghe về cách anh ấy phát hiện ra Ruby trong số hàng chục ngôn ngữ khác mà anh ấy đã chơi trên các diễn đàn Usenet vào những năm 1990. “Tôi đã rất ngạc nhiên. Tôi đã chơi với Ruby được một ngày. Tôi chơi với nó vào ngày hôm sau. Và tôi tiếp tục chơi với nó sau đó, và nó trở thành ngôn ngữ lập trình tôi lựa chọn khi tôi có quyền lựa chọn.”
Và tại sao Thomas vẫn tiếp tục sử dụng Ruby 30 năm sau? “Ruby cho phép bạn tìm cách thể hiện bản thân mà không cần ra lệnh quá nhiều. Giống như khi bạn viết văn xuôi và đang cố gắng tìm cách diễn đạt và cấu trúc phù hợp cho từ ngữ của mình, Ruby cho phép bạn làm điều tương tự với mã. Bạn có thể thử nghiệm những cách hay để thể hiện mọi thứ chứ không chỉ một cách.”
Tôi không có khả năng chuyển bất kỳ dự án hiện tại nào của mình sang Ruby và tôi cũng không chắc có bao nhiêu nhà phát triển được thành lập bằng các ngôn ngữ khác. Tuy nhiên, một quan điểm mà tôi đã nghe đi nghe lại nhiều lần khi nói chuyện với cộng đồng Ruby là “quyền tự do lựa chọn sáng tạo”.
Nhiều cộng đồng ngôn ngữ lập trình khác có rất nhiều lời khuyên về “cách đúng đắn” để thực hiện mọi việc, tất nhiên là khác nhau, tùy thuộc vào người bạn nói chuyện. Cộng đồng Ruby theo một cách tiếp cận khác, cung cấp các công cụ nhẹ nhàng để giúp bạn tìm ra con đường của riêng mình.
Thế giới kỹ thuật đầy rẫy những xu hướng đến rồi đi và những người nói với bạn rằng những quyết định của bạn đã sai. Nếu cộng đồng Ruby là một trong số ít không đánh giá, thì bất kể xu hướng hay tỷ lệ sử dụng của nó, nó có thể tồn tại lâu dài.
_______
* Nếu bạn chưa đọc hướng dẫn TẠI SAO, nó sẽ được cung cấp miễn phí và bao gồm cả sách lập trình, truyện tranh và hành trình tự nhận thức siêu thực. Vì sự kết hợp kỳ lạ này nên nó gây chia rẽ. Một số người nói rằng đó là cuốn sách duy nhất họ từng học lập trình. Những người khác thấy đó là một mớ hỗn độn hoàn toàn khó hiểu và khó hiểu. Tuy nhiên, phong cách độc đáo và tác giả bí ẩn của nó cũng làm tăng sự quan tâm đến ngôn ngữ này trong những ngày đầu của nó.
Nguồn The Next Web