• Thứ Hai, 05/05/2014 16:43 (GMT+7)

    Những câu chuyện đằng sau 13 tên ngôn ngữ lập trình

    Hoàng An
    Tên ngôn ngữ lập trình thường mang tính công thức và nhàm chán. Tuy nhiên tất cả không hẳn đều như thế, dưới đây là những nguồn cảm hứng đằng sau một số tên gọi của ngôn ngữ lập trình.

    Khi một ngôn ngữ lập trình mới ra đời thì thường được đặt tên theo một trong các cách sau: lấy một từ viết tắt hoặc dựa trên đặc trưng ngôn ngữ ví dụ như: Basic, Cobol, TCL, LISP; các thứ 2 là đặt tên dựa vào nguồn gốc ngôn ngữ hiện có ví dụ như : C++, C#, CoffeeScript. Hoặc được đặt tên theo những người nổi tiếng trong lĩnh vực khoa học máy tính như Ada, Pascal, Turing.

    Python

     

    Ngôn ngữ lập trình Python.

    Python là một ngôn ngữ lập trình thông dịch được phổ biến vào năm 1991, ngôn ngữ này được tạo ra vào cuối những năm 1980 bởi lập trình viên người Hà Lan Guido van Rossum. Ông đã tạo ra ngôn ngữ kịch bản mới dựa trên nền tảng ngôn ngữ lập trình ABC, đối với Rossum thì đây chỉ như là một sở thích trong lúc rảnh rỗi của kỳ nghỉ Giáng sinh. Và đến thời điểm để phổ biến ngôn ngữ này thì Van Rossum muốn có tên gọi sáng tạo dựa trên các tiêu chí như ngắn, độc đáo và một chút bí ẩn. Ông đã tìm thấy nguồn cảm hứng khi xem chương trình của nhóm hài nổi tiếng người Anh: Monty Python.

    Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python đang được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.

    Java

    Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Ngôn ngữ lập trình này được phát triển từ dự án Green Sun trong đầu những năm 1990. Đây là nỗ lực để tạo ra công nghệ hỗ trợ cho làn sóng mới của các thiết bị thông minh, phục vụ cho việc tương tác với người dùng.

    Lấy cảm hứng từ Coffe Peets

    Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này). Nhưng các luật sư của Sun xác định rằng tên đó đã được đăng ký nhãn hiệu nên các nhà phát triển đã phải thay thế bằng một tên mới từ danh sách được lựa chọn trong đó bao gồm Silk, DNA và Java. Những người lựa chọn cái tên Java cũng không rõ ràng chính xác vì sao lại gọi như vậy như hầu hết mọi người đều đồng ý rằng nó lấy cảm hứng từ cafe Peet- loại nước uống phổ biến của các kĩ sư Sun

    Forth

    Ngôn ngữ Forth được phát triển bởi Charles Moore từ những năm 1960. Moore làm việc cho Mohasco- công ty dụng cụ nhà ở vào năm 1968, ông được sở hữu máy tính mini IBM 1130 với màn hình hiển thị đồ họa 2250 và máy tính này được sử dụng để thiết kế thảm.

    Máy tính IBM 1130M.

    Moore không thể sử dụng FORTRAN để chạy chương trình đồ họa, vì vậy ông đã phát triển Forth. Tên ban đầu ông đã chọn là Fourth, nhằm chỉ ngôn ngữ lập trình thế hệ thứ 4. Một vấn đề nảy sinh là 1130 chỉ cho phép lưu tên tập tin bằng 5 ký tự, do đó U đã bị bỏ và Forth được ra đời.

    Perl

    Ngôn ngữ lập tình này được mệnh danh là con dao đa năng Swiss-Army chainsaw bởi tính linh hoạt và sức mạnh của nó. Perl được tạo ra bởi Larry Wall trong cuối những năm 1980 lúc đang làm lập trình viên cho Unisys. Để giới thiệu rộng rãi, Wall cho biết ông muốn đặt một tên ngắn với "ý nghĩa tích cực." cho ngôn ngữ này. Ban đầu ông lấy tên vợ để đặt tên (Gloria), trước khi quyết định " Pearl-ngọc trai" theo "Parable of the Pearl" trong sách phúc âm.

    Pearl được đổi tên thành Perl vì vấn đề bản quyền.

    Nhưng trước ngày phiên bản chính thức đầu tiên của Perl ra đời, Larry phát hiện ra đã có một ngôn ngữ cũng có tên là PEARL "Process and Experiment Automation Realtime Language- ngôn ngữ thời gian thực trong quy trình và thí nghiệm tự động hóa". Ông đã bỏ A và giải quyết lấy tên là Perl. Programming Perl, xuất bản bởi O'Reilly Media, đã đưa ra nơi trang bìa bức ảnh 1 con lạc đà. Từ đó, lạc đà trở thành biểu tượng của ngôn ngữ Perl, cũng như quyển sách đó còn được biết đến dưới cái tên The Camel Book.

    Lua

     

    Lua theo tiếng Bồ Đào Nha có nghĩa là mặt trăng.

    Lua là một ngôn ngữ kịch bản với đặc điểm nhỏ gọn, đa nền tảng. Lua được phát triển từ C và hệ thống các API theo hướng đơn giản hóa. Ngôn ngữ lập trình này được tạo ra vào năm 1993 bởi nhómTeCGraf, đến từ khoa Đồ họa máy tính của Đại học Rio de Janeiro- Brazil. Lua được dựa trên hai ngôn ngữ đã được phát triển trước đó bởi TeCGraf, DEL (Date Entry Language) và SOL (Simple Object Language). Ngôn ngữ này được đặt tên là Lua, có nghĩa là Mặt Trăng theo tiếng Bồ Đào Nha (bản thân Sol có nghĩa là Mặt trời).

    Smalltalk

     

    Ngôn ngữ SmallTalk.

    Smalltalk là ngôn ngữ lập trình hướng đối tượng đầu tiên, kiểu dữ liệu động, và có tính phản xạ được phát triển tại Trung tâm Xerox Palo Alto Research (PARC) vào đầu năm 1970. Ngôn ngữ này chịu ảnh hưởng nhiều từ Java, Python và Ruby. Ngôn ngữ Smalltalk được phát triển bởi nhiều tác giả qua nhiều thời kỳ khác nhau các tác giả chính bao gồm Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace.
    Smalltalk thường được nhắc đến như là tiêu chuẩn ngôn ngữ lập trình, không phải là một trình biên dịch cụ thể. Theo Alan Kay thì tên gọi của ngôn ngữ này đã được lựa chọn để cố gắng tạo thành một hệ thống tương tự như hệ thống ngôn ngữ Ấn -Âu. Tuy nhiên thay vì đặt tên các vị thần thì ông đã chọn một tên vô thưởng vô phạt nhiều hơn, Smalltalk với kì vọng là không quá bị giới hạn.

    Logo

    Logo là một ngôn ngữ được phát triển dành cho mục đích giáo dục vào giữa những năm 1960 bởi các nhà khoa học máy tính của đại học MIT và Bolt, Beranek and Newman. Đây là một ngôn ngữ lập trình được xem là phương ngữ của Lips được phân chia dành riêng cho các đối tượng thuộc các nhóm nhất định. Logo được sử dụng để dạy các khái niệm lập trình và có ảnh hưởng lớn đến ngôn ngữ lập trình thế hệ sau này như Scratch.

    Logo có nguồn gốc từ Hy lạp.

    Một trong những tính năng chính của Logo là tạo ra các lệnh sử dụng đồ thị con rùa. Tên Logo được bắt nguồn từ "logos", trong tiếng Hy Lạp có nghĩa là "từ vựng" hoặc "tư tưởng", để giúp phân biệt ngôn ngữ lập trình số định hướng truyền thống.

    Ruby

    Ruby được phát triển bởi Yukihiro Matsumoto ("Matz") vào năm 1993 như là một ngôn ngữ lập trình hướng đối tượng là thay thế cho Perl và Python. Như Perl, Matz muốn có một cái tên được sáng chói và bền vững như những viên đá quý. Sau khi thảo luận với đồng nghiệp Keiju Ishitsuka, tên của ngôn ngữ này đã được cắt xén xuống hoặc Coral và Ruby.

    Ngôn ngữ lập trình Ruby

    Ruby cuối cùng đã được lựa chọn, bởi theo Matz thì viên đá quý này cũng là viên đá tượng trưng cho ngày sinh của Ishitsuka. Matz cũng cho biết Ruby tượng trưng cho tháng 7 kế tiếp của ngọc trai Pearl là tháng 6, ngôn ngữ Ruby không có nghĩa là người kế nhiệm của Perl mà là sự thay thế. Matz chỉ coi đây như là một ngôn ngữ đồ chơi.

    Scheme

    Trong cuối những năm 1950, John McCarthy của đại học MIT đã phát triển Lisp, một trong những ngôn ngữ lập trình cấp cao đầu tiên và nhanh chóng trở thành ngôn ngữ lập trình ưa thích của các nhà nghiên cứu trí tuệ nhân tạo. Theo thời gian, một số phương ngữ khác nhau của Lisp đã được phát triển, trong đó nổi bật nhất là Planner và Conniver.

    Ngôn ngữ Scheme.

    Năm 1975, Gerald Jay Sussman và Guy Steele cũng đến từ MIT đã phát triển một biến thể mới của Lisp và ngôn ngữ mới này được đặt tên là Schemer. Tuy nhiên, ngôn ngữ chạy trên hệ điều hành MIT phát triển gọi là ITS (Incompatible Timesharing System) và cũng bị giới hạn về ký tự vì vậy Schemer được đổi tên thành Scheme.

    Scala

    Scala bắt đầu được thiết kế từ năm 2001 tại École Polytechnique Fédérale de Lausanne (EPFL) bởi Martin Odersky, tiếp tục phát triển khi làm việc tại Funnel, một ngôn ngữ lập trình tích hợp các ý tưởng về lập trình hàm và mạng Petri. Scala là một ngôn ngữ lập trình đa mẫu hình với khả năng tích hợp các tính năng của hướng đối tượng. Ngôn ngữ được viết để có thể biên dịch thành Java bytecode (và trước đó nó cũng có thể được biên dịch vào NET).

    Biểu tượng của ngôn ngữ Scala.

    Tên Scala đã được lựa chọn vì hai lý do khác nhau: đầu tiên, đó là một sự kết hợp của khả năng mở rộng mạng LAN. Thứ hai, scala cũng là tiếng Ý cầu thang hoặc bậc thang, với ý nghĩa là giúp người dùng vươn tới một ngôn ngữ lập trình tốt đẹp hơn.

    Scratch

    Scratch là một ngôn ngữ lập trình giảng dạy được phát triển bởi một nhóm tại MIT Media Lab vào năm 2003. Những đứa trẻ có thể sử dụng ngôn ngữ này để tạo ra các chương trình chạy bằng cách kết nối các khối trên màn hình mà có thể điều khiển thông qua các hoạt động. Chúng được sử dụng để tạo ra các câu chuyện, phim, trò chơi, nhạc và chỉ là về bất cứ điều gì khác. Ngôn ngữ lập trình Scratch cũng được sử dụng như một công cụ để tạo ra trò chơi Stencyl. Tên gọi này được bắt nguồn từ kỹ thuật scratching (pha trộn âm thanh) của DJ hip-hop.

    AWK

    Bất cứ lập trình viên nào sử dụng Unix đều quen thuộc với AWK, đây là một ngôn ngữ sử dụng cho việc xử lý các tập tin văn bản theo nguyên lý khớp mẫu (pattern matching).

    Ngôn ngữ lập trình này được phát triển vào năm 1977 là một phiên bản tổng quát hơn công cụ mạnh trong UNIX có nhiệm vụ xử lý các file văn bản là grep, dựa trên nguyên tắc khớp mẫu.

    AWK là một ảnh hưởng quan trọng đối với Larry Wall khi ông phát triển Perl. Giống như nhiều tên ngôn ngữ lập trình, AWK là một từ viết tắt nhưng, không giống như trong hầu hết các trường hợp khác, các từ viết tắt không dựa trên những gì đặc trưng của ngôn ngữ. Thay vào đó, nó được bắt nguồn từ họ của ba người đàn ông đã tạo ra nó tại Bell Labs: Alfred Aho, Peter Weinberger, và Brian Kernighan.

    Groovy

    Vào năm 2003, James Strachan-chuyên gia lập trình muốn có một ngôn ngữ kịch bản như Python hay Ruby nhưng mà sẽ chạy trên nền tảng Java. Ông đã thiết kế một ngôn ngữ mới mà có thể tự động biên dịch thành Java bytecode với châm ngôn “ xây dựng ngay trên đầu trang của tất các các mã Java."

    Là những gì ấn tượng hấp dẫn nhất

    Goovy sử dụng cú pháp gần giống với Java nhưng nó không sử dụng dấu chấm phẩy ở cuối mỗi dòng, và nó được tự động dịch sang bytecode và chạy trên máy ảo Java (Java Virtual Machine).