7 bài học rút ra từ Anders Hejlsberg, người thiết kế C# và TypeScript
Những mô thức lặp lại trong 40 năm sự nghiệp của Hejlsberg:
phản hồi nhanh > tính tao nhã, khả năng tương thích·tính thực dụng > sự thuần khiết, đánh đổi minh bạch > quyết định thiếu minh bạch
1. Phản hồi nhanh quan trọng hơn gần như mọi thứ khác
- Từ thời kỳ ràng buộc 64KB ban đầu, việc chạy nhanh và kiểm tra lỗi nhanh đã là cốt lõi
- Cả Turbo Pascal lẫn TypeScript đều nhấn mạnh kiểm tra gia tăng và phản hồi tức thì
- Phản hồi chậm → công việc vòng vo tăng lên, niềm tin của lập trình viên giảm xuống
→ Khuyến khích thử nghiệm·refactor, tối đa hóa năng suất
2. Mở rộng phần mềm = gạt sở thích cá nhân sang một bên
- Nhận ra điều này khi chuyển từ dự án cá nhân sang dự án nhóm/quy mô lớn
- Yếu tố thành công của C#: sự thân thiện với VB + sức mạnh của C++ + tính thực dụng của Windows cùng tồn tại
- Ưu tiên mã mà nhiều người có thể hiểu và bảo trì hơn là sự thuần khiết về mặt lý thuyết
→ Chấp nhận sự đa dạng là chìa khóa cho thành công dài hạn
3. Vì sao TypeScript không thay thế JavaScript mà mở rộng nó
- Không thể vứt bỏ hệ sinh thái·công cụ·thói quen JS hiện có
- Chọn cải tiến dần dần (thêm kiểu) thay vì thay thế hoàn toàn
- Cho phép phân tích tĩnh·refactor cần thiết cho các ứng dụng quy mô lớn
→ Thỏa hiệp thực tế mang lại bước tiến lớn hơn cả đổi mới
4. Cốt lõi của thành công mã nguồn mở là tính hiển thị (visibility)
- Sau khi TypeScript chuyển sang GitHub năm 2014, PR·issue·thảo luận đều được công khai
- Quy trình ra quyết định·các đánh đổi·ưu tiên được phơi bày minh bạch
→ Niềm tin của người dùng ↑, đóng góp dựa trên hiểu biết ↑
→ Không chỉ chia sẻ mã nguồn mà còn phải chia sẻ “vì sao lại làm như vậy”
5. Vì sao họ từ bỏ việc duy trì trình biên dịch bằng JavaScript
- Trình biên dịch self-hosted dựa trên JS → giới hạn hiệu năng (single-thread, chậm với dự án lớn)
- Port sang Go: giữ nguyên ngữ nghĩa·quirks trong khi đạt được hiệu năng native·song song hóa
- Thay vì ngôn ngữ mới như Rust, họ ưu tiên cao nhất cho tính nhất quán hành vi và khả năng tương thích
→ Chọn tiến hóa ổn định thay vì thay đổi mang tính phá vỡ
6. Điều quan trọng nhất trong môi trường phát triển do AI dẫn dắt là grounding
- Với AI, độ chính xác và ràng buộc quan trọng hơn khả năng tạo sinh
- Type checker và công cụ refactor đóng vai trò guardrail để xác minh mã do AI tạo ra
- Hệ thống kiểu mạnh = ngăn các lỗi có vẻ hợp lý nhưng sai của đầu ra AI
→ Mã có cấu trúc là cốt lõi của việc review hiệu quả trong kỷ nguyên AI
7. Vì sao cộng tác mở lại quan trọng
- Lịch sử thảo luận·quyết định được công khai = bảo tồn trí nhớ của tổ chức
- Ngữ cảnh có thể tìm kiếm → giúp onboarding người mới dễ hơn, cho phép tiến hóa dài hạn
- Khác với hệ thống khép kín, tri thức được chia sẻ có thể tích lũy và truyền lại
→ Tăng cường tính bền vững và khả năng thích ứng của hệ thống
1 bình luận
Đúng là thầy Hejlsberg..💜