Tôi đã sử dụng ChatGPT để viết cùng một chương trình trong mười ngôn ngữ lập trình xa lạ này

hình9.jpg

Một vài tuần trước, tôi đã xem xét việc sử dụng ChatGPT để viết cùng một quy trình trong mười hai ngôn ngữ lập trình phổ biến nhất. Nhưng vì là một người yêu thích ngôn ngữ lập trình, tôi muốn biết ChatGPT có thể đi được xa đến đâu. Liệu nó có thể lập trình bằng một ngôn ngữ từ những năm 1950 hay không? Liệu nó có thể lập trình bằng một ngôn ngữ sử dụng bộ ký tự riêng của mình hay không? Liệu nó có thể viết code bằng một trong những ngôn ngữ đã viết code của nó không?

Cũng còn có: Những chatbot AI tốt nhất: ChatGPT và các lựa chọn thay thế để thử

Và vì vậy, tôi đã bắt đầu. Tôi đã sử dụng nhiều ngôn ngữ mà tôi đang giới thiệu ở đây, vì vậy tôi sẽ đi một chuyến đi ngắn về những kỷ niệm và kể một số câu chuyện về kinh nghiệm của tôi với những ngôn ngữ đó.

Trong khi tôi chưa chạy mã nguồn, tôi đã đọc qua tất cả các chương trình được tạo ra. Hầu hết trông đúng và hiển thị các chỉ báo phù hợp cho thấy ngôn ngữ trình bày là ngôn ngữ tôi yêu cầu.

Tôi đang nói cho bạn biết vì các tiêu đề trên tất cả các ảnh chụp màn hình đều sai. Hầu hết được liệt kê là SQL. Vì một lý do nào đó, BAL được hiển thị là VBNet và Prolog được liệt kê là Rust. ChatGPT không phạm lỗi này lần trước, nhưng nó đã phạm lỗi hôm nay, cho tất cả các ngôn ngữ được hiển thị ở đây.

Với điều đó, hãy bắt đầu.

Fortran

Fortran (hoặc FORTRAN, như được miêu tả vào thời điểm đó) viết tắt của Formula Translation. Ban đầu nó được phát triển chủ yếu cho các tính toán khoa học và kỹ thuật. Mặc dù nó đã tồn tại từ những năm 1950, đây thường là ngôn ngữ đầu tiên được dạy cho sinh viên kỹ sư trong những năm 1970 và 1980.

Ngoài ra: Công nghệ mới này có thể thổi bay GPT-4 và tất cả những thứ giống nó

Đối với tôi, đó là ngôn ngữ lập trình thứ tư của tôi, sau BASIC, ngôn ngữ lập trình hợp ngữ PDP-8 và mã nhị phân PDP-8 (đúng vậy, tôi viết mã nhị phân để có thể chuyển nó vào trước bảng điều khiển của một máy tính nhỏ đầu tiên). Cha tôi đã một cách rộng lượng lái xe cho tôi mất một giờ đồng hồ xuống Newark College of Engineering (hiện là NJIT) để tôi có thể tham gia khóa học lập trình năm đầu của họ trong khi tôi vẫn còn là một học sinh năm thứ hai trung học.

Fortran chưa bao giờ là một lựa chọn ưu tiên, mặc dù nó có thể hoàn thành phần lớn công việc liên quan đến tính toán. Một phiên bản của Fortran vẫn được sử dụng ngày nay, nhưng nó khá hạn chế chỉ dành cho công việc khoa học chuyên ngành vì nhiều ngôn ngữ hiện đại khác đã vượt trội hơn Fortran trong việc phân tích cấp độ Fortran và làm nó tốt hơn.

Ở đây, do việc sử dụng từ khóa implicit, dường như ChatGPT đang miêu tả mã được viết bằng biến thể Fortran-77.

hình7.jpg

COBOL

Tôi là một lập trình viên COBOL khi còn là một thiếu niên. Lúc đó, tôi chưa biết gì về COBOL, nhưng vào khoảng năm 1980, tôi nhìn thấy một quảng cáo tuyển dụng lập trình viên COBOL tại Trung tâm Dữ liệu Khu vực Đông Bắc của Công ty International Paper tại Denville, NJ. Nó cách nhà cha mẹ tôi khoảng 40 phút, và tôi cần một công việc mùa hè. Khi tôi đã xếp được cuộc phỏng vấn, tôi đến cửa hàng sách địa phương và dành một cuối tuần để đọc tất cả tài liệu về COBOL có thể tìm thấy.

COBOL được thiết kế để xử lý theo hướng kinh doanh. Ngày nay, loại khách hàng tương tự sẽ là người dùng SAP hoặc Salesforce. Nhưng nhìn vào code COBOL-88 dưới đây, bạn có thể thấy rằng COBOL chắc chắn đã làm nhiệm vụ, nhưng nó không đẹp.

Khi tôi bắt đầu làm việc ở đây, họ thực sự muốn có một nhân viên toàn thời gian. Nhưng vì tôi đã làm được thử thách của họ (rõ ràng thì việc học cuối tuần của tôi vượt qua các điểm của những chuyên gia khác đã apply), nên họ đã quyết định cho tôi làm việc trong mùa hè. Nói rằng sự khác biệt văn hóa là dở hơi là quá ít. Đó là những ngày đầu của máy tính cá nhân (hãy nghĩ về thời điểm trước khi có máy tính cá nhân) và tôi vui thích mọi thứ đó. Trong khi đó, những người ở đây thì mặc áo đồng phục và đeo cà vạt, họ chỉ quan tâm đến các trung tâm dữ liệu khổng lồ. Tôi hầu như ngay lập tức nhận biết được biệt danh "Rắc Rối". Chà, tôi vẫn là một đứa trẻ.

Một khoảnh khắc quyết định đối với tôi đã đến khi một trong những lập trình viên có kinh nghiệm hơn ở công ty dẫn tôi ra ngoài để giải thích, và tôi trích dẫn, "COBOL là cuộc sống". Tôi thấm nhuần thông điệp đó và quyết định rằng tôi không muốn cuộc sống của mình gắn liền với COBOL. Mùa hè đó là lần cuối cùng tôi lập trình bất cứ thứ gì bằng COBOL.

ảnh11.jpg

RPG (Báo cáo Trình tạo chương trình)

Không, đó không phải là một vụ nổ súng tiển lửa hay một trò chơi nhập vai. RPG là một chương trình dùng để tạo báo cáo. Bạn có thể nhìn thấy sự tiến hóa trong ngôn ngữ (và tư duy về ngôn ngữ máy tính nói chung) giữa hai phiên bản được hiển thị dưới đây. RPG II năm về cuối những năm 1950. RPG IV được cập nhật trong những năm 1990, và hiện đại hơn đáng kể (nhưng vẫn còn rất cũ).

Tôi đã viết một vài chương trình RPG III cho hệ thống AS/400 trong thời gian làm thêm trong trường đại học, nhưng không phải là điều gì tôi theo dõi một cách chặt chẽ.

ảnh3.jpg

Lisp

Tôi đã có một tình yêu dài với Lisp. Lisp, mang tên LISt Processor, đôi khi được mô tả là "Nhiều Parentheses Lâu đời Kém Ý tưởng". Vì một lý do nào đó, những cặp ngoặc đơn ấy đã nhấp nháy trong đầu tôi. Lisp đã là cầu nối giúp tôi tiếp cận lập trình Trí tuệ Nhân tạo, và như chúng ta đã biết từ cách ChatGPT xử lý ngôn ngữ, thông tin có thể được biểu diễn dưới dạng chuỗi từ, hoặc danh sách.

Vào những năm 1980, tôi là một quản lý sản phẩm cho một phiên bản Lisp chạy trên RISC, và đã viết code trên nó một thời gian. Dựa trên cú pháp defun greetinglet được tạo ra bởi ChatGPT, có vẻ như đoạn code dưới đây cũng là Common Lisp, một phiên bản sau của việc triển khai Lisp ban đầu của John McCarthy vào cuối những năm 1950. McCarthy là một trong những cha đẻ của nghiên cứu trí tuệ nhân tạo, nên chỉ có thích hợp mà một trí tuệ nhân tạo viết bằng ngôn ngữ của ông.

hình4.jpg

Algol

ALGOL (ALGOthymic Language) đã vượt trước thời đại của nó. Nó cho phép truyền các hàm như tham số và cho phép sử dụng đệ quy. Đây là hai thành phần quan trọng trong lập trình hiện đại mà thiếu trong các ngôn ngữ phổ biến như Fortran và COBOL, hai ngôn ngữ phổ biến cùng thời điểm với việc giới thiệu ALGOL.

Nếu Fortran, BASIC và ngôn ngữ assembly dạy cho tôi lập trình từ trên xuống, thì ALGOL đã dạy cho tôi cách tổ chức mã nguồn. Đó là một ngôn ngữ cơ bản mà đã đặt nền tảng cho việc sử dụng của tôi C, Pascal, Java, JavaScript và hầu hết các ngôn ngữ có cấu trúc hiện đại mà chúng ta sử dụng ngày nay.

hình5.jpg

Simula

Simula, như bạn có thể tưởng tượng, đã được phát triển cho mô phỏng và mô hình hoá. Giống như ALGOL, Simula cũng tiên phong trong việc hỗ trợ sử dụng các đối tượng và lớp. Lập trình hướng đối tượng từ đó đã trở thành cốt lõi cho nhiều ngôn ngữ lập trình hiệu quả nhất ngày nay.

Việc sử dụng từ khóa OUTFIX cho tôi biết rằng ChatGPT có thể viết mã sau bằng Simula-67.

ảnh6.jpg

BAL (ngôn ngữ lập trình hợp ngữ cho IBM 360/370)

BAL, viết tắt của "ngôn ngữ lắp ráp cơ bản," là ngôn ngữ lắp ráp dành cho các máy tính IBM lớn từ những năm 1970 và 1980. Ngôn ngữ lắp ráp được coi là "mức độ thấp hơn" so với "các ngôn ngữ mức độ cao," ý nghĩa là các chỉ thị và từ khóa trong ngôn ngữ lắp ráp tương ứng với từng chỉ thị của bộ xử lý. Trong các ngôn ngữ mức độ cao (như hầu hết các ngôn ngữ sử dụng ngày nay), ngôn ngữ thường cách xa kiến trúc máy tính cơ bản và được thiết kế hơn cho hiệu suất lập trình hơn là hiệu suất sử dụng phần cứng.

Tôi đã học một kỳ BAL trong trường đại học. Đó là một kỳ khá khó khăn. Giáo sư thường đứng với lưng hướng ra phía học sinh, thì thầm bài giảng một cách đơn điệu trong khi viết liên tục trên bảng đen. Tôi ngồi ở hàng sau cùng bên cạnh một cô gái tên Laura. Một ngày nọ, Laura và tôi quyết định thoát ra qua cửa sổ phía sau để đi mua cà phê. Khi đã có cà phê trong tay, chúng tôi trèo trở lại qua cửa sổ. Giáo sư chẳng hề nhận ra điều gì.

Thật là kỳ diệu là chúng tôi đã qua được, nhưng không có gì là ngạc nhiên khi hầu hết chúng tôi không chọn BAL programming làm công cụ lập trình ưa thích.

hình ảnh 8.jpg

APL

APL, hoặc A Programming Language, là một ngôn ngữ lập trình khác. Một trong những điểm nổi bật nhất của APL là nó sử dụng một bộ ký tự không tiêu chuẩn cho một số toán tử và mã lập trình của nó. Bạn có thể thấy điều đó trong hình ảnh bên dưới. Các biểu tượng nhỏ là những gì ChatGPT có thể hiển thị từ phông chữ mà nó đang sử dụng, nhưng APL được thiết kế để sử dụng phông chữ Unicode APL385, là duy nhất trong lập trình APL.

Vì cú pháp ngắn gọn và khả năng quản lý tốt các tập dữ liệu lớn, nó được sử dụng trong một số dự án khoa học, tài chính và phân tích.

hình10.jpg

Tiền thoại

Prolog (một từ được tạo ra từ cụm từ "Lập trình bằng Logic") là một ngôn ngữ tập trung vào trí tuệ nhân tạo khác. Prolog là một ngôn ngữ miêu tả, liệt kê các quy tắc và điều kiện, sau đó chạy các câu hỏi trên những khai báo đó. Theo ChatGPT:

Prolog là một trong những ngôn ngữ lập trình được sử dụng trong việc phát triển ChatGPT, đặc biệt là để tạo ra văn bản. Nó được sử dụng trong mô-đun Prolog-to-English, dùng để dịch các hình thái logic trong Prolog sang câu văn tự nhiên.

hình1.jpg

Smalltalk

Smalltalk đặc biệt. Nó được phát triển tại Xerox PARC, cùng phòng thí nghiệm nghiên cứu ảnh hưởng đến sự phát triển của chuột và môi trường có cửa sổ. Nó tích hợp một số đổi mới về lập trình hướng đối tượng từ Simula và đi xa hơn. Nó cũng là một trong những ngôn ngữ đầu tiên sử dụng môi trường lập trình tương tác dựa trên GUI. Nhiều ngôn ngữ hàng đầu ngày nay, bao gồm Java, Python và Ruby, đều bị ảnh hưởng mạnh bởi Smalltalk.

Tôi chỉ chơi đùa với Smalltalk, chủ yếu là để hiểu nó. Sống ở Thung lũng Silicon vào khoảng thời gian đó, tôi đã làm quen với những nhà thiết kế của Smaltalk, sau đó đã tách ra thành công ty ParcPlace Systems, nhằm mục tiêu thương mại hóa Smalltalk bên ngoài sự cứng nhắc của Xerox. Tôi có rất nhiều kỷ niệm đáng nhớ về việc thảo luận về lý thuyết lập trình trong khi ăn xương nướng và salát cải ở một quán barbecue cũ kỹ ở Palo Alto.

Một trong các phó chủ tịch tôi đã từng làm việc với tại công ty máy tính nơi tôi làm việc đã cố gắng thuyết phục tôi mở một công ty với ông ấy để ứng dụng Smalltalk vào thị trường doanh nghiệp, nhưng tôi chưa từng mắc bệnh khởi nghiệp. Smalltalk không bao giờ được phát triển thành một thị trường. Dù tôi rất hạnh phúc với con đường cuộc sống của mình, đôi khi tôi tự hỏi điều gì sẽ xảy ra nếu tôi đã chấp nhận lời mời đó.

hình2.jpg

Tôi có suy nghĩ

Tôi không chạy mã này và vì tôi không còn quen thuộc nhiều với các ngôn ngữ này như tôi với PHP và JavaScript, tôi không thể đảm bảo rằng việc xem xét trực quan của tôi đảm bảo mã hiển thị ở trên hoạt động thành công. Như chúng ta đã thấy vào đầu tuần này với sự khám phá về khả năng lập trình mới của Bard, có thể viết code mà không cần code hoạt động.

Cũng có thêm một số điều cần xem xét: Tôi đã yêu cầu ChatGPT viết một plugin WordPress mà tôi cần. Nó đã làm trong vòng ít hơn 5 phút

Chúng tôi biết rằng có ít nhất một lỗi trong mỗi ví dụ: tiêu đề sai. Vì vậy, trong khi khả năng của trí tuệ nhân tạo (AI) để tạo ra mã trong một số ngôn ngữ tương đối ít người biết là rất ấn tượng, nhưng đừng cho rằng nó đã làm đúng toàn bộ công việc.

Nếu bạn quyết định tích hợp ChatGPT vào quy trình làm việc của mình, bạn sẽ cần kiểm tra, thử nghiệm và sửa lỗi mã nguồn mà nó tạo ra như bạn sẽ làm nếu bạn thuê người viết một số công việc cơ bản cho bạn.

Bài viết liên quan

Xem thêm >>

Khai phá sức mạnh của AI với HIX.AI!