99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

4. python是面向?qū)ο蟮难?!不錯(cuò),只是沒有了shell使用管道拼接程序,難以單獨(dú)拿出某一塊來跑跑看看有什么效果。你必須讀完整個(gè)程序才能發(fā)現(xiàn)出了什么問題。開發(fā)成本不比shell低。

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

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

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

8. python的很多用戶來自win,因?yàn)樯厦婺J(rèn)沒有shell,哈哈

9. python的運(yùn)行取決于變量,像perl一樣,無法如同shell一樣提取IO的結(jié)果來直觀的調(diào)試和修改。

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86725
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    24213
  • PERL
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!

    在本教程中,將討論Shell腳本的基礎(chǔ)知識(shí)、它們的用途以及如何在RaspberryPi上編寫和運(yùn)行Shell腳本。什么是Shell腳本?Shell
    的頭像 發(fā)表于 03-25 09:28 ?450次閱讀
    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 <b class='flag-5'>Shell</b> 腳本!

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,將為你簡(jiǎn)要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡(jiǎn)單的Python程序。什么是
    的頭像 發(fā)表于 03-25 09:27 ?730次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    dlp3010如果不用gui, 只用api投射自己定義的投射碼,要怎么操作?

    1:打開GUI 在light conntrol頁面設(shè)在internal patterns中設(shè)置完bmp在最后一部按set后,投射,為什么只出默認(rèn)圖片(前面的設(shè)置都失效了) 2:如果不用gui
    發(fā)表于 02-20 07:46

    只用TLK2711的發(fā)送通路,不用接收通路,請(qǐng)問與接收通路相關(guān)的信號(hào)管腳應(yīng)該怎么處理?

    如果只用TLK2711的發(fā)送通路,不用接收通路,請(qǐng)問與接收通路相關(guān)的信號(hào)管腳應(yīng)該怎么處理?接收通路相關(guān)的管腳有:RX D0-----RX D15,RXP , RXN ,時(shí)鐘管腳RXCLK以及相關(guān)
    發(fā)表于 02-08 06:44

    兩個(gè)ADS1278輸出十六通道只用到DOUT1,其他的幾個(gè)輸出管腳都不用?

    如上圖所示,U4和U3通過菊花鏈方式連接后的數(shù)據(jù)輸出,那么這兩個(gè)ADS1278輸出十六通道只用到DOUT1,其他的幾個(gè)輸出管腳都不用??求指導(dǎo)...
    發(fā)表于 01-08 08:04

    華為云 Flexus X 實(shí)例下的場(chǎng)景體驗(yàn)——小企業(yè)的福星——最簡(jiǎn)單的 php 環(huán)境搭建

    ?前言 都是 php 是全世界最好的語言,也是非常的喜歡,雖然是搞大數(shù)據(jù)的,但是 php 在很逗情況下對(duì)于個(gè)人開發(fā)者來說是非常友好的,對(duì)于一般小企業(yè)來說使用【華為云 Flexus
    的頭像 發(fā)表于 01-02 11:59 ?382次閱讀
    華為云 Flexus X 實(shí)例下的場(chǎng)景體驗(yàn)——小企業(yè)的福星——最簡(jiǎn)單的 <b class='flag-5'>php</b> 環(huán)境搭建

    請(qǐng)問AFE4400為什么要用22位AD轉(zhuǎn)換不用16位?

    AFE4400為什么要用22位AD轉(zhuǎn)換不用16位?除了精度的原因,還有什么別的原因嗎?
    發(fā)表于 12-24 06:53

    Linux從零到精通:最簡(jiǎn)單的Shell腳本入門教程

    在數(shù)字化時(shí)代的浪潮中,Linux操作系統(tǒng)憑借其高效、穩(wěn)定、開源的特性,成為了無數(shù)開發(fā)者和系統(tǒng)管理員的首選。 而在Linux的龐大生態(tài)系統(tǒng)中,Shell編程無疑是連接用戶與系統(tǒng)內(nèi)核的橋梁,它讓我們能夠
    的頭像 發(fā)表于 12-05 09:56 ?1560次閱讀
    Linux從零到精通:最簡(jiǎn)單的<b class='flag-5'>Shell</b>腳本入門教程

    ADS4128的輸出時(shí)鐘CLKOUTP,是否可以不用,采用FPGA自己產(chǎn)生的一個(gè)時(shí)鐘?

    的設(shè)計(jì)ADS4128跟FPGA通過CMOS方式連接,想請(qǐng)教一下,ADS4128的輸出時(shí)鐘CLKOUTP,是否可以不用,采用FPGA自己產(chǎn)生的一個(gè)時(shí)鐘? 如果可以,那么FGPA的輸出給AD的時(shí)鐘CLKP,和CLKOUTP之間需
    發(fā)表于 11-22 06:55

    perl語法

    perl作為ICer必要學(xué)習(xí)的工具語言之一,有著舉足輕重的地位。 perl有著強(qiáng)大的文本處理能力,交互式使用linux命令,眾多的CPAN可以使用,使得perl立足于ICer行業(yè)不敗之地。
    發(fā)表于 11-04 10:33 ?0次下載

    TCSH shell 編程入門

    ICer從業(yè)人員最先需要掌握的語言,就是linux shell語言。TCSH是ICer使用最多的Shell語言,可以說ICer入門語言從TCSH開始。
    發(fā)表于 11-01 10:45 ?0次下載

    shell具有的功能和特點(diǎn)

    Shell 是一個(gè)命令行解釋器,用于與操作系統(tǒng)進(jìn)行交互。它提供了一種方便的方式來執(zhí)行命令、管理文件和目錄、運(yùn)行程序等。以下是 Shell 的功能和特點(diǎn)的介紹: 命令執(zhí)行 Shell 最基本的功能
    的頭像 發(fā)表于 08-30 14:48 ?1336次閱讀

    shell腳本編寫之本地腳本的編寫和執(zhí)行

    時(shí),可以不用在第一行指定shell應(yīng)用程序;此外,使用shell應(yīng)用進(jìn)行腳本執(zhí)行時(shí),腳本文件可以不被賦予可執(zhí)行權(quán)限。4)使用source或小數(shù)點(diǎn)(.)執(zhí)行使用source或 . (.后邊有空格)執(zhí)行
    發(fā)表于 08-28 09:36

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

    一、Shell是什么?我們?cè)趧傞_始接觸Linux的時(shí)候,經(jīng)常會(huì)聽到工程師提到Shell這個(gè)詞,剛開始不知道這是個(gè)干什么的,簡(jiǎn)單的說,它是一個(gè)應(yīng)用,接收用戶命令,調(diào)用相應(yīng)的內(nèi)核接口函數(shù)或應(yīng)用程序,并
    發(fā)表于 08-15 09:28