Có phải Joel Spolsky đã trở thành một gã cực đoan?

Bài viết được dịch từ blog Coding Horror

Khi bạn là một blogger về kỹ thuật, thì có lẽ bạn đã tình cờ trượt chân qua blog Joel on Software. Anh ta đã viết blog từ những năm 2000, khi mà những chiếc máy tính được người ta đẽo bằng tay từ gỗ và dữ liệu internet thì được gửi qua những con chim bồ câu. Anh ta có một công ty phát triển phần mềm của riêng mình, và là tác giả của một số cuốn sách, và anh là một tay blogger nổi tiếng và thú vị dù dưới bất kỳ góc độ nào. Có thể nói rằng, Joel là một huyền thoại.

Liệu việc tự xây dựng cho mình một ngôn ngữ lập trình mà chỉ mỗi mình bạn và vài cộng sự biết viết code bằng ngôn ngữ đó thì có hiệu quả không?Liệu việc tự xây dựng cho mình một ngôn ngữ lập trình mà chỉ mỗi mình bạn và vài cộng sự biết viết code bằng ngôn ngữ đó thì có hiệu quả không?


Mặc dù các bài viết trên blog của Joel thì thường là vàng nguyên chất, nhưng anh cũng có các bài viết tạo ra nhiều tranh cãi trong khoảng thời gian 6 năm vừa qua. Ví dụ, anh không thích việc lập trình mà sử dụng các ngoại lệ (exception), mặc dù thực tế rằng chúng như là bánh mỳ và bơ trong các ngôn ngữ lập trình hiện đại. Anh cũng nói rằng việc chỉ dạy các lập trình viên mới vào nghề ngôn ngữ Java là đang đầu độc tâm trí họ, mặc dù tôi lại nghĩ rằng Java tạo ra ít vấn đề nhất đối với các lập trình viên mới vào nghề. Nhưng một số bài viết gần đây của Joel thì đã vượt rất, rất xa so với những sai lầm nhỏ đó.

Ví dụ, hai tuần trước đây chúng ta thấy rằng công ty của Joel đang viết một sản phẩm chiến lược của họ, FogBugz, bằng một ngôn ngữ lập trình mà họ tự tạo ra.

FogBugz được viết bằng Wasabi, một ngôn ngữ lập trình bao gồm những đặc trưng rất cao cấp và ít được biết đến của ngôn ngữ Basic, cùng với closure, lambda và các active record kiểu Rails mà có thể biên dịch xuống thành VBScript, JavaScript, PHP4 hoặc PHP5. Wasabi là một ngôn ngữ riêng, chỉ lưu hành nội bộ và được tạo ra bởi một trong những lập trình viên giỏi nhất của chúng tôi, và nó được thiết kế đặc biệt để dành riêng cho việc phát triển sản phẩm chiến lược FogBugz; trình biên dịch của ngôn ngữ Wasabi đó được viết bằng C#.

Bạn có thể chưa bao giờ nghe thấy về nó, nhưng điều này cũng giống như là đầu của 50 ngàn lập trình viên nổ tung cùng một lúc vậy.

Việc viết ra ngôn ngữ lập trình của riêng bạn thì hoàn toàn vượt quá giới hạn. Nó là một quyết định sai lầm mà hoàn toàn trái ngược với những lời khuyên đúng mực và tuyệt vời của Joel trong phát triển phần mềm trước đây, đến nỗi mọi người cứ nghĩ là anh ta đang nói đùa. Anh ta đã viết một loạt các bài viết sau đó để giải thích về nó, và đến lúc này mọi người mới ngã ngửa ra rằng anh ta đã không nói giỡn chơi.

Đọc những ý kiến bảo vệ Wasabi của anh. Nếu có bất cứ điều gì, thì nó chỉ là sự phóng đại của tình trạng mất trí đó. Bởi vì, bạn biết đấy, việc cài đặt một PHP/NET/Java runtime tại một site của khách hàng thì hoàn toàn không thể hỗ trợ nổi, thậm chí mặc dù nó là mô hình kinh doanh của 99.9% trong phần còn lại của thế giới này. Và cùng với Wasabi, họ có thể bổ sung thêm bất kỳ đặc trưng ngôn ngữ nào mà họ muốn! Giống như ngôn ngữ Lisp, phải không nào? Và cuối cùng họ sẽ cắm vào một .NET CLR back-end tới Wasabi để sinh ra mã bytecode! Đừng bao giờ để ý một thực tế rằng ứng dụng chiến lược của công ty bạn đang được viết bằng một ngôn ngữ được tùy biến khá kỳ cục dựa trên VBScript mà chỉ có 3 người trên thế giới này biết cách làm thế nào để lập trình với nó.

Nhưng đợi đã! Mọi việc thậm chí còn tồi tệ hơn nữa!

Liệu Joel Spolsky đã trở nên quá cực đoan?

Liệu Joel Spolsky đã trở nên quá cực đoan?

Bây giờ Joel lại nói thêm rằng một ngôn ngữ dynamically typed kiểu như Ruby không thể đủ nhanh để chạy FogBugz:

Tôi hiểu cái triết lý rằng các vòng đời của nhà phát triển thì quan trọng hơn các vòng đời của CPU, nhưng thẳng thắn mà nói rằng đó chỉ là một câu slogan để dán ngoài xe hơi và không công bằng đối với những người mà đang than phiền về tốc độ thực thi. Thậm chí mặc dù sản phẩm của chúng tôi, FogBugz, dường như có vẻ hoàn hảo khi viết bằng Ruby on Rails, chúng tôi có một vài phần code nơi mà tốc độ thực thi là cực kỳ quan trọng. Trong FogBugz 6 có một nơi mà chúng tôi cần phải thực hiện hàng triệu phép tính toán để hiển thị một biểu đồ trên một trang riêng biệt. Chúng tôi đã giảm thời gian tính toán xuống còn khoảng 3 giây hoặc ít hơn trong môi trường phát triển hiện tại của mình với rất nhiều sự tối ưu hóa, nhưng thẳng thắn mà nói rằng với các function chậm như vịt thì tôi thực sự không nghĩ là chúng tôi có thể thực hiện nó trước khi trình duyệt web bị time out và mặt trời đã bị lạnh đi một vài độ C.

Hãy để tôi hiểu rõ điều này. Hãy để tôi chắc chắn rằng tôi đang hiểu điều này. Bởi vì tôi nghĩ rằng mắt mình đã bị lồi cả ra ngoài.

  1. Tôi không nhìn thấy làm thế nào mà Wasabi– một ngôn ngữ mà theo như Joel nói là, biên dịch xuống thành VBScript trên Windows— có thể thực sự nhanh hơn Ruby. VBScript chắc chắn là không được biên dịch, và nó chính xác là không thể nào mà nhanh được. Việc cải thiện tốc độ là một trong nhiều lý do để biện minh cho việc chuyển từ ASP sang ASP.NET.
  2. Nếu tốc độ thực thi mà quá quan trọng trong phần code đó, thì tại sao Joel lại không thực hiện cách đơn giản là xây dựng phần code đó trong một ngôn ngữ biên dịch và gọi nó từ ngôn ngữ khác? Liệu tôi có điều gì sai lầm ở đây không nhỉ? Liệu có luật nào quy định rằng tất cả code cho một ứng dụng web phải được viết trong cùng một ngôn ngữ?
  3. Việc biện hộ để lựa chọn bất kỳ một ngôn ngữ nào dựa trên chỉ một phần nhỏ trong code của bạn thì chả thuyết phục tí nào cả. Nó thì hoàn toàn trái ngược với quy tắc nổi tiếng 90/10. Nếu chúng ta tuân theo logic của Joel, chúng ta nên từ chối tất các các ngôn ngữ lập trình dynamically typed. Thậm chí trong một thế giới đầy rẫy những CPU 3 gigahertz $200 dual-core và giá thành cứ rẻ hơn sau mỗi nanosecond. Bởi vì, bạn biết đấy, có một phần lý do ở đây là chúng khá chậm.

Tất cả điều này khiến tôi tự hỏi mình rằng: liệu Joel Spolsky đã trở nên quá cực đoan?

Tôi không chấp nhận gã Joel Spolsky mới và quá phi lý này. Tôi yêu cầu ngay lập tức trả lại cho tôi gã Joel Spolsky khôn ngoan, ôn hòa, và uyên bác của những năm về trước. Nhưng có lẽ điều đó cũng giống như việc bạn ước ao một show truyền hình dài tập quay trở lại những thời kỳ ban đầu hoàng kim của nó vậy.

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s