• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            longshanks

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              14 Posts :: 0 Stories :: 214 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(10)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

                根據觀察,我發現有兩類程序員。一類程序員喜歡技術,會認認真真地學習一種語言,設法掌握語言的使用要領和方法。他們關心的是語言的功能,以及功能的運用。對于語言的缺陷有相當的容忍度,并且也樂意接受語言的缺陷,只要語言能夠提供足夠強大的功能。
                另一類程序員則相反,他們更側重于用語言實現某些具體的業務。對于他們而言,語言的功能強大與否沒什么關系,只要別妨礙他們在軟件中實現業務。
            對于前者,語言的功能至關重要。他們需要一種語言幫助他們最大限度地發揮智慧和創造力,更快、更好、更高效地構造穩定、可靠、快速、可擴展、可復用的軟件
            而對于后者,語言的簡單至關重要。他們需要一種語言幫助他們最大限度地發揮智慧和創造力,更快、更好、更高效地將業務轉變成軟件的功能
                如果認同一類程序員,而貶損另一類,那就太狹隘了。這兩種程序員對于軟件開發而言,都有各自重要的地位。更重要的是,這兩類程序員是互補的。前者的能力適合開發可擴展的基礎服務和組件,他們是技術專家。而后者則恰好符合業務實現專家的特征。
                然而,我們傳統的組織形式卻將這兩類程序員壓縮在一個共同的空間中執行開發工作。也就是讓他們使用同一種(或同一層次的)語言和技術開發軟件。
                現在的麻煩是,沒有哪一種語言既簡單、方便,又功能強大。如果選用功能強大的語言,比如C++,那么技術專家滿意了,他們構造出漂亮優雅的軟件。但對業務 專家是個災難。他們發現自己已經不知不覺地陷入了語言復雜性的泥潭,而艱難地試圖抓住業務功能的枝干。而反之,選用使用方便,但功能弱小的語言,對于業專 家是個福音,他們可以專注于業務實現,心滿意足地完成工作。但技術專家卻無法按他們的想法達到諸多技術性和軟件工程性的要求,比如性能、可維護性、擴展性 等等。
               最終,多數企業會選擇一種“中性”的語言,功能基本完備,但不很強大,學習和使用相對簡單,但又不是最簡單的。這樣的折中一般會基本“擺平”這兩類程序 員,但也有很多時候讓兩類程序員都不滿意。大多數情況下,即便兩類程序員都滿意了,卻在客觀上使得兩類程序員都無法發揮最大的工作效率,從而無法使開發效 率最大化、最優化。

               解決這類問題最直接的方法就是讓這兩類程序員使用各自適合的語言,在各自擅長的領域開發軟件。技術專家使用C++之類功能強大,卻不易掌握的語言,而業務 專家則使用簡單易用的語言,比如腳本語言、宏語言,甚至是某種特定用途的專用語言(DSL)。技術專家開發基礎服務平臺和組件,業務專家則運用簡易的語言 使用基礎服務和功能,構建業務系統。這種優化組合往往會產生1+1>2的效果。

                對于語言的選擇,技術專家無外乎C++、Ada之類的“全能”通用語言,新興的D也可能成為更加適合的候選人。業務專家,可以使用腳本語言,如 python、ruby、javascript等等“粘合劑”語言。目前尚有一種新的發展方向,是運用專門的專用領域語言(DSL)。這類語言可以非常貼 近業務領域的邏輯概念,語法不一定完備,但足以完成特定的業務工作。比如某種“記賬”語言,就可以用來構造財務軟件的業務邏輯,直接使用財務術語和概念, 最大可能地消除與業務無關的語言要素,達到最簡化的目的。

                這兩類程序員的差異不一定是先天造成的,但這種差異足以對傳統的軟件開發組織形式提出挑戰。因此,當我們在抱怨一門語言如何如何功能不濟,或者如何如何復雜難用,那么請審視一下開發體系,或許一種語言已經被用在不適合的程序員,以及不該用的地方了。

            posted on 2007-11-22 09:56 longshanks 閱讀(2989) 評論(13)  編輯 收藏 引用

            Feedback

            # re: 兩類程序員 2007-11-22 10:24 西門有悔
            呵呵。比較贊同。

            我感覺自己屬于后者。因為我不是學計算機的。

            我更樂意用MATLAB這樣的科學計算軟件來表達我的思想。  回復  更多評論
              

            # re: 兩類程序員 2007-11-22 15:24 <a href=http://minidx.com>minidxer</a>
            這個……應該一般公司都會區分的吧。搞研發的和作業務的  回復  更多評論
              

            # re: 兩類程序員 2007-11-22 18:42 Ray
            嗯,觀點不錯,但有待推敲,

            不過,這個是博主的原創嗎?為什么提到Ada?
            還有,為什么提到腳本語言卻選擇了最復雜的幾種腳本語言啊?  回復  更多評論
              

            # re: 兩類程序員 2007-11-22 23:55 Guonic
            我絕對屬于前者   回復  更多評論
              

            # re: 兩類程序員 2007-11-23 09:38 金慶
            精通C++,再掌握一兩門腳本,那不就好了?  回復  更多評論
              

            # re: 兩類程序員 2007-11-23 11:46
            ada是個好東西.  回復  更多評論
              

            # re: 兩類程序員 2007-11-23 16:20 Corner Zhang
            :) 精通C/C++,匯編,及它們的熟練運用,對現代計算機體系就夠相當的了解.
            on loading...  回復  更多評論
              

            # re: 兩類程序員 2007-11-24 16:16 oomusou
            寫得極好
            我也正有此想法

            業務語言的代表應該是matlab,一個很簡單的語言,但卻非常的強大,這種語言的強大主要是靠library在強

            另外一種業務語言的代表就是Verilog,IC design全靠這種

            其實還有一種中間的語言: C#
            要強沒C#那麼強,但也有八九分,但.net framework超強,憑藉著這個強有力的library做很多業務都很簡單,windows, web, embedded, office....可以寫一堆東西...

            沒吹捧C#的意思,只是我覺得大概可以分三類而已
            1.C++ 超強語言
            2.C# 語言還可以,某些領域還不錯
            3.matlab, VFP, Verilog...語言不強,但專屬領域超強

              回復  更多評論
              

            # re: 兩類程序員 2007-11-25 10:04 李亞
            屬于前者...
            個人覺得自己比較懶的原因讓自己成為前者...  回復  更多評論
              

            # re: 兩類程序員 2007-11-26 12:21 小名阿鐵
            樓主的觀點和我之前向的很是相同.
            一種面向底層(實現),一種面向服務(基礎).
            他們都是平等的,都是對社會有貢獻的.
            所以無論干什么(底,高)層,程序員都是平等的.  回復  更多評論
              

            # re: 兩類程序員 2007-11-26 15:29 @王一偉
            來這里的都會選前者的

            每種程序員的競爭力核心不一樣,不能只狹隘的吧所有的東西歸結到程序語言本身上。

            很少有人的工作是完全純凈的某一個狹小的領域的,混合型工作是工作的主流,各個層面工作的比例不同造就了我們在這里討論的幾種程序員的工作重心不一樣,核心競爭力也就不一樣 呵呵  回復  更多評論
              

            # re: 兩類程序員 2007-12-19 21:30 ffl
            個人超喜歡C++,sheme,ruby,matlab。  回復  更多評論
              

            # re: 兩類程序員 2008-01-07 10:52 kong
            同意樓主的劃分。
            個人觀點是:在這個產業鏈里面其實是很復雜的,開發企業應用的話,第一類人就是處于產業鏈的上游,用來開發核心庫,IDE ,組件,等等,而這類人是瞧不起產業鏈下游的人的,這個大家都知道,《程序開發心理學》里面也提到了這點,試想,使用自己開發的庫的人是滿足自己虛榮心理的。。。

            第一類人喜歡純凈的工作,所以多呆在研究院,基礎平臺開發,預研等地方,或是做網站開發(yahoo,baidu之類的),不喜歡把自己的精力投到過多的業務邏輯上面,這樣感覺很沒趣味,這便是技術型主導的人。

            第二類人是對問題并不想透徹了解的人,而業務很容易掌握,所以就投身到開發上面去了。
            真正的懶人是第一種,對繁瑣的業務邏輯不關心也不感興趣,對更改業務而更改代碼實在不感興趣,他只需了解技術核心就夠了,純技術的公司也是有不少的。

              回復  更多評論
              

            久久国产热这里只有精品| 久久国产热精品波多野结衣AV| 亚洲香蕉网久久综合影视| 综合久久给合久久狠狠狠97色| 国产精品99久久精品爆乳| 狠狠狠色丁香婷婷综合久久俺| 性做久久久久久久| 亚洲AV无码久久精品色欲| 精品综合久久久久久97| 99久久国产精品免费一区二区 | 国产精品成人精品久久久| www久久久天天com| 久久国产免费观看精品| 9191精品国产免费久久| 久久播电影网| 久久人人爽人人爽人人片AV东京热| 久久无码国产| 亚洲午夜久久久影院| www久久久天天com| 久久久久综合中文字幕| 久久精品国产99久久久古代| 狠狠色婷婷久久一区二区三区| 国产欧美久久一区二区| 久久综合色区| 人妻无码αv中文字幕久久| 国产精品视频久久久| 成人国内精品久久久久影院VR | 久久99热这里只有精品国产| 亚洲国产成人久久一区WWW| 精产国品久久一二三产区区别| 亚洲精品tv久久久久久久久| 久久精品成人免费网站| 亚洲国产日韩综合久久精品| 久久A级毛片免费观看| 久久综合九色欧美综合狠狠 | 久久九九青青国产精品| 亚洲日本va午夜中文字幕久久| 日韩乱码人妻无码中文字幕久久 | 精品无码久久久久国产动漫3d| 99久久精品国产高清一区二区| 久久国产免费直播|