偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#對(duì)陣Java:告訴你該如何選擇

開發(fā) 后端
作為.NET平臺(tái)中的一員大將,C#擔(dān)負(fù)著.NET開發(fā)的主要責(zé)任。從51CTO-.NET頻道的調(diào)查數(shù)據(jù)來(lái)看,三分之二的程序員更關(guān)心C#的發(fā)展。本文從C#的語(yǔ)法角度來(lái)談一下選擇該工具的原因及意義。

51CTO-.NET頻道之前也報(bào)道過(guò)《C#與C++誰(shuí)更強(qiáng)?還是關(guān)公戰(zhàn)秦瓊》,開發(fā)技術(shù)的爭(zhēng)論還是主要以工作環(huán)境需要和個(gè)人喜好為主,希望能有更多客觀的評(píng)價(jià)誕生。

1. C#的語(yǔ)法糖

在之前,每當(dāng)別人問(wèn)起我,某個(gè)C#的新語(yǔ)言特性的時(shí)候,我總會(huì)說(shuō),其實(shí)就是這么一回事,他不過(guò)是一個(gè)語(yǔ)法糖,沒什么稀奇的,你可以看一下Reflector反編譯出來(lái)的代碼。

可是現(xiàn)在當(dāng)我仔細(xì)思考之后,發(fā)現(xiàn)其實(shí)語(yǔ)法糖更多地不僅僅是為了我們使用上的方便,而且是代表了一種編程模式以及思維模式的轉(zhuǎn)變。

[[12550]]

從最簡(jiǎn)單地說(shuō)起,我在之前的文章說(shuō)過(guò)一點(diǎn),面向過(guò)程的語(yǔ)言的核心不在于函數(shù),而在于處理事情的過(guò)程,而函數(shù)則完全是為了代碼的規(guī)范,以及可維護(hù)性才出現(xiàn)的。但是當(dāng)我們把若干個(gè)函數(shù)整理成了我們的類庫(kù)之后,我們除了使用上方便之外,更意味著我們需要提高我們的邏輯層次,將原本的細(xì)粒度邏輯粗化。

我看到了在winter-cn的文章中舉了這樣一個(gè)例子,把大象放入冰箱分成幾步,第一第二第三,Ivovy老大回復(fù)了這樣一句話,語(yǔ)言的發(fā)展是讓這些都變成一步:把大象裝入冰箱。我非常贊同,我認(rèn)為這就是未來(lái)語(yǔ)言的發(fā)展方向。

在我之前的文章《基于自然語(yǔ)言的軟件工程與程序設(shè)計(jì)》中,我談到未來(lái)語(yǔ)言的發(fā)展方向是基于自然語(yǔ)言的編程,還談到了一種理想的狀況,就是會(huì)說(shuō)話的人就會(huì)寫程序。即使我們不把眼光放得這么遠(yuǎn),我認(rèn)為,只要了解業(yè)務(wù)邏輯的人就會(huì)編程,這個(gè)是完全不過(guò)分的。

接下來(lái),我們看一個(gè)在C# 3.0 中的關(guān)鍵字:var。在之前,很多人說(shuō)var最大的作用是為了讓懶的人可以不必去打字打出類型。其實(shí)我個(gè)人更認(rèn)為當(dāng)var關(guān)鍵字和我們強(qiáng)大的Visual Studio工具結(jié)合起來(lái)的時(shí)候,就在倡導(dǎo)我們用一種團(tuán)隊(duì)思維的角度去看待問(wèn)題。

當(dāng)我們調(diào)用底層提供給我們的接口,或者使用其他類庫(kù)返回給我們的方法時(shí),我們不需要了解他的具體類型,我們只需要用var來(lái)得到該類型,然后用強(qiáng)大的VS開發(fā)工具的智能感知去得到我們需要的屬性(或方法)即可。

至于像Lambda表達(dá)式所提倡的FP思維,我就更不多說(shuō)了。

總之,F(xiàn)irelong眼中說(shuō),C#語(yǔ)言越來(lái)越臃腫的語(yǔ)言特性,然后應(yīng)該越來(lái)越從簡(jiǎn),我個(gè)人認(rèn)為,這不是在抹殺C#的進(jìn)步,更關(guān)鍵的是在抹殺一種編程思維的進(jìn)步。

2. 語(yǔ)言,還是語(yǔ)言

在語(yǔ)言產(chǎn)生之初,語(yǔ)言之爭(zhēng)似乎就從未停止。無(wú)論是C和C++。還是Java與C#。從來(lái)都是各執(zhí)一詞,然后難分勝負(fù)。

我不是一個(gè)牛人,無(wú)法像Jeffery Zhao一樣來(lái)舉出各種各樣的理由來(lái)反對(duì)Java,或者反對(duì)其他語(yǔ)言。至少在我目前的階段來(lái)看,我不是一個(gè)語(yǔ)言方面的攻擊者。

我只能從經(jīng)濟(jì)學(xué)的角度去分析:每門語(yǔ)言,每門流行的語(yǔ)言,在市場(chǎng)上占有一定份額的語(yǔ)言,必定有著他的優(yōu)勢(shì)所在,否則他必定會(huì)被市場(chǎng)所淘汰。而每門語(yǔ)言也必然有著他的劣勢(shì),和不適用性,正是這樣才催生了其他語(yǔ)言的發(fā)展,從而產(chǎn)生一種平衡的關(guān)系。

在這里,我只說(shuō)托管語(yǔ)言。從某種程度上,至少?gòu)奈夷壳暗某潭壬希艺J(rèn)為,托管語(yǔ)言來(lái)開發(fā)桌面程序的確是不大合適的,相對(duì)于C++。(在此強(qiáng)調(diào),我并沒有過(guò)太多桌面程序開發(fā)的經(jīng)驗(yàn))針對(duì)當(dāng)前大多數(shù)的商業(yè)商品來(lái)說(shuō),無(wú)論是舊版的飛信,還是概念版的QQ,采用托管語(yǔ)言無(wú)疑都是失敗的,而我們看大部分成熟的桌面程序,還是采用C++來(lái)開發(fā),這確實(shí)也能說(shuō)明一定道理。

而著名的《鬼泣4》采用C++和C#做交互來(lái)共同開發(fā),也在一定程序上說(shuō)明了C#在UI上的薄弱性。(只是看新聞傳說(shuō),未經(jīng)證實(shí))

總之,我個(gè)人認(rèn)為:不要輕易地去抨擊某一門語(yǔ)言,每門語(yǔ)言都有著他的適用性,你的項(xiàng)目因?yàn)镃#而失敗,只能說(shuō)是你項(xiàng)目不該選擇C#,而不能說(shuō)C#無(wú)法滿足你的項(xiàng)目,就說(shuō)C#是失敗的。這樣的邏輯明顯就是不對(duì)的。

3. 語(yǔ)言與設(shè)計(jì)模式

在之前的文章中,我拋出過(guò)這樣的一個(gè)觀點(diǎn):設(shè)計(jì)模式實(shí)際上是犧牲了語(yǔ)義的自然性,來(lái)?yè)Q取軟件的可重用性和可維護(hù)性。

對(duì)于C#這樣一門面向?qū)ο蟮恼Z(yǔ)言而言,根本還是要從面向?qū)ο髞?lái)出發(fā),那么面向?qū)ο蟮暮诵氖鞘裁矗棵總€(gè)類都有章可循。

但是,在很多的時(shí)候,我們?yōu)榱藬U(kuò)展性,重用性,可維護(hù)性,不得不求助于GOF或者其他的設(shè)計(jì)模式,我個(gè)人認(rèn)為,設(shè)計(jì)模式是凸顯了“語(yǔ)言”的無(wú)助。

因而,在語(yǔ)言的層面上融入設(shè)計(jì)模式,我個(gè)人認(rèn)為,這不是一種錯(cuò)誤,相反,這卻是語(yǔ)言發(fā)展的必然,至少是基于面向?qū)ο笳Z(yǔ)言發(fā)展的必然。到面向?qū)ο笳Z(yǔ)言發(fā)展到極致的時(shí)候,應(yīng)該是一種我們不需要借助設(shè)計(jì)模式,只要依靠語(yǔ)言提供給我們的語(yǔ)法(或者是”語(yǔ)法糖“)就足夠完成我們用其他的設(shè)計(jì)模式可以完成的工作,這才是面向?qū)ο笳Z(yǔ)言發(fā)展的大成。

再進(jìn)一步地說(shuō),沒有任何一門編程模式是銀彈,可以解決我們的所有問(wèn)題,無(wú)論是面向?qū)ο?,面向過(guò)程,還是FP,一種發(fā)展逐漸完善的語(yǔ)言應(yīng)該是將各種編程模式于一體,提供給程序員一種極高的思維抽象,這才是未來(lái)語(yǔ)言的方向。

原文標(biāo)題:輕松簡(jiǎn)單搭建Linux下的C#開發(fā)環(huán)境

鏈接:http://www.cnblogs.com/domslab/archive/2010/07/08/1774005.html

【編輯推薦】

  1. C#模式窗體中的按鈕操作
  2. C#模式窗體操作詳解
  3. C#窗體繼承原理以及實(shí)現(xiàn)淺析
  4. C#窗體關(guān)閉事件的重載實(shí)現(xiàn)淺析
  5. C#窗體位置與大小設(shè)置詳解
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2019-12-30 14:30:50

云計(jì)算公有云私有云

2019-07-05 10:53:55

ReactVue前端

2016-12-29 11:01:54

ReactVue

2014-07-15 09:44:07

Linux Web服務(wù)Nginx

2009-08-19 13:36:21

C++資源管理方式

2012-10-10 08:44:18

NativeWebHybrid

2020-11-06 10:41:35

酷睿i5-10600KF游戲

2019-11-22 10:06:24

PythonGolangJava

2015-03-05 09:39:12

專場(chǎng)培訓(xùn)

2016-01-20 11:22:17

增量部署全量部署運(yùn)維

2019-03-10 22:21:47

框架AI開發(fā)

2017-12-27 22:13:34

2009-08-26 13:15:38

C#選擇控制

2014-11-05 10:58:00

編程

2017-10-10 16:22:21

主板芯片硬件

2015-06-08 11:16:02

PaaS私有PaaS應(yīng)用開發(fā)

2009-09-04 11:15:07

選擇C#構(gòu)造函數(shù)

2018-08-07 10:11:08

智能

2017-05-23 09:06:00

CIO超融合服務(wù)器
點(diǎn)贊
收藏

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