5 ngôn ngữ lập trình “khó chịu” nhất thế giới

Bạn đã bao giờ gặp phải một ngôn ngữ lập trình mà mình không thể đọc và không hiểu được chưa? Với sự tiến bộ ngày nay, các ngôn ngữ lập trình thường theo xu hướng đơn giản hóa để phù hợp với người dùng từ những coder mới đến các chuyên gia lâu năm. Tuy nhiên vẫn tồn tại trong thế giới lập trình những ngôn ngữ không hề “dễ ở” chút nào. Có một vài ngôn ngữ mã hóa được gọi là "ngôn ngữ lập trình kỳ bí" hay esolang. Các ngôn ngữ này được phát triển để kiểm tra hạn chế của thiết kế ngôn ngữ lập trình máy tính. Những ngôn ngữ này ta không đánh giá nó khả dụng hay không, cũng không được phát triển để cố gắng thay thế những ngôn ngữ lập trình thông thường. Người có niềm đam mê với loạt ngôn ngữ “khó ở” này thường là các hacker hoặc những người có sở thích đam mê vì chúng khá mới lạ thôi. Hãy cùng Quantrimang tìm hiểu xem đó là những ngôn ngữ nào nhé!

COW

Chà, đây chắc chắn là ngôn ngữ lập trình khó nhất nhưng cũng hài hước nhất thế giới. COW được phát triển vào năm 2003 bởi Sean Heber, và tất nhiên nó đã lỗi thời. Ngôn ngữ này được thiết kế với ý tưởng các đoạn code là tiếng của con bò. Bò sở hữu những từ vựng hạn chế, vì vậy các nhà phát triển kế thừa dựa trên các âm thanh mà chúng phát ra, bao gồm biến thể khác nhau của "moo", đó là moO, MoO, mOo, mOO, Moo… Nếu bạn viết bất kỳ ký tự hoặc từ nào khác, nó tự động được coi là một nhận xét, ghi chú. COW phát triển dựa trên các ngôn ngữ sử dụng trong máy Turing. Do đó, tất cả các tính toán có thể được thực hiện trên máy Turing thì đều có thể được thực hiện trên COW.

Và đây là “Hello World” quen thuộc được viết dưới dạng ngôn ngữ lập trình COW.

MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo OOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOoMOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo MooOOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo

Intercal

Intercal là một ngôn ngữ lập trình kỳ bí được tạo ra bởi Don Woods và James Lyon vào năm 1972. Ngôn ngữ này được thiết kế với mục tiêu tạo ra ngôn ngữ không có điểm tương đồng với bất cứ ngôn ngữ nào khác. Tên đầy đủ là "Compiler Language With No Pronounceable Acronym" tức "Ngôn ngữ trình biên dịch không từ viết tắt nào có thể phát âm", viết tắt là "INTERCAL". Bạn có thể muốn “phát điên” khi học và cố gắng viết code trong trình biên dịch này. Điều duy nhất khiến Intercal trở nên thân thiện với người dùng là trong code có bao gồm các từ như Read out, Ignore, Please, Forget… Nhưng buồn cười nhất, nếu code của bạn không có từ khóa Please, nó sẽ bị đánh giá là không lịch sự, hệ thống sẽ hiển thị thông báo lỗi cùng lời từ chối chạy chương trình. Mặt khác, nếu bạn có sử dụng đầy đủ từ khóa nhưng vẫn sẽ bị hệ thống “hơi hâm” này coi là quá lịch sự và tiếp tục không cho chạy!!! Vậy nên, có thể đánh giá Intercal thực sự “dị”. Quantrimang không đi quá sâu vào tìm hiểu, vì đã có chút “đau não” rồi. Xin giới thiệu cho bạn “Hello World” viết bằng ngôn ngữ này.

PLEASE DO ,1 <- #13

DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #112
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #238
DO ,1 SUB #7 <- #26
DO ,1 SUB #8 <- #248
DO ,1 SUB #9 <- #168
DO ,1 SUB #10 <- #24
DO ,1 SUB #11 <- #16
DO ,1 SUB #12 <- #158
DO ,1 SUB #13 <- #52

PLEASE READ OUT ,1
PLEASE GIVE UP

Whitespace

Bạn nghĩ gì về một ngôn ngữ lập trình được tạo ra như một trò đùa ngày Cá tháng Tư? Whitespace đúng như cái tên của nó khi code trong ngôn ngữ lập trình này toàn là các khoảng trống mênh mông, sử dụng các ký tự khoảng trắng làm cú pháp chính. Hài hước hơn nữa là ngôn ngữ lập trình này được tác giả Edwin Brady và Chris Morris phát hành vào ngày 1 tháng 4 năm 2003 và bị giới lập trình lầm tưởng là một trò đùa, nhưng thực tế thì không. Đáng chú ý nữa là nếu bạn viết bất kỳ ký tự nào khác ngoài các khoảng trắng, nó sẽ tự động bị trình biên dịch bỏ qua. Chà, Whitespace có thể là ngôn ngữ lập trình được mã hóa nhất trong lịch sử vì chỉ có những người sáng tạo ra mới có thể hiểu được nó.

Và đây là Hello World trong Whitespace, với "S", "T", "L" là Space, Tab hoặc Linefeed tương ứng:

Chef

Nếu bạn thích nấu ăn thì chắc chắn bạn sẽ cực kỳ “yêu thương” ngôn ngữ lập trình này. Code xuất hiện trong Chef là một số công thức nấu ăn và các nguyên liệu vô cùng “tươi mới”, “hay ho”, các biến có xu hướng đặt tên theo các thực phẩm cơ bản, ví dụ: stack được gọi là mixing bowls hay mixing dishes. Một số nguyên tắc khi viết chương trình là nội dung code phải chuẩn để có thể tạo ra thành phẩm thật, nguyên liệu phải dễ chuẩn bị và... trông ngon miệng!!! Bạn có thể tìm hiểu một số code mẫu của ngôn ngữ lập trình này và “thưởng thức” nó trong sự hài hước hiếm thấy.

Và đây là Hello World với Chef

Hello World Cake with Chocolate sauce.

This prints hello world, while being tastier than Hello World Souffle. The main
chef makes a " world!" cake, which he puts in the baking dish. When he gets the
sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish
and then the whole thing is printed when he refrigerates the sauce. When
actually cooking, I'm interpreting the chocolate sauce baking dish to be
separate from the cake one and Liquify to mean either melt or blend depending on
context.

Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture

Cooking time: 25 minutes.

Pre-heat oven to 180 degrees Celsius.

Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquify the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.

chocolate sauce.

Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate

Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquify the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquify the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquify contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour.

Brainfuck

Brainfuck là một ngôn ngữ esolang được giới thiệu vào năm 1993 bởi Urban Muller. Ngôn ngữ lập trình này thể hiện đúng như tên của nó - Brainfuck, rất phức tạp và bất thường. Brainfuck bao gồm tám lệnh > < + - . , [] và chương trình là chuỗi các lệnh này!? 8 lệnh có sẵn hoạt động như một mảng các ô nhớ. Nghe tới đây có thể nhiều người sẽ đánh giá ngôn ngữ này có vẻ “sáng tạo” và mang tính cách mạng, nhưng nếu thấy code Brainfuck đầy đủ, bạn có thể ngay lập tức nhảy ra khỏi ghế của mình! Bạn sẽ có cảm giác mình vừa được đưa về thời nguyên thủy của sự sáng tạo, để viết “Hello World” phải sử dụng các ký hiệu số học kỳ cục như này:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.

Các chương trình Brainfuck thường có xu hướng dài và khó hiểu, đó là lý do nó ít được sử dụng. Bạn có thể học ngôn ngữ lập trình này nếu rất rảnh.

Ngoài 5 cái tên nổi bật Quantrimang vừa giới thiệu thì còn cơ số những ngôn ngữ cũng “khó chịu” không kém như Malbloge, Befunge, Omgrofl, nhiều người khó tính còn đánh giá chúng cực kỳ bất bình thường, chẳng khác gì... rác thải và hơn thế nữa.

Ví dụ code Hello World của Malbloge như này:

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

…Vậy nên tốt nhất là bạn không nên lãng phí thời gian của mình và mong ước trở thành một lập trình viên tuyệt vời của những ngôn ngữ khó nhằn này.

Xem thêm:

Thứ Tư, 30/01/2019 08:52
512 👨 5.690