- James Gosling được đánh giá là người tạo ra Java và là một thiên tài thực dụng đã ảnh hưởng đến điện toán hiện đại suốt 30 năm
- Trong hoàn cảnh nghèo khó, ông học lập trình bằng cách lắp ráp máy tính từ các linh kiện nhặt trong đống rác, và việc tự học có tính chủ động này sau đó cũng được phản ánh vào triết lý thiết kế ngôn ngữ của ông
- Những ngày ở Sun Microsystems, nơi trò đùa và đổi mới cùng tồn tại, đã trở thành nền tảng cho khả năng sáng tạo đặc trưng và việc xây dựng văn hóa kỹ thuật của Gosling
- Gần đây ông bày tỏ sự hoài nghi mạnh mẽ với các công cụ AI tạo sinh và làn sóng bùng nổ AI, đồng thời nhấn mạnh rằng tầm quan trọng của giáo dục lập trình thậm chí còn lớn hơn trước
- Bí quyết sống còn của Java không nằm ở sự hào nhoáng mà ở triết lý thiết kế thực dụng theo đuổi triệt để tính ổn định, khả năng tương thích ngược và năng suất của lập trình viên
Java at 30: The Genius Behind the Code That Changed Tech
- Java là một ngôn ngữ hướng đối tượng cấp cao đa dụng tròn 30 năm vào ngày 23 tháng 5, và đến nay vẫn là công nghệ cốt lõi vận hành các hệ thống ở nhiều quy mô khác nhau
- Nền tảng sâu xa giúp Java có thể tồn tại chính là cảm quan kỹ thuật thực dụng và trực giác sáng tạo của James Gosling
- Gosling khởi đầu là một thiếu niên người Canada giàu tinh thần tự lập, từng nhặt linh kiện từ thùng rác để lắp máy tính, rồi trưởng thành thành một lập trình viên tầm cỡ thế giới
- Triết lý “viết một lần, chạy mọi nơi” là biểu tượng của Java, và điều đó tiếp tục trở thành triết lý ngôn ngữ dẫn tới một bước chuyển căn bản trong cách phát triển phần mềm
- Suốt sự nghiệp, Gosling đã dung hòa năng lực kỹ thuật xuất sắc, tính tinh nghịch và ý thức đạo đức rõ ràng, qua đó hiện thân cho mẫu hình nhà phát triển có ảnh hưởng bền bỉ đến việc hình thành văn hóa điện toán hiện đại
James Gosling: The Brilliant Mind Behind Java
- James Gosling không chỉ là “cha đẻ của Java”, mà còn là một thiên tài khiêm nhường có thể giải thích trực quan những khái niệm phức tạp
- Ba mươi năm sau khi tạo ra Java, ông nhìn lại hành trình công nghệ của mình và dành thời gian xem xét lại quá trình tiến hóa của ngôn ngữ và văn hóa phát triển
The Path To Programming: Resourceful Beginnings
- Trong tuổi thơ vô cùng nghèo khó, Gosling đã có trải nghiệm nhặt một chiếc TV từ thùng rác để nuôi dưỡng óc sáng tạo kỹ thuật
- Chiếc máy tính đầu tiên của ông được lắp từ một giá relay thải loại của tổng đài điện thoại, tượng trưng cho cảm quan cơ khí và khả năng lắp ráp bộc lộ từ rất sớm
- Khi đến thăm trung tâm máy tính của Đại học Calgary, ông bị cuốn hút bởi màn hình, ánh đèn nhấp nháy và các thiết bị băng từ, từ đó bắt đầu niềm tò mò kéo dài cả đời với lập trình
- Ông tự học bằng cách lục tìm punch card để lấy mật khẩu, và khi còn học trung học đã viết chương trình phân tích dữ liệu vệ tinh cho khoa vật lý của trường đại học, tích lũy kinh nghiệm vừa kiếm tiền vừa tận hưởng việc lập trình
- Trải nghiệm lập trình ban đầu của ông trải dài từ PL/1 và Fortran trên mainframe IBM đến hợp ngữ PDP-8 và mã CDC 6400. Với giọng điệu điềm đạm đặc trưng, ông nhẹ nhàng nhắc rằng “mùa hè tôi làm thêm bằng cách phát triển một trình biên dịch COBOL”, dù đó là công việc mà ngay cả nhiều lập trình viên kỳ cựu cũng khó đảm đương
Academia to Industry: Finding His Way
- Gosling mô tả giới học thuật là “một phòng thí nghiệm dùng nghiên cứu sinh như lao động giá rẻ”, qua đó bộc lộ quan điểm thẳng thắn coi trọng thực tiễn hơn lý thuyết
- Ngay trong thời gian làm tiến sĩ tại Carnegie Mellon, ông vẫn làm việc ở startup để tích lũy kinh nghiệm thực tế, rồi sau đó hoàn thành chương trình học, thể hiện lựa chọn lộ trình linh hoạt kết hợp cả công nghiệp lẫn học thuật
- Công việc đầu tiên của ông là tại IBM Research, nhưng ông vẫn nhận xét đây là “một công ty tận tụy với việc tự bắn vào chân mình”, cho thấy thái độ phân tích lạnh lùng đối với vận hành doanh nghiệp và chiến lược công nghệ
- Những trải nghiệm ban đầu này về sau trở thành nền tảng giúp ông hiểu văn hóa tổ chức theo hướng thực tế, ảnh hưởng đến cách ông hoạt động tại Sun Microsystems
The Sun Days: Innovation and Pranks
- Trong những ký ức vui nhất ở Sun, Gosling nhắc tới các dự án chơi khăm quy mô lớn diễn ra hằng năm vào ngày Cá tháng Tư, hồi tưởng về một văn hóa tổ chức nơi sáng tạo và vui nhộn cùng tồn tại
- Một ví dụ tiêu biểu là việc đặt một chiếc Ferrari trên bệ nổi giữa hồ, cho thấy khiếu hài hước tận dụng năng lực giải quyết vấn đề kỹ thuật và tinh thần đồng đội
- Trò đùa biến văn phòng CEO thành sân golf 1 lỗ với cỏ nhân tạo, bunker và hồ nước được nhắc đến như một thử nghiệm độc đáo kết hợp công nghệ và vui chơi
- Gosling nhớ về Sun như “một môi trường hiếm hoi cho phép đồng thời sự xuất sắc kỹ thuật và sáng tạo tinh nghịch”, và đó là nền tảng hình thành thái độ của ông với công nghệ cùng cách giải quyết vấn đề nói chung
Java: Creating a Legacy That Changed Everything
- Hành trình 30 năm của Java là thành tựu tiêu biểu nhất và bước ngoặt quyết định trong cuộc đời công nghệ của Gosling
- Mỗi lần nghe ai đó trên phố nói “nhờ Java mà tôi có sự nghiệp”, ông lại cảm nhận sự hài lòng sâu sắc về ảnh hưởng mà mình để lại trong hệ sinh thái nhà phát triển
- Những tính năng như lambda và generics là thứ ông muốn đưa vào từ đầu, nhưng đã điều chỉnh thời điểm triển khai theo triết lý thiết kế “không đưa vào theo cách sai”
- Về việc Oracle quản lý Java, ông đánh giá rằng họ “làm tốt hơn mong đợi”, đồng thời nhấn mạnh rằng sự tham gia và đóng góp liên tục của cộng đồng mới là yếu tố đóng vai trò cốt lõi
- Java đã phát triển theo hướng tối ưu cho môi trường đám mây, đạt mức độ hoàn thiện kỹ thuật “thật sự đáng kinh ngạc” trong hỗ trợ đa lõi, xử lý bộ nhớ và cải tiến GC
Beyond Java: Ventures After Sun
- Sau khi Sun được Oracle mua lại, Gosling nghỉ ngơi một thời gian ngắn rồi gia nhập Google, nhưng chỉ sau 6 tháng đã rời đi để chuyển sang Liquid Robotics
- Tại đó ông phát triển hệ thống điều khiển robot biển tự hành, trải nghiệm một môi trường làm việc độc đáo kết hợp công nghệ với thiên nhiên, nơi công việc thậm chí đòi hỏi phải lặn ống thở ở Hawaii
- Ông tham gia các dự án theo dõi nhiệt độ đại dương ở Bắc Cực và Nam Cực, nhưng nghiên cứu môi trường thiếu kinh phí nên đã xảy ra xung đột với cấu trúc startup dựa trên vốn VC
- Khi liên tục chịu áp lực chuyển hướng sang lĩnh vực quốc phòng, ông rời đi vì lý do đạo đức, rồi tham gia dự án Greengrass và các công cụ phát triển tại AWS, tiếp tục đưa ra lựa chọn nghề nghiệp cân bằng giữa hứng thú kỹ thuật và chuẩn mực đạo đức
On Open Source and Industry Trends: Cutting Through the Hype
- Open source được mô tả không chỉ là công cụ cộng tác mà còn là một hệ sinh thái đa hợp vận hành như quan hệ nhà phát triển, chiến lược marketing và mô hình chấp nhận từ dưới lên
- Về xu hướng low-code và no-code, ông bày tỏ hoài nghi khi cho rằng đây là luận điểm lặp lại từ thời COBOL, và là cách tiếp cận chuyên biệt có giới hạn khi áp dụng vào các miền bài toán phức tạp
- Ông cho rằng với AI và machine learning, vấn đề nằm ở tên gọi hơn là công nghệ, đồng thời đưa ra phê phán thuật ngữ khi cho rằng “các kỹ thuật thống kê nâng cao” phù hợp với bản chất hơn
- Ông nhấn mạnh AI chỉ là công cụ và không nên bị hiểu lầm như một thực thể tự trị, đồng thời cho rằng nó nên được xem là công cụ cấp cao hỗ trợ hơn là đe dọa lao động của con người
Developer Tools and Preferences: Embracing Progress
- Gosling sử dụng NetBeans IDE làm công cụ phát triển chính, đồng thời thể hiện lập trường ủng hộ open source dựa trên giấy phép Apache và một cộng đồng năng động
- Ông bày tỏ sự tiếc nuối trước thái độ từ chối tiến bộ công nghệ của những nhà phát triển vẫn bám chặt vào Vi hay các công cụ từ thập niên 70~80
- Dù thỉnh thoảng vẫn dùng Vi vì có thể chạy ở mọi nơi, ông ủng hộ mạnh mẽ việc sử dụng IDE hiện đại trong môi trường phát triển thực thụ
The JVM Vision: From Academic Concept to Global Standard
- Khái niệm ban đầu của Java Virtual Machine (JVM) bắt nguồn từ thử nghiệm về định dạng phân phối trung lập kiến trúc và nghiên cứu kỹ thuật dịch lệnh mà Gosling hình thành từ thời học cao học
- Về sau, điều này phát triển thành một công nghệ nền tảng thực thi đa dụng, cho phép không chỉ Java mà nhiều ngôn ngữ khác chạy trên nhiều phần cứng khác nhau
- Triết lý ‘Write once, run anywhere’ ban đầu từng bị bác bỏ làm đề tài luận án tiến sĩ vì thiếu nền tảng toán học, nhưng rồi lại trở thành một công nghệ thực dụng làm thay đổi môi trường phát triển phần mềm toàn cầu
More Recent Work: Bridging IoT Gaps at AWS
- Tại AWS, Gosling tham gia phát triển Greengrass, một framework ứng dụng IoT, qua đó hiện thực hóa cách tiếp cận kỹ thuật đơn giản hóa thanh lịch những vấn đề phức tạp
- Nó trừu tượng hóa các tác vụ boilerplate lặp đi lặp lại giữa triển khai và vận hành như cập nhật OTA, điều khiển từ xa, telemetry, độ tin cậy mạng, bảo mật và quản lý xác thực
- Phần mã phía thiết bị được công bố open source, qua đó khuyến khích các đóng góp porting từ cộng đồng cho những nền tảng không được Amazon ưu tiên như RISC-V
- Một dự án công cụ phát triển khác mà ông tham gia sau đó đã bị dừng lại vì cuốn vào cơn sốt AI, qua đó gợi ra các vấn đề của sự hỗn loạn chạy theo xu hướng hơn là tính chân thực công nghệ
AI Skepticism
- Trong một cuộc phỏng vấn gần đây, Gosling dùng cụm từ “phần lớn là lừa đảo” để nói về cuộc cách mạng AI, cho thấy góc nhìn hoài nghi khi xem AI như một thuật ngữ marketing độc hại
- Dù thừa nhận đây là công nghệ ấn tượng về mặt toán học, ông chỉ ra rằng cái tên AI làm mờ đi bản chất kỹ thuật thực sự là các kỹ thuật thống kê nâng cao
- Ông chỉ trích mạnh làn sóng AI do venture capital dẫn dắt là “nơi tụ họp của những kẻ lừa đảo và những người thổi phồng quá mức”, cho thấy sự phê phán gay gắt xu hướng theo đuổi lợi nhuận ngắn hạn và exit hơn là công nghệ hữu ích thực sự
- Ông cảnh báo phần lớn tiền đầu tư vào AI rốt cuộc sẽ “bị hút vào hố đen”, như một lời cảnh báo về dòng vốn chạy theo trào lưu thiếu tính bền vững
Is It a Vibe? AI Coding Tools: Impressive Demos, Limited Utility
- Các công cụ viết mã bằng AI tạo sinh tạo ấn tượng mạnh lúc ban đầu, nhưng lại có cấu trúc giới hạn dễ thất bại khi độ phức tạp chỉ tăng lên một chút
- Những công cụ này chỉ có thể cào lấy và lặp lại các mẫu mã hiện có, trong khi các vấn đề thực sự thú vị luôn là thứ mới mẻ nên không phù hợp với công cụ dựa trên sao chép
- Trong môi trường phát triển chuyên nghiệp, mã theo khuôn mẫu thường hội tụ thành thư viện, vì vậy việc AI sinh mã xung đột về mặt cấu trúc với nhu cầu phát triển thực tế
- Gosling định nghĩa giá trị thực sự của AI là một công cụ tìm kiếm thay con người làm những việc tài liệu hóa mà chẳng ai muốn làm, và nhấn mạnh giá trị của nó như một công cụ hỗ trợ chuyên giải thích cách dùng API
Java’s Evolution: Language Features and Runtime Improvements
- Trong những thay đổi gần đây của ngôn ngữ Java, các cải tiến như suy luận kiểu và cách khai báo mảng được đánh giá là những mở rộng hữu ích giúp tăng sự tiện lợi cho lập trình viên
- Tuy vậy, Gosling nhấn mạnh rằng bước tiến ấn tượng nhất của Java nằm ở sự cải thiện chất lượng của môi trường thực thi JVM và thư viện chuẩn
- JVM hiện đại cho thấy hiệu năng thực thi đã đạt tới “mức đáng kinh ngạc” ở các khía cạnh như chất lượng mã, hiệu năng luồng và garbage collection
- Xét về quản lý bộ nhớ và khả năng dự đoán hiệu năng, nó hiệu quả hơn ngôn ngữ C dựa trên malloc, đồng thời cũng nhắc đến khả năng tinh chỉnh để giảm thời gian dừng của GC xuống chỉ vài mili giây
- JVM hiện nay được đánh giá là một môi trường runtime hiệu năng cao có thể xử lý ổn định cả những không gian bộ nhớ cực lớn
Programming Languages for Critical Infrastructure
- Trước câu hỏi nên viết lại hệ thống kiểm soát không lưu của FAA bằng ngôn ngữ nào, Gosling bác bỏ tiền đề của câu hỏi khi nói rằng đó giống như chọn búa khi còn chưa xây nhà
- Ông nhấn mạnh phải hiểu rõ trước các thuộc tính của miền bài toán như hệ thống liên lạc, quy định quốc tế, lộ trình bay và tránh va chạm rồi mới chọn công nghệ
- Tuy vậy, ông cũng nói thêm rằng với những hệ thống lớn đòi hỏi độ tin cậy cao, Java có thể là một ứng viên rất mạnh
The Future of Programming in an AI World
- Dù AI tiếp tục phát triển, lập trình vẫn là kỹ năng thiết yếu, và Gosling nói rằng nếu có con, ông chắc chắn sẽ dạy chúng viết code
- Ông chỉ trích tuyên bố của các lãnh đạo Big Tech rằng AI sẽ thay thế lập trình viên là những lời đe dọa mang tính tự vệ nhằm gia tăng cường độ lao động
- Để thực sự hiểu hệ thống thì vẫn cần năng lực lập trình, và ông lập luận rằng ngay cả khi máy móc làm thay, nền tảng hiểu biết kỹ thuật của con người vẫn phải được duy trì
Java’s Longevity Secret
- Theo Gosling, lý do Java có thể sống sót hơn 30 năm là khả năng giải quyết vấn đề thực tế, tôn trọng người dùng, tương thích ngược, nâng cao năng suất và triết lý lấy độ tin cậy làm trung tâm
- Java luôn nhấn mạnh tính thực dụng nhất quán hơn là chạy theo mốt ngôn ngữ, và triết lý thiết kế lấy kết quả làm trọng hơn phong cách đặc biệt hiệu quả trong môi trường enterprise
- Với quan điểm phần mềm “luôn phải hoạt động đúng”, Java vẫn là một công cụ kỹ thuật trung thực và thực dụng
Oracle’s Stewardship: Better Than Expected
- Về cách Oracle vận hành Java sau khi mua lại Sun Microsystems, Gosling nói họ “đã làm tốt hơn rất nhiều so với suy nghĩ”, đồng thời bày tỏ sự ngạc nhiên trước kết quả vượt ngoài dự đoán
- Ban đầu ông từng lo ngại về kiểu “cướp bóc và tàn phá” vì những hành động trong quá khứ, nhưng trên thực tế, việc Oracle không cản trở mà còn bảo vệ đội Java khiến ông đưa ra đánh giá tích cực về tính độc lập và cách vận hành lấy công nghệ làm trung tâm
- Dù chỉ ra rằng hỗ trợ tài chính là chưa đủ, ông vẫn đánh giá cao việc một cấu trúc bảo đảm quyền tự chủ cho đội ngũ kỹ thuật mà không bị doanh nghiệp can thiệp đã được duy trì
Crab Lovers Unite!
- Gosling từng nói ông muốn làm việc với những người mà mình cũng muốn cùng ngồi ăn, cho thấy thái độ coi trọng tiêu chuẩn hợp tác lấy con người làm trung tâm
- Phóng viên đã tình cờ gặp Gosling tại Thanh Long, một nhà hàng cua nổi tiếng ở San Francisco, và ghi lại khoảnh khắc một nhân vật lớn của giới công nghệ xuất hiện trong đời sống thường nhật
- Sau đó, hai người cùng ăn món cua và trò chuyện, rồi hẹn lần gặp sau cũng tại chính nơi ấy, truyền tải sự ấm áp của một kết nối rất con người vượt ra ngoài công nghệ
13 bình luận
Tôi cũng nghĩ rằng trong số các ngôn ngữ kiểu tĩnh thì Java là ngôn ngữ dễ dùng và thoải mái nhất.
Tuy nhiên, xét về phát triển mang tính phổ dụng và thực tiễn, việc viết các ứng dụng hướng tới end-user có GUI bằng Java không phải là lựa chọn quá tốt. (Nếu nhìn từ góc độ đó thì tổ hợp C# + .NET là tốt nhất)
Nếu xét đến các ưu điểm của Java thì tôi nghĩ dùng nó cho backend hoặc middleware là trường hợp hợp lý nhất về mặt thực dụng.
Dù sao thì đây cũng là ngôn ngữ mà mỗi khi thỉnh thoảng có việc phải dùng đến, tôi đều có thể xử lý một cách thoải mái, nên có lẽ những trải nghiệm tốt với nó vẫn còn đọng lại nhiều hơn.
Câu chuyện từng tháo TV ở bãi phế liệu để học lập trình đúng là nghe như phần mở đầu của một huyền thoại.
Đúng là sau Java, các ngôn ngữ mới bắt đầu chú trọng đến năng suất.
Trước đó, C++ thường được dùng, và đến giờ ngay cả việc đọc nó cũng vẫn kinh khủng. Đặc biệt là khi phải đụng vào những dự án đã tồn tại lâu năm.
Thật khó để đồng ý với nhận định rằng Java coi trọng năng suất của lập trình viên
Có ngôn ngữ nào khác phát triển theo hướng phụ thuộc sâu vào IDE như Java không?
Có vẻ tôi đã để lại một bình luận quá hấp tấp.
Việc phụ thuộc quá nhiều vào IDE là vấn đề của hệ sinh thái Java đã phát triển theo hướng không lý tưởng,
chứ không phải vấn đề ở cấp độ thiết kế.
Nói thẳng ra thì hiện nay khi phát triển Java, không nhất thiết phải dùng sản phẩm của JetBrains,
nhưng cũng giống như việc mọi người đều đang dùng nó vậy.
Và nếu nhìn vào danh sách các ngôn ngữ lập trình ở thời điểm Java ra đời, đó là thời kỳ có nhiều ngôn ngữ với cách triển khai phụ thuộc vào nền tảng, tức là phụ thuộc vào OS.
Java chính là thứ đã cho thấy định hướng của những ngôn ngữ như Node, Python, C# có thể chạy trên nhiều OS khác nhau với cùng một đoạn mã.
Ngày nay, khả năng tương thích để cùng một đoạn mã chạy trên nhiều OS đã trở thành một "lẽ thường" hiển nhiên rồi.
> Nói thẳng ra thì bây giờ phát triển Java cũng đâu nhất thiết phải dùng sản phẩm của JetBrains
Phần này thì... tôi hơi khó mà đồng ý được, huhu...
Bây giờ thì điều đó có vẻ khá hiển nhiên,
nhưng vào thời điểm Java ra đời, chỉ riêng việc hỗ trợ đa nền tảng một cách ổn định mà không cần bản build mới hẳn cũng đã là một cú hích rất lớn cho năng suất rồi, đúng không?
So với các ngôn ngữ trước Java, có vẻ năng suất cũng tốt hơn.
c++ > c# >= java
C# >= Java > C++
Ý kiến Hacker News
java.util.concurrenthay JCToolsstrace,gdb; việc cấp phát bộ nhớ dư thừa khiến kernel khó nắm bắt workload; khi dùng JVM nếu không có chuyên gia hỗ trợ thì cảm thấy nguy cơ gặp vấn đề nghiêm trọng rất cao; rồi còn Oracle, giấy phép, quản lý phiên bản JDK, hình ảnh không còn “ngầu” vào năm 2025, và việc code legacy cản trở; cá nhân đã xây dựng sự nghiệp trong khi tránh Java tối đa, còn hiện nay xu hướng là có nhiều ngôn ngữ hiệu năng cao dựa trên biên dịch tĩnh và file thực thi nhỏ với độ phức tạp vận hành thấp hơn, nên vai trò của các giải pháp như JVM hay Python VM cũng đang dần thu hẹpjstack, HPROF cũng rất phong phú; giấy phép thì là open source và không có hạn chế sử dụng, còn việc mua Oracle JVM chỉ là lựa chọn tự nguyện; cũng đặt câu hỏi rằng vấn đề code legacy ở đây cụ thể là gìstrace/gdb, các công cụ JDK và IDE áp đảo về hiệu quảstrace/gdb, còn hỗ trợ debug/IDE thì cực mạnh; việc đặt Python và JVM lên cùng một mặt bằng về hiệu năng là không phù hợpCó vẻ có phe C# đang ẩn mình ở giữa nhỉ