Javascript - Thị phi

February 05, 2015

Uh thì Java bá đạo quá, còn thằng này tên là Javascript thế chắc là con cháu gì đây. Trước mình cũng nghĩ thế nhưng mà è không có phụ thuộc gì hết cũng chằng cha con gì ráo. Chẳng biết bị thế nào mà sinh ra có tên là javascript :v. Nhưng mà nếu nói anh em thì biết đâu đúng đấy, anh em bà con xa có chung một huyết thống là ông cố tổ C thần thánh. Vì js thì có cú pháp na ná như C được sinh ra tại Netscape, còn Java thì thực sự là dựa vào C mà viết ra và được phát triển tại Sun Microsystems. Hiểu lầm về tên chỉ có thể hoặc là mình biết chỉ có thể.

Mình từng có tư tưởng rằng js là ngôn ngữ dành cho dân không chuyên. Nhớ lại nghĩ mà buồn vì giờ mình đang là thằng dự tính chuyên về js :v. Đây là nhận thức của rất nhiều dân CS vì một thực tế là đa số coder js không được đạo tạo thật sự dùng js để viết chương trình. Nước ngoài đến thời điểm này thì sao không biết chứ VN mình thì khỏi bàn chính mình cũng tự học js và ngộ nhận đây.

Js có hướng đối tượng không? theo nhiều người là không đây là nhận định của các thánh(đúng thánh thật đấy) nhiều năm về trước khi mà js mới là một bé newborn. Lúc mới sinh thì js chưa được hoàn thiện không biết xử lý lỗi, lồng hàm, kế thừa này nọ … Thế rồi js cũng lớn lên và trưởng thành những khuyết tật khi mới sinh đều đã được hoàn thiện, nhưng mà danh tiếng cũ thì vẫn còn đó thành ra đã tạo nên những suy nghĩ sai lầm về js. Nhưng thật ra js trưởng thành là một thằng rất là hướng đối tượng. Nó có thuộc tính và phương thức, đối tượng có thể chưa đối tượng khác(has-a), có constructor cùng chức năng như class. Vậy còn điểm ma thuật kế thừa của OO thì sao? nếu C# có kế thừa class-oriented thì js có prototype-oriented kế thừa. Vấn đề còn lại là object thì có cái chung cái riêng mà js thì cái gì cũng cho thiên hạ xem hết, vậy là hở lưng rồi, nhưng mà cái đó xưa rồi js giờ cũng có thuộc tính riêng và phương thức riêng nốt. Vậy tóm lại, js của ngày nay có thể tạo ra được object bằng cả is-a và has-a(chủ yếu là has-a), object được tạo rất kĩ tính có đẹp thì cho thiên hạ xem(public) cái không đẹp thì giấu lại(private) tuyệt không vạch áo cho người xem lưng :v.

Đó là những hiểu lầm mình đọc được về js trên mạng thấy khá là vui nên cường điệu lên tí chứ nói thật ra thì cái nào cũng có ưu và khuyết. Nên tùy vào bạn muốn cái gì thì đầu tư cho cái đó thôi nhé chứ không toàn vẹn cả đâu :).