<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[浅谈程序语言之争]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 12 May 2011 12:34:29 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	论语言：语言的决定权往往掌握在少数人的手里，平台制定者的手里，业界大佬的手里。而我们一帮民众就只能呼啦啦跟风，墙头草随风倒。需求到了哪里，语言就跟随到哪里。<br/>论开放：Microsoft自己将一切包装的太好了，所以带来一些便利，但同时也给我带来了迷惑，当然我相信这份迷惑不是我独有的，每个学习这些东西的人都会有迷惑。还有一点，Microsoft就是大包大揽，什么都自己弄，虽说人多，但还是不利于技术的发展，而开源技术往往开发者众多，当然存在一些不稳定的因素，但还是广大人民群众的力量大。Windows最大的成功之处就是上面应用众多，这些应用谁开发的，99.9999%都不是Microsoft开发的，一个人的能力是有限的。所以Apple出了App Store收买开发者，这样人就多了，Google也出了Web Store。然而桌面应用在我国基本没钱赚，只能通过增值服务挣钱，想挣代码的钱那时绝对没有可能的，除非我国民对版权意识加强，然而我国倡导社会主义，最终要到共产主义的，就是大家有什么好东西就要共享，版权神马的都是浮云。飞信还因为.NET容易被反编译，又用C++开发了，大家觉得还是二进制安全。还有就是对于一些非主流的技术Microsoft团队维护能力有限导致bug丛生，又不开源用起来费劲，各种hack，别无它法。<br/>最后，世界仍旧很美好，学习第二语言和其它框架具有重要性，有你好看。<br/><br/>有人的地方就有战争。——不知道谁说的话。<br/><br/>语言争论这事情实在太多了。浅谈语言之争，真的很浅。<br/><br/>比如C#和Java之争，如果你经常上C#社区或者Java社区，你会经常发现这些玩应。C和C++争论，这个没那么频繁，偶尔爆发。Linus一直贬低C++，说C++太臃肿了，据说git用C写，就是为了不让C++程序员参与。Python和Ruby之争，如果就Web开发来说，还可能有PHP，用这个，用那个，用哪个？Python和Perl之争，脚本语言的争论。Erlang,Haskell,F#,函数语言的争论，等等。<br/><br/>如果换个角度，还有动态语言和静态语言的争论，近年来函数式语言也掺互进来，各种争论实在太多了。<br/><br/>o然而我觉得其实大多数时候是与语言无关的，无论哪种语言都是不差别的，特别是类似的语言，语言之所以产生争论，本身在于平台和需求。<br/><br/>语言的发展也依赖于平台。比如说当年Windows下软件开发如火如荼，VC++很火，为什么很火，因为Windows很火，而且有个很火的框架MFC是用VC++写的，你不用这个不好写Windows下的应用啊。虽然有人觉得MFC很遭。C当年为啥火气来了，因为Unix，貌似C就是为Unix而开发的，而且Unix的嫡系Linux也一直在用C开发。Objective-C呢，近年来热度不断上升，为嘛？因为Apple的移动应用，因为iOS，因为App store。因为存在这么一个平台，而恰巧这个平台只能用Objective-C。为嘛Ruby火了，因为Ruby on Rails，因为快速建站的需求。为什么Python近年来不断提升，因为一方面Python做Web开发是一个不错的选择，还有Google App Engine也对Python助力不少（至少我是因为Google App Engine才认识了Python），还有系统管理不错的脚本语言，因为Perl的势衰，Python作为脚本语言因它的简洁性受到了不少的青睐。因为Android的兴起，也推动了人们对Java的热情。C#为什么也挺火，还是因为Windows，Windows近年来冷落了VC++，全力推广.NET平台，然而.NET平台从某种角度来说就是C#平台。<br/><br/>为啥我的一些同学要学C#，学Java，因为你满眼望去，各种C#，Java工程师的招聘，虽然有些东西让人觉得很俗，然而谁不生存呢，生存就不能免俗。当然我不是说C#，Java俗。我曾在博客园里贴了一篇《两年C#与﻿.NET》，引来不少口水，我几乎没有回应，因为我一直觉得这些东西都是神马浮云。你不论怎么争论，那还是原封不动的站在那里，况且这玩应，看多了也就累了。<br/><br/>所以说语言本身往往并不会怎样，再难用的语言如果有需求在那里，也有人用。任何东西都是需求决定的，因为现在都有需求希望开发周期缩短，所以动态语言大行其道。因为一些应用需要强悍的性能，所以一些古老的底层语言至今来有它们的舞台。因为有并发的需求，所以函数式语言才越来越多的受到人们的关注。<br/><br/>语言的决定权往往掌握在少数人的手里，平台制定者的手里，业界大佬的手里。而我们一帮民众就只能呼啦啦跟风，墙头草随风倒。需求到了哪里，语言就跟随到哪里。<br/><br/>最后说点无关又相关的：<br/><br/>我想应该没人愿意把每个语言都学一遍，从经济学角度将这是不经济的。但是从技术这个角度讲，多学几种语言还是有好处的。<br/><br/>你可以对某种语言有偏爱，也可以诋毁某种语言，程序员是有性情的，因为语言是他们的挚爱。我觉得程序员应该对某种语言有偏爱，也应该有争论。因为这表明他们还是爱他们所从事的事情的，如果不爱，最起码还是有感情的。<br/><br/>有爱有恨，这样才爽快！<br/><br/>让争论飞一会。<br/><br/>=======================================================================<br/>两年C#与.NET<br/><br/>两年，我细想了一下，时间应该不算长。我还很菜，这无论如何都是一个事实。<br/><br/>写之前其实我并没有明确主题，到底想说什么，是说坏话还是说好话，我没有明确立场。写这些东西应该是帮我梳理我的想法，帮助我思考，让我最终敲定一个我的想法。<br/><br/>在这两年里，其实很多时候我分不清什么是C#里的语言特性什么是.NET里的类库，对于语言C#，我所知甚少，对于框架.NET我所知更少。.NET是个庞大的框架，我接触过WinForm, WPF, Silverlight, ASP.NET, ASP.NET MVC, .NET CF, 之前主要参与应用WPF或ASP.NET技术的项目的开发。.NET提供了庞大的类库，所以个人认为语言往往显得相对很是无力，有的时候，我会迷惘，学语言到底是学什么？<br/><br/>事实是我已经好几个月没有接触过C#和.NET了，最近学习了一些别的语言，了解了很多开源技术框架。然而这话又不准确，中间由于一些原因用过一次C#和.NET。时隔一段时间后，反过头来用，反而有一种清爽的感觉。由于很久不用，有了一些生疏。这时候再用，就不是像过去的惯性一样，无脑敲代码，似乎一切就应该是那样，什么都不想。经过一段不用后，再用的时候敲每一行的时候似乎都要想想，思路反而开阔了很多，想通了一些东西。<br/><br/>虽说写了两年的代码，做了两年的技术，可大多都是业务逻辑，对技术本身知之甚少。后来接触一些开源技术，主要是学习了Python，Google App Engine，Linux相关知识，接触到了广阔的开源世界，并且Follow了一些开源人士，耳濡目染，了解了很多东西。所以视野开阔了不少，而且了解了一点技术细节，稍微底层的一些东西。而且这段时间自己独立做了一些面向用户的项目，虽说之前也曾做过自己独立完成的东西，但都是作业课设之类的。而其它团队项目都是项目一角，很多方面没有接触过。而这段时间自己独立做了几个小项目，项目虽小，但五脏俱全。从创意想法、制定计划到编码实施和中间的不断更改维护，从前端到后端都自己动手。有的时候你面对需求变更觉得很烦，觉得辛苦写的代码不能用就白写了，经过一些事情后开始觉得有些代码写起来就是为了将来扔掉。当然对于不了解的技术细节和非技术方面的事情会觉得很辛苦，但还是体会到一些不一样的东西，而且对于一些当前流行的技术，特别是互联网技术有了初步的掌握。而且通过将这些网络应用部署到网上，吸引用户也是一大问题，或者说是主要难题。有没有人用是很重要的一点，所以这段时间看了一些商业书籍，不能说没有收获，但总觉收获微乎其微。<br/><br/>回来说C#和.NET，其实细说起来我没有系统学习过C#，在C#之前有那么一点点C++基础，面向对象的知识主要从C++身上继承学习而来，当然细节是有不同的，但面向对象思想的无差别的。对于C#语言细节看书看过一些，但都止步于前面那些最基本的东西，大部分都是现学现卖。所以用了C#很久之后，我才知道泛型，知道lambda表达式，才知道有Dictionary这个东西。虽说了解一些面向对象的知识，但其实很少有用武之地。主要是被.NET的迷雾搞得不分东南西北，理论上还有那么点感觉，一实践就全然无知了。Visual Studio生成的代码模板，又是什么partial局部类之类的，很久以前什么都不知道，事件委托什么的，也什么都不知道。就知道这样行，不知道为什么这样就行，自己什么都不知道。后来通过深入学习，了解了一些，但所知仍然甚少，所学甚浅。<br/><br/>Microsoft自己将一切包装的太好了，所以带来一些便利，但同时也给我带来了迷惑，当然我相信这份迷惑不是我独有的，每个学习这些东西的人都会有迷惑。还有一点，Microsoft就是大包大揽，什么都自己弄，虽说人多，但还是不利于技术的发展，而开源技术往往开发者众多，当然存在一些不稳定的因素，但还是广大人民群众的力量大。Windows最大的成功之处就是上面应用众多，这些应用谁开发的，99.9999%都不是Microsoft开发的，一个人的能力是有限的。所以Apple出了App Store收买开发者，这样人就多了，Google也出了Web Store。然而桌面应用在我国基本没钱赚，只能通过增值服务挣钱，想挣代码的钱那时绝对没有可能的，除非我国民对版权意识加强，然而我国倡导社会主义，最终要到共产主义的，就是大家有什么好东西就要共享，版权神马的都是浮云。飞信还因为.NET容易被反编译，又用C++开发了，大家觉得还是二进制安全。还有就是对于一些非主流的技术Microsoft团队维护能力有限导致bug丛生，又不开源用起来费劲，各种hack，别无它法。<br/><br/>又跑题了，接着说C#和.NET，我常上博客园看看，这是.NET社区中较大的。经常在上面看到有人批评.NET，说着说那，我觉得都是没事闲的，你要是不喜欢，就退出搞别的技术就完了，我觉得这事没必要表态，你的态度也无法左右Microsoft。然而这类文章，往往置顶，而且引来众多口水。讨论什么的都是浮云，点击量才是王道。<br/><br/>我接触C#和.NET不过2年，没有能力评判是非，虽说我有意向别的技术靠拢，但是C#和.NET还是陪我度过了我的启蒙阶段，不敢说爱，当然也对它基本无爱。<br/><br/>写完一通，也没梳理顺溜，就此作罢。当然如果没有感情是不会写这么多得，无论爱恨。所以说无论如何不能在一棵树上吊死，偶尔出来看看，世界很美好。这也是很多前辈提出的学习第二语言和其它框架的重要性。<br/><br/>我突然蹦出来，发现外面世界很美好。<br/><br/><br/><br/>来源：http://www.cnblogs.com/onm123/archive/2011/03/05/talk-about-programming-language-argue.html<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.cnblogs.com/onm123/archive/2011/01/07/two-years-csharp-dotnet.html<br/><br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 浅谈程序语言之争]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>