成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

預(yù)測C#與.NET的發(fā)展趨勢

開發(fā) 后端
筆者通過自己的經(jīng)驗大膽地預(yù)測了C#與.NET的發(fā)展趨勢。

因為我們左右不了c#和.net的發(fā)展,所以我們對C#和.net的發(fā)展中的科學(xué)技術(shù)問題并不關(guān)心,更多關(guān)注它是否普及應(yīng)用。

在軟件領(lǐng)域,我們有兩個極端:1是什么事情都動手解決,從邏輯角度,“C#什么都能做”,可以把“c#”換成c,c++,vb,甚至匯編,基本上都是對的,但這本身沒有多大意義。其實我們更關(guān)心,這門語言,有沒有從語言特性上對這種開發(fā)提供支持。比如用bool類型,比c中用0,1表示false,true要“安全”得多。2 是“等一等看一看靠一看”的“等看靠”思想。例如,以前c#1.1的時候,我們等著微軟出泛型;c#2的時候,等微軟出linq,silverlight;C#3的時候,等微軟出動態(tài)。因為我們沒法直接與MS高層交流,所以我們除了“等呀等,盼呀判”,還能做什么呢?

我們有很多的理想和抱負(fù),個人不能實現(xiàn),而微軟能實現(xiàn)我們那些夢想的部分,是一種非常美好的事情。

對C#和.net的發(fā)展,其實我們也可以反思,批判,提出建議,做出預(yù)測。

C#和.net的發(fā)展,最終的目的,是提高開發(fā)效率,更加智能。具體的,包括重用,可維護(hù)性等等。

那么怎么才能提高開發(fā)效率呢?

我們知道,從語言基礎(chǔ)平臺來看,程序開發(fā)主要分為算法和API(在.net中表現(xiàn)為類和類庫)。提升效率,應(yīng)該從這兩方面下功夫。

算法邏輯就三種,順序,判斷(分支),循環(huán)。對于循環(huán),C#和Java基本上都沒有努力。雖然LINQ部分地輔助了集合的開發(fā),但離面向集合(數(shù)組,矩陣,向量,序列等等,怎么叫都可以)的通用集合開發(fā),還差的很遠(yuǎn)很遠(yuǎn)。VB簡單地引入了數(shù)組字面常量,使得數(shù)組的開發(fā),變得簡潔一點。像matlab, r,sas,apl(array process language)語言,是多么的簡潔,取得的成功是多么驚人,看看科學(xué)家和工程師使用的科學(xué)計算語言,就明白了。科學(xué)工程是多么的需要這種 循環(huán)黑盒子。

實際上程序的主要工作,都在循環(huán)上,而且規(guī)律性極強(qiáng)。例如,我們要計算所有員工的月底工資獎金,我們先算一個人工資獎金,然后再用循環(huán)處理。

因為循環(huán)有自身的規(guī)律性,所以不應(yīng)該由程序員來寫代碼,在更高級(高階)的環(huán)境中,循環(huán)應(yīng)該是一個黑箱。

所以為了把循環(huán)當(dāng)作黑箱處理,輔助集合數(shù)據(jù)(數(shù)組,矩陣,向量,序列等等,怎么叫多可以)的表示和應(yīng)用是基礎(chǔ),而算法的自動生成是關(guān)鍵。

只有把集合當(dāng)作基本數(shù)據(jù)類型,循環(huán)作為單個操作,并自動優(yōu)化循環(huán)算法(例如并行計算,延遲計算),這門開發(fā)語言,才從面向過程,面向算法,上升為面向問題的智能語言,“脫離低級趣味”。

 在大學(xué)學(xué)測量平差的時候,我用FoxPro來實現(xiàn)線性代數(shù)的各種基礎(chǔ)運(yùn)算。

大三學(xué)數(shù)值分析時候,自己用C語言寫了一些算法。

其中學(xué)數(shù)據(jù)結(jié)構(gòu),書上的每一個算法,都自己先寫算法,再對照書,然后改進(jìn),這些算法,都寫了三遍,形成了多個版本和多種實現(xiàn)算法,用過的白紙,堆起來有半尺。

2002年,畢業(yè)設(shè)計做“GPS似大地水準(zhǔn)面的二次曲面擬合”,用的是自寫的C++的矩陣實現(xiàn)。這個c++矩陣類,成了我博客的第一篇博文。

工作時,用c++寫了道路橋梁曲線坐標(biāo)放樣程序,是一個比較實用的功能,可以求出任意公里樁,任意寬度的,任意曲線類型的半徑。

在研究生階段,再學(xué)數(shù)值分析的時候,使用的是MatLab版本,把書上的所有的算法,自己完全實現(xiàn),并與書上對比,又進(jìn)行了改進(jìn),寫得非常認(rèn)真工整。現(xiàn)在這本數(shù)值分析的MatLab算法,還在我的桌子上,舍不得丟棄。那些稍微復(fù)雜的算法,用c/c++,基本上都要幾百行,甚至幾千行代碼,而用matlab,幾句話,大部分也就20來句,就做的非常漂亮。

再后面廣義測量平差,GPS坐標(biāo)計算,計算量太大,用c/c++,憑個人精力,基本上是不可能去實現(xiàn)的。matlab成了不二選擇。

其后學(xué)生物統(tǒng)計,接觸了R語言,APL語言,對基于集合的編程,深有體會。

為了簡化判斷(分支),C#和java都引入了bool型。但很多判斷,是事先并不確定的。代數(shù)計算器的編寫,就是一個簡單而又典型的例子。在C#里,有多種方式,來實現(xiàn)簡單計算器。在大話設(shè)計模式里甚至用工廠模式來討論(個人有些反感這種模式,更反感接口的使用,大部分是過度設(shè)計)。其他如語法詞法樹,微軟的msscript.ocx,利用動態(tài)語言(如python,javascipt)等方式,也是用得比較多的,簡單的計算,可以利用DataTable的Evaluate來進(jìn)行某些有限的計算。

動態(tài)語言中,一句話就能解決的問題,對C#和.net程序員,卻傷透了腦筋。

只有引入動態(tài)特性,動一點,再動一點,我要搖擺,在我的地盤我自由地跳。 “能靜則靜,想動就動”,“靜如處子,動如脫兔”,“上得廳堂,下得廚房,進(jìn)得閨房”,是每個程序員的夢中情人。FoxPro,JavaScript,Python,Basic等經(jīng)典的動態(tài)特性,是多么引人入勝,遐想聯(lián)翩呀!

 

至于API(或者類庫),一些是通用的,一些是面向領(lǐng)域的,還有考慮輕重緩急之分。從2002面世,C#和.net走過了7個年頭,應(yīng)該歲數(shù)不小了。但類庫還是相當(dāng)?shù)娜狈?相比vb,delphi,c等傳統(tǒng)語言)。CodePlex的項目雖然也不少,但成氣候的真沒幾個。

數(shù)學(xué)類庫是一切邏輯思維的基礎(chǔ)和最大工具。.net應(yīng)該大量加入數(shù)學(xué)(代數(shù)、幾何、離散數(shù)學(xué)、線性代數(shù),概率和數(shù)理統(tǒng)計)類庫。而現(xiàn)在的.net類庫中,只有簡單的離散數(shù)學(xué)(數(shù)據(jù)結(jié)構(gòu)和算法是一部分離散數(shù)學(xué)的表現(xiàn)和實現(xiàn))。GIS空間數(shù)據(jù)庫,可以看成是球面幾何的應(yīng)用。融入了大量的數(shù)學(xué)類庫,C#和.net就將會在包括電信,醫(yī)療、經(jīng)濟(jì)、衛(wèi)星、測繪、生物、規(guī)劃,CAD,設(shè)計等科學(xué)工程領(lǐng)域迅速擴(kuò)大市場。

 

其實C#和.net還有很多需要發(fā)展的地方:主要包括

1. 基于泛型的數(shù)據(jù)集,(DataTable< T>, DataColumn< T>)

2.  基于泛型的控件: T TextBox< T>, 而本質(zhì)上,TextBox只能輸入字符串,在TextBox中怎么確定輸入的字符串合法,并得到正確的對象值,而不是字符串呢?即 T TextBox< T>.Value。 其實泛型控件的實現(xiàn)也很簡單,答案是構(gòu)造函數(shù)。利用構(gòu)造函數(shù)或類型轉(zhuǎn)換函數(shù)實現(xiàn),如果沒有重載構(gòu)造函數(shù),或者重載轉(zhuǎn)換函數(shù),輸入值失敗。同樣,T ComboBox< T>.Item[int index] 也是我們需要的。我剛才在使用ComboBox.Items[int index]的時候,卻需要使用強(qiáng)制類型轉(zhuǎn)換,還要考慮()轉(zhuǎn)換,還是as轉(zhuǎn)換,因為值類型(如struct)是不能用as轉(zhuǎn)換的,要多使用兩個闊話,很是丑陋.

3.  泛型間數(shù)據(jù)類型的轉(zhuǎn)換。為了安全和簡單,C#現(xiàn)在禁止泛型間數(shù)據(jù)類型轉(zhuǎn)換。但實際上,泛型間的數(shù)據(jù)類型轉(zhuǎn)換,是安全有效的。只要編譯器檢測所應(yīng)用的類型,有沒有重載對應(yīng)類型的構(gòu)造函數(shù)和轉(zhuǎn)換函數(shù)即可。

4.  SilverLight,compact framework,macro framework和普通的.net framework之間的兼容和互操作,也是一個必須改進(jìn)的方面。子集和超集(父集),必須完全兼容和互操作。Vista,因為這個問題,而應(yīng)用受限。

5.  silverlight和C#與html的集成,以及silverlight與數(shù)據(jù)庫、服務(wù)器的交互,嚴(yán)重阻礙了.net在網(wǎng)絡(luò)上的應(yīng)用。C#應(yīng)該像js操作html那樣操作DOM。

6. .net的可選安裝。飛信用.net開發(fā)了那么久,都不敢安裝.net。我們開發(fā)的應(yīng)用程序,應(yīng)該可以讓用戶只安裝必須的類庫,做到j(luò)ust in time install (JII)

7. 基于組合的winform開發(fā)框架,而不是目前的傳統(tǒng)的基于繼承的開發(fā)框架,能方便界面的快速有效開發(fā)。例如,我們把treeivew作為一項,直接放入combobox,把DateTimePicker直接放入ToolStrip中,基于組合的框架,支持直接Items.Add(),而不用寫個自定義的繼承的類。

8. 基于集合的控件和基于組合的控件開發(fā)框架,對程序自動生成,能大大提高效率。所有的控件,都有過數(shù)組版本。這可以通過加入對應(yīng)控件的集合版本,如RadioButtonList,,TextBoxList,,或者提供泛型控件集合。

9. 類似于VBA的二次開發(fā),把.net帶入工業(yè)批處理時代。VSA(visual studio for application)已淘汰, VSTA ( visual stdio tools for application)不成熟。傳統(tǒng)的CAD,GIS,OFFICE軟件,在規(guī)劃,設(shè)計,辦公,計算領(lǐng)域,多用VBA進(jìn)行二次開發(fā),進(jìn)行工業(yè)自動化,創(chuàng)造的價值,遠(yuǎn)遠(yuǎn)大于軟件本身的售價。

憑微軟孤軍奮戰(zhàn),路還很長…,夢還很遠(yuǎn)…

PS: Linq2Spatial,或者類似的地理計算,也是一個非常重要的方面,微軟的virtual earth, google的maps,earth的在線地圖服務(wù),創(chuàng)造了無以計數(shù)的應(yīng)用。在前段時間的日全食觀測中,我就是利用google maps來給全國各地的朋友提供信息。數(shù)字地球是整合資源信息的框架,esri最先看到了,Oracle領(lǐng)頭了(oracle spatial),google最時髦的沖到了前鋒(google maps,google earth),微軟緊跟其后(ms spatial, ms virtual earth),中科院遙感所、地理所、國家測繪局,武漢大學(xué)也死死的跟著,但力不從心。雖然我覺得過于庸俗,但這里還是引用這樣一句大家耳熟能詳?shù)脑挘骸靶畔⒌?0%都與地理位置有關(guān)”。其實這個數(shù)字是保守的。我們考慮自然界和生命體的層次:基本粒子(原子核,質(zhì)子,中子,電子),原子,分子,細(xì)胞,組織,器官,個體,物種,種群,群落,生態(tài)系統(tǒng),區(qū)域,全球,太陽系,銀河系,宇宙這個人類生存的系統(tǒng),就會發(fā)現(xiàn),從器官以下的層次,基本屬于物理,化學(xué)、生物,電子等領(lǐng)域,與地理信息無關(guān),而從個體,物種,直到銀河系,宇宙,我們都需要獲取時態(tài)的空間地理信息。但沒有多少人明白,這其中的基礎(chǔ),坐標(biāo)系是怎么建立的(球心坐標(biāo),投影坐標(biāo),各種投影坐標(biāo)的轉(zhuǎn)換和應(yīng)用),前房交會,后房交會,側(cè)方交會,球面幾何的計算。“我在哪里?從哪里來?到哪里去?怎么走?",這是地理信息系統(tǒng)需要解決的問題,也希望我們能夠在日常計算方便集成面向?qū)ο蟮牡乩碛嬎恪?/P>

對于C#與.NET的發(fā)展的想法就寫到這里,歡迎討論。

【編輯推薦】

  1. 介紹C#中的值類型
  2. C#連接Access、SQL Server數(shù)據(jù)庫
  3. 談?wù)凜#日期格式化和數(shù)字格式化的實現(xiàn)
  4. ASP.NET初探:什么是ASP.NET
  5. 介紹C#調(diào)用API的問題
責(zé)任編輯:book05 來源: cnblogs
相關(guān)推薦

2009-08-03 18:04:43

.NET發(fā)展趨勢

2024-02-21 09:00:00

.NET框架開發(fā)

2010-10-17 12:24:31

物聯(lián)網(wǎng)發(fā)展預(yù)測商業(yè)智能

2013-03-18 09:22:36

BYOD網(wǎng)絡(luò)技術(shù)應(yīng)用移動設(shè)備管理

2019-12-17 14:30:36

云計算多云

2017-12-28 09:09:07

云計算趨勢預(yù)測

2020-09-02 09:00:16

CRM人工智能數(shù)據(jù)

2018-12-04 20:45:00

區(qū)塊鏈加密貨幣比特幣

2024-12-09 00:00:06

2020-12-21 10:50:27

云計算公共云

2024-05-30 08:00:00

2021-11-09 08:00:00

DevOps開發(fā)數(shù)字化轉(zhuǎn)型

2022-02-14 11:20:46

云計算技術(shù)人工智能

2016-01-21 09:30:56

編程趨勢預(yù)測

2019-01-04 15:59:51

大數(shù)據(jù)數(shù)據(jù)分析數(shù)據(jù)

2017-01-12 09:33:44

DevOps趨勢預(yù)測

2012-08-21 11:16:14

BYOD大數(shù)據(jù)

2021-01-15 23:25:01

5G網(wǎng)絡(luò)基站

2023-01-18 12:02:36

2020-05-13 10:25:09

智慧城市智能技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美日韩免费一区二区三区 | 中文字幕观看 | 手机在线不卡av | 久久久一区二区三区 | 激情网站 | 久久久久久国产免费视网址 | 亚洲精品久久久久中文字幕二区 | 久久不卡日韩美女 | 激情黄色在线观看 | www中文字幕 | 亚洲一区二区三区免费视频 | 欧美激情国产精品 | 一区二区在线不卡 | 午夜精品久久久久久久久久久久 | 国产免国产免费 | 亚洲视频一 | 午夜精品一区二区三区免费视频 | 成人免费一区二区三区视频网站 | 国产亚洲精品久久情网 | 国产成人免费视频 | 国产高清免费视频 | 亚洲精选一区 | 密色视频 | 亚洲人人| 国产亚洲一区二区精品 | 欧美一级做性受免费大片免费 | 久久久久久久97 | 日本黄色免费片 | 国产不卡一区 | 欧美一区二区 | 毛片免费视频 | 伊人网站视频 | 风间由美一区二区三区在线观看 | 影音先锋中文字幕在线观看 | 黄色一级大片在线免费看产 | 久久精品在线免费视频 | 无码日韩精品一区二区免费 | 国产精品精品视频一区二区三区 | 91国产视频在线观看 | av在线影院| 成人综合视频在线 |