• <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++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              14 Posts :: 0 Stories :: 214 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(10)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

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

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

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

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

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

            Feedback

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

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

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

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

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

            不過,這個是博主的原創(chuàng)嗎?為什么提到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
            寫得極好
            我也正有此想法

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

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

            其實還有一種中間的語言: C#
            要強沒C#那麼強,但也有八九分,但.net framework超強,憑藉著這個強有力的library做很多業(yè)務都很簡單,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
            同意樓主的劃分。
            個人觀點是:在這個產業(yè)鏈里面其實是很復雜的,開發(fā)企業(yè)應用的話,第一類人就是處于產業(yè)鏈的上游,用來開發(fā)核心庫,IDE ,組件,等等,而這類人是瞧不起產業(yè)鏈下游的人的,這個大家都知道,《程序開發(fā)心理學》里面也提到了這點,試想,使用自己開發(fā)的庫的人是滿足自己虛榮心理的。。。

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

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

              回復  更多評論
              

            日韩欧美亚洲综合久久| 精品久久久久久国产牛牛app | 国产亚洲精品美女久久久| 中文字幕日本人妻久久久免费 | 午夜人妻久久久久久久久| 精品永久久福利一区二区| 国产午夜精品久久久久九九电影| 久久国产香蕉一区精品| 无码国产69精品久久久久网站| 99久久国产主播综合精品| 久久99精品国产麻豆宅宅| 久久精品亚洲欧美日韩久久| 无码人妻久久一区二区三区免费丨| 久久综合九色综合久99| 欧美黑人激情性久久| 国产—久久香蕉国产线看观看| 精品久久亚洲中文无码| 久久久久婷婷| 国产成人综合久久精品尤物| 久久精品中文闷骚内射| 久久精品日日躁夜夜躁欧美| 久久国产视屏| 精品久久人人爽天天玩人人妻 | 亚洲精品久久久www| 久久精品无码一区二区app| 国内精品人妻无码久久久影院 | 亚洲日本va午夜中文字幕久久| 成人综合伊人五月婷久久| 亚洲中文字幕无码久久综合网 | 精品久久一区二区| 久久久亚洲欧洲日产国码二区 | 国产精品伊人久久伊人电影| 国产人久久人人人人爽| 久久夜色精品国产噜噜亚洲a| 性做久久久久久免费观看| 久久天天躁狠狠躁夜夜2020| 国产99久久久久久免费看| 久久狠狠一本精品综合网| 精品久久久久久无码国产| 青青青青久久精品国产h久久精品五福影院1421 | 亚洲色欲久久久综合网|