Paul Graham về Java và ngôn ngữ lập trình “hacker” (2001)

Paul Graham về Java và ngôn ngữ lập trình “hacker” (2001)

Bài luận này xuất phát từ những cuộc trò chuyện của tôi với một số nhà phát triển về chủ đề thiên vị đối với Java. Đây không phải là lời chỉ trích Java mà là một ví dụ rõ ràng về “rađa của hacker”.

Theo thời gian, tin tặc phát triển khả năng dò tìm công nghệ tốt hay xấu. Tôi nghĩ sẽ rất thú vị nếu cố gắng phác thảo những lý do khiến tôi thấy Java đáng nghi ngờ.

Một số người đọc nó coi đây là một nỗ lực đáng chú ý để viết về một điều gì đó chưa từng được viết trước đây. Những người khác cảnh báo rằng tôi đang viết về những điều mà tôi không biết gì. Vì vậy, để đề phòng, tôi muốn làm rõ rằng tôi không viết về Java (thứ mà tôi chưa bao giờ làm việc cùng), mà là về “radar của hacker” (điều mà tôi đã suy nghĩ rất nhiều về nó).

Câu nói “đừng đánh giá một cuốn sách qua bìa của nó” bắt nguồn từ thời mà sách được bán dưới dạng bìa cứng và bìa cứng mà người mua buộc lại theo ý thích của mình. Vào thời đó, bạn không thể biết được một cuốn sách chỉ qua bìa của nó. Tuy nhiên, kể từ đó, ngành xuất bản đã phát triển vượt bậc và các nhà xuất bản hiện đại đã nỗ lực hết sức để đảm bảo rằng trang bìa nói lên nhiều điều.

Tôi đã dành rất nhiều thời gian ở các hiệu sách và tôi nghĩ mình đã học được cách hiểu mọi điều mà nhà xuất bản muốn nói với tôi, và có lẽ còn hơn thế nữa. Phần lớn thời gian tôi ở bên ngoài hiệu sách là ngồi trước màn hình máy tính, và tôi cho rằng ở một mức độ nào đó, tôi đã học được cách đánh giá công nghệ qua vỏ bọc của nó. Đó có thể là sự may mắn mù quáng, nhưng tôi đã tránh được một số công nghệ hóa ra lại thực sự tồi tệ.

Đối với tôi, một trong những công nghệ này hóa ra là Java. Tôi chưa viết một chương trình nào bằng Java và chỉ đọc lướt qua tài liệu, nhưng tôi có cảm giác nó không có khả năng trở thành một ngôn ngữ rất thành công. Tôi có thể sai – đưa ra dự đoán về công nghệ là một công việc nguy hiểm. Chưa hết, một minh chứng cho thời đại, đây là lý do tại sao tôi không thích Java:

  1. Quá nhiệt tình. Những tiêu chuẩn này không cần phải được áp đặt. Không ai cố gắng quảng bá C, Unix hay HTML. Các tiêu chuẩn thực sự được đặt ra từ rất lâu trước khi hầu hết mọi người nghe về chúng. Trong tầm ngắm của hacker, Perl trông không kém gì Java chỉ vì giá trị của nó.
  2. Java không đặt mục tiêu cao. Trong mô tả ban đầu của Java, Gosling tuyên bố rõ ràng rằng Java được thiết kế để dễ dàng sử dụng cho các lập trình viên đã quen với C. Nó được thiết kế để trở thành một C++:C khác với một vài ý tưởng được mượn từ các ngôn ngữ nâng cao hơn. Giống như những người tạo ra các bộ phim sitcom, đồ ăn nhanh hoặc các chuyến du lịch, những người tạo ra Java đã thiết kế một cách có ý thức một sản phẩm dành cho những người không thông minh bằng họ. Trong lịch sử, các ngôn ngữ được thiết kế cho người khác sử dụng đã thất bại: Cobol, PL/1, Pascal, Ada, C++. Tuy nhiên, những thứ thành công lại là những thứ do chính những người sáng tạo phát triển cho chính họ: C, Perl, Smalltalk, Lisp.
  3. Động cơ ẩn giấu. Có người từng nói rằng thế giới sẽ tốt đẹp hơn nếu người ta chỉ viết sách khi họ có điều gì muốn nói, thay vì viết khi họ cảm thấy thích viết sách. Tương tự như vậy, lý do chúng ta tiếp tục nghe về Java không phải vì họ đang cố nói cho chúng ta điều gì đó về ngôn ngữ lập trình. Chúng tôi nghe nói về Java như một phần trong kế hoạch của Sun nhằm cạnh tranh với Microsoft.
  4. Không ai yêu cô ấy. Các lập trình viên C, Perl, Python, Smalltalk hoặc Lisp đều yêu thích ngôn ngữ của họ. Tôi chưa bao giờ nghe ai tuyên bố tình yêu của họ với Java.
  5. Người ta buộc phải sử dụng nó. Nhiều người tôi biết sử dụng Java làm như vậy vì cần thiết. Họ nghĩ rằng nó sẽ giúp họ có được nguồn tài trợ, hoặc họ nghĩ nó sẽ thu hút khách hàng, hoặc đó là một quyết định của ban quản lý. Đây là những người thông minh; nếu công nghệ tốt thì họ sẽ tự nguyện sử dụng.
  6. Đây là món ăn được nhiều đầu bếp ưa thích. Những ngôn ngữ lập trình tốt nhất được phát triển bởi các nhóm nhỏ. Java được điều khiển bởi ủy ban. Nếu nó trở thành một ngôn ngữ thành công thì đây sẽ là lần đầu tiên trong lịch sử có một ủy ban tạo ra một ngôn ngữ như vậy.
  7. Cô ấy là người quan liêu. Từ những gì tôi biết ít về Java, có vẻ như có rất nhiều giao thức để làm bất cứ điều gì. Những ngôn ngữ thực sự tốt không phải như vậy. Họ cho phép bạn làm bất cứ điều gì bạn muốn và không cản trở bạn.
  8. Sự cường điệu giả tạo. Bây giờ Sun đang cố gắng giả vờ rằng Java được định hướng bởi cộng đồng, rằng nó là một dự án nguồn mở như Perl hoặc Python. Chưa hết, sự phát triển được kiểm soát bởi một công ty lớn. Vì vậy, ngôn ngữ có nguy cơ trở nên tồi tệ buồn tẻ giống như mọi thứ xuất phát từ ruột của một công ty lớn.
  9. Nó được tạo ra cho các tổ chức lớn. Các công ty lớn có những mục tiêu khác nhau với tin tặc. Các công ty cần những ngôn ngữ có tiếng là phù hợp với nhóm lớn gồm những lập trình viên tầm thường. Những ngôn ngữ có đặc điểm như bộ hạn chế tốc độ trên xe tải U-Haul, cảnh báo những kẻ ngốc không gây ra thiệt hại quá lớn. Hacker không thích những ngôn ngữ coi thường họ. Hacker cần sức mạnh. Trong lịch sử, các ngôn ngữ được tạo ra cho các tổ chức lớn (PL/1, Ada) đã thất thế, trong khi các ngôn ngữ do hacker tạo ra (C, Perl) đã giành chiến thắng. Lý do: Hacker vị thành niên hôm nay là CTO ngày mai.
  10. Những người sai lầm thích cô ấy. Những lập trình viên mà tôi ngưỡng mộ nhất thường không cuồng Java. Ai thích cô ấy? Phù hợp với những người không nhận thấy sự khác biệt giữa các ngôn ngữ nhưng liên tục nghe về Java trên báo chí; lập trình viên ở các công ty lớn, bị ám ảnh bởi việc tìm kiếm thứ gì đó tốt hơn cả C++; những sinh viên dự bị tốt nghiệp ăn tạp, những người sẽ yêu thích bất cứ điều gì giúp họ có được việc làm (hoặc kết thúc kỳ thi). Ý kiến ​​của những người này thay đổi theo chiều gió.
  11. Cha mẹ cô đang gặp khó khăn. Mô hình kinh doanh của Sun đang bị tấn công trên hai mặt trận. Bộ xử lý Intel giá rẻ được sử dụng trong máy tính để bàn đã trở nên đủ nhanh cho máy chủ. Và FreeBSD dường như đang trở thành một hệ điều hành máy chủ tốt như Solaris. Quảng cáo của Sun ngụ ý rằng bạn sẽ cần máy chủ Sun cho các ứng dụng cấp sản xuất. Nếu điều này là sự thật thì Yahoo sẽ là công ty đầu tiên mua Sun. Nhưng khi tôi làm việc ở đó, họ sử dụng máy chủ Intel và FreeBSD. Đây là tín hiệu tốt cho tương lai của Sun. Và nếu Mặt trời lặn, Java cũng có thể gặp rắc rối.
  12. Tình yêu của Bộ Quốc phòng. Bộ Quốc phòng khuyến khích các nhà phát triển sử dụng Java. Và đây có vẻ là dấu hiệu tồi tệ nhất. Bộ Quốc phòng thực hiện công việc bảo vệ đất nước một cách xuất sắc (dù tốn kém), họ yêu thích các kế hoạch, thủ tục và giao thức. Văn hóa của họ hoàn toàn trái ngược với văn hóa hacker; khi nói đến phần mềm, họ có xu hướng đặt cược sai. Ngôn ngữ lập trình cuối cùng mà Bộ Quốc phòng yêu thích là Ada.

Xin lưu ý, đây không phải là lời chỉ trích Java mà là lời chỉ trích về trang bìa của nó. Tôi không biết rõ về Java đủ để thích hoặc không thích nó. Tôi chỉ đang cố giải thích tại sao tôi không thích học Java.

Có vẻ hơi vội vàng khi loại bỏ một ngôn ngữ mà thậm chí không cố gắng lập trình bằng ngôn ngữ đó. Nhưng đây là điều mà tất cả các lập trình viên đều phải đối mặt. Có quá nhiều công nghệ để khám phá tất cả. Bạn phải học cách đánh giá bằng những dấu hiệu bên ngoài xem liệu việc đó có xứng đáng với thời gian của bạn hay không. Với sự vội vàng tương tự, tôi đã loại bỏ Cobol, Ada, Visual Basic, IBM AS400, VRML, ISO 9000, SET Protocol, VMS, Novell Netware và CORBA—trong số những thứ khác. Họ chỉ không hấp dẫn tôi.

Có lẽ tôi đã sai trong trường hợp của Java. Có lẽ một ngôn ngữ được một công ty lớn quảng bá để cạnh tranh với một công ty khác, được phát triển bởi ủy ban đại chúng, với rất nhiều sự cường điệu và được Bộ Quốc phòng yêu thích, tuy nhiên, sẽ trở thành một ngôn ngữ gọn gàng, đẹp đẽ và mạnh mẽ mà tôi rất vui. chương trình trong. Có lẽ. Nhưng nó rất đáng nghi ngờ.

Cảm ơn vì bản dịch: Denis Mitropolsky

PS

Nguồn: www.habr.com

Thêm một lời nhận xét