Spiga

分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发

2011-01-14 01:52 by Jeffrey Zhao, 17074 visits, 收藏, 编辑

在许多年前,“语言”就等同于“平台”,例如C,C++以及最早的Ruby和Python等等。但是随着技术发展,出现了一些通用的平台,例如.NET和Java,逐渐这些平台上的语言也越来越多。再后来,某些语言在不同平台上的实现也越来越多,事情也变得有些复杂。技术在发展,但是从目前社区的讨论中,我发现许多朋友的观念还没有跟上。简单地说,如今的观念,一定要从“语言即平台”切换成“语言及平台”,当分清“语言”和“平台”这两个不同事物之后,许多问题才能讨论地清楚。

例如我写过一个太监系列《Why Java Sucks and C# Rocks》,其中谈的是C#和Java两个“语言”而不是两者的“平台”。编程“语言”其实是一种“规范”,它涉及了程序员在使用这门语言时的文本表现形式(这里暂不考虑其他形式的语言),而“平台”则包括对这个规范的“实现”(广义的“平台”还包括整个生态环境等等)。C#和Java分别处在各自的平台上,但许多语言其实是跨多种平台的。例如Python,Ruby,Scala,Clojure,JavaScript等等,数不胜数。同样,一个平台上也会出现多种语言。而且事实上,由于.NET和Java这样的平台越来越成熟,语言的设计及实现者也都越来越倾向于让语言运行在“某个平台”上。这么做可以尽可能地利用前人的成果,而不是什么都要自己从头做起。

其实基本的原则就是这么简单,但是真正在考虑问题的时候,可能就不是那么容易了,我们必须时刻保持清晰地头脑。

例如有个人说“C#比Java执行效率高(或低)”,这个说法是否正确?其实这种说法有很大问题。因为我们知道,在这里C#和Java都是“语言”,它们的执行环境CLI及JVM一样都是“规范”,但“执行效率”是一种表现,这和“实现”得如何有很大关系。例如,C#是运行在.NET平台还是Mono上(它们都是CLI规范的具体实现),Java是运行在JRockit还是Hotspot(前者是Oracle的JVM商业实现,后者是Sun的开源实现——当然现在也是Oracle的),亦或是Android的Dalvik上?很显然,不同实现之间的表现会有区别,不可一概而论,否则也不会出现JavaScript引擎的效率之争了。同理,有些人使用Hotspot上的Java性能来说明Java在Android上运行时的表现,这也是不对的——要知道Google在和Oracle的Java专利官司中不断强调Dalvik不是“Oracle那种Java”。作为结论,Java在Android上的表现的确不错,但论证方式也必须正确才行。

当然,有时候“规范”也会影响到“实现”,例如一个动态分发的语言,其性能基本百分百不如在编译期绑定的静态语言。所以事情原本就是这么复杂,做一个思路清晰的程序员并不是件容易的事情。顺便一提,女人在这方面的头脑一般都比较清楚,她们一般都知道骑白马的不一定是王子,也有可能是唐僧。

对于俗称“.NET程序员”的那一批人来说,分清“语言”和“平台”更是一件十分重要的事情,因为C#语言可以说是目前“平台”、“实现”最为广泛的“语言”之一了。之前我为InfoQ写过一篇文章,其中提到Mono的创始人Miguel de Icaza给出的目前C#语言可执行平台的“不完全”列表,几乎覆盖了各种流行的操作系统及设备等等,例如:

  • Windows
  • Mac OS
  • Linux / BSD / Solaris
  • Windows Phone,Android,iOS
  • XBox 360,Wii,PS3
  • ……

因此就拿C#这一种语言来说,“实现”也会各自略有不同,这便是所谓的“配置(Profile)”。目前至少已经有这么多配置了:

  • .NET 4.0配置
  • Silverlight配置
  • Windows Phone 7配置
  • XBox360配置
  • Mono核心配置:与.NET配置相同,可以在Linux,MacOS X,Solaris,Windows和BSD里使用。
  • .NET Micro Framework
  • Mono的iOS配置
  • Mono的Android配置
  • Mono的PS3配置
  • Mono的Wii配置
  • Moonlight配置(与Silverlight兼容)
  • Moonlight扩展配置(Silverlight和完整的.NET 4 API)

“配置”之间的区别主要体现在执行环境的能力(例如iOS不支持运行时代码生成,因此支持AOT但不能JIT)以及类库的覆盖面上(例如XNA类库只存在于Windows Phone及XBox 360等游戏平台),不过它们终究实现了一个核心规范,因此我们可以说在不同平台上都可以“使用.NET进行开发”。

Mono实在是一个了不得的作品,它让我知道了“跨平台原来可以这么做”。之前我也写过有关跨平台的问题,其中谈到在“客户端的跨平台一般都很难得到最佳的体验”,这个论点的最佳证明便是Java。但Mono走的却是另一条跨平台的道路,它在各平台上实现了核心的执行引擎和类库之外,解决“体验”的方式便是在各个平台上提供原生平台的绑定。这样无论是在Mac OS,iOS,Android上都可以得到原生应用的体验。

我很奇怪为什么有些搞.NET的人一边说.NET的适用面太小,一边却忽视Mono的成果,在我看来这完全是“自作孽不可活”,我愈发觉得是否接受Mono是判断一个.NET程序员是否优秀的重要准则。其实Mono实在很火,因为他为广大.NET程序员扩展了工作领域,使用现有的知识来开发iOS等平台的应用程序,还可以共享代码,何乐而不为?前不久苹果发布了Mac上的App Store,于是MonoMac也立即推出了面向AppStore的打包器Frank Krueger也开始着手移植它的作品iCircuit成果显著。因此在我看来,这才是一个现代.NET程序员该有的工作台:

对于MonoTouch这样的新思路,带有疑惑是正常的。我也知道还有许多聪明人可以找到各种反对的理由。不管怎样,我现在这里随意列上几条吧:

  • 有人说,用MonoTouch等.NET实现来做iOS开发“不正式”;我说,这个说法颇有“血统论”的意味,不过既然在Windows上用C++和Delphi都很正式,那么为什么在iOS上使用Objective-C才是正途?
  • 有人说,MonoTouch性能一定不如Objective-C好;我说,这是猜测,即使性能不如Objective-C,看看各种案例也知道这在实践中并不是问题(事实上MonoTouch的前身便是Unity3D对Mono的使用,而iOS上实在有太多游戏在使用Unity3D了)。
  • 有人说,MonoTouch或MonoDroid没有大公司支持,不靠谱;我说,您之前不是经常鄙视类似“开源没有微软靠谱”或是“微软开发人员只知道微软技术”这种说法的吗?
  • 有人说,用MonoTouch等于抛弃了CocoaTouch社区,出了问题都没人问;我说,MonoTouch的问题基本就是CocoaTouch的问题,MonoTouch的UI层就是CocoaTouch,有问题直接去CocoaTouch社区或CocoaTouch程序员,代码直接映射,类库直接使用。
  • 有人说,用MonoTouch的人不好招;我说,用C#、.NET的人比用Objective-C、Cocoa多太多了。给我一个熟练使用.NET和C#的人,三天上手,一周成为能够开发出成品的iOS开发者。
  • 有人说,难道就是为了用.NET所以用MonoTouch?我说,用MonoTouch/MonoDroid的好处很多,例如我可以在iOS、Android、Windows Phone甚至更多平台上共享UI以外的代码,并可以直接使用大量.NET上的类库——这点实在太方便了。不要问我为什么Android上不能使用Java类库,我只知道开发Andorid的同事发现SOAP访问类库没有,REST找不到好的,JSON支持也只有最原始的支持,于是痛苦万分。

我还知道,这些说法依旧挡不住出现基于MonoDroid的DeltaEngine,这是个跨平台的游戏引擎,在Mono的支持下可以运行在Linux,MacOS X,iOS和Android上,在微软.NET支持下可以运行在XBox 360,Windows Phone 7自然还有普通的Windows系统上。在CES 2011上NVidia演示了一个游戏Soul Craft,它运行在LG Optimus 2X,这个游戏正是使用了DeltaEngine。

对于我们来说,最大的限制其实还是眼界和思维,突破这一屏障也是我组织nBazaar技术沙龙的目的之一。本周六将会举办第三届nBazaar技术交流会,具体信息请访问http://nbazaar.org/。如果您还没有报名,也可以直接前来,也欢迎带上感兴趣的朋友或同事。根据以往的经验,场地就像乳沟,挤挤总是有的……

原文:《分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发

Add your comment

186 条回复

    评论共2页: 上一页 1 2 
  1. #87楼 漂浮的雨      2011-01-14 20:51
    @Jeffrey Zhao
    我从来没说MonoTouch做不了东西,毕竟好几百刀的一个license在那里卖呢。
    问题是,什么时候起,编程语言难学了?从来都是底下的框架库和原理难学啊。就好比会C的多了,有几个会用C写OpenGL程序的?
    选了MonoTouch,你就是把自己的时间和精力邦定在MonoTouch平台上了,我刚才简单看了下MonoTouch文档,这玩艺就是个C#语法的UIKit框架实现,依赖它的程序能跨平台,搞笑呢吧。它充其量就是,在iOS平台上,那些喜欢用C#的人可以继续用C#。
    问题是,iOS毕竟不是Novel的亲儿子,哪天它觉得license卖的不好,不做了,不知道到时候是场悲剧还是场喜剧(干脆开源了)。
     回复 引用 查看   
  2. #88楼 自学.NET 的小民工      2011-01-14 20:56
    第一:现在国内Mono和MonoTouch资源奇缺,在博客园这样的地方,不能找到系统的Mono学习资源??
    第二:现在国内几乎没有几家用Mono的公司,使用MonoTouch更少(在51JOB上得到的数据,在搜索栏里搜索Mono和MonoTouch,以这说明没公司招这方面人才,间接说明了没几个公司用)。


    “其实Mono实在很火”

    此话怎讲???
     回复 引用 查看   
  3. #89楼[楼主] Jeffrey Zhao      2011-01-14 21:02
    @漂浮的雨
    我也没说你说MonoTouch做不了东西。
    可能Objective-C容易学吧,但我不想学它和用它,因为实在提高不大,且它的编程体验真的不如C#和.NET。编程语言容易学,编程体验实在搞不好。我还不如用MonoTouch快速上手就能做东西,反正我是用而不是研究。
    还有我虽然选了MonoTouch,但从没说过UI层也可以用相同的代码(说明还是没看清文章内容),我是说除了UI层以外的部分可以共享。
    共享这70%的代码就没有价值了吗?如果你要同时做iPhone,iPad,Android和Windows Phone的时候呢?
    至于最后一点“猜测”我就不继续了……
     回复 引用 查看   
  4. #90楼[楼主] Jeffrey Zhao      2011-01-14 21:04
    @自学.NET 的小民工
    第一、不看英文资源,提高不了怨不了别人。
    第二、国内的落后又不是一天两天的,你跟着落后的人跑,永远难以超前。
    别把眼光局限在国内某些社区,要关注全球动态。
     回复 引用 查看   
  5. #91楼 一舟      2011-01-14 21:08
    老赵的这个图,曾经也是我在上个公司的工作台。两台电脑(iMac+WinPC),加一个ipad,还有同事的iphone,另外还有以前开发android使用的MID。经常一边打开xcode,一边打开eclipse。

    想歇会的时候,就用ipad玩游戏,真是舒服啊。
     回复 引用 查看   
  6. #92楼 一舟      2011-01-14 21:14
    昨天博客新闻里还看到所谓的锤子定律,呵呵,mono成了老赵的锤子。
     回复 引用 查看   
  7. #93楼[楼主] Jeffrey Zhao      2011-01-14 21:24
    @一舟
    嘿,只要你能说清楚为什么不能用锤子,反正都是砸汽车,非要用别人推崇的木棒?我擅长锤子,世界上也有很多砸汽车的著名案例是用锤子的,何乐而不为。
     回复 引用 查看   
  8. #94楼 一舟      2011-01-14 21:29
    引用Jeffrey Zhao:
    @一舟
    嘿,只要你能说清楚为什么不能用锤子,反正都是砸汽车,非要用别人推崇的木棒?我擅长锤子,世界上也有很多砸汽车的著名案例是用锤子的,何乐而不为。

    嘿嘿。我不用锤子,因为我有三板斧。。。
     回复 引用 查看   
  9. #95楼 xiaomua2[未注册用户]2011-01-14 21:32
    请问您认为为什么Java的市场份额超过C#?
     回复 引用   
  10. #96楼[楼主] Jeffrey Zhao      2011-01-14 21:34
    @xiaomua2
    开放呗,所以许多人喜欢去折腾它。
     回复 引用 查看   
  11. #97楼 漂浮的雨      2011-01-14 22:28
    @Jeffrey Zhao
    刚才我看了半天MonoTouch的文档,
    不知道你有没有仔细阅读了MonoTouch的文档,通篇都是Ojb-C的mapping方法介绍,我要不是会点基本的Ojb-C,真的看不懂他在说什么,你确定一个.net程序员给他三天他能明白MonoTouch怎么用,我相信,光那个selector映射,就要郁闷很久(其实就是函数指针的概念),弄不好最后还是要学Obj-C。而且,你觉得花好几百美刀,买到的东西的文档里,到处是“Documentation for this section has not yet been entered.”,不有点搞笑吗?
    至于你不肯学Obj-C,嗯,我很遗憾,你错过了一些很有趣,很好玩的东西。我一开始还以为Obj-C是另一种C++,一种发育不良的(例如没有namespace,没有模板),可是我错了,它是一种完完全全从实用角度创立的嵌入组件调用的语言,C#也好,Java也好,某些云山雾罩的东西,到了Obj-C的世界,就是一行代码!

     回复 引用 查看   
  12. #98楼 zsbfrree[未注册用户]2011-01-14 22:35
    @漂浮的雨
    函数指针这玩意好理解把
     回复 引用   
  13. #99楼 漂浮的雨      2011-01-14 22:48
    @zsbfrree
    我告诉你了,selector其实就是注册了个函数指针来完成hook调用,所以就简单了。我要是不告诉你呢?你不是还得自己先去研究selector到底是个什么。
     回复 引用 查看   
  14. #100楼[楼主] Jeffrey Zhao      2011-01-14 22:58
    @漂浮的雨
    我的看法正好和你相反,obj-c我并非不懂,也全能看懂,只是我不想写而已。我也看过一些sample,用你的话来说,很多云山雾罩的代码到了C#里也就是一行代码。selector又有什么麻烦的,C#里也就换个名称和写法而已。你给我三天时间,我完全可以把一个.NET程序员引导至上手,只要介绍点MVC结构和obj-c的映射规则而已,一点不难。我用了几个月MonoTouch,但是一点文章都写不出来,因为我真觉得没有可写的东西,都太容易太自然了。我看得最多的文档还是水果的那些,MonoTouch拿上就直接用。

    光学obj-c自然是不麻烦,就像你刚才不还说很容易么?我的说法一直是:obj-c的确不难学,但实在不好用(和C#相比)。还有就是跨平台共享代码,用obj-c还真没办法了。如果说用MonoTouch是把自己限制在.NET上,那么obj-c的限制还更大了。要知道.NET的领域实在比obj-c要广阔地多──如果您对此有不同意见,也不妨像我一样写篇文章。

    Java么咱就不用比较了,完全不和C#在一个档次。如果你觉得Java好用,或者把C#和Java相提并论,其实你是不知道如今C#早就甩开Java好几条马路了。Java相当于C# 1.5,而C# 早就到了3.0了。

    当然,一个人不知道外面美好的世界,满足于现状也是会很快乐的。但是我到C#外面转了一圈还是发现,相比之下还是C#在“那几种语言”里设计地最为优雅好用──如果你不这么觉得,我们也可以找几个例子试试看,呵呵。
     回复 引用 查看   
  15. #101楼 漂浮的雨      2011-01-14 23:26
    @Jeffrey Zhao
    我没说obj-C简单,我是说,与平台框架的知识相比,语言本身就没难度了。
    至于C#和java,你的说法参照我上面说的,WP7火了再说吧,如果WP7最终搞成当年那个Gates引以为豪的平板电脑,或者它的那个MP3播放器,或者是去年的Kin一样的下场,Java这种“过时”语言一样会滋润的活在手持设备领域,而C#这种"先进"的语言说不定却从小设备领域消失了。

    BTW,我本人并不讨厌C#,也不恨微软,我以前甚至嘲笑用iphone是装13(最早的iphone根本不是智能手机),我是去年才准备转向手机应用开发的,Obj-C也是刚学,正像你所说的,不就是个MVC,不就是个映射,有什么难的,可是,一开始就把方向定在一个前途不明的平台上,甚至在一个小厂商的库上,却放弃学习官方的库和原理,把自己从既有的开发社区隔离开来玩另类,也许很酷吧。
     回复 引用 查看   
  16. #102楼[楼主] Jeffrey Zhao      2011-01-14 23:47
    @漂浮的雨
    我没有放弃“了解”官方的库和原理,事实上我觉得:
    1、iPhone开发没有太多值得学的地方,我是“用”MonoTouch,我没想“研究”。
    2、用C#写iPhone,反而可以学到类库的设计之类的东西。
    还有,你又回到最早之前的话题了,使用MonoTouch并没有把自己和CocoaTouch社区隔离起来。请注意看文章,有些问题实在不想反复强调。

    还有几点,我不认为Kin失败了,只是融入并让位给WP7。Java从来没有在手持设备之类的地方红火过,直到Android出现。事实上,只要微软还在搞移动互联网,C#就肯定是第一语言。当然,关微软什么事情,我从来不被大厂商限制住。我用的是Mono,是一个公开标准的开源实现──以及基于它的商业产品。真要说酷,用obj-c才酷呢,除了苹果基本没人用它了。

    总之,当一个东西的使用体验很好,执行效果也不错,也有不少成功案例,于是我就实在不想找各种理由去拒绝它了。我文章里也说了,世界上没有完美的事物,大家都是聪明人,要反对总能找到各种理由的,呵呵。
     回复 引用 查看   
  17. #103楼 漂浮的雨      2011-01-15 04:09
    引用Jeffrey Zhao:
    Java从来没有在手持设备之类的地方红火过,直到Android出现。事实上,只要微软还在搞移动互联网,C#就肯定是第一语言。

    我只能说,这是纯粹的无知+迷信了。
    从java诞生起就被广泛使用在手机上了,以前要么用C/C++要么用java,wince以前能用C#?java最早就是为了手持设备设计的,一开始SUN就没打算把Java引入企业开发市场,只是后来大家意识到它的跨系统特性可以用来整合企业里不同厂家的系统,才诞生了j2ee这个恶心的东西。

     回复 引用 查看   
  18. #104楼 阿水      2011-01-15 08:40
    @漂浮的雨
    顶你,虽然老赵名气大,但是感觉你说的更客观更合理!我不知道老赵想说什么,大概意思就是MONO是个小公司做的小项目,但是它比苹果这样的大公司的项目更有前途,更应该学习!
    你们这些用C#应该用MONO!
    另外老赵的文章内容挺长,应该有个中心思想,或者主题吧!否则下面的人说什么,老赵就说“你看文章去,你都没好好看文章”
    随便说的,大家继续讨论。
     回复 引用 查看   
  19. #105楼 阿水      2011-01-15 08:42
    老赵有点过分喜欢和迷恋C#的语法了吧,
    个人认为,比语言更重要的是
    1.思想,创意。
    2.平台,类库。
    有了这些,语言就没那么重要,不过是换个语言表达而已。
     回复 引用 查看   
  20. #106楼 卡通一下      2011-01-15 09:17
    引用阿水:
    老赵有点过分喜欢和迷恋C#的语法了吧,
    个人认为,比语言更重要的是
    1.思想,创意。
    2.平台,类库。
    有了这些,语言就没那么重要,不过是换个语言表达而已。

    我再加上,经验与教训!

    哈哈...
     回复 引用 查看   
  21. #107楼 卡通一下      2011-01-15 09:18
    引用阿水:
    @漂浮的雨
    顶你,虽然老赵名气大,但是感觉你说的更客观更合理!我不知道老赵想说什么,大概意思就是MONO是个小公司做的小项目,但是它比苹果这样的大公司的项目更有前途,更应该学习!
    你们这些用C#应该用MONO!
    另外老赵的文章内容挺长,应该有个中心思想,或者主题吧!否则下面的人说什么,老赵就说“你看文章去,你都没好好看文章”
    随便说的,大家继续讨论。

    质疑权威并没有什么不好,只是不要太随意,呵呵!
     回复 引用 查看   
  22. #108楼 syx278250658      2011-01-15 09:52
    读着很给力!虽然现在是个学生,学校逼着我们学java,作为一个.net迷不会放弃自己的爱好的!看这此文,雄心大振,让.net把java给mie之...
     回复 引用 查看   
  23. #109楼 Aroden      2011-01-15 09:58
    引用阿水:
    老赵有点过分喜欢和迷恋C#的语法了吧,
    个人认为,比语言更重要的是
    1.思想,创意。
    2.平台,类库。
    有了这些,语言就没那么重要,不过是换个语言表达而已。


    最讨厌这样的话了,什么思想、创意,咱们中国就喜欢搞什么“顿悟”,没有好多年的沉淀,能顿悟个JB出来。

     回复 引用 查看   
  24. #110楼 Aroden      2011-01-15 10:02
    引用阿水:
    @漂浮的雨
    顶你,虽然老赵名气大,但是感觉你说的更客观更合理!我不知道老赵想说什么,大概意思就是MONO是个小公司做的小项目,但是它比苹果这样的大公司的项目更有前途,更应该学习!
    你们这些用C#应该用MONO!
    另外老赵的文章内容挺长,应该有个中心思想,或者主题吧!否则下面的人说什么,老赵就说“你看文章去,你都没好好看文章”
    随便说的,大家继续讨论。


    都不客观,老赵早就说过他自己喜欢C#,而漂浮的雨根本就没使用过mono(他自己也说是只看了看文档),怎会比老赵客观合理。
     回复 引用 查看   
  25. #111楼[楼主] Jeffrey Zhao      2011-01-15 10:15
    引用漂浮的雨:
    引用Jeffrey Zhao:
    Java从来没有在手持设备之类的地方红火过,直到Android出现。事实上,只要微软还在搞移动互联网,C#就肯定是第一语言。

    我只能说,这是纯粹的无知+迷信了。
    从java诞生起就被广泛使用在手机上了,以前要么用C/C++要么用java,wince以前能用C#?java最早就是为了手持设备设计的,一开始SUN就没打算把Java引入企业开发市场,只是后来大家意识到它的跨系统特性可以用来整合企业里不同厂家的系统,才诞生了j2ee这个恶心的东西。

    j2me自然一直是有的,但是从来没有“红火”过,一直就不温不火做出个可用但不好的程序。注意我说的话,Android是让Java在移动端“红火”了。
    而微软方面,自从推出C#和.NET以后还真没有回头过,所以你还真不用担心C#没人用,即便之前也不火。
     回复 引用 查看   
  26. #112楼[楼主] Jeffrey Zhao      2011-01-15 10:16
    引用syx278250658:读着很给力!虽然现在是个学生,学校逼着我们学java,作为一个.net迷不会放弃自己的爱好的!看这此文,雄心大振,让.net把java给mie之...

    想着灭java的,最终基本是自己被灭,要取长补短。
     回复 引用 查看   
  27. #113楼[楼主] Jeffrey Zhao      2011-01-15 10:17
    引用阿水:
    老赵有点过分喜欢和迷恋C#的语法了吧,
    个人认为,比语言更重要的是
    1.思想,创意。
    2.平台,类库。
    有了这些,语言就没那么重要,不过是换个语言表达而已。

    所以我利用iOS的平台和类库,使用C#这门语言,多好。
     回复 引用 查看   
  28. #114楼[楼主] Jeffrey Zhao      2011-01-15 10:24
    引用Aroden:
    都不客观,老赵早就说过他自己喜欢C#,而漂浮的雨根本就没使用过mono(他自己也说是只看了看文档),怎会比老赵客观合理。

    我虽然可能不够客观,但是我总是想着客观,所以我是从自身使用体验和案例等时机情况出发,得到的结论也是“对于XX的人应该去用YY”。
    而反对的声音基本都是“可能”和“推测”,没有经过亲身体验,最后的结果却是“XX不该用”,我强烈觉得我才是靠谱的,呵呵。
     回复 引用 查看   
  29. #115楼 zsbfree[未注册用户]2011-01-15 10:39
    @Jeffrey Zhao
    无条件的支持老赵
    让那些水军们去死
     回复 引用   
  30. #116楼 晓鹏      2011-01-15 11:10
    楼主辛苦了
    最近才发现,在不同大小的屏幕,不同的操作方式上实现不改代码的跨平台是不现实的。
    MONO确实是很好的方案,值得研究。
     回复 引用 查看   
  31. #117楼 自学.NET 的小民工      2011-01-15 12:24
    作为初级程序员,看了大伙热火朝天的辩论.....
    不好做啥评论....

    我只是想弱弱的问老赵一句话。
    如果我现在学习MonoTouch 好好用心的学习一年
    能不能凭借这个技术 找份工作???

    同样的时间 放在android 上,学哪个比较划算???

    呵呵 做好被骂准备了....
     回复 引用 查看   
  32. #118楼 徐少侠      2011-01-15 12:32
    引用DiggingDeeply:
    @徐少侠
    呵呵,确实是幻想,硬件的差异性早就了上层以及上上层的差异,根就不一样。

    那么为什么在不同的硬件上都能运行C/C++?
    比如 int i=1+1;
    难道在X86系统里的 C++编译器和Unix里面的编译器二进制代码是一样的?
    编译程序在高级语言源代码和硬件之间扮演的角色是什么?
    很多事情,我们用了很久,你却没去仔细想想为什么


     回复 引用 查看   
  33. #119楼[楼主] Jeffrey Zhao      2011-01-15 12:32
    @自学.NET 的小民工
    如果你什么都不会,而且只想做iOS的话,那么就学CocoaTouch。如果你有很多.NET经验,那么就用MonoTouch。
     回复 引用 查看   
  34. #120楼 彦斌      2011-01-15 12:39
    怎么很多评论都变味了。我才不管什么平台不平台的,
    只知道现在学好一个C#确实可以开发多种不同系统的手机,何乐而不为?
     回复 引用 查看   
  35. #121楼 自学.NET 的小民工      2011-01-15 13:13
    @彦斌
    你可以这么说,可是你必须知道
    中国大陆,至少起劲为止,几乎出了老赵这,没人任何公司招聘MonoTouch的人才,这间接的说明了MonoTouch在中国暂时没任何企业应用(除了老赵这....)。
    简单说来,就是很有可能,你学了半天,却连份工作都找不到。

    况且,你话说的轻松,做起来呢?学起来呢??
    你知道吗?你要学MonoTouch,必须英语很好,能够自由阅读英语文档。因为国内这个种资源基本上为0.... 嘻嘻散散几篇写得一般的博客。

    所以,我是不是可以这么说,MonoTouch的学习要求:

    1:本科文凭以上,一年工作经验,必须在职(此条件为必须条件)。
    2:英语非常好,能够阅读英语文档(此条件为必须条件)。
    3:只会在.NET上开发过,没有JAVA平台的项目经验(优先条件)。
    4:为人踏实诚恳,非常好学,能克服一切学习上的障碍。



     回复 引用 查看   
  36. #122楼 自学.NET 的小民工      2011-01-15 13:15
    所以,我是不是可以这么说,MonoTouch的学习要求:

    1:本科文凭以上,一年工作经验,必须在职(此条件为必须条件)。
    2:英语非常好,能够阅读英语文档(此条件为必须条件)。
    3:只会在.NET上开发过,没有JAVA平台的项目经验(优先条件)。
    4:为人踏实诚恳,非常好学,能克服一切学习上的障碍。

     回复 引用 查看   
  37. #123楼 卡通一下      2011-01-15 13:22
    引用自学.NET 的小民工:
    @彦斌
    你可以这么说,可是你必须知道
    中国大陆,至少起劲为止,几乎出了老赵这,没人任何公司招聘MonoTouch的人才,这间接的说明了MonoTouch在中国暂时没任何企业应用(除了老赵这....)。
    简单说来,就是很有可能,你学了半天,却连份工作都找不到。

    况且,你话说的轻松,做起来呢?学起来呢??
    你知道吗?你要学MonoTouch,必须英语很好,能够自由阅读英语文档。因为国内这个种资源基本上为0.... 嘻嘻散散几篇写得一般的博客。

    所以,我是不是可以这么说,MonoTouch的学习要求:

    1:本科文凭以上,一年工作经验,必须在职(此条件为必须条件)。
    2:英语非常好,能够阅读英语文档(此条件为必须条件)。
    3:只会在.NET上开发过,没有JAVA平台的项目经验(优先条件)。
    4:为人踏实诚恳,非常好学,能克服一切学习上的障碍。

    如果你是做应用开发的,一定要“学以致用”,呵呵!

    估计老赵不是做应用开发的,所以他看问题的立场也没有错!

    哈哈...
     回复 引用 查看   
  38. #124楼 xiaotie      2011-01-15 13:27
    引用自学.NET 的小民工:
    所以,我是不是可以这么说,MonoTouch的学习要求:
    1:本科文凭以上,一年工作经验,必须在职(此条件为必须条件)。
    2:英语非常好,能够阅读英语文档(此条件为必须条件)。
    3:只会在.NET上开发过,没有JAVA平台的项目经验(优先条件)。
    4:为人踏实诚恳,非常好学,能克服一切学习上的障碍。

    这四点就第四点满足的人不多,前三点大把大把的,交集也是大把大把的
     回复 引用 查看   
  39. #125楼 TinyTian      2011-01-15 13:51
    @自学.NET 的小民工
    在程序员这个行业混,英文是必不可少的,纵观整个行业中文官方文档最全面的还是微软派。
     回复 引用 查看   
  40. #126楼 TinyTian      2011-01-15 13:54
    另外老赵的这个文章,如果你是初级程序员我建议就别看了,老赵的文章给项目经理或者CTO之类的人看比较好,反正公司用什么平台,选择什么语言,你一个小初级程序员也没有什么发言权。

    初级程序员真的要看老赵的文章,你就只看别说话,过看看文章中提到的有用的东西,我还是那一句话,不要轻易否定别人,其实自己很多不懂。

    强烈建议后老赵对文章进行分级!
     回复 引用 查看   
  41. #127楼 whyis[未注册用户]2011-01-15 14:06
    老赵:我直接用win32开发,前景如何。
    和用.NET类库相比有何优缺点,谢谢.
     回复 引用   
  42. #128楼 不小心路过      2011-01-15 14:33
    月经贴。
     回复 引用 查看   
  43. #129楼[楼主] Jeffrey Zhao      2011-01-15 14:43
    引用卡通一下:
    如果你是做应用开发的,一定要“学以致用”,呵呵!

    估计老赵不是做应用开发的,所以他看问题的立场也没有错!

    哈哈...

    我说了多少遍了,MonoTouch是用来用,而不是用来学的……
     回复 引用 查看   
  44. #130楼 自学.NET 的小民工      2011-01-15 15:10
    @TinyTian
    你说“不要轻易否定别人”,但你又说“你一个小初级程序员也没有什么发言权”...

    你这样不是自己抽自己嘴巴吗??

    第一:我否定了老赵吗?? 我只是事实求事的支出当前学习MonoTouch的难点,一来暂时没企业用,二来学习起来比较困难。

    第二:哥在.NET 平台也混得不错,如今在一家人数300人的公司搞开发..... .NET平台的技术都玩过。

    第三:.....不要逼我骂人
     回复 引用 查看   
  45. #131楼 TinyTian      2011-01-15 15:30
    @自学.NET 的小民工
    一个初级程序员在在公司用什么技术平台和线路上有毛发言权!
    另外我有针对你么,没有看到我是分开回复的?难道你不自信到如此地步?
    可笑。。。
     回复 引用 查看   
  46. #132楼 自学.NET 的小民工      2011-01-15 15:31
    @TinyTian
    对,老赵文章分级之后,像你这样轻易否定别人的的人就没资格看.....

    再者告诉你,老赵这,不是吵架的地方不是讽刺人的地方,是事实求是讲道理的地方....







     回复 引用 查看   
  47. #133楼 TinyTian      2011-01-15 15:32
    @自学.NET 的小民工
    微软的Webcast还分级呢,是不是微软鄙视初级程序员?
     回复 引用 查看   
  48. #134楼 自学.NET 的小民工      2011-01-15 15:39
    @TinyTian

    一个人格上的初级程序员,逼哥骂人是吧....
    在老赵地盘骂人是不对的,但是哥也不管了。

    这是你要挑起的争端。

    向你这贱逼声明,哥不是一初级程序员。入行两年.... .NET大块的技术都玩过。

    强烈鄙视你这种自己抽自己嘴巴的人....
    自己说不要轻易否定别人,但是又要轻易去否定别人。

    还有,不要一直说自己,像你这样人格上的初级程序员确实没资格来看老赵的文章,确实要分级,你这样

    我一再申明,老赵这,不适合吵架。在这必须讲事实,别搞人生攻击.....

    你要挑起,我没办法。

     回复 引用 查看   
  49. #135楼 TinyTian      2011-01-15 15:42
    @自学.NET 的小民工
    补充一点,人人都有资格看,但是说话前,请拍拍自己的脑袋,自己够资格么,什么叫够资格,就是自己必须对自己发言中涉及到的东西用心去了解过了,并且明白自己在讲什么!

    怎么说我也做了7年的.net开发了,我从来很少写东西,不是自己写不了,而是觉得要真的写出来,就必须对其负责,对文章中的论点必须有足够的实例和数据支撑。
     回复 引用 查看   
  50. #136楼 TinyTian      2011-01-15 15:43
    @自学.NET 的小民工
    骂人谁不会啊,那只眼睛看到我在鄙视初级程序员了?
     回复 引用 查看   
  51. #137楼 这也是一个成长的过程![未注册用户]2011-01-15 15:51
    无论是做技术,还是做人,都有一个成长的过程!但是,也有人总也长不大,见怪不怪了...
     回复 引用   
  52. #138楼 自学.NET 的小民工      2011-01-15 16:01
    我相信每个来这看评论的人都看得到,

    你那种鄙视一类人的看法,我觉得每个人来这的每个人都看得到

    反正公司用什么平台,选择什么语言,你一个小初级程序员也没有什么发言权”
    “初级程序员真的要看老赵的文章,你就只看别说话


    但是,我认为,每个人都有发言的权利,只要他说的是对的,在理的...即便是说错了,你可以反驳,但要讲道理,事实求是
    更何况我哪个观点说错了???
    我讲的那句话不在理了????你反驳啊
    学习MonoTouch,以来学习比较困难,国内无资料,而来国内暂时无企业用。
    这个观点错了吗???

    而你要以高级程序员自居去说那样的话,我只说你从人格上永远是个初级程序员。

    我一再申明:我没否定老赵,只是指出Mono学习的难点,中国暂时无公司用而且学习起来困难.. 是那“高级程序员”没理解而已。
    第二:那个“高级程序员”不要莫名奇妙的攻击人“,对文章中的论点必须有足够的实例和数据支撑”
    哥的数据来自51JOB。我很仔细的看了文章.... 我的哪个句话不再理了?? 你反驳啊???
     回复 引用 查看   
  53. #139楼[楼主] Jeffrey Zhao      2011-01-15 16:08
    兄弟们和气……
     回复 引用 查看   
  54. #140楼 自学.NET 的小民工      2011-01-15 16:11
    @TinyTian
    “人人都有资格看,但是说话前,请拍拍自己的脑袋,自己够资格么,什么叫够资格,就是自己必须对自己发言中涉及到的东西用心去了解过了,并且明白自己在讲什么”

    我很明白自己的话,对自己的每条评论都负责。
     回复 引用 查看   
  55. #141楼 卡通一下      2011-01-15 16:12
    楼上还挺热闹,呵呵!

    说说自己的看法:

    高深的应用,未见得用到高深的技术;有高深的技术,未见得能做出高深的应用

     回复 引用 查看   
  56. #142楼 自学.NET 的小民工      2011-01-15 16:20
    那个“高级程序员”说
    “一个初级程序员在在公司用什么技术平台和线路上有毛发言权!

    但又说
    “人人都有资格看,但是说话前...并且明白自己在讲什么!”


    他说
    “不要轻易否定别人”但又轻易的说
    “另外老赵的这个文章,如果你是初级程序员我建议就别看了”

    自己说“自己够资格么,什么叫够资格,就是自己必须对自己发言中涉及到的东西用心去了解过了”
    但是并没有仔细看我的评论,或者说根本没好好理解,就轻易的来评论说
    “一个初级程序员在在公司用什么技术平台和线路上有毛发言权”
     回复 引用 查看   
  57. #143楼 承志      2011-01-15 16:33
    老赵建议用C#的,进军iOS等非MS平台可以不用抛弃C#。这话那么难懂吗?
    怎么大伙一个劲的反对呢?难道是我理解错了?
     回复 引用 查看   
  58. #144楼 阿水      2011-01-15 16:37
    @自学.NET 的小民工
    兄弟别着急,老赵的文章大部分不是给想通过写程序赚钱的人看的,
    是给那些不在乎写程序赚不赚钱,但是就是要写程序,就是要用C#写程序的人看的。所以你在看老赵的文章的时候要忘掉钱,那样你才能找到感觉。
     回复 引用 查看   
  59. #145楼 xiaotie      2011-01-15 16:38
    @自学.NET 的小民工
    他说的下面这段话不是针对你说的:
    另外老赵的这个文章,如果你是初级程序员我建议就别看了,老赵的文章给项目经理或者CTO之类的人看比较好,反正公司用什么平台,选择什么语言,你一个小初级程序员也没有什么发言权。
    初级程序员真的要看老赵的文章,你就只看别说话,过看看文章中提到的有用的东西,我还是那一句话,不要轻易否定别人,其实自己很多不懂。
    强烈建议后老赵对文章进行分级

    这段话说的挺好的,这个“你”是泛指。如果是特指你,前面会有“@自学.NET 的小民工”
     回复 引用 查看   
  60. #146楼[楼主] Jeffrey Zhao      2011-01-15 16:50
    引用承志:
    老赵建议用C#的,进军iOS等非MS平台可以不用抛弃C#。这话那么难懂吗?
    怎么大伙一个劲的反对呢?难道是我理解错了?

    你理解的没错。
     回复 引用 查看   
  61. #147楼[楼主] Jeffrey Zhao      2011-01-15 16:51
    引用阿水:
    @自学.NET 的小民工
    兄弟别着急,老赵的文章大部分不是给想通过写程序赚钱的人看的,
    是给那些不在乎写程序赚不赚钱,但是就是要写程序,就是要用C#写程序的人看的。所以你在看老赵的文章的时候要忘掉钱,那样你才能找到感觉。

    乱说,我是码农,我的文章都是用来赚钱的技术。
     回复 引用 查看   
  62. #148楼[楼主] Jeffrey Zhao      2011-01-15 16:52
    引用卡通一下:
    楼上还挺热闹,呵呵!

    说说自己的看法:

    高深的应用,未见得用到高深的技术;有高深的技术,未见得能做出高深的应用


    是啊,愤怒的小鸟其实技术上很简单,但是反响令人印象深刻。
     回复 引用 查看   
  63. #149楼 卡通一下      2011-01-15 16:56
    引用xiaotie:
    他说的下面这段话不是针对你说的:
    另外老赵的这个文章,如果你是初级程序员我建议就别看了,老赵的文章给项目经理或者CTO之类的人看比较好,反正公司用什么平台,选择什么语言,你一个小初级程序员也没有什么发言权。
    初级程序员真的要看老赵的文章,你就只看别说话,过看看文章中提到的有用的东西,我还是那一句话,不要轻易否定别人,其实自己很多不懂。
    强烈建议后老赵对文章进行分级

    看到这才明白其中的原由,呵呵!

    个人认为,上面的话确实不太礼貌,也有失公允。

    崇拜老赵是你的自由,但在公共平台上说话,不要太酸!

     回复 引用 查看   
  64. #150楼 gbb21      2011-01-15 17:12
    老赵啊,借这个帖子我来发表下对微软最近windows作为的困惑:我感觉微软快把自己给玩死了。
    1. 坚持把Windows 桌面版移植到 tablet上面,不惜使其支持 arm构建, 这让 windows compact 系列情何以堪啊?
    2. 不努力推广 windows phone 系列(比如扩展其到tablet上面),这不是让 windows phone 的软件作者面对这么小的windows phone 装机量哭么?
     回复 引用 查看   
  65. #151楼 漂浮的雨      2011-01-15 17:15
    今天突然没有事情了,
    看了好长时间mono的网站,好吧,我承认,我动心了,我承认,它是种很棒的技术,也许,就算你不是.net程序员,也应该学习一下它。
    我个人被C/C++折磨了很多很多年,内存泄露,错误的二重删除,栈访问溢出,错乱的指针,所有C/C++程序员会犯的错误我都犯过,我曾经花了三天去Debug一个十多万行左右的C++程序中的一个二重delete错误,现在想想可能是眼界太窄,有些给力的工具没有使用到吧,反正当时那个程序随机的在完全不同且毫无关联的地方core dump,真的快把我搞崩溃了。我觉得我比很多人都更希望有一种语言,有java的优点,有C/C++的本地执行效率。
    虽然现实中,我还用不了Mono,因为我的客户还在运行一些版本老的莫名其妙的linux,他们也断然不会为了我去升级系统(因为还跑着很多他们自己的程序),而我现在想转到手持设备上开发,我同样不认为MonoTouch这种东西短时间能有什么成绩,因为目前还没有人或者公司会发这样的包(发包方最后往往会要求你给代码),或者雇这样的人,都是,未来谁知道呢,也许储备一些知识,就当开阔一下视野也不错。
     回复 引用 查看   
  66. #152楼 自学.NET 的小民工      2011-01-15 18:56
    老赵啊,你一再申明,MonoTouch是个很容易的东西.....
    三天就能带个.NET牌 MonoTouch程序员入门,7天能搞开发。

    那这样,你干脆用七天写个系列的MonoTouch的系列出来嘛....

    让我们见识一下有多简单啊!








     回复 引用 查看   
  67. #153楼 xiaotie      2011-01-15 19:10
    @自学.NET 的小民工
    7天,能赚多少钱啊?
     回复 引用 查看   
  68. #154楼 自学.NET 的小民工      2011-01-15 19:15
    引用xiaotie:
    @自学.NET 的小民工
    7天,能赚多少钱啊?

    你什么意思??
     回复 引用 查看   
  69. #155楼 xiaotie      2011-01-15 19:25
    @自学.NET 的小民工
    我的意思是:
    仅仅是为了论证自己的观点,代价也太大了吧。七天时间要是用来赚钱,能赚多少钱啊。
     回复 引用 查看   
  70. #156楼 自学.NET 的小民工      2011-01-15 19:28
    引用xiaotie:
    @自学.NET 的小民工
    我的意思是:
    仅仅是为了论证自己的观点,代价也太大了吧。七天时间要是用来赚钱,能赚多少钱啊。

    ......
    是你多想了。

    我就想说,现在MonoTouch资料太少了。老赵们,要带头....
     回复 引用 查看   
  71. #157楼 airwolf2026      2011-01-15 22:07
    引用BenBen789:我想知道老赵同志,你天天坐在电脑前就不腰痛吗?我最近总是感觉脊椎有点痛,去做了推拿也没什么效果。

    改变坐姿很有效果的.或者下班后运动下
     回复 引用 查看   
  72. #158楼 彦斌      2011-01-15 22:33
    引用自学.NET 的小民工:
    @彦斌
    你可以这么说,可是你必须知道
    中国大陆,至少起劲为止,几乎出了老赵这,没人任何公司招聘MonoTouch的人才,这间接的说明了MonoTouch在中国暂时没任何企业应用(除了老赵这....)。
    简单说来,就是很有可能,你学了半天,却连份工作都找不到。

    况且,你话说的轻松,做起来呢?学起来呢??
    你知道吗?你要学MonoTouch,必须英语很好,能够自由阅读英语文档。因为国内这个种资源基本上为0.... 嘻嘻散散几篇写得一般的博客。

    所以,我是不是可以这么说,MonoTouch的学习要求:

    1:本科文凭以上,一年工作经验,必须在职(此条件为必须条件)。
    2:英语非常好,能够阅读英语文档(此条件为必须条件)。
    3:只会在.NET上开发过,没有JAVA平台的项目经验(优先条件)。
    4:为人踏实诚恳,非常好学,能克服一切学习上的障碍。




    我个人不大赞同你的一些看法。
    用iPhone的用户是比较少,但你还是会碰到要求你开发iPhone应用的人。我想大多数人学习这个,就是为了眼前的工作任务,必竟在硬件和软件上都要花不少钱。而不是说学完后再去找工作,而是在工作中你碰到这样的要求,你再来学习。

    很多人都会“取笑”.NET,入门易,门槛低,所以工资低。那现在如果真如你所提到的 需要那4点基本要求,也蛮好的嘛!
     回复 引用 查看   
  73. #159楼 彦斌      2011-01-15 22:34
    引用自学.NET 的小民工:
    老赵啊,你一再申明,MonoTouch是个很容易的东西.....
    三天就能带个.NET牌 MonoTouch程序员入门,7天能搞开发。

    那这样,你干脆用七天写个系列的MonoTouch的系列出来嘛....

    让我们见识一下有多简单啊!

    这个系列我喜欢。最好是带视频的,哈哈。
     回复 引用 查看   
  74. #160楼 TinyTian      2011-01-15 22:41
    表示很无语的说。。。
     回复 引用 查看   
  75. #161楼 自学.NET 的小民工      2011-01-15 22:44
    引用彦斌:
    我觉得我有必要解释以下这四个条件
    MonoTouch的学习要求:
    1:本科文凭以上,一年工作经验,必须在职(此条件为必须条件)。
    意思是说,你如果是想找工作学MonoTouch,是冒险性行为。所以有工作的人才能学。

    2:英语非常好,能够阅读英语文档(此条件为必须条件)。
    这个自不必说,中文MonoTouch的资料少得可怜。

    3:只会在.NET上开发过,没有JAVA平台的项目经验(优先条件)。
    意思是说,如果你懂JAVA,还是老实得回android比较好。如果你只懂.NET,那就学MonoTouch算了


    4:为人踏实诚恳,非常好学,能克服一切学习上的障碍。
    这个自不必说,作为国内第一批吃螃蟹的人
     回复 引用 查看   
  76. #162楼 自学.NET 的小民工      2011-01-15 23:04
    @彦斌
    你说
    “用iPhone的用户是比较少,但你还是会碰到要求你开发iPhone应用的人”

    请注意,我们核心讨论的是该不该接受Mono,而不是该不该接受Iphone等手机开发。
    我的话好像没有任何表达了排斥IPhone手机开发的意思吧。

    android的平台的入门比较低,你懂JAVA,英文很一般(高中足以),搞过点开发,就可以学,学了工作很好找。51JOB的数据显示,仅今天,就有600个公司更新了android招聘信息,说其火爆,毫不为过。

    那么从这个角度来说,MonoTouch的高门槛,就比不上android大众化。高门槛绝对是阻碍Mono发展的重要因素!学的人多了,大众化了,社区活跃了,遇到的问题才好解决。


    我还想说几点:至少是MonoToch不好的地方
    第一:不开源
    第二:收费
    而android恰好相反。









     回复 引用 查看   
  77. #163楼[楼主] Jeffrey Zhao      2011-01-15 23:21
    引用自学.NET 的小民工:
    老赵啊,你一再申明,MonoTouch是个很容易的东西.....
    三天就能带个.NET牌 MonoTouch程序员入门,7天能搞开发。

    那这样,你干脆用七天写个系列的MonoTouch的系列出来嘛....

    让我们见识一下有多简单啊!

    我也想写,但是写不出来啊,因为其实都是.NET的东西,这本身就是MonoTouch的长处。
     回复 引用 查看   
  78. #164楼[楼主] Jeffrey Zhao      2011-01-15 23:22
    引用airwolf2026:
    引用BenBen789:我想知道老赵同志,你天天坐在电脑前就不腰痛吗?我最近总是感觉脊椎有点痛,去做了推拿也没什么效果。

    改变坐姿很有效果的.或者下班后运动下

    我用MonoTouch,省下大把时间去健身房,怎么会腰痛?哈哈。
     回复 引用 查看   
  79. #165楼[楼主] Jeffrey Zhao      2011-01-15 23:26
    引用自学.NET 的小民工:
    android的平台的入门比较低,你懂JAVA,英文很一般(高中足以),搞过点开发,就可以学,学了工作很好找。51JOB的数据显示,仅今天,就有600个公司更新了android招聘信息,说其火爆,毫不为过。

    那么从这个角度来说,MonoTouch的高门槛,就比不上android大众化。高门槛绝对是阻碍Mono发展的重要因素!学的人多了,大众化了,社区活跃了,遇到的问题才好解决。

    我还想说几点:至少是MonoToch不好的地方
    第一:不开源
    第二:收费
    而android恰好相反。

    不开源这的确不如开源,这收费真的什么都不算,还不到你一个月工资的。
    我很想不明白的就是,你们为什么就听不懂我的意思,我说的是对于“一个熟悉.NET的人”,利用MonoTouch可以很快进入iOS开发。而且,可以在多个平台之间复用代码,且C#比Java好多了。
    如果你重头学起,如果你只要开发Android,如果你愿意多写Java那种代码,那么自然就去学Android的Java开发吧。
    然后你篇要说:MonoTouch贵啊门槛高,对于.NET程序员来说MonoTouch门槛高个屁啊。
    要不你重头去学Android开发,我直接用MonoDroid和MonoTouch,看谁过得轻松愉快。
    损人利己的打赌我最喜欢了。
     回复 引用 查看   
  80. #166楼 自学.NET 的小民工      2011-01-15 23:31
    一年前:
    微软高层开会,肯定未来是移动终端的时代。很明显微软也意识到了这一点。因此力推他的宝贝WP7.但觉得不想用自己平台的东西为自己的竞争对手服务,而且(这个是猜测),自信自己的WP7手机一定会红....

    可是,如果

    一年前:
    微软高层开会,肯定未来是移动终端的时代。很明显微软也意识到了这一点。因此力推他的宝贝WP7.但觉得也应该考虑众多.NET学习平台应该有更好的移动终端的解决方案,于是决定开发~~Touch,并且像推Silverlight技术一样推....

    那么.....
    如果是下面那个“一年前”,我觉得发生的事情,就会完全不一样。初学者,打包下载一个~~Touch的包安装了,在VS2010中就能直接新建项目....遇到问题MSDN,或者百度,博客园有专门的~~Touch专题,文章一大堆....


     回复 引用 查看   
  81. #167楼 自学.NET 的小民工      2011-01-15 23:34
    @Jeffrey Zhao
    引用Jeffrey Zhao:
    引用自学.NET 的小民工:
    android的平台的入门比较低,你懂JAVA,英文很一般(高中足以),搞过点开发,就可以学,学了工作很好找。51JOB的数据显示,仅今天,就有600个公司更新了android招聘信息,说其火爆,毫不为过。

    那么从这个角度来说,MonoTouch的高门槛,就比不上android大众化。高门槛绝对是阻碍Mono发展的重要因素!学的人多了,大众化了,社区活跃了,遇到的问题才好解决。

    我还想说几点:至少是MonoToch不好的地方
    第一:不开源
    第二:收费
    而android恰好相反。

    不开源这的确不如开源,这收费...

    冲你这话,我决定学MonoToch了....
     回复 引用 查看   
  82. #168楼 airwolf2026      2011-01-15 23:36
    @Jeffrey Zhao
    -_-!!!,老赵这都能扯上monotouch,看来中毒不浅哈

    哈哈.不过我说的对那个同学应该有帮助的.因为去年我也有过一段时间颈椎难受,后面坐姿啥的调整下,就好了(椅子很重要)
     回复 引用 查看   
  83. #169楼[楼主] Jeffrey Zhao      2011-01-15 23:43
    @airwolf2026
    谁想扯MonoTouch啊,我锻练好多年了,那时还没MonoTouch──我只是在什么环境下说什么话而已,哈哈。
     回复 引用 查看   
  84. #170楼 Xuon      2011-01-16 00:05
    学习了,昨天没认真看完,今天仔细品味了一下。
     回复 引用 查看   
  85. #171楼 这么积极的回复[未注册用户]2011-01-16 00:56
    看着大家这么多人回复这篇文章,我也回复一下。
    首先我支持老赵这种学习,研究、探索精神,我认为既然是搞软件这一行的的就应该去多研究相关的技术。
    我也一直关注mono技术的发展和相关应用。
    我也讲讲自己对这些技术的看法吧,
    我自己曾做过四年的研发工作,在dotNet出第一个beta版本的时候就开始研究过,算是中国第一批学习DotNet的人吧。后来自己创业,搞了几年,公司也有大几十号人,自己还会时常关注技术的动态,但已经不去具体实现了。
    做技术有几个层次
    1)如果还关注在什么技术上投资时间、精力才划算,去选择大向的人,我认为往往都比较初级,在公司大部分都是一般开发人员,是去具体实现某个应用、某个功能的开发人员。根据人的趋利性,会选择或投资自己认为/大众认为有前景的技术,都是简单的从众心理,图的是未来自己有市场,能够找到一份不错的工作。这样的人去一个公司,如果刚好要用到你学得比较不错的技术,你还是可以混得不错的。中国很大部分的开发从业者都是这种人,但我认为这种人需要大大的修炼,不要让你掌握的一门语言、平台是自己唯一的资本。我认为大部分这种心态的人技术还不够精,对技术的领悟不够透彻,只是泛泛的知道一些东西,但是好像自己也太真正的懂,所以没有自信,需要掌握一门大众都会选择的技术来获得自信,免得出去的时候找不到工作。
    2)对技术有追求,有点执着、偏执的人,往往对自己熟悉的语言、技术平台,喜欢充分利用,希望用一套语言、工具、平台解决你面临的所有问题。根本的原因是人骨子里面是抗拒复杂性的,不愿意也不想去学那么多新东西。如果这种人能够真正实干、且睿智充满,而且喜欢挑战,这种人往往是改变世界技术格局的人,是真正的技术推动者,技术型企业需要这种的人去改变,去创新。我觉得老赵像这个方面的人才,不过要成为大家,还要真正的去实干,去协助完善平台,像Miguel de Icaza。

    3)行业的技术专家,对某个技术领域的知识有非常全面的了解,知道实现某个应用所需要的语言和知识,已经摆脱对语言的依赖,会平衡会选择,会根据团队情况选择哪些技术来实现。这种人也可能喜欢哪个平台,哪门语言,不过会根据具体情况选择,这种人是解决一类问题的行家里手,已经无所谓是用什么技术,反正这个方面的问题他一定能够解决,而且能够解决得很好,不在在意是用什么语言,而且会根据需要作出各种版本的东西来。如有人对GIS非常深入,自己能够用DotNET写出整套引擎,也会用C写出整套引擎,偏执于DotNEt的可能费力整一套比C的引擎更有效率也有可能,关注的是整套东西如何应用,不仅仅提供CAPI/javaAPI/javascript应用api,各种接口都会提供出来。

    我觉得中国需要大量这种人才,对一个问题研究深入的开发人员,真正精通一个领域。

    企业对技术的选择问题
    一个企业选择技术取决几个方面的原因,大部分是自己的团队构成和市场需求,加上未来公司的一些发展定位决定的,当然我相信不同的公司决策选择技术体系的考量会不一样。
    当然企业选择技术也会考虑市场的人好不好招聘,团队的人员容不容易学习,掌握,也会有从众心理,但是如果团队里面有技术的偏执的高人,是可以改变固有的技术体系。
    如有一个做存储的企业做管理端软件时,企业决定采用PHP,问为什么PHP时,是因为需要支持linux上运行,而且有大量开源的参考,php容易学啊,且成本低啊。
    企业做决策往往都是从综合成本在考虑。如存储公司后引进一个高人率团队来,有mono版本的更高级管理端,且和后端契合更好,如果说成本更低的话,改变是未尝不可以的。

    我也经常关注一下mono,就希望中国去研究、学习和真正去实践的人越来越多就好,如果大家都去摸索清楚了,公司应用起来不就简单了,公司的产品不就多了一套适应平台,多好啊。因为中国公司大部分的人都不是大牛,不能像国外的人一样是真热爱编程,往往都是当初谋生的工具(中国大环境没有办法)。看人家Miguel de Icaza多牛,我看你用C++写一套KDE,我喜欢C,偏执用C,就用C写一套GNOME;人家喜欢.net,你dotnet不开源,我自己写一套开源的mono来,这种人能够真正改变世界。技术偏执狂+行业应用专家组合才能够打造世界级的应用来。
    中国大部分的软件企业也比较低级(我也一样),人才大部分也比较低级,只能做一做简单的系统,还不一定能够很好用。往往有是几个干将+一帮打杂的搞定应用。
     回复 引用   
  86. #172楼 漂浮的雨      2011-01-16 01:04
    我个人感觉,博主是个C#狂热者,他说的我唯一赞同的,只有学好英语。

    http://programmers.stackexchange.com/questions/8544/monotouch-vs-objective-c-for-iphone-ipod-ipad-development

    这里有先行者们的谏言,如果看英文很费劲的话,我的建议,还是先等等吧,因为这些吃螃蟹的人还是建议,要先学遍obj-C和iOS库为好。博主声称他可以随便带个会.net的人轻松上手,也许那个被带的人遇见了大牛,运气好,担不是人人都有那么好的运气,有人会教你MonoTouch,有人会因为你会MonoTouch而雇你。话说回来,如果你连iOS的框架都学会了,再不多学点简单的obj-C防身,就有点可笑了。


     回复 引用 查看   
  87. #173楼 卡通一下      2011-01-16 07:47
    引用Jeffrey Zhao:
    引用airwolf2026:
    引用BenBen789:我想知道老赵同志,你天天坐在电脑前就不腰痛吗?我最近总是感觉脊椎有点痛,去做了推拿也没什么效果。

    改变坐姿很有效果的.或者下班后运动下

    我用MonoTouch,省下大把时间去健身房,怎么会腰痛?哈哈。

    我已经在电脑前坐了二十年有余,目前颈椎、视力、腰一直很好,这得力于良好的工作习惯,呵呵!

    我从来都是在工作时“正襟危坐”,将屏幕的亮度调到30%,屏幕低于视角20度,并且只要工作,就必需将窗帘拉上,只开日光灯。

    过去我经常工作到深夜,也从没有去过健身房,最多就是下班买买菜、做做饭什么的。有空闲时间,最爱去超市闲逛,这是一个非常好的放松方法。

    在超市最让人惬意的是,把自己感兴趣的商品,拿过来好好地看看、认真地品,并仔细看看规格、或读读说明书什么的。如果时间充裕,还要与促销员侃一侃,...

    当然,最好不要从未买商品通道出来,哈哈!

    对了,商品的产地也非常地重要!如,爱仁达的锅具,就有湖北产的,价格要低30%左右;美的油烟机有广东产的,也有浙江产的;Sony彩电,一定要上海索广的,而不要烟台代工的...

    其实,这也象过去买某品牌的硬盘,菲律宾、泰国产的,要比深圳的好...

    程序员不要只研究代码,研究、研究生活,也是挺美好的。否则,你的火气会是非常地大!
     回复 引用 查看   
  88. #174楼 周行天下      2011-01-16 14:20
    @漂浮的雨
    别把自己抬的太高。。。你啥也不是。。
     回复 引用 查看   
  89. #175楼[楼主] Jeffrey Zhao      2011-01-16 22:06
    引用漂浮的雨:
    我个人感觉,博主是个C#狂热者,他说的我唯一赞同的,只有学好英语。

    http://programmers.stackexchange.com/questions/8544/monotouch-vs-objective-c-for-iphone-ipod-ipad-development

    这里有先行者们的谏言,如果看英文很费劲的话,我的建议,还是先等等吧,因为这些吃螃蟹的人还是建议,要先学遍obj-C和iOS库为好。博主声称他可以随便带个会.net的人轻松上手,也许那个被带的人遇见了大牛,运气好,担不是人人都有那么好的运气,有人会教你MonoTouch,有人会因为你会MonoTouch而雇你。话说回来,如果你连iOS的框架都学会了,再不多学点简单的obj-C防身,就有点可笑了。

    我说了多少遍了,你还是要我一遍遍重复?
    如果你现在需要开发iOS且已经熟悉.NET了,那么MonoTouch是你完美的选择,否则你就不属于我说的情况,自己看着办。
    需要学习iOS框架和obj-c的事情我之前也说过了。我不断强调,用MonoTouch还有复用代码和编程体验方面的问题,你转的这个链接的最佳回复,一开始就说了C#有多么方便。全部讨论也说MonoTouch能带来多么高的生产力。
    我和你给的链接里的意思基本相同,但你居然用这个链接来反对我的观点。我真不知道你是故意忽略我的话,还是真的听不懂我的话。我真得十分哭笑不得。
     回复 引用 查看   
  90. #176楼 PowerCoder      2011-01-17 16:54
    @Jeffrey Zhao
    其实这个写在文章最前面比较好。。。
     回复 引用 查看   
  91. #177楼 Anytao      2011-01-17 22:56
    这篇文章的评论,太逗了:-)
     回复 引用 查看   
  92. #178楼 韦恩卑鄙 v-zhewg @waynebaby      2011-01-18 10:12
    引用这么积极的回复:
    3)行业的技术专家,对某个技术领域的知识有非常全面的了解,知道实现某个应用所需要的语言和知识,已经摆脱对语言的依赖,会平衡会选择,会根据团队情况选择哪些技术来实现。这种人也可能喜欢哪个平台,哪门语言,不过会根据具体情况选择,这种人是解决一类问题的行家里手,已经无所谓是用什么技术,反正这个方面的问题他一定能够解决,而且能够解决得很好,不在在意是用什么语言,而且会根据需要作出各种版本的东西来。如有人对GIS非常深入,自己能够用DotNET写出整套引擎,也会用C写出整套引擎,偏执于DotNEt的可能费力整一套比C的引擎更有效率也有可能,关注的是整套东西如何应用,不仅仅提供CAPI/javaAPI/javascript应用api,各种接口都会提供出来。

    虽然深深地知道需要这方面的人才,但是投身任何一个行业都有风险。比如我现在完全不敢投身我喜欢的游戏业,成为游戏业的行业专精人士,而只能去做更稳妥企业开发。

    这是比语言平台更危险的押宝。

    对此我的一个借口是“技术人员都懂行业了 还要BA干什么”。无力啊。

     回复 引用 查看   
  93. #179楼 chen.qiao      2011-01-19 13:53
    感觉老赵越来越扯蛋了。
    东西都只是说说、多而不精、没几个实用的。
    都不知道多久前出过 asp.net mvc 的课程、那会觉得真是堪称mvc里最经典的教程之一了、但是后面不管这玩艺怎么更新还是改版从不跟进很是心寒。都搞到F#了。难道老赵进了盛大后蛋疼的也只能扯了〉?
     回复 引用 查看   
  94. #180楼[楼主] Jeffrey Zhao      2011-01-19 14:04
    @chen.qiao
    多而不精?不实用?莫名其妙,我说的都是我用的。
    ASP.NET MVC看一遍源代码就明白的东西,有什么好多搞得。
    你说我扯蛋,我还觉得我这段时间的长进要比你多呢。
     回复 引用 查看   
  95. #181楼 chen.qiao      2011-01-19 15:32
    @Jeffrey Zhao
    跟老大不在一个级别上、羡慕呀~
    不过看老大的文章还是能有不少长进的。继续挺你~~
     回复 引用 查看   
  96. #182楼 Paul Shen      2011-01-28 16:49
    真正的语言是熵,它不仅是数学的语言,还是语言的语言。
    怎么说呢,总归静态的东西熵比较低,动态一混合熵明显就高了。
     回复 引用 查看   
  97. #183楼 Topaz.Tang      2011-01-29 08:23
    个人感觉在某种程度上的不开源会让程序员更具有思想,在规范上应该保持开放的。
    作为一个初学者表示C#跨平台这玩意很让人激动,但是先不过多的深究 路也还是要一步一步走的。
     回复 引用 查看   
  98. #184楼 zbo      2011-01-29 12:01
    mono我总是很不看好,虽然公司一直在用,无奈也一直在用。
    前段时间看见Attachmate买了novell,里面还有微软的钱,有同事就告诉我说微软以前买了foxbase后就一步步把它搞死。这次也可能是买下mono,适当的时候就把它搞死。

    所以我觉得微软掌握了mono的话,mono就是死。微软只会考虑更多的卖自己的服务器server08,sql之类的,全绑定在windows上才是微软希望的。
     回复 引用 查看   
  99. #185楼[楼主] Jeffrey Zhao      2011-01-30 10:37
    @zbo
    你总是想着mono会死,则自然可以找出一大堆理由认为mono会死了。
    事情不都是这样的嘛,许多人预测微软要死也有好多年了,该活着的还是好好活着。
    再者,就算十年后mono死了又如何,我已经轻松工作赚钱了十年,掌握的东西也可以让我轻松干别的。
     回复 引用 查看   
  100. #186楼 Just_For->Fun      2011-01-30 17:37
    搬个板凳看热闹,周末加班真无趣。。
     回复 引用 查看   
  101. 评论共2页: 上一页 1 2 
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1935012 z48fO0XOkHg=