chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么我只用shell而不用perl、Python和PHP?

如意 ? 來源:CSDN ? 作者:finethere ? 2020-06-20 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先不用說“無論什么語言都是一種工具”。工具是我們身體的一部分,解放軍解放臺灣靠“小米加步槍”? “工具無所謂”論可以休矣。對于實際的軟件工程工具和平臺的選擇是很重要的,有時候是致命的

1. perl是強大的, perl=shell+awk+sed+一堆命令行工具。

但是反過來也一樣shell+awk+sed+一堆命令行工具可以替代perl.

2. shell的簡約,可讀性比perl好,工具之間通過命令行stdio管道通信,任何一個小部分都可以拿出來測試和試驗,程序維護/修改很容易。學習曲線和積累方式比perl更優(yōu)。

3. perl是跨平臺的呀!java,sysv標準, posix是跨平臺工具和標準。oracle還跨平臺呢! 但是實際軟件部署是需要選擇平臺的,一旦選擇好了就希望這個平臺穩(wěn)定。雖然unix/linux的命令行工具在不同的平臺特性稍有不同,但是你一旦選定了平臺,那么這個平臺上的shell/命令行工具就是非常穩(wěn)定的可依賴集合,不但可靠而且基本不會有變化。軟件開發(fā)商的投資也因此受到了保護。perl和python則處于不斷的變化當中,新的數據庫DBI模塊/某種功能的版本來臨,需要perl/python升級到新的版本。那么新的版本是否可靠,是否影響原有系統(tǒng)的運行參數? 那么需要很多的回滾測試。perl可以寫文件到某個路徑,win下面用盤符開頭,*nix下面用/路經開頭---軟件開發(fā)和部署的成本并沒有因為perl跨平臺而減少。

如果perl只是用來作為“膠水”粘合其他的程序,那么跨平臺也就無從談起了。效率也比不上shell

4. python是面向對象的呀!不錯,只是沒有了shell使用管道拼接程序,難以單獨拿出某一塊來跑跑看看有什么效果。你必須讀完整個程序才能發(fā)現出了什么問題。開發(fā)成本不比shell低。

5. Unix的Kiss原則,perl和python都違反了。我剛學習shell,用的很爽。腳本里面有一部分是sed和awk,我不懂不要緊,我留給以后學習“sed和awk”。盡管如此我可以看到sed和awk的輸入輸出是什么,不影響我理解程序。我有用了,可以學學awk,學學find的高級用法。這些都不會使得原先的shell程序過時。perl呢? 就像java, swing出來了awt就過時了,一個新框架出來了老框架就得推導。作為一個語言,問題域太大。而shell恰恰做到了kiss,它只做好自己的事情。

6. 作為弱類型語言的perl,雖然避免了類型的繁瑣開銷,同時也使得程序的調試更加困難,反而不如shell的文本IO來的直觀。

7. DBI很強大嗎? 我們的系統(tǒng)如果選定了oracle那我就在shell腳本里面sqlplus然后直接sql語句,用dbi豈不累死(5倍以上的代碼),難里理解,難以調試,可讀性也級差!為了dbi屏蔽了db的不同,提供統(tǒng)一的接口? 如果db要改變,那么定義文件,存儲過程,函數什么的全都要重寫!腳本調用只是一小部分。python也存在同樣的問題。如果完全不用存儲過程呢? 那么j2se+hibernate+spring好了,真正的跨平臺。perl/python的思想是大而全,和win+vs如出一轍。

8. python的很多用戶來自win,因為上面默認沒有shell,哈哈

9. python的運行取決于變量,像perl一樣,無法如同shell一樣提取IO的結果來直觀的調試和修改。

10.是的, linux的anaconda安裝界面,yum都是基于python的,gnome/kde也大量依賴perl。那是為了有一個“像腳本一樣運行的c/c++”。

但是問題是操作系統(tǒng),虛擬機,桌面管理器都是嚴肅的東西,那些系統(tǒng)級別的perl/python的代碼有牛人和牛組織來保證。如果是普通的應用軟件開發(fā)呢(賣錢的那種),用perl/python的人會因為各種目的,有的是為了程序今后的擴展性(其實他離開以后這個版本就完結了),有的是為了移植性(其實大部分的系統(tǒng)都被綁定在一個特定的平臺),有的是為了趕時髦(很多python用戶都是這么來的),還有的是為了顯示自己的編程多么厲害使用一堆perl/python的高級特性:總之,這個豪華的工具就是雙刃劍,對于普通的項目普通的軟件開發(fā)者來說,會給我們展示一個虛擬的天國(其實團隊達不到那樣的把握水準),然后會把事情弄得一團糟。

所以我選擇古老的shell,古老而且穩(wěn)定,保守而久經考驗,足夠而且簡潔。M16會被更好的M4取代,但是AK47卻是永恒的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    58

    文章

    4885

    瀏覽量

    90314
  • Shell
    +關注

    關注

    1

    文章

    375

    瀏覽量

    25489
  • PERL
    +關注

    關注

    0

    文章

    14

    瀏覽量

    10721
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用PYTHON進行的跨平臺仿真

    快速物理光學軟件VirtualLab Fusion以其“連接場求解器”方法自豪,該方法將應用于不同組件上的專用電磁場求解器結合在一起,以實現整個系統(tǒng)的物理光學模擬。這種方法的邏輯擴展不僅是連接軟件
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運行VirtualLab Fusion光學仿真

    摘要 VirtualLab Fusion允許Python外部訪問其建模技術、求解器和結果。這個用例介紹了一種使用路徑變量和Visual Studio代碼將Python連接到VirtualLab
    發(fā)表于 03-31 09:39

    安裝 Python VisionFive_GPIO失敗是哪里出了問題?

    盡管按照最新的文檔,在安裝 VisionFive.gpio 包時仍然收到錯誤 sudo apt 安裝 libxml2-dev libxslt-dev python3 -m pip 安裝請求
    發(fā)表于 02-11 06:13

    請問,不用的型號,讀寫速率是5ms或者4ms,時鐘都是1MHZ,是因為什么原因決定的?

    請問,不用的型號,讀寫速率是5ms或者4ms,時鐘都是1MHZ,是因為什么原因決定的?
    發(fā)表于 01-16 06:19

    沒有專利的opencv-python 版本

    專利風險,僅需避開 opencv-contrib-python 的 nonfree 模塊(或直接用無頭版)。 如果你的場景需要特定功能(如特征提取、目標跟蹤),可以告訴具體需求,幫你推薦對應的無專利 API 和代碼示例~
    發(fā)表于 12-13 12:37

    【瑞薩RA6E2】1.使用串口shell點亮LED燈

    啥技術含量,所以想來就打算實現一個小型的串口shell,用串口助手發(fā)指令來進行點燈,這樣將串口和點燈融為一體,不至于單調乏味。 1,打開原理圖 發(fā)現led1和led2分別如上圖,打開rasmart軟件
    發(fā)表于 11-09 17:26

    shell基本介紹及常用命令之shell基本介紹

    Shell是什么?我們在剛開始接觸Linux的時候,經常會聽到工程師提到Shell這個詞,剛開始不知道這是個干什么的,簡單的說,它是一個應用,接收用戶命令,調用相應的內核接口函數或應用程序,并輸出
    發(fā)表于 09-28 09:05

    從 0 到 1:用 PHP 爬蟲優(yōu)雅地拿下京東商品詳情

    PHP 語言 實現一個 可運行的京東商品爬蟲 ,不僅能抓取商品標題、價格、圖片、評價數,還能應對常見的反爬策略。全文附完整代碼, 復制粘貼即可運行 。 一、為什么選擇 PHP 做爬蟲? 雖然 Python 是爬蟲界的“老大哥”
    的頭像 發(fā)表于 09-23 16:42 ?1072次閱讀
    從 0 到 1:用 <b class='flag-5'>PHP</b> 爬蟲優(yōu)雅地拿下京東商品詳情

    請問一下想用ESP8685直接替換ESP8266不用寫程序,可以讓ESP8685直接通過之前ESP8266的外掛的flash運行程序嗎

    請問一下想用ESP8685直接替換ESP8266不用寫程序,可以讓ESP8685直接通過之前ESP8266的外掛的flash運行程序嗎
    發(fā)表于 09-17 12:06

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 一、Termux基礎環(huán)境準備 Termux是一款無需root即可在安卓設備上運行的Linux終端
    發(fā)表于 08-29 07:06

    Python腳本實現運維工作自動化案例

    還在為重復性運維工作煩惱?每天被各種告警、監(jiān)控、部署搞得焦頭爛額?作為一名有10年經驗的運維老司機,今天分享5個超實用的Python自動化腳本,讓你的運維工作效率提升300%!這些都是在生產環(huán)境中實際使用的案例,代碼簡潔高效
    的頭像 發(fā)表于 08-27 14:46 ?1368次閱讀

    python app不能運行怎么解決?

    使用helloword的模板,上傳了IG502,但不能運行,請大神幫忙。系統(tǒng)日志如下:sntpc[1226]: ntp request error: 113, No route to host
    發(fā)表于 08-06 06:27

    【RA-Eco-RA6M4開發(fā)板評測】移植shell實現命令交互

    代碼見 一. 前言前面我們實現了標準輸入輸出,為了進一步方便交互調試,我們繼續(xù)來實現一個精簡的shell。Shell的實現參考https://mp.weixin.qq.com/s
    發(fā)表于 07-19 22:47

    【正點原子STM32MP257開發(fā)板試用】3.響起蜂鳴器

    GPIO的方法。 畢竟主要使用Python,LED燈被內核限制住了,只能用shell點燈,要用Python要改估計,不想再改了,只能自己
    發(fā)表于 06-15 15:13

    Shell腳本入門指南

    Shell 是一塊包裹著系統(tǒng)核心的殼,處于操作系統(tǒng)的最外層,與用戶直接對話,把用戶的輸入, 解釋給操作系統(tǒng),然后處理操作系統(tǒng)的輸出結果,輸出到屏幕給與用戶看到結果。
    的頭像 發(fā)表于 06-03 10:47 ?1387次閱讀
    <b class='flag-5'>Shell</b>腳本入門指南