您的位置:首页 > 编程语言 > Java开发

新项目中用 C# or Java

2015-07-05 22:35 337 查看
新项目的开发要确定后端采用哪种语言,c# or java,下面给出两种语言的优缺点比较,选择还是要靠大家来做

1 C#与Java的优缺点比较

1.1 C#

(1) 优点

a) 从语言的角度上来讲,易用、门槛低、优雅、较为简洁,这点毫无疑问优于Java;

b) 拥有全宇宙最强大的开发工具;

c) 公司现有的后端代码全部可以复用,比如数据库接口,这样过渡起来比较平滑;

d) 人才储备,我们现在所有的软件开发人员,都只熟悉c#,不熟悉java;

(2) 缺点

a) 不能跨夸平台,如果我们要去微软化,这点就是硬伤,当然,随着微软逐步拥抱开源,.NET的源码已经全部对MONO开放,未来将逐步可能实现编写一套代码,可以在window、linux、mac、Android上运行,现在已经有一些手机软件开发商在做这方面的尝试,这个进程已经开启,但是不知道mono的稳定性如何,似乎有一些公司就因为Android版本的mono不够稳定,导致产品失败的;

b) 我们即将要使用的各种nosql技术,相关的资源中,java的资源肯定比c#多;

c) 各种开源框架对于C#的支持要相对较少;

d) 国内现在开始提信息安全了,使用windows的这套东西,在一些和政府相关的核心部门的投标中,可能会是一个硬伤;

1.2 Java

(1) 优点

a) 跨平台;

b) 有很多现成的开源组件可以使用;比如消息队列,负载均衡,对于各种nosql的的二次开发,比如Hadoop、Cassandra、redis等。

(2) 缺点

a) 现有的整个后端的逻辑都要重写,工作量太大;

b) 公司目前没有相关的人才储备,大家都要重头学起,重头学一门新的语言,然后一上来就要用它来开发框架,这个开发出来的东西是否可用,表示怀疑;

2 我的选择

综上,如果现在是在一个初创公司,没有历史负担,我会选择Java,因为资源多,跨平台。

但是基于公司的现状,不管是人才储备还是技术储备还是历史资源,我会选择c#,因为做变革代价太大。

语言本身无所谓好坏,主要还是语言背后的人、资源和政策决定了我们的选择。

3
基于微软平台IIS/ASP.NET开发的大型网站有哪些?

下面是一篇2011年的文章,可以看到,c#用的还是挺多的,虽然jd已经转java了。

/article/5376827.html

基于微软平台IIS/ASP.NET开发的大型网站有哪些?

首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛。只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已。同时,也希望广大Microsoft同志们不要太妄自菲薄,有点信心!

下面一一列举几个:

http://www.msn.com/

http://www.live.com/ (包括OneDriveOneNoteHotmailOffice365等)

http://www.bing.com/

根据comScore今年11月份的统计,微软网站群已经超过雅虎、facebook成为仅此于Google的美国第二大网站群。如果对这基于windows
server/IIS/Asp.net构建的美国第二大网站,你们还说微软技术不能开发大型网站。那不觉得自己是在扯淡么?

http://www.MySpace.com/

http://www.godaddy.com/ (全球最大域名注册商)

http://www.match.com/ (世界最大婚恋网站)

http://www.monster.com/ (世界最大招聘网站,chinahr母公司)

http://www.seek.com/ (澳大利亚在线招聘巨头,智联招聘母公司)
http://www.careerbuilder.com/
http://mail.aol.com/default.aspx (AOL)

http://www.expedia.com/ (世界最大在线旅游网站,elong,kuxun母公司)

http://www.vente-privee.com/ (全球最大名品折扣电子商务网站)

http://www.newegg.com/

http://www.buy.com/

http://www.pof.com/

http://www.ancestry.com/ (世界最大的家谱网站,拥有全球最复杂的家谱tree)

http://www.nasdaq.com/ (纳斯达克,每天十几亿的股票交易量)

http://www.londonstockexchange.com/ (伦敦证券交易所)

http://www.hkex.com.hk/ (港交所)

http://www.ESPN.com/

http://www.MSNBC.com/

http://www.ABC.com/

http://www.stackoverflow.com/ (近两年火起来的技术问答网站,比Quora火的多啊)

http://www.AngiesList.com/ (最近上市的美国著名点评网站)

http://www.kbb.com/ (美国最大汽车网站,易车网大股东)

可能有人马上就能举出facebook,yahoo等国外大型网站来反驳我。尤其是对没落的myspace,更是嗤之以鼻。认为是使用微软技术的反面教材。其失败的原因之一就是因为用了微软技术做开发。但我想请问一下:当初myspace如日中天,为全球第一社交网站,facebook还未成气候时,你们当初有谁说它用了微软技术,将来就会失败?有谁说过?!且不说它失败的原因不是微软技术的错,相反,它曾使用微软技术做到上亿的用户,世界最大的社交网站。难道不更能说明微软技术的成功么?现在有多少大型网站能达到当初myspace的规模?屈指可数!并且,我相信如果当初myspace做到了现在
facebook的规模,用微软技术也能找到支撑的办法!

http://www.Dell.com/

http://www.CA.com/

http://www.McAfee.com/

http://www.SAP.com/

很多人看了肯定会说,这都是一些官网啊。又不是什么大型网站,有什么说服力。请注意了,Dell的官网可是电子商务-卖电脑的。CA,
迈克菲本身是安全领域的公司,SAP是全球顶级ERP提供商。他们为啥要用“安全性最差”的Microsoft技术开发其网站呢?不怕网站被黑了丢人?

http://www.360buy.com/ (京东商城)
http://www.dangdang.com/ (当当)

http://www.vancl.com/ (凡客)

http://www.m18.com/ (麦考林)

http://www.newegg.com.cn/ (新蛋)

http://www.yifu.com/ (衣服网,网盛旗下)

http://www.letao.com/ (乐淘)

http://www.moonbasa.com/ (梦芭莎)

http://www.no5.com.cn/

http://www.99read.com/

http://www.yintai.com/ (银泰百货)

http://www.5173.com/
http://www.tiantian.com/
http://www.hua.com/

http://www.2688.com/ http://www.yiguo.com/
相信很多人都认识到了这一点,国内大部分主流的大型电子商务网站都是用ASP.NET开发的。他们的流量,像360buy等虽然比不上taobao,但千万级的规模是肯定有的,绝对属于大型网站。其安全性,稳定性,性能等等,不比taobao差。

http://www.ips.com/ (环迅支付)

http://www.boc.cn/ (中行)

http://www.icbc.com.cn/ (工行)

http://www.cmbchina.com/ (招行,以及招商网银)

http://www.95599.cn/ (农行,以及农行网银https://easyabc.95599.cn/)

有人说银行的官网不是关键应用,但不知道网银是不是呢?上面纳斯达克、伦敦交易所、港交所的证券交易是不是呢?
http://www.ctrip.com/ (携程)

http://www.elong.com/(艺龙)

http://www.lotour.com/

http://www.ly.com/ (同程旅游)

http://www.17u.com/(一起游)

http://www.uzai.com/

主流的在线旅游/票务网站

http://www.qidian.com/ (起点中文网)

http://www.hexun.com/ (和讯)

http://www.mtime.com/
http://www.yeshj.com/
http://www.xdf.cn/ (新东方)

http://www.eastmoney.com/

http://www.stockstar.com/

http://feixin.10086.cn/ (中国移动飞信http://www.fetion.com.cn/)

http://passport.189.cn/ (中国电信)

http://www.cnblogs.com/

http://www.zhaopin.com/ (智联招聘)

http://ehire.51job.com/index.aspx (前程无忧)

http://www.soufun.com/ (搜房)

http://www.dichan.com/ (新浪地产)

http://nbadata.sports.qq.com/ (腾讯NBA)

http://mima.163.com/default.aspx (网易)

http://www.autohome.com.cn/ (汽车之家)

http://www.bitauto.com/

http://www.39.net/

http://3G.cn/
网友补充(/article/7093656.html 用.NET开发的大型网站列表、各大公司.NET职位精选).

总之一句话,拿那些如:性能、安全、稳定、效率等等作为原因来攻击微软平台,是绝对站不住脚的!(用java开发的www.12306.cn就是一个鲜明的反例)其实大家都心里清楚,ASP.NET和LAMP/JAVA相比,最大不同只不过是前者是收费的,而后者是开源免费的。仅此而已!(关于这3种平台的成本比较,不是本文的范畴,我会单独另写文探讨。)

补充:

1、关于成本的讨论,可以看下文谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)
2、相信很多人(包括我自己)都曾认为微软windows在桌面OS上无敌,在服务器上不行,在服务器OS上linux是老大。可惜事实却是:在服务器操作系统上windows
server也是老大!这里有IDC对20102011两年服务器操作系统的市场份额统计,在最近两年里windows在全球服务器OS的市场份额已经是第一,并且还在稳步上升中。要知道,并不是只有互联网公司需要服务器,在范围更大的企业开发领域,需要更多的服务器,而那才是微软挣钱的地方。

4 程序员应该选择java 还是 c#

/content/4161191.html

有点长,就不粘贴出来了,核心观点就是:

我的意见是,忘记java或者c#的对立,如果要做一个开心、有自我追求、同时满足就业的程序员,你需要重视以下方面:
1. 函数调用栈,这个很多高级程序员只知其然不知其所以然。你可以不懂的汇编、函数入口、返回地址、寄存器,但你需要调试,你得深刻理解函数调用栈,无论是在dev模式调试struts开发的jsp页面,还是debug模式调试aspx页面,你得看懂调用栈的信息;
2. 基本的数据结构和算法,数据库中索引的组织方式,是B+树还是Hash,还是堆,你的公司有Web、桌面、移动用户,有社区,有产品,你可能要做个推荐什么的,或者研究个社交图谱什么的,这门技术可以帮助你。
3. 一门动态语言。lua、python、javascript,都可以,你需要随时和系统进行交互,或者实现一个原型,或者用程序的方式来画点界面、数据图什么,它们够轻量、够快捷。
4. 一门重量级语言。比如java或者c#。你靠它们吃饭。
5. 理解跨平台的含义。掌握一些基本的跨平台技术,比如xml、c、html、json。
6. 重视网络编程的练习和理解,在你使用URLConnection或者MySqlConnection或者WebRequest的时候,你是否理解它们的生命周期和底层实现,用什么语言无所谓,你要记住tcp/ip协议和http的基本特性。这样不至于你写了几年程序,还不知道method=post是什么原理。
7. 找一个顺手的IDE,我个人不是CLI控,虽然不得不CLI,一个顺手的IDE真的可以提高生产效率。搞.Net推荐vs + resharper,搞java推荐intellij IDEA.
8. 关注一些热门而经典的领域,比如机器学习、图像处理、数据挖掘,即使已经有了mahout,不代表你不需要了解这些领域,你可能永远不会在工作中使用它们,但它们的思想值得你拥有,因为你选择了做程序员,而不是哪个公司的程序员。
剩下的,就是你的解决问题的思路和你实现的硬功夫(编码能力),我相信,很多看这篇文章的人,不能够轻易写出一个ftp服务器,不能够不参考、不联网查询资料写出一个简单的快速排序,也不能够轻易写出一段通用分页SQL,但他们依然可以正常工作。
所以外面的功夫容易忘记,有网络就能拾起,内功才是入骨的东西。

架构不是学出来的,是你的理解到位了,恰好工作中有这么个需求,你就开始整合你的已知,然后开始选择轮子。
最重要的是,你千万不要成为一个只会熟练使用框架的程序员,那样,你会疲于奔命,你也许永远只会使用hadoop,而写不出一个hadoop,你只是一个hadoop程序员,而不是一个分布式程序员。

你也许永远只会使用struts,而忘记了自己写filter,你只是一个ssh程序员,而不是一个web工程师。


5 关于jd转java的是是非非

仁者见仁,智者见智。

[转载]管理造成的问题:京东商城后台语言改用java

http://blog.sina.com.cn/s/blog_668a2d390101ilhn.html

最近一段时间,随着双十一、双十二等优惠打折季的过去,有关电商网站的可靠性设计受到国内社区的热烈讨论。在知名问答网站知乎上,有人提出了这样一个问题:“京东今天还在用.NET
架构的原因是什么?”,半年来得到了许多技术圈内人士的回复,其中不乏有意思的内容,对读者朋友很有启发作用。我们简单的对精华回复进行下分类。​
观点:历史原因造成
陈皓——“我觉得京东用.NET的原因应该很简单:一开始它就用.NET/Windows了,所以长期就这样了。 那么,为什么它会一开始用.NET呢?.......我就只能推理了。Windows的东西门槛低,而且有很多媒体为Windows做宣传,所以......大多数人都会用Windows平台的......(京东)觉得业务比技术重要,技术无所谓,做出来了就好了。Windows的服务是很不错的,只要你愿意花钱。Windows平台的性能有很多问题,但是可以看到微软在很努力很努力地解决。京东的问题和用Windows没有关系。但是作为超低利润的零售业来说,能用Windows这个平台真是大手笔。 我并不觉得这是技术问题,这分明就是管理问题,管理上的问题则暴露的是人的问题。”
冯大辉——“据说京东老刘(刘强东)最早也写代码的,估计就是用微软的技术写东西的。最早的工程师估计也都是用微软的技术干活的,而这些人随着公司的壮大,逐渐就有人掌权了,这就形成一个什么局面?话语权是属于微软体系的人。即使有人想用其他技术体系来做点东西,那要面对很大的阻力才成。「习惯」是一个团队很难改变的,除非从上往下推动,但是这样又风险太大。加上还要跟上高速发展的节奏,那就继续跑吧。看到路边的电动自行车了没?非常灵活,快的时候能跑到40迈,但是真的危险。”
​大熊​——“京东用.NET是因为京东一开始的后端进销存体系就是.NEt基础的,当然这里话说回来,国内大多数进销存以及ERP也都是.NET基础下的。所以京东从一开始就是一个偏后端的厚重公司,在Web端的技术以及应用开发上只是凑合能用即可,所以就一直用.NET到现在(能用.NET支撑Web应用到现在实属不易了)。顺便说一下,我居然看到评论里有人说MySpace在使用.NET以佐证XXXXX问题,可是你知道MySpace已经日薄西山了吗?另外,MySpace正是用了MS技术外加不开源架构,错失了一轮又一轮的产品技术上的发展,还给自己带来了不必要的成本上的压力。当MySpace到了海量用户的时候,MS要派出专门的小组常驻MySpace,帮他们解决问题,这是一件惨绝人寰的事情。​”
观点:选择.NET不明智
廖雪峰——​用.NET,意味着你被捆绑在Windows平台上。不是.NET效率本身比Java、PHP差,语言其实差别很小,差距在于:
1.Windows Server授权费太贵,Linux免费,如果你有上千台服务器需要买上千台Windows授权......

2. Windows不但贵,性能还远远不如Linux,注意这里说的是服务器端性能,跟桌面一点关系都没有。

3. 许多的开源、高端服务器组件只有Linux/Unix版本,移植到Windows上的基本是半残品。

4. 许多优化技术、高性能分布式缓存、数据库、NoSQL解决方案等等,仅针对Linux。

5. 你需要的一切组件和技术几乎都可以在Linux平台上找到免费、稳定而且高性能的东西,如果是Windows平台,你需要祈祷微软赶快开发出来。

6. 在虚拟化的今天,一台高性能服务器可以跑十几台虚拟机,用Linux,你得到的是免费、稳定的虚拟机,用Windows,你一台服务器的授权费将
x N。​
总之,立志做大型互联网应用的企业,绝对绝对绝对不可以用WindowsServer做平台。​
徐文浩——大型互联网应用不应该使用.NET这样的结论我认为是没错的,无论是从效率、架构、人员招募,.NET都有一些劣势,包括:
1. 授权费,这有两个因素,一个是需要钱,第二个是即使费用不高,你还是要费口舌去说服大家花这个钱。

2. 系统运维,WindowsServer看起来操作简单,但是真正有能力做大型互联网产品的系统运维的人员,恐怕找Linux的比Windows
Server的便宜得多。​

3. 开发成本,前端App使用.NET比之Python和PHP并没有什么特别优势,后端比之Java也什么特别优势,找中等以上架构水平的人数也相对更少,如果是真的高性能高并发的搜索、广告这样的需求,也是C/C++的天下,而且你也必然不会使用WindowsServer。
观点:架构问题,非.NET之祸
赵劼——​显然是架构的问题,关.NET什么事情。说几点我一直存在的观点:
· .NET社区也很大,说需要"看微软脸色行事"、“需要等微软开发”之类的观点没有任何道理。
· .NET和Windows、IIS性能很好,不信我们可以做benchmark,我做过很多次了,什么几万RPS绰绰有余,绝对超过你程序能达到的性能。​
· Windows Server做Web服务器很便宜,授权费一点点。.NET没必要非得用SQL
Server,自己限制自己只是冤大头而已。
· .NET和Linux一起用很正常,缓存、数据库、负载均衡什么的。
· StackOverflow用.NET好好的,甚至没几个非.NET的项目达到MySpace的规模的。MySpace失败跟技术.NET没关心,否则请给出证据。
王晓胜——“虽然国内的进销存都用.NET,你的Web网站就得选择用.NET吗?这个逻辑根本讲不通。那些拼命批判windows贵,说linux便宜的人,真不知道怎么想的。.NET开发的低成本表现在速度快、效率高、人员工资成本低等方面,这个对于创业型企业不知道多宝贵嘛。用linux固然好扩展,但你要烧多少高香才能找到好的架构师来帮助你,而且还得找到好的技术开发人员。那些批判.NET架构性能不高的人,你们真了解.NET社区的庞大嘛?去看看国外有多少企业级应用都用.NET,不仅是安全上的问题,更重要的是广泛的支持。.NET社区中有非常多的针对优化技术、高性能分布式缓存、数据库、NoSQL的解决方案,拜托都去了解一下再说好不好。京东IT系统的核心问题,应该是当时架构设计的问题,与平台和语言都无关。估计现在也是因为前后台系统相互依赖性太强导致,前台显示库存与后台的库存直接相连,这设计也土了点。​”
其他观点:历史、战略、管理
潘志彪——“当当08年之前也是.NET系统,后渐渐转到Linux
+ PHP+ Mysql,搜索、推荐等C++的后台也从Windows转为Linux版了。现在订单等后台作业依然采用C#跑着。当当能够转型主要是前CTO
hubert是ebay出身,参与过大系统的设计,具有很好的技术嗅觉。国内B2C京东、凡客等现在还是windows为主,最主要的原因还是数据量太小吧。凡客还整天搞MSSQL
Server存储过程。B2C本质还是零售企业,大老板往往不是很重视技术,更看重市场,所以国内......不到抗不住的那一刻,是不会技术转型的。淘宝数据量大,技术积累相对好很多,技术架构上比京东、当当等高出太多。”
是人非人——“首先80%是管理问题,然后剩下的20%责任里面有80%是架构的问题,所以技术上的问题只是那20%里面的20%,
换算下来是4%
。如果我是京东的技术领头人,我应该反思自己的行为和规划,架构来源于生活,如果我的生活不完美,做出来的架构自然也不完美。 再说技术问题,.NET和Java都是枪,关键还是用枪的人,机关枪不一定就能比狙击枪更有效率,关键还是用枪的人。做技术的人自己应该反思自己的开发态度,我在设计和开发的时候真的想过所有的问题吗?还是说为了项目和进度我损失了设计和思考的时间?”
胡海涛——“​Amazon的今天就是中国电商的未来。电子商务的波峰低谷中会把自己的计算能力卖出去,也就是那群serverfarm里面的闲置机器。这需要整体架构更加是水平扩展和灵活性。硬件负载均衡+PCSERVER
Farm的方式最为方便。Linux+Java的方式最能够解决这个问题。关于技术战略,大型电商一定不能走ITservices和outsourcing的路子。因为电子商务的快速灵活决定了IT和业
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: