簡體   English   中英

Shell腳本與編程語言

[英]Shell scripting vs programming language

對於我必須完成的許多任務,我發現自己必須在使用Linux中的Shell腳本或Java或Groovy等編程語言之間做出選擇。 有沒有人有關於如何選擇一個而不是另一個的經驗?為什么?

Shell腳本非常適合簡潔的文件系統操作,並通過管道編寫過濾器和命令行工具中現有功能的組合。

當您的需求更大 - 無論是功能性,穩健性,性能,效率等 - 那么您可以轉向功能更全面的語言。 他們傾向於提供以下組合:

  • 類型安全
  • 更先進的容器
  • 更好地控制可變生命周期和內存使用
  • 穿線
  • 高級IPC,如共享內存和TCP / IP
  • 完整的二進制I / O功能,內存映射文件訪問等。
  • 訪問OS API和無數強大的庫
  • 隨着項目規模的增加,可讀性和可維護性更高
  • 支持更高級的編程范例:面向對象,功能編程,生成編程等
  • 在程序開始運行之前更好地進行錯誤檢查,從而減少對測試用例覆蓋的依賴

@Tony提供了一個優秀的利弊列表。 我還要添加一個更通用的點 - shell腳本,因為它們非常方便,冒着顯示“沒有比臨時解決方案更持久”的特性,當有人需要使用它時,所有隨之而來的維護問題。

Shell腳本是在系統上使用“粘合劑”的最直觀方式。 但是,它沒有一些有用的概念,比如繼承和模塊化,像Python這樣的語言(它也非常習慣於“粘合”系統)。

沒錯,語言的使用主要取決於你要做的任務。 對於我工作過的大多數情況,shell腳本運行良好,雖然我使用了大量的Python來完成系統相關的任務。 在這種情況下,我不認為Java會成為替代品。 可能Groovy會是,但不是Java(我的意思是Java作為一種語言,而不是Java作為平台。)

在系統管理員視圖中,我認為Python和Ruby是很棒的語言。 不僅因為動態類型和不需要編譯,而且因為像FabricCapistranoPuppet等工具使得系統管理員的生活變得更加容易:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM