1 điểm bởi GN⁺ 2023-08-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Rich Hickey sẽ nghỉ hưu khỏi công việc phát triển phần mềm thương mại và kết thúc vai trò nhân viên tại Nubank, nhưng sẽ trở lại làm nhà phát triển độc lập và tiếp tục bảo trì, cải tiến Clojure
  • Công việc với Clojure sẽ được Alex, Stu, Fogus cùng nhiều người đóng góp tiếp nối, và các công việc cho 1.12 cũng như các phiên bản sau đó cũng đã được lên kế hoạch
  • Nubank sẽ tiếp tục tài trợ cho Alex, Fogus, đội ngũ nòng cốt Clojure và cộng đồng Clojure rộng lớn hơn
  • Datomic sẽ tiếp tục do Stu dẫn dắt tại Nubank; đội ngũ đang phát triển cùng một gói cung cấp miễn phí mới có thể tạo ra bước chuyển tiếp theo
  • Lần nghỉ hưu này trả lại cho Rich Hickey sự tự do và độc lập như thuở ban đầu của Clojure, và hành trình của Clojure vẫn tiếp diễn

Rich Hickey nghỉ hưu và việc tiếp tục phát triển Clojure

  • Rich Hickey nghỉ hưu khỏi lĩnh vực phát triển phần mềm thương mại và cũng kết thúc việc làm tại Nubank
  • Việc được chứng kiến Clojure và Datomic được áp dụng thành công trong các môi trường quy mô lớn là một trải nghiệm thú vị đối với ông
  • Sau khi nghỉ hưu, ông sẽ tiếp tục bảo trì và cải tiến Clojure với tư cách nhà phát triển độc lập
  • Công việc với Clojure sẽ tiếp tục cùng Alex, Stu, Fogus và nhiều người khác
  • Nhiều công việc hữu ích cho Clojure 1.12 và các phiên bản sau đó đã được lên kế hoạch

Cộng đồng và sự tài trợ của Nubank

  • Cộng đồng Clojure vẫn là một cộng đồng thân thiện, trưởng thành và hiệu quả
  • Cộng đồng đang mở rộng Clojure sang nhiều lĩnh vực mới thú vị
  • Nubank sẽ tiếp tục tài trợ cho Alex, Fogus, đội ngũ nòng cốt Clojure và cộng đồng Clojure rộng lớn hơn

Bước tiếp theo của Datomic

  • Stu sẽ tiếp tục dẫn dắt phát triển Datomic tại Nubank
  • Đội ngũ Datomic đang lớn mạnh và phát triển tốt bên trong Nubank
  • Điều đáng chú ý trong thời gian tới là gói cung cấp miễn phí mới của Datomic sẽ dẫn đến đâu

Nhìn lại Cognitect

  • Với Rich Hickey, thời gian ở Cognitect vẫn là một điểm nhấn trong sự nghiệp
  • Ông đã học hỏi từ mọi người trong đội ngũ và vô cùng biết ơn những tương tác đã có cùng họ
  • Stu và Justin đã nhiều lần chấp nhận rủi ro vì các ý tưởng của ông, là những đối tác và người bạn tuyệt vời nhất, và luôn là những người thể hiện trọn vẹn integrity
  • Alex Miller sở hữu dồi dào nhiều kỹ năng mà Rich Hickey còn thiếu; nếu không có tinh thần bất khuất, sự tích cực và tình bạn của ông ấy, Clojure đã không thể có được diện mạo như ngày nay

Trở lại làm nhà phát triển độc lập

  • Rich Hickey đã có nhiều bạn bè thông qua Clojure và Cognitect, và mong tiếp tục vun đắp những tình bạn đó trong tương lai
  • Việc nghỉ hưu trả lại cho ông sự tự do và độc lập của thời kỳ đầu phát triển Clojure
  • Hành trình của Clojure vẫn tiếp diễn

1 bình luận

 
GN⁺ 2023-08-05
Các ý kiến trên Hacker News
  • Simple Made Easy của Rich là video lập trình hay nhất tôi từng xem, và tôi nghĩ đó là nội dung mà rất nhiều kỹ sư thật sự cần hiểu để viết code tốt hơn
    Tôi đang làm chief architect, tức kỹ sư kỳ cựu nhất, tại một công ty có hơn một nghìn kỹ sư; mỗi khi có junior hỏi làm sao để nâng cao năng lực, tôi đều giới thiệu video này
    Ngoài ra, ứng dụng lớn duy nhất tôi từng đưa vào vận hành bằng Clojure + Aleph đã chạy suốt 7 năm dưới tải cao liên tục hơn 10k TPS mà không có bug hay sự cố nào được báo cáo

    • Beyond PEP8 của Raymond Hettinger cũng là một bài nói chuyện rất đáng khuyên xem
      Sau khi xem bài này, tôi mới có thể giải thích được những điều vốn luôn nằm trong đầu nhưng khó diễn đạt với đồng nghiệp; vì nó đề cập cả Python lẫn Java nên cũng dễ được những người chưa quen với lập trình hàm chấp nhận hơn
      Nhiều lập trình viên tôi từng làm việc cùng không chịu học cho đúng môi trường mình dùng, nên cứ lặp lại các cách làm không phù hợp; hoặc ngược lại, cố ép môi trường theo gu của mình bằng cách thiết kế abstraction quá mức. Cả hai đều có thể làm codebase rối tung
    • Khi bắt đầu học Clojure, tôi thấy kiểu 1 là kết quả cuối cùng, 2 là kết quả của hai biểu thức trước, *3 là kết quả của ba biểu thức trước, nên cảm giác rằng sớm muộn gì nó cũng sẽ gây vấn đề
  • Vì phải phụ thuộc vào các thư viện Java, tôi đã viết hệ thống giao dịch đầu tiên của mình bằng Clojure
    Đó là năm 2011, khi tôi có khoảng 3 năm kinh nghiệm Lisp; việc dùng một ngôn ngữ tương đối mới khiến mọi người xung quanh nghi ngờ, nhưng việc nó chạy trên JVM lại phù hợp với môi trường mà nhiều công ty giao dịch tần suất cao khi đó sử dụng, nên giúp thuyết phục họ hơn
    Vài năm sau, vì các yêu cầu mới có tương tác với C++, hệ thống đó được cho nghỉ và viết lại, nhưng việc theo dõi mức dùng bộ nhớ và cấp phát trở nên quá khó, và trong các hệ thống nhạy cảm về thời gian thì chi phí cấp phát bộ nhớ cảm nhận rất rõ
    Khi chuyển lại sang Java, các thư viện Java được tái sử dụng dễ dàng, nhưng việc chuyển phần code triển khai thuật toán lại khó hơn nhiều do kỹ thuật kiểu Common Lisp: trước đó tôi đã tạo DSL trong Clojure rồi viết thuật toán trên DSL đó
    Phần đó sau khi viết lại trở nên dài dòng và thô hơn nhiều, nhưng thật sự rất vui, và giờ nghĩ lại tôi có cảm giác mình đã học được trong một tháng lượng kiến thức đáng ra phải học trong một năm

    • Trên JVM, bản thân việc cấp phát không hẳn là chậm; thường chỉ là tăng con trỏ, nên trong nhiều trường hợp còn nhanh hơn các ngôn ngữ quản lý bộ nhớ thủ công
      Các cơ chế cần thiết cho garbage collection tạo ra overhead, nên ý chính là đúng, nhưng khó có thể nói nguyên nhân chậm là do chính việc cấp phát
    • Tôi tự hỏi liệu có phải bạn đã không thuyết phục được công ty dùng một trình thông dịch Scheme có thể nhúng cho DSL hay không
    • Tôi tò mò cuối cùng có phải hiệu năng Clojure/Java không đủ nên buộc phải chuyển sang C++ hay không
    • Nếu trước hết tạo DSL bằng Clojure rồi dùng nó để viết thuật toán, chẳng phải điều đó có nghĩa là nên tránh macro Lisp hết mức có thể sao
  • Tôi đã làm hai dự án lớn bằng Clojure: một là SaaS startup đã đóng cửa, một là hệ thống nội bộ; cả hai đều thật sự rất thú vị
    Từ các component server lớn cho đến liên kết ở mức module, tôi học được giá trị khổng lồ của các component ghép nối lỏng lẻo trao đổi dữ liệu đơn giản với nhau, và giờ tôi rất hoài nghi các web framework khổng lồ, nguyên khối và áp đặt
    Lisp nói chung là hố thỏ lập trình đáng giá nhất mà tôi từng đào sâu, một mỏ vàng thật sự về kỹ năng và rèn luyện đã thay đổi cách tôi suy nghĩ ngay cả khi viết code bằng ngôn ngữ mệnh lệnh/thủ tục

  • Từ congratulations có nguồn gốc Latin, là sự kết hợp giữa com- nghĩa là cùng nhau và gratulari nghĩa là cảm ơn hoặc bày tỏ niềm vui; gratulari xuất phát từ gratus, cùng gốc với gratitude
    Tôi chỉ may mắn được gặp trực tiếp Rich vài lần, nhưng muốn gửi lời biết ơn sâu sắc, và việc ông bước sang giai đoạn này khiến tôi rất vui
    Tôi mong chờ xem ông sẽ cho thấy điều gì ở chặng tiếp theo

    • Hiếm có thứ gì nắm bắt tinh thần này tốt như video kinh điển Congratulations của Big Man Tyrone
      Ý nghĩa đã dao động từ chân thành sang châm biếm rồi lại trở về chân thành, nhưng tôi cho rằng thái độ vui vẻ cốt lõi vốn nằm dưới video gốc chứa đựng một sự lạc quan của niềm vui chân thật
  • Nhờ các bài nói chuyện của Rich Hickey, hồi đại học tôi đã khám phá Clojure và lập trình hàm, và sau đó điều đó dẫn đến cơ hội đóng góp vào sự phát triển của F#, một ngôn ngữ hàm, trong một phần sự nghiệp của mình
    Tôi không thể nói đó là một thành công vang dội, nhưng cũng không phải thất bại lớn, và rốt cuộc tôi thật sự vui vì mọi chuyện đã diễn ra như vậy
    Thỉnh thoảng nhìn lại đồ án tốt nghiệp viết bằng Clojure, tôi vẫn thấy nó có một nét tao nhã rất riêng

    • Tôi cũng có trải nghiệm tương tự
      Sau đó tôi đã làm ra những thứ có tác động lớn hơn, nhưng cuối cùng phần mềm tôi tự hào nhất lại là một máy tính bỏ túi viết bằng ClojureScript
      Dựa lỏng lẻo trên chương cuối của SICP, tôi đã triển khai chuyển trạng thái của register machine theo kiểu metacircular đến mức buồn cười; vì phần triển khai thú vị hơn ứng dụng thật, tôi còn dùng Processing để trực quan hóa register machine như một ALU sơ khai
      Nếu không có Rich Hickey hay Clojure, có lẽ tôi gần như không biết việc viết phần mềm có thể vui và sáng tạo đến mức nào; nếu tôi cố đưa logic như vậy vào production thì chắc đã bị sa thải ngay, nhưng bản thân trải nghiệm thì đạt điểm A+
    • Tôi bắt đầu lập trình F# trong thời gian bạn còn ở Microsoft, và chỉ trong vài năm F# đã trở thành một lựa chọn đa nền tảng khá mạnh
      Microsoft và cộng đồng có công, nhưng sự giúp đỡ của bạn chắc chắn cũng đóng góp lớn
  • Tôi nhớ Rich từng nói về thời gian và tiền bạc ông đã bỏ vào Clojure, thậm chí cả tiền lấy từ quỹ hưu trí
    Chúc ông có một cuộc sống hưu trí dài lâu, viên mãn và hạnh phúc

  • Các thông báo ban đầu hồi năm 2020 ở đây
    https://cognitect.com/blog/2020/07/23/Cognitect-Joins-Nubank
    https://news.ycombinator.com/item?id=23926407
    https://building.nubank.com.br/welcoming-cognitect-nubank/
    Một câu chuyện rất thú vị

    • Tôi cứ tưởng đúng 1 năm trước nên nghĩ có lẽ thời gian chờ của Rich đã kết thúc, nhưng nhìn lại thì hóa ra hoàn toàn không phải 1 năm trước
  • Đây thật sự là một điều tuyệt vời
    Thứ nhất, nó củng cố rằng Clojure đang tiếp tục trưởng thành như một dự án của cả đội
    Thứ hai, nó trông như dấu hiệu cho thấy sẽ có những điều mới mẻ tuyệt vời chỉ có thể nảy sinh từ tự do cá nhân
    Thứ ba, một BDFL nghỉ hưu khỏi nhà tuyển dụng để nhảy thẳng vào công việc cả đời của chính mình, nên tôi muốn cổ vũ

    • Tôi cũng nhìn nhận chính xác như vậy, và ngôn ngữ này giờ đã có được sự tập trung lớn hơn rất nhiều
  • Tôi từng gặp Rich khi đang chơi Marvel Champions ở nhà Stu
    Cảm ơn vì Clojure, Datomic, Cognitect và nhiều bài nói chuyện; những sáng tạo đó đã làm cuộc sống của tôi phong phú hơn theo nhiều cách
    Mong ông có thật nhiều thời gian nằm trên võng sau khi nghỉ hưu

  • Nếu không có nỗ lực khổng lồ của cộng đồng quanh Clojure và ClojureScript, OrgPad đã không thể ra đời
    Các thành viên trong đội có lẽ vẫn bị kẹt trong học thuật hoặc cấu trúc doanh nghiệp, nhưng thay vào đó chúng tôi có thể sống như một startup/công ty thực chất do hai gia đình vận hành
    Cảm ơn Rich và tất cả những người đã đồng hành trên hành trình đó, vì đã biến việc viết code không còn là lao động khổ sai mà trở thành một việc có thể dự đoán, hiệu quả và gần như thú vị