Python - Lịch sử
Lịch sử của Python
Xin chào các bạn, các nhà lập trình Python mới nhảy! Tôi rất vui mừng dẫn các bạn đi qua hành trình đầy kỷ niệm về lịch sử Python. Như một người đã dạy lập trình hơn một thập kỷ, tôi có thể nói rằng việc hiểu rễ của một ngôn ngữ có thể giúp bạn trân trọng thiết kế và triết lý của nó.
Câu chuyện của Python bắt đầu vào cuối những năm 1980, nhưng trước khi chúng ta bơi vào đó, để tôi chia sẻ một câu chuyện nhỏ. Tôi nhớ khi đầu tiên biết về việc tạo ra Python - tôi rất vui vì tên của nó! Bạn nhìn thấy, nó không được đặt tên theo con rắn, mà theo nhóm hài kịch British Monty Python. Câu chuyện nguồn gốc kỳ lạ này hoàn toàn phản ánh được tính vui vẻ và dễ tiếp cận của ngôn ngữ mà chúng ta sẽ khám phá.
Sinh trưởng của Python
Python được định dạng vào tháng 12 năm 1989 bởi Guido van Rossum, một nhà lập trình Hà Lan đang làm việc tại Centrum Wiskunde & Informatica (CWI) ở Hà Lan. Guido đang tìm kiếm một dự án lập trình hobbie để làm cho mình bận bịu trong những ngày lễ Giáng sinh. Nhưng không ai biết rằng "hobbie" của anh sẽ phát triển thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới!
Ai đã phát triển Python?
Như đã đề cập, Python được tạo ra bởi Guido van Rossum. Guido thường được gọi là "Chúa trịnh minh vô tội suốt đời" (BDFL) của Python, một chức vụ mà anh giữ cho đến tháng 7 năm 2018 khi anh rời bỏ vai trò này.
Tầm nhìn của Guido cho Python là tạo ra một ngôn ngữ mà:
- Dễ đọc và hiểu
- Nguồn mở, để bất kỳ ai cũng có thể đóng góp vào việc phát triển nó
- Phù hợp cho các nhiệm vụ hàng ngày
- Đơn giản và trực tiếp nhất có thể
Các nguyên tắc này đã hướng dẫn quá trình phát triển của Python suốt lịch sử của nó, khiến nó trở thành ngôn ngữ yêu thích như ngày nay.
Tiến hóa của Python - Các phiên bản chính của Python
Hãy cùng nhìn vào các mốc quan trọng trong tiến hóa của Python. Tôi sẽ trình bày thông tin này dưới dạng bảng để dễ tham khảo:
Phiên bản | Ngày phát hành | Tính năng chính |
---|---|---|
Python 0.9.0 | Tháng 2 năm 1991 | Phiên bản đầu tiên, bao gồm các lớp có kế thừa, xử lý ngoại lệ, hàm và các kiểu dữ liệu cốt lõi |
Python 1.0 | Tháng 1 năm 1994 | Thêm các công cụ lập trình hàm như lambda , map , filter , và reduce
|
Python 2.0 | Tháng 10 năm 2000 | Giới thiệu list comprehensions, hệ thống thu thập rác |
Python 3.0 | Tháng 12 năm 2008 | Phiên bản thay đổi lớn, không tương thích ngược với Python 2.x |
Python 3.5 | Tháng 9 năm 2015 | Thêm cú pháp async và await cho lập trình không đồng bộ |
Python 3.6 | Tháng 12 năm 2016 | Giới thiệu f-strings cho định dạng chuỗi |
Python 3.7 | Tháng 6 năm 2018 | Thêm các lớp dữ liệu, cải thiện asyncio |
Python 3.8 | Tháng 10 năm 2019 | Giới thiệu toán tử walrus (:=) cho biểu thức gán |
Python 3.9 | Tháng 10 năm 2020 | Cải thiện dict và phương thức chuỗi, thêm bộ phân tích mới |
Python 3.10 | Tháng 10 năm 2021 | Giới thiệu khớp mẫu cấu trúc |
Python 3.11 | Tháng 10 năm 2022 | Cải thiện các thông điệp lỗi, CPython nhanh hơn |
Mỗi phiên bản này đem theo những cải thiện và tính năng mới quan trọng cho ngôn ngữ. Hãy xem một số ví dụ mã để minh họa một số thay đổi này.
Python 2.0 - List Comprehensions
# Trước list comprehensions
squares = []
for x in range(10):
squares.append(x**2)
# Với list comprehensions
squares = [x**2 for x in range(10)]
print(squares) # Output: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
List comprehensions cung cấp cách viết ngắn gọn và dễ đọc hơn để tạo ra các danh sách dựa trên các danh sách hoặc các iterable hiện có.
Python 3.6 - F-strings
name = "Alice"
age = 30
# Trước f-strings
print("My name is {} and I'm {} years old.".format(name, age))
# Với f-strings
print(f"My name is {name} and I'm {age} years old.")
# Output: My name is Alice and I'm 30 years old.
F-strings làm cho định dạng chuỗi trở nên trực quan và dễ đọc hơn.
Kết thúc hỗ trợ Python 2.x
Bây giờ, hãy nói về một sự kiện quan trọng trong lịch sử Python – kết thúc hỗ trợ (EOL) cho Python 2.x.
Ngày 1 tháng 1 năm 2020, Python 2 đã đạt đến kết thúc hỗ trợ. Điều này có nghĩa là đội ngũ phát triển Python không còn duy trì hoặc cập nhật Python 2 nữa, bao gồm cả các bản cập nhật bảo mật.
Đây là một điều quan trọng trong cộng đồng Python. Nhiều nhà phát triển và công ty đã phải di chuyển mã của họ từ Python 2 sang Python 3. Quá trình này khó khăn, nhưng cần thiết cho ngôn ngữ để tiến往.
Nếu bạn bắt đầu với Python bây giờ, bạn may mắn! Bạn không cần lo lắng về sự khác biệt giữa Python 2 và 3. Bạn có thể tập trung vào việc học phiên bản mới nhất của Python 3.
Phiên bản hiện tại của Python
Như lần cập nhật cuối cùng của tôi, phiên bản ổn định hiện tại của Python là 3.11.3. Tuy nhiên, luôn là một ý tưởng tốt để kiểm tra trang web chính thức của Python để có thông tin cập nhật nhất, vì các phiên bản mới được phát hành thường xuyên.
Những điều mới trong Python 3.11?
Python 3.11, được phát hành vào tháng 10 năm 2022, đem theo một số cải thiện thú vị. Hãy xem một số tính năng chính:
- Cải thiện các thông điệp lỗi: Python 3.11 cung cấp vị trí lỗi chính xác hơn và các thông điệp lỗi rõ ràng hơn, giúp dễ dàng gỡ lỗi.
# Trước Python 3.11
def greet(name):
return "Hello, " + name + "!"
print(greet(123))
# TypeError: can only concatenate str (not "int") to str
# Trong Python 3.11
def greet(name):
return "Hello, " + name + "!"
print(greet(123))
# TypeError: can only concatenate str (not "int") to str
# Did you mean to convert the right-hand side to a string?
-
CPython nhanh hơn: Python 3.11 nhanh hơn đột ngột so với các phiên bản trước đó, với một số đo lường cho thấy tăng tốc đến 60%.
-
Nhóm ngoại lệ: Tính năng này cho phép bạn ném và bắt nhiều ngoại lệ không liên quan đồng thời.
def process_data(data):
try:
# Các thao tác phức tạp có thể ném nhiều ngoại lệ khác nhau
pass
except* ValueError as e:
print("Value errors occurred:", e)
except* TypeError as e:
print("Type errors occurred:", e)
- Nhóm nhiệm vụ và ngoại lệ: Các tính năng mới trong mô-đun
asyncio
giúp quản lý nhiều nhiệm vụ không đồng bộ dễ dàng hơn.
async def main():
async with asyncio.TaskGroup() as tg:
task1 = tg.create_task(some_coro())
task2 = tg.create_task(another_coro())
# Tất cả các nhiệm vụ đều được chờ đợi tự động khi bộ quản lý ngữ cảnh thoát
Những cải thiện này làm Python mạnh mẽ và dễ sử dụng hơn, tiếp tục truyền thống của nó là một ngôn ngữ tuyệt vời cho các người mới bắt đầu và các nhà lập trình có kinh nghiệm.
Kết luận, lịch sử của Python là bằng chứng cho sự phát triển của cộng đồng và tập trung vào đơn giản và dễ đọc. Từ những ngày đầu tiên dành cho một dự án lễ Giáng sinh đến trở thành một trong những ngôn ngữ lập trình phổ biến nhất thế giới, Python đã đi một con đường dài. Khi bạn bắt đầu hành trình Python của mình, hãy nhớ rằng bạn không chỉ học một ngôn ngữ lập trình mà còn trở thành một phần của một cộng đồng phong phú và sôi động với một lịch sử kỷ niệm. Chúc các bạn lập trình vui vẻ!
Credits: Image by storyset