Tại sao Perl được cài đặt theo mặc định với hầu hết các bản phân phối Linux?
Tại sao Perl được cài đặt theo mặc định với hầu hết các bản phân phối Linux?
Câu trả lời:
Câu trả lời là / không gợi cảm, tùy theo quan điểm của bạn.
Perl rất hữu ích. Rất nhiều tiện ích hệ thống được viết hoặc phụ thuộc vào perl. Hầu hết các hệ thống sẽ không hoạt động đúng nếu Perl được gỡ cài đặt.
Một vài năm trước FreeBSD đã trải qua rất nhiều nỗ lực để loại bỏ Perl như một sự phụ thuộc cho hệ thống cơ sở. Đó không phải là một nhiệm vụ dễ dàng.
Trong bài đăng Perl v1.0 ban đầu của Larry Wall cho nhóm tin comp.source.misc vào ngày 18 tháng 12 năm 1987, ông nói:
Nếu bạn có một vấn đề thường sử dụng sed hoặc awk hoặc sh, nhưng nó vượt quá khả năng của họ hoặc phải chạy nhanh hơn một chút và bạn không muốn viết điều ngớ ngẩn trong C, thì perl có thể dành cho bạn.
Trong một giải trình sau đó , ông nói thêm một chút:
Nhưng sự thất vọng của lập trình shell Unix đã dẫn trực tiếp đến việc tạo ra Perl, điều mà tôi không thực sự có thời gian để kể. Nhưng về cơ bản, tôi thấy rằng kịch bản shell bị hạn chế về bản chất bởi thực tế là hầu hết các động từ của nó không nằm trong tầm kiểm soát của nó và do đó phần lớn không nhất quán với nhau. Và các danh từ bị bần cùng hóa, bị giới hạn trong chuỗi và tệp, với kiểu người biết ...
Phá hủy hơn là suy nghĩ rằng đó là vũ trụ một chiều: bạn hoặc được lập trình bằng C hoặc bạn được lập trình bằng vỏ, vì rõ ràng chúng ở hai đầu đối diện của One True Continuum. Perl xuất hiện khi tôi nhận ra rằng kịch bản không phải luôn luôn được xem là đối nghịch với lập trình, nhưng một ngôn ngữ duy nhất có thể khá tốt cho cả hai. Điều đó đã mở ra một hốc sinh thái khổng lồ. Nhiều người trong số các bạn đã nhìn thấy sơ đồ vỏ sò cũ của tôi, với hai chiều của sự khéo léo và sự nhanh nhẹn.
Ngày nay, Perl là một sự thay thế / thay thế tiêu chuẩn cho các nhu cầu phân tích cú pháp và phân tích cú pháp văn bản, và có sức mạnh lớn hơn nhiều so với các công cụ truyền thống. Do tính linh hoạt cực cao (một số người sẽ nói là không linh hoạt), Perl đã được mô tả là " chuỗi ngôn ngữ kịch bản của quân đội Thụy Sĩ ". Nhiệm vụ thường có thể ngắn hơn đáng kể, dễ dàng hơn hoặc mở rộng hơn khi giải quyết bằng Perl. Nhiều, nhiều công cụ hệ thống, tập lệnh và chương trình lớn hơn được viết thường xuyên bằng Perl. Vì vậy, trong môi trường Linux hiện đại, Perl giờ đây là một công cụ Unix tiêu chuẩn khác và thực sự không thể thiếu.
awk
và sed
trong đó (Perl).Tôi nghĩ rằng câu trả lời cho câu hỏi này là một phần lịch sử, một phần thực tế.
Đối với lịch sử, Perl là một ngôn ngữ đẳng cấp. Nó sang trọng hơn Python (không đề cập đến PHP), mặc dù tôi không biết cái gì là "tốt hơn" (nếu điều đó bằng cách nào đó có thể được phân tích chính thức, điều mà tôi nghi ngờ). Và những anh chàng đẳng cấp đang sử dụng (hoặc đã sử dụng) Perl thường là những người quyết định những gì sẽ là một phần của bản phân phối Linux.
Đối với những gì là thực tế, Perl là vẫn keo của rất nhiều thứ: các HĐH và các trang web như nhau (một lần nữa, LAMP, không quên một trong hai Python hay PHP). Vậy tại sao không bao gồm bất cứ điều gì hữu ích cho nhiều mục đích? Và thậm chí còn hơn thế, tại sao loại bỏ bất cứ thứ gì có ở đó (và không gây ra bất kỳ tác hại nào), và có hữu ích không?
Nhưng, như nó xảy ra, có một lưu ý về vấn đề này trong số phát hành gần đây nhất của Tạp chí Linux (# 151, tháng 6 năm 2013). Rõ ràng, để biên dịch nhân Linux, một vài tập lệnh Perl ngắn và đơn giản được sử dụng. (Một lần nữa, vai trò "keo" của Perl trong các hệ điều hành.) Bây giờ, một trong những nhà phát triển nhân đã gửi các bản vá viết lại các tập lệnh đó, lần này không phải trong Perl, mà là "tập lệnh shell Unix" (là sh
?). Theo cách đó, Perl sẽ không phải cài đặt cho bất kỳ ai biên dịch kernel. Nhưng, bản vá đó (đã gửi nhiều lần) đã không được chọn. Và một lý do cho điều này là, một khi trời lạnh, Perl không có khả năng được cho vào. Những người như Perl, và họ không muốn chia tay với nó.
Bây giờ, điều này chỉ chạm đến rìa của câu hỏi này vì có lẽ một số rất nhỏ người dùng Linux có khả năng biên dịch kernel. Nhưng nó vẫn là một mảnh khác của câu đố (và tôi nghi ngờ có rất nhiều).