Tại sao đến phiên bản java 8 Oracle mới cho ra mắt biểu thức lambda?

Anh/chị/bạn cho em hỏi là .net framework ra mắt phiên bản 3.0/3.5 (2008) thì đã release biểu thức lambda nhưng tại sao java đến tận phiên bản java 8 (2014) mới tích hợp biểu thức lambda vào ạ?

Có bác nào ở đây có người quen làm trong Oracle không ạ? Vào chỉ giáo cho mọi người với?

4 Likes

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

2 Likes

Mình cho rằng tư tưởng của những người xây dựng java (về ngôn ngữ nói riêng) là họ không muốn ngôn ngữ này trở nên quá khó và phức tạp, họ muốn làm ngôn ngữ này dễ tiếp cận đến rộng rãi hơn, và họ muốn sự ổn định để nó được dùng trong các hệ thống bussiness đồ sộ chạy hàng thập kỷ (cú pháp không gây bất ngờ cho coder), cho nên họ rất ít khi thêm tính năng/cú pháp đột phá, không phải như C# với một đống cú pháp cực kỳ xịn nhưng khó hiểu cho phổ thông.
Mình có đọc được trên reddit một ai đó nói khá hay: Java là một ngôn ngữ “nhàm chán, gò bó, đa ngôn”, nhưng chính vì vậy mà phòng tránh được chuyện lập trình viên “chơi khôn” khi viết code.

5 Likes

debug java là sướng nhất rồi message rõ ràng flow cũng rõ nữa viết rối thế nào cũng gỡ được chứ như mấy cái javascript hay php bọn kia nó viết kểu buồn ngủ viết đại thì đọc code là điên đầu …:smiley:

2 Likes

Dùng lambda được cái code ngắn, nhưng mà lúc dùng kết hợp với stream tầm 4-5 cái lambda, chẳng may có exception xảy ra thì debug cũng hơi khó. Nếu có IDE hỗ trợ thì còn debug trong biểu thức lambda được chứ nếu đang chạy có log exception thì cũng chả biết nó lỗi đoạn nào.

4 Likes

Vì mình thích thế - Larry Ellison said :v

4 Likes

Hi Huy Nguyen.
Theo mình thì có cũng được mà không có cũng được. Nên nói chung không phải ưu tiên cao nên họ để lùi lại.

2 Likes

Lambda được Java chú ý từ rất lâu rồi, thực tế là từ năm 2009, khi mà 1 dev của Sun Inc - cty khai sinh ra Java (giờ thì bị mua bởi Oracle) tạo 1 proposal mail để phát động Project Lambda.

Để mình nói qua cái proposal mail 1 tí. Do Java là mã nguồn mở, đồng nghĩa với việc ai cũng có thể cải tiến nó, nên cần phải có 1 hệ thống để kiểm soát các sự nâng cấp này. Do đó hệ thống proposal mail ra đời ( http://mail.openjdk.java.net). Ở đây Oracle quản lí hết tất cả các features hay issues Java đang có cũng như các features trong tương lai của Java. Nó cũng kiểu như git với các branch ấy, nhưng dưới dạng mail và thảo luận. Ai muốn đề xuất thêm hay sửa 1 feature nào hoặc có bất kì câu hỏi nào, làm cái mail, gửi lên. Mn sẽ đọc và đưa ra ý kiến. Thường thường các idea mà gửi lên trên này thì đều khả thi cả, và chắc chắn sẽ làm =))) Đề xuất xong, thảo luận để ra cái spec chi tiết. Sau đó spec đc Member trong team Java-dev review. Member xong thì đến lượt Early-Access Review, rồi Public Review, rồi code,… Tóm lại là ti tỉ cái công đoạn để cho đc vào trong bản release của JDK

Quay trở lại với cái Project Lambda, đây là list các thread mà mn thảo luận với nhau https://mail.openjdk.java.net/pipermail/lambda-dev/. Đọc thử 1 số thứ mà họ nói xem, cực kì tỉ mỉ, chi tiết luôn. Họ thảo luận liên tục từ 2009 đến 2015 với rất nhiều threads. Mỗi thread đề cập 1 vấn đề. Với lại, Java là ngôn ngữ

và có tính kỉ luật khá cao, nên họ mới bị mất rất nhiều tg để cân nhắc như vậy.

Funny thing: Idea ban đầu cho lambda không phải là var -> func đẹp đẽ như các ngôn ngữ khác đâu mà nó dùng # với syntax khá buồn cười (Spec version đầu tiên của Lambda)

5 Likes

OFF-TOPIC: Trông hao hao syntax của C++ :joy:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?