Tôi không biết rằng "Stackless nhanh hơn 10%" trên Wiki đến từ đâu, nhưng một lần nữa tôi chưa bao giờ thử đo những con số hiệu suất đó. Tôi không thể nghĩ về những gì Stackless làm để tạo ra sự khác biệt lớn như vậy.
Stackless là một công cụ tuyệt vời với một số vấn đề tổ chức / chính trị.
Việc đầu tiên đến từ lịch sử. Christian Tismer bắt đầu nói về những gì cuối cùng trở thành Stackless khoảng 10 năm trước. Anh ta có một ý tưởng về những gì anh ta muốn, nhưng đã có một thời gian khó khăn để giải thích những gì anh ta đang làm và tại sao mọi người nên sử dụng nó. Điều này một phần là do nền tảng của anh ta không được đào tạo về CS về các ý tưởng như coroutines và bởi vì các bài thuyết trình và thảo luận của anh ta rất có định hướng thực hiện, khó có ai không hiểu sâu về việc tiếp tục hiểu cách sử dụng nó như một giải pháp để vấn đề của họ.
Vì lý do đó, các tài liệu ban đầu là người nghèo. Có một số mô tả về cách sử dụng nó, với những người đóng góp tốt nhất từ bên thứ ba. Tại PyCon 2007, tôi đã nói chuyện về " Sử dụng Stackless ", kết quả khá tốt, theo số liệu khảo sát của PyCon. Richard Tew đã thực hiện một công việc tuyệt vời khi thu thập những thứ này, cập nhật stackless.com và duy trì phân phối khi các bản phát hành Python mới xuất hiện. Anh ấy là nhân viên của ĐCSTQ , nhà phát triển EVE Online, sử dụng Stackless như một phần thiết yếu trong hệ thống chơi game của họ.
Các trò chơi của ĐCSTQ cũng là ví dụ thực tế lớn nhất mà mọi người sử dụng khi họ nói về Stackless. Hướng dẫn chính cho Stackless là " Giới thiệu về lập trình đồng thời với Python không chồng " của Grant Olson , cũng hướng đến trò chơi. Tôi nghĩ rằng điều này mang đến cho mọi người một ý tưởng sai lệch rằng Stackless là định hướng trò chơi, khi mà các trò chơi được định hướng tiếp tục dễ dàng hơn.
Một khó khăn khác là mã nguồn. Ở dạng ban đầu, nó yêu cầu thay đổi nhiều phần của Python, điều này khiến Guido van Rossum, người dẫn đầu Python, cảnh giác. Một phần lý do, tôi nghĩ, là sự hỗ trợ cho cuộc gọi / cc mà sau đó đã bị xóa vì "quá giống như hỗ trợ một goto khi có các hình thức cấp cao hơn tốt hơn." Tôi không chắc chắn về lịch sử này, vì vậy chỉ cần đọc đoạn này là "Stackless được sử dụng để yêu cầu quá nhiều thay đổi."
Các bản phát hành sau này không yêu cầu thay đổi và Tismer tiếp tục thúc đẩy việc đưa nó vào Python. Mặc dù đã có một số cân nhắc, nhưng lập trường chính thức (theo như tôi biết) là CPython không chỉ là một triển khai Python mà nó còn có nghĩa là một triển khai tham chiếu và nó sẽ không bao gồm chức năng Stackless vì nó không thể được Jython triển khai hoặc Trăn sắt.
Hoàn toàn không có kế hoạch cho " những thay đổi đáng kể đối với cơ sở mã ". Đó là trích dẫn và siêu liên kết tham khảo từ Arafangion (xem bình luận) là từ khoảng 2000/2001. Những thay đổi về cấu trúc đã được thực hiện từ lâu, và đó là những gì tôi đã đề cập ở trên. Stackless như bây giờ là ổn định và trưởng thành, chỉ với một số điều chỉnh nhỏ cho cơ sở mã trong vài năm qua.
Một hạn chế cuối cùng với Stackless - không có người ủng hộ mạnh mẽ nào cho Stackless. Tismer hiện đang tham gia sâu với PyPy , đây là một triển khai Python cho Python. Anh ta đã thực hiện chức năng Stackless trong PyPy và coi nó vượt trội hơn nhiều so với chính Stackless, và cảm thấy rằng PyPy là con đường của tương lai. Tew duy trì Stackless nhưng anh ấy không quan tâm đến việc vận động. Tôi đã xem xét vai trò đó, nhưng không thể thấy làm thế nào tôi có thể kiếm thu nhập từ nó.
Mặc dù nếu bạn muốn đào tạo về Stackless, hãy liên hệ với tôi ! :)