February 24, 2014

Tản mạn về ngôn ngữ lập trình

Gần đây công ty mình mới tuyển được một anh tên là Ezoe chuyên đọc luận văn về quá trình chuẩn hoá ngôn ngữ C++. Mình cũng không biết anh ấy có tham gia thảo luận không nhưng qua cách anh ấy giải thích có thể thấy anh ấy có một am hiểu rất sâu sắc về C++. Mình thấy mọi người trong công ty có vẻ rất hâm mộ và bàn bạc về C++ cũng sôi nổi. Nhờ thế mà hứng thú tìm hiểu ngôn ngữ lại trở lại với mình (vốn dĩ gần đây mất đi vì nội dung công việc).

Hôm nay lại được đọc bài viết phỏng vấn Nicolai Josuttismột tác giả chuyên sâu về ngôn ngữ C++ . Theo tác giả nói, tác giả yêu ngôn ngữ C++ nhưng lại không phải là fan của ngôn ngữ (Mình hiểu với fan cuồng tín thì C++ là số một). Tác giả cũng không code một dòng nào trong thời gian gần đây. Bản thân tác giả nếu phải làm một chương trình nào đấy tác giả cũng không viết bằng C++. Bản thân tác giả cũng trả lời một cách rất tiếu ở đoạn cuối bài phỏng vấn:

If performance really matters, then I don’t see any alternative to C++. However, you pay a big price for using it. Due to the complexity of C++, the support for the ordinary programmer is incredibly bad compared to other languages, and that’s a major drawback. But all that helps to sell my books. You can say that C++ creates jobs, and that’s important in these times.

Tuy vậy những điều này tự nhiên làm nảy sinh trong mình nhiều suy nghĩ về C++ nói chung và ngôn ngữ lập trình nói riêng.

Đầu tiên mình thấy có một điểm chung ở cả hai người trên. Bản thân anh Ezoe là một nhà nghiên cứu chân chính. Anh đọc và am hiểu rất chi tiết về C++, tuy vậy anh lại không code một dòng nào gần đây! Tác giả Nicolai Josuttis cũng không code mấy. Tác giả cũng đã trả lời trực tiếp là tác giả đã từ bỏ cuộc chiến ngôn ngữ 15 năm trước đó. Tác giả dù am hiểu ngôn ngữ nhưng cũng không dùng ngôn ngữ đó để viết chương trình! Mình thấy đây là điều cực kỳ phí phạm!

Thứ hai, anh ezoe ca ngợi các tính năng của C++, C++11, C++14 tuy vậy anh không sử dụng các tính năng này. Việc này làm giảm sự thuyết phục trong lập luận. Làm sao bạn có thể chứng minh được rằng một cái gì đó hay nếu như bạn không sử dụng nó để tạo ra các chương trình tốt?

Từ đây tự nhiên mình thấy có một sự tương quan giữa lập trình và âm nhạc. Ngôn ngữ lập trình giống như một nhạc cụ. Người nhạc công chơi một bản nhạc và gửi gắm những tình tứ trong bản nhạc đó. Người chế ra nhạc cụ đó là những nghệ sĩ tài hoa. Người tham gia quá trình chuẩn hoá là những người cùng những người chết tác đàn làm cho cây đàn tốt hơn. Một cây đàn sẽ chỉ thể hiện ý tứ, tình cảm, thăng âm từ những âm sắc của nó khi trong tay một nhạc công. Nói cách khác phải có người dùng nhạc cụ chơi ta mới thấy được cái đẹp của một bản nhạc. Mỗi nhạc cụ phát ra những thanh âm khác nhau, mỗi loại có ý tứ riêng có tình cảm riêng. Do vậy tranh luận ngôn ngữ này tốt hơn ngôn ngữ kia cũng giống như tranh luận nhạc cụ này hay hơn nhạc cụ kia; Một tranh luận vô nghĩa. Cái quan trọng là bạn dùng nhạc cụ đó để đem lại điều tốt đẹp cho cuộc sống của người khác như thế nào. Hay bạn dùng nó để diễn tả tâm tư tình cảm của mình như thế nào. Thể hiện bản thân và đem lại tình cảm cho người khác đó mới là điều quan trọng.

Nghĩ đến đây tự nhiên thấy tranh cãi về ngôn ngữ lập trình thật là một sự lãng phí thời gian đến nhường nào.

February 22, 2014

Chấp nhận thử thách

Mình luôn thắc mắc là làm sao những người nổi tiếng có thể lấy thời gian để đọc sách, viết sách và làm nhiều việc đến vậy cho đến khi mình đọc bài báo dưới đây về Vacslav Smil.

http://www.wired.com/wiredscience/2013/11/vaclav-smil-wired/

Theo đó Smil có trả lời rằng: 
You’ve written over 30 books and published three this year alone. How do you do it? 
Hemingway knew the secret. I mean, he was a lush and a bad man in many ways, but he knew the secret. You get up and, first thing in the morning, you do your 500 words. Do it every day and you’ve got a book in eight or nine months.
Việc thức dậy hàng sáng và bắt đầu 1 ngày bằng 1 bài viết quả thực rất ý nghĩa. Chắc chắn ta cũng sẽ không tưởng tượng được sau 1 năm ta sẽ có gì. Với tinh thần đấy mình muốn bắt đầu bí mật này của mình từ bài viết này với tựa đề: "Chấp nhận thử thách". 
Dịp nghỉ tết vừa rồi có thể coi là một trong những kỳ nghỉ mình thu được khá nhiều điều. Được gặp bạn bè, được quây quần bên gia đình, được gặp và nghe những lời khuyên từ các anh đi trước. Trong số những lời khuyên đó có 1 lời khuyên mình thấy rất tâm đắc đấy là: mình nên chấp nhận thử thách hơn.
Một trong những lý do ngăn cản con người ta chấp nhận thử thách đấy là người ta có quá nhiều thứ đem ra cân đong đo đếm. Con người sợ mất đi những cái người ta có. Tâm lý bị tổn thất quá lớn khiến con người ta không thể chấp nhận. Do vậy không ngạc nhiên khi những người dám chấp nhận thử thách là những người liều lĩnh, những kẻ không biết mình có gì, hoặc là những người đã bị dồn về chân tường, những người không còn gì.
Mình thuộc loại có khá nhiều thứ có thể sẽ mất do vậy mình thường hay lùi bước trước thử thách. Tuy vậy senpai lần gần đây nhất có nói với mình rằng: mình rất may mắn khi mình có môi trường. Được sống ở nước ngoài đồng nghĩa với việc mình có một chỗ để quay về dù bất cứ chuyện gì xảy ra. Mình có tất cả đối với những người thân ở quê hương nhưng mình hoàn toàn trần trụi ở đất nước này. 
Mình thật sự được khai sáng khi được nghe những lời khuyên đấy. Vì lý do này mình tuyên bố năm nay sẽ là năm của thử thách!