(原創) 令人期待的C# 3.0/LINQ (.NET) (C#)
2007-02-21 03:53
274 查看
Abstract
綜觀現在的語言,大致就是靜態語言和動態語言之爭,原以為C/C++將是我最後一個語言,但C# 3.0卻讓我躍躍欲試...。
Introduction
C++的哲學是:語言大體上就不改了,以後的標準就放在擴充standard library,如將boost變成標準,這樣的好處是,compiler已經穩定了,之後若要做的就是compiler最佳化以及更接近100%的標準相容。在靜態語言與動態語言之爭方面,C++ 、C#也無意提供更多的動態功能,仍然堅守靜態語言立場,但是C# 3.0卻往不同的路走,野心更大,他想統一所有的語言..!!
各位在寫程式有沒有發現,目前語言各有山頭,要寫一個完整的AP,你最少得會C#,XML,SQL,再來看為什麼ORM會流行?因為傳統語言如C#和SQL還是有個鴻溝,ORM讓資料庫存取的思維更接近物件導向,這有如每到一個省份,就得會他們的方言才能溝通,非常不方便!!假如有一個語言能同時包下OOP、XML、SQL、ORM這些功能那該有多好?就如同會講普通話就通行無阻一樣!!不是由library或framework提供喔!!是由語言本身提供,很難理解嗎?看看Visual FoxPro!!本身語言就包含了dBase,SQL,OOP,寫起資料庫程式只能用『犀利』兩個字形容,目前C#已經包含了OOP,但就是缺XML、SQL、ORM的支援,C# 3.0想擴充語言同時支援這三塊,而不靠.NET Framework,這也是為什麼Microsoft並不急於支援ORM的原因,因為他的野心更大,想用語言直接解決!!
很多人抱怨C# 3.0的語法很怪,的確,因為同時支援了三種不同領域的語法,當然會不習慣,就像當時很多人抱怨C++的template語法很奇怪一樣,我承認C# 3.0是個很冒險的決定,會不會成功要看時間的證明,但一統江湖的氣魄的確讓人敬佩,也成為最近這幾年來最吸引人的程式語言,老實說,我覺得一個程式語言要靠library,功能上雖然不會少,但程式碼就是不漂亮,假如你寫過Visual FoxPro那種內建dBase、SQL的語言,再看看C#還要透過ADO.NET才能處理資料,整個程式的精煉程度就立見高下,一定是程式語言內建資料庫處理的漂亮,就算只是syntax sugar,最後仍是呼叫.NET Framework也沒關係,最少寫起來爽度就是高!!想想看寫個AP,從頭到尾都用一種語言是多麼愉快的事呢?
Conclusion
C# 3.0算是一個很大膽的創新,最少目前還沒有任何程式語言走這條路,值得期待。
綜觀現在的語言,大致就是靜態語言和動態語言之爭,原以為C/C++將是我最後一個語言,但C# 3.0卻讓我躍躍欲試...。
Introduction
C++的哲學是:語言大體上就不改了,以後的標準就放在擴充standard library,如將boost變成標準,這樣的好處是,compiler已經穩定了,之後若要做的就是compiler最佳化以及更接近100%的標準相容。在靜態語言與動態語言之爭方面,C++ 、C#也無意提供更多的動態功能,仍然堅守靜態語言立場,但是C# 3.0卻往不同的路走,野心更大,他想統一所有的語言..!!
各位在寫程式有沒有發現,目前語言各有山頭,要寫一個完整的AP,你最少得會C#,XML,SQL,再來看為什麼ORM會流行?因為傳統語言如C#和SQL還是有個鴻溝,ORM讓資料庫存取的思維更接近物件導向,這有如每到一個省份,就得會他們的方言才能溝通,非常不方便!!假如有一個語言能同時包下OOP、XML、SQL、ORM這些功能那該有多好?就如同會講普通話就通行無阻一樣!!不是由library或framework提供喔!!是由語言本身提供,很難理解嗎?看看Visual FoxPro!!本身語言就包含了dBase,SQL,OOP,寫起資料庫程式只能用『犀利』兩個字形容,目前C#已經包含了OOP,但就是缺XML、SQL、ORM的支援,C# 3.0想擴充語言同時支援這三塊,而不靠.NET Framework,這也是為什麼Microsoft並不急於支援ORM的原因,因為他的野心更大,想用語言直接解決!!
很多人抱怨C# 3.0的語法很怪,的確,因為同時支援了三種不同領域的語法,當然會不習慣,就像當時很多人抱怨C++的template語法很奇怪一樣,我承認C# 3.0是個很冒險的決定,會不會成功要看時間的證明,但一統江湖的氣魄的確讓人敬佩,也成為最近這幾年來最吸引人的程式語言,老實說,我覺得一個程式語言要靠library,功能上雖然不會少,但程式碼就是不漂亮,假如你寫過Visual FoxPro那種內建dBase、SQL的語言,再看看C#還要透過ADO.NET才能處理資料,整個程式的精煉程度就立見高下,一定是程式語言內建資料庫處理的漂亮,就算只是syntax sugar,最後仍是呼叫.NET Framework也沒關係,最少寫起來爽度就是高!!想想看寫個AP,從頭到尾都用一種語言是多麼愉快的事呢?
Conclusion
C# 3.0算是一個很大膽的創新,最少目前還沒有任何程式語言走這條路,值得期待。
相关文章推荐
- 委托是什么?匿名方法是什么?在C# 3.0中,Lambda表达式是什么?扩展方法是什么?LINQ是什么?您觉得C# 3.0中还有哪些重要的特性,它们带来了什么优势?BCL中哪些类库和这些特性有关?您平时最常用哪些
- AutoCAD.Net/C#.Net QQ群:193522571 LinQ 已知字段名的字符串如何从一个表中取得这个字符串对应字段的所有记录
- 微软免费图书《Introducing Microsoft LINQ》翻译Chapter2.1:C# 3.0 特性(对象初始化表达式\匿名类型\查询表达式)
- (原創) 关于用利用C#控制RS232硬件方面的书 (初級) (.NET)
- LINQ体验(3)--C# 3.0新语言特性和改进(下篇)
- asp.net(c#)Enterprise Library 3.0 下载
- C# 3.0 LINQ to XML
- LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
- (原創) 如何用程序的方式载入indexd过的图形文件? (.NET) (ASP.NET) (C#) (GDI+) (Image Processing)
- (原創) derived-class要怎麼呼叫base-class的constructor? (.NET) (C#)
- LINQ体验(2)——C# 3.0新语言特性和改进(上篇) 【转】
- C# 3.0 给我们带来了什么?从C#1.1到LINQ的查询语句变化
- C# 2005 & .NET 3.0高级编程(第5版)
- [MSDN]C# 3.0 锐利体验系列课程 之五 查询表达式LINQ (3)
- (原創) 如何使function傳回多值? (使用iterator) (.NET) (C#)
- LINQ与ADO.NET 3.0的创新
- C# 2008 学习笔记 - LINQ to ADO.NET(二)- LINQ to DataSet
- LINQ与ADO.NET 3.0的创新
- LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
- Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json