6 điểm bởi GN⁺ 2025-12-03 | 2 bình luận | Chia sẻ qua WhatsApp
  • Ruby không phải là một “ngôn ngữ không nghiêm túc”; ngược lại, đây là một ngôn ngữ khiến việc lập trình trở nên nhân văn và thú vị hơn
  • Cộng đồng Ruby thời kỳ đầu khởi đầu như một cuộc nổi loạn nhỏ nhưng đầy vui nhộn, coi trọng sự rõ ràng và khả năng tiếp cận hơn là sự phức tạp
  • Các dịch vụ quy mô lớn như Shopify, Doximity, GitHub đã thực sự vận hành bằng Ruby, cho thấy thành quả thực tế
  • Cốt lõi của Ruby nằm ở trải nghiệm của người viết mã và văn hóa phát triển bền vững, và đó không phải là hoài niệm đơn thuần mà là một thái độ biết ơn và tôn trọng
  • Trong tương lai của phát triển phần mềm, tính dễ đọc, khả năng bảo trì và niềm vui sẽ càng trở nên quan trọng hơn, và giá trị của Ruby vẫn sẽ là một điểm tham chiếu có ý nghĩa

Ruby và khái niệm “nghiêm túc”

  • Câu hỏi “Ruby có phải là một ngôn ngữ nghiêm túc không?” cho thấy sự khác biệt trong nhận thức về lập trình nên mang lại cảm xúc gì
    • Một số người xem công cụ dễ dùng và thú vị là “không nghiêm túc”, nhưng Ruby không chấp nhận định nghĩa đó
  • Những ngày đầu của Ruby tràn đầy một cộng đồng nhỏ và nguồn năng lượng tinh nghịch, cho thấy lập trình không nhất thiết phải mang tính áp lực hay đáng sợ
  • Khi đó, những người chỉ trích chủ yếu là các kiến trúc sư Java hoặc nhà phát triển doanh nghiệp truyền thống, còn cộng đồng Ruby thì không bận tâm và tập trung vào việc xây dựng sản phẩm thực tế

Ngôn ngữ coi trọng khả năng tiếp cận và năng suất

  • Ruby theo đuổi không phải sự đơn giản thuần túy mà là khả năng tiếp cận (approachability), giúp người mới và các nhóm nhỏ có thể phát triển nhanh chóng
    • Thay vì lý thuyết phức tạp, Ruby đề cao đà tiến triển và sự rõ ràng, giúp việc phát triển tiếp diễn mà không bị đè nặng bởi cảm giác bất an
  • Nhờ những đặc tính này, các bootcamp và startup đã chọn Ruby, vì nó phù hợp với môi trường đề cao tốc độ và sự sáng tạo
  • Như trường hợp của Twitter, Ruby đã đóng góp đủ nhiều để giúp công ty tăng trưởng, và việc sau đó chuyển sang công nghệ khác được xem là kết quả của thành công

Độ tin cậy trong thực tiễn và các ví dụ thực tế

  • Trong hàng chục năm kinh nghiệm tư vấn, không có đội ngũ nào thất bại vì chọn Ruby; ngược lại, nguyên nhân thất bại thường là sự phức tạp, do dự và thái độ “quá nghiêm túc”
  • Ruby được đánh giá là một ngôn ngữ không cản trở nhà phát triển, giúp họ tập trung vào công việc cốt lõi
  • Các dịch vụ lớn như Shopify, Doximity, GitHub đang vận hành bằng Ruby, và đó được đưa ra như bằng chứng thực tế (proof) chứ không phải cảm tính

Văn hóa Ruby và triết lý phát triển lấy con người làm trung tâm

  • Ruby thu hút những người coi trọng cảm giác khi viết mã và trải nghiệm khi đọc mã, và đó không phải là hoài niệm mà là một phương thức xây dựng phần mềm bền vững
  • Cộng đồng Ruby đề cao tính biểu đạt và tính lấy con người làm trung tâm, nhắc nhở rằng lập trình là một hoạt động dành cho con người
  • Sự khác biệt với những người thích ngôn ngữ khác là vấn đề sở thích, và Ruby không cố thuyết phục tất cả mọi người

Tương lai của lập trình và vai trò của Ruby

  • Tương lai của phát triển phần mềm sẽ không bị chi phối bởi một ngôn ngữ, một mô hình hay một hệ tư tưởng duy nhất, mà sẽ diễn ra theo dạng pha trộn và linh hoạt
  • Trong thời đại AI viết mã, tính dễ đọc và khả năng bảo trì càng trở nên quan trọng hơn, và trong môi trường nơi burnout đã trở thành điều thường nhật, niềm vui sẽ nổi lên như một giá trị cốt lõi
  • Các giá trị của Ruby như sự rõ ràng, đồng cảm và tính nhân văn không phải là di sản của quá khứ mà sẽ trở thành một chuẩn tham chiếu cho tương lai

Mã nguồn tạo sự cộng hưởng, hơn là “nghiêm túc”

  • Xã hội và kinh doanh thưởng cho sự cộng hưởng (resonance), sự rõ ràng và tính nhân văn nhiều hơn là “sự nghiêm túc”
    • Những ứng viên, nhạc sĩ, nghệ sĩ, startup hay kỹ sư “nghiêm túc” không phải lúc nào cũng thành công
  • Ruby hướng đến mã nguồn cho tập thể, lập trình vì con người, và cách tiếp cận đó giúp ngành công nghiệp giữ được tính nhân văn hơn
  • Những nhà phát triển tò mò và vui tính sẽ đóng vai trò quan trọng trong hệ sinh thái công nghệ tương lai, và Ruby vẫn sẽ là một ngôn ngữ có ý nghĩa trong dòng chảy đó

Kết luận

  • Câu hỏi “Ruby có phải là một ngôn ngữ nghiêm túc không?” là một câu hỏi sai
  • Câu hỏi phù hợp hơn là: “Ruby liệu còn có thể đóng góp có ý nghĩa cho thế hệ phần mềm tiếp theo hay không?”, và câu trả lời là
  • Nếu điều đó có nghĩa là “không nghiêm túc”, thì chính điểm ấy lại là lý do Ruby nên có mặt trong cuộc đối thoại

2 bình luận

 
GN⁺ 2025-12-03
Ý kiến trên Hacker News
  • Tôi cho rằng ví dụ Twitter thường được nêu ra như một lý do để ghét Ruby là không phù hợp
    Ngay cả khi Ruby đúng là nguyên nhân, thì chính lựa chọn đó cũng đã giúp doanh nghiệp khởi đầu và đạt được thành công đầu tiên
    Vấn đề của Twitter không phải do ngôn ngữ, mà do một tình huống đặc thù là fan-out ở quy mô lớn (tweet của người nổi tiếng → hàng triệu người theo dõi)
    Ngoài ra, chẳng ai nhắc đến những startup đã thất bại dù dùng các ngôn ngữ “có thể mở rộng ngay từ đầu” — đó là thiên lệch sống sót điển hình
    Nhìn vào trang tác giả đó trên Wired, có vẻ như họ chủ động viết theo kiểu gây tranh cãi như một chiến lược
    Tôi vẫn sẽ quay lại làm một trong số đông im lặng vẫn đang tạo ra phần mềm hữu ích bằng Ruby
    • Cũng có phản biện rằng “nếu không phải Ruby thì có lẽ đã có thể khởi nghiệp tương tự bằng một ngôn ngữ tốt hơn và tránh được vấn đề”
    • Đã rất nhiều thời gian trôi qua, và Ruby hiện nay hoàn toàn khác với Ruby thời đó
  • Trong bài gốc, tác giả không giải thích cụ thể vì sao lại ghét Ruby
    Chỉ đơn thuần liệt kê những giới hạn trong quá khứ, và rất có thể vấn đề thực ra nằm ở codebase mà họ từng phụ trách
    Trọng tâm của bài đầu tiên là “không có lý do gì để chọn Ruby mới vào năm 2025”, và đó lẽ ra mới phải là trung tâm của cuộc thảo luận
    Bài lần này lại đi theo hướng kêu gọi cảm xúc, và trớ trêu thay, tự nó lại chứng minh cho lập luận ở bài trước rằng Ruby vận hành bằng cảm tính
    Nhiều người thích Elixir xem Ruby là ‘không nghiêm túc’, nhưng bản thân Elixir cũng chịu ảnh hưởng rất mạnh từ Ruby
    • Tôi đã dùng Elixir nhiều năm, và ban đầu cũng từng dùng Ruby
      Nhiều người bị thu hút bởi Elixir vì nó kết hợp cú pháp quen thuộc của Ruby với nền tảng hàm
      Đặc biệt, nhờ runtime BEAM mà đặc tính vận hành hoàn toàn khác
      BEAM tạo cảm giác không chỉ là một ngôn ngữ, mà là một hệ thống dành cho hệ thống — mọi thứ đều có thể được theo dõi, khởi động lại và quan sát
    • Tôi khá ngạc nhiên vì không thấy nhắc đến Crystal, ngôn ngữ biên dịch lấy cảm hứng từ Ruby
      Tuy vậy, Crystal còn gặp vấn đề thiếu độ phổ biến nghiêm trọng hơn cả Elixir
      Theo xếp hạng TIOBE, Elixir vẫn nằm trong top 50
    • Ruby được cài sẵn trên macOS, nên nếu muốn viết script mà không cài gì thêm thì lựa chọn sẽ là Perl, Bash, AppleScript hoặc Ruby
    • Tôi thấy cả hai bài đều thiếu thực chất
      Bài đầu chỉ nói về thống kê StackOverflow và chuyện Twitter, còn bài thứ hai thì chỉ toàn hoài niệm và thẩm mỹ
      Việc đây không phải bài do LLM viết mà do con người viết ra lại càng khiến tôi thấy chán nản hơn
  • Tiêu chí để tôi đánh giá một ngôn ngữ mình thích không phải là “tôi có thích viết code bằng ngôn ngữ này không”
    mà là “tôi có muốn hệ thống đang vận hành được viết bằng ngôn ngữ này không
    Không nhiều người có cùng câu trả lời cho cả hai câu hỏi đó
    • Viết code và vận hành kinh doanh là hai vấn đề khác nhau
      Tôi thích Ocaml, nhưng hệ sinh thái yếu và khó tuyển người nên không muốn dùng nó cho hệ thống vận hành
    • Còn phụ thuộc vào thời đại của ngôn ngữ và văn hóa lập trình của đội ngũ
      Python có chú thích kiểu và công cụ kiểm tra thì dễ bảo trì, còn nếu không có thì văn hóa tài liệu hóa là bắt buộc
    • Câu trả lời cũng thay đổi tùy việc bạn chỉ muốn duy trì hệ thống hay tiếp tục phát triển nó
      Nếu là trường hợp đầu thì COBOL, còn nếu là trường hợp sau thì những lựa chọn khác sẽ trở nên thú vị hơn
    • Nếu là hệ thống do chính tôi tạo ra thì ngôn ngữ nào cũng được, còn nếu không thì tôi sẽ bàn giao cho người khác
    • Tôi thích code bằng Forth, nhưng không muốn kiếm sống bằng nó
  • Tôi thực sự rất thích Ruby
    Không phải vì cảm tính, mà đơn giản là vì niềm vui khi viết rất lớn — đặc biệt là vui hơn JavaScript rất nhiều
    Những bài viết công kích Ruby luôn tạo cảm giác kỳ lạ
    Có những câu chuyện thành công như Github, Twitter, Coinbase, Shopify, và vấn đề mở rộng quy mô chỉ là sản phẩm phụ của thành công
    Ruby là một công cụ tuyệt vời, và tôi khuyên mọi người hãy tự đánh giá xem nó có phù hợp với dự án tiếp theo của mình hay không
  • Cả bài gốc lẫn bài phản biện đều có định nghĩa mơ hồ
    Nếu lập luận là “Ruby sẽ không bao giờ mở rộng tốt”, thì đa số ngôn ngữ khác cũng vậy
    Rốt cuộc cả hai bài đều đồng ý ở điểm “Ruby sẽ không bao giờ hoạt động mãi mãi”
    Điều thú vị là bài gốc hạ thấp Ruby vì xếp hạng StackOverflow của nó là 18,
    trong khi thực tế năm 2024 là hạng 14, còn Scala mà tác giả khen thì lại thấp hơn 9 bậc
    Liên kết khảo sát StackOverflow 2024
    • Tôi không đồng ý với câu “Ruby sẽ không bao giờ hoạt động mãi mãi”
      Mã Ruby tôi viết 10 năm trước, ví dụ như trình biên dịch offlineasm của WebKit, đến giờ vẫn chạy tốt
    • Chê Java rồi lại khen Scala cũng khá buồn cười — phần lớn điểm mạnh của Scala thực ra là nhờ Java
  • Nhiều người mô tả Ruby là “ngôn ngữ dành cho con người”, nhưng thực ra mọi ngôn ngữ đều được tạo ra cho con người
    Ruby có cú pháp gọn gàng và khả năng biểu đạt tốt, nhưng lại khiến việc sử dụng trở nên khó hơn vì kiểu độngmagic (hành vi ngầm)
    Nó không hợp với tôi, nhưng lại là ngôn ngữ hoàn hảo với một số người khác
    • Rails đã phổ biến khái niệm “đối tượng mang tính ma thuật”
      Người hâm mộ thấy điều đó đáng kinh ngạc và thú vị, nhưng với một số người thì nó lại đáng sợ
      Flask của Python cũng tương tự khi dùng context local proxy
      Trong khi đó, Zig và Go ra đời như một phản ứng kiểu “mọi thứ phải được tường minh”, còn Rust thì nằm đâu đó ở giữa
      Rust nghiêm ngặt, nhưng vẫn cung cấp khả năng biểu đạt kiểu DSL một cách gọn gàng
  • Tôi đã chuyển từ Ruby sang Elixir cách đây 10 năm
    Hiệu năng thuật toán tăng gấp 10 lần, số lỗi giảm nhờ tính bất biến, và hỗ trợ đồng thời cũng rất xuất sắc
    Nhờ pattern matching và guard mà boilerplate biến mất, không có GIL và có GC theo từng process
    Đường cong học tập có hơi dốc, nhưng Elixir mở rộng tốt hơn nhiều về lâu dài cũng như dưới tải cao
    Cộng đồng Ruby vẫn rất tuyệt
    Chỉ là tôi ước Elixir có thể được biên dịch thành tệp thực thi native hoặc chạy trong trình duyệt
    • Tôi cũng có trải nghiệm tương tự
      Tôi vẫn “suy nghĩ theo Ruby”, nhưng các dự án cá nhân thì làm bằng Elixir/Erlang
      Ở công ty tôi dùng Golang và Python nhưng không thấy vui
      Script cá nhân thì tôi vẫn viết bằng Ruby
  • Bài này tạo cảm giác như ai đó đang bảo vệ ngôn ngữ của mình
    Thay vì độ phổ biến hay sự quen thuộc, tôi nghĩ những cuộc thảo luận phân tích lạnh lùng về ảnh hưởng của các đặc tính ngôn ngữ lên chất lượng mã nguồn mới thực sự có giá trị
    Những cuộc thảo luận như vậy thường làm mọi người chùn bước vì các khái niệm như monad hay applicative, nhưng đó mới là tranh luận thật sự hữu ích
    • Chất lượng mã, năng suất và độ ổn định rất khó đo lường khách quan, nên cuối cùng vẫn quy về sự khác biệt trong trải nghiệm
    • Không chỉ chất lượng mã mà tính đơn giản, khả năng đọc hiểu và tốc độ biểu đạt cũng quan trọng
      Càng nhiều kiểu và ràng buộc thì chất lượng càng cao, nhưng tốc độ phát triển và tính linh hoạt lại giảm
    • Nếu quan tâm đến chủ đề này thì có thể tham khảo những cuốn như Eloquent Ruby
    • Nếu có bài nghiên cứu hay bài viết nào phân tích “tính năng ngôn ngữ nào có lợi cho việc xây dựng hệ thống quy mô lớn” thì tôi thật sự rất muốn đọc
  • Tôi không phải fan của Ruby, nhưng bài gốc trên Wired đúng là nội dung câu kéo phẫn nộ 100%
    Những bài kiểu này là thứ độc tố gây ra các cuộc chiến ngôn ngữ trên HN
    Không cần nghiêm túc tiếp nhận làm gì
  • Tôi từng thích Ruby vì khả năng biểu đạt, tính hướng đối tượng triệt để và cú pháp dễ đọc của nó
    Nhưng giờ Kotlin hợp với tôi hơn — nhờ kiểu tĩnh và thiết kế cú pháp mang tính ergonomic
    Ruby càng bất an khi dự án càng lớn, nhưng vẫn là một ngôn ngữ rất đáng yêu cho những việc nhỏ
    • Trước đây tôi từng thấy một sự cố do dùng sai biến liên quan tới session trong Ruby khiến tài khoản người dùng bị trộn lẫn với nhau
      Có thể không phải lỗi của ngôn ngữ, nhưng ngôn ngữ càng ít rào chắn an toàn thì càng có xu hướng thu hút mã nguy hiểm
    • Ruby thường được nói là hướng đối tượng hoàn toàn, nhưng ví dụ chạy if.class thì hóa ra cũng không hoàn toàn như vậy
      Dù vậy, trong số các ngôn ngữ phổ biến thì nó vẫn là thứ tiến gần nhất