c#很好,可是我仍然要学一学java,并且不推荐你搞

Posted csharp也很强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#很好,可是我仍然要学一学java,并且不推荐你搞相关的知识,希望对你有一定的参考价值。

关于 c# 和 java 的历史渊源,有兴趣的可以自行搜索。先给此文定调:不是黑 c#,也不是夸 Java,而是不带任何个人情感,基于客观现实,来比较下 c# 与 java,为初级程序员以后走的路做下简单的规划。

c# 什么都能干,很强。能搞 windows 桌面应用,能写移动应用,能写 web 应用,也能在 linux 服务器上跑服务,machine learning,iot 什么的都能搞。也有人用 c# 弄了一套微信开发的 SDK。

虽然如此,如果一个 c# 程序员不认真地搞搞 java,就真的是闭门自守。

为什么我会这么说?

先下个结论,上面说的 c# 能搞的东西,java 都能搞,而且后者更流行。可以说,c# 现在要搞的,或者微软现在要搞的,只是企图从 java 市场那分一杯羹;只是给了开发者一个新的选择,给做 c# 开发的打一剂强心针,从而吸引这些人来填坑。

别抬杠,不接受反驳。事实就是这样。没有新框架出来是没有坑的。.net core 刚出没多久,框架还在不断升级改进,且更新频率还不低。这就意味着要踩更多的坑。相较而言,java 就稳定很多,坑也会更少。

再者,目前中国的编程市场就是 java 主导的市场,这是时代决定的。pc 时代,主导是 c++,也不是 c#;移动时代,主导是 java,不是 c++,更不是 c#。到了现在的智能时代,将会是 java 和 c/c++ 共同主导的时代,也不会是 c#。

为什么?

因为 pc 时代,.net(c#) 框架出得太晚,且平台受限。国内大厂是不用的。到了移动时代,考虑到安卓的普及率,可以说 Java 就是移动开发的基础。再后来,一切应用都试图在渲染效果良好的浏览器中运行,b/s 应用的后台逻辑就更是 java 在做。并不是 c# 没有在做, Windows Server + IIS + ASP.NET + C# + SQLServer / Oracle 方案了解一下。这套方案光是看看名字,就让人觉得贵。杠精可能会抬杠,小白可能会懵圈。据我了解,现在还在用这套方案的公司,基本上都是用的盗版安装包。但是,像阿里,京东这种体量的公司不买微软,oracle 的东西就做服务的,怕是要终日苦于官司缠身了。所以,马云当时才要大力推动去 oracle 化,就是因为贵。

基于贵,就有更加便宜的方案。Linux + nginx / Apache + Spring + Java + mysql 的方案了解下。授权成本几乎是 0。而经过多年发展,这套方案不仅便宜,性能还好,可伸缩性又强。还间接促进了服务端容器化的进程,加速了云时代,大数据时代的到来;后二者又自然衍生出现在的人工智能时代。

明白了这些,你就能搞懂微软这些年不遗余力推动 .net core 的原因。现在的很多动作,也只是在弥补移动端,b/s 方面落下的不足。那套很贵的方案在推 .net core 的过程中也有新的改进。

可是,落下的就是落下了。现在回过头来补功课,短时间内从一个学渣逆袭成为学霸,难度可想而知。要从稳固,生态良好的 java 市场分一杯羹,得到市场的认可,并大量投产,更是难上加难。

还有,微软更是有问题:总是抛弃开发者。一个概念炒一阵子,结果就不了了之。记得 win8/win10 刚出那段时间,微软简直把 UWP 捧上了天。国内一些人也闻声起舞。结果怎么样?大量 Win32 / Winform 应用不可能因为新出一个 win8/win10 全都被废弃,UWP 最后还不是不了了之?跨端开发的概念最后只是停留在概念阶段。市场对 UWP 跨端应用反响一般。

到了今天,我可以很负责人地告诉你:c# 也就写写 windows 应用。如果你执意要在当今大时代里写 windows 软件,OK,没问题,c# 是个不错的选择,有它的不可替代性。假如你要写移动端,b/s 端,做大数据,做人工智能,c# 绝不是大获市场青睐的首选方案。可能又有杠精抬杠:在国外多火多火,是未来的趋势等到。打住,这是国内市场,这是当下。当下的国内市场就是不青睐 c#,就是喜欢 java。这就是客观的事实,不以个人喜好为改变的当下的事实。

顺势而为,才能有所作为。

与其敲着 c# 代码还在慨叹 c# 半死不活,编一些掩耳盗铃的理由给自己打气。倒不如坦然寻求另一条路。况且,就 c# 与 Java 的渊源,从 c# 转 Java 并不困难。有很多东西都是相同的。当然,如果你只是个新手,或者割舍不下对开发 windows 应用的爱,又或是享受开发 .NET 应用快感的话,建议先把 c# 搞搞清楚,彻底弄懂 c# 开发工业(传统行业)软件所需、所用的东西。再来考虑好好学学 java。

不要学 .net core !

不要学 .net core !

不要学 .net core !

重要事情说三遍。答案我想看到这里的你心里自然会有。

c# 很全能,但是除了开发 winform/wpf 应用,任何情形下,都不要使用 c#。包括 b/s 应用,移动应用,网络 API,机器学习。要始终选择市场最为青睐的解决方案。也请杠精和一知半解的小白别抬杠。你们要非这么干,就干下去吧。我在 java 阵营等着你们。

未来 10 年,如果想要作品与智能产业结合,请搞 Java/c/c++,而不是 python,c#。

你可能会奇怪,搞人工智能,不是最应该搞 python 的吗?事实上,我是有道理的。以后再说原因吧。


以上是关于c#很好,可是我仍然要学一学java,并且不推荐你搞的主要内容,如果未能解决你的问题,请参考以下文章

Object.defineProperty()

开局一张图,学一学项目管理神器Maven!

docker使用入门

开局一张图,学一学项目管理神器Maven

开局一张图,学一学项目管理神器Maven

大佬RQY真的强