日期:2014-05-20  浏览次数:21177 次

谈谈C/C++、C#.NET、Java各自的应用方向,不辩论语言的优劣,口水仗的请绕道
上大学以来接触编程也有段时间了,C,C++,C#,Java都开过课,也都或多或少学了点(个人而言,java接触的最少,可能连入门都称不上),可悲的是,到现在对于这几门语言的应用领域了解的不是非常清楚,所以来请教下~

先申明一点:这里说的应用领域只谈论目前市场主流常见的开发,让我有一个直观的认识,比如说C#可以做网站就是一个很具体的说法,做出来的产品直观上看上去就是网站。不要争辩C#都能做什么之类的东东,至少用C#写驱动不是主流!我实在看怕了语言之争的口水仗了


先说下自己目前的认识:
1.首先C应该做的是底层的东西,嵌入式,单片机,驱动,感觉linux更是偏爱C

2.然后是C++,感觉写成C/C++比较合适。应该是性能要求较高的场合大部分用这个,比如网络,游戏等等。然后便是客户端软件,linux下有基于QT(号称一次编写,到处编译),windows上自然离不开VC++,MFC之类的了,感觉目前我们常用的windows桌面软件应该大部分都是C++写的吧?然后用上一些界面库(比如迅雷就是自己的一套名字叫BOLT界面库,还涉及到了lua和xml),还有什么DirectDraw技术之类的。

3.C#:ASP.NET做网站,WinForm可以写客户端,然后还有个WPF。silverLight作为WPF的子集我总感觉和Flash是不是重复了?而且一直不温不火。除了微软的官网,其它地方貌似没看到有网站用过。。。

4.Java,这个最迷茫了,学了java语法之后,只是简单看了下J2SE,java的那些spring和structs框架的之类的从来没接触过,干嘛用的?做网站的框架?.Net的MVC也没接触过。J2EE是做企业级应用的,啥叫企业级应用?也是网站?

=====
总结一下:个人而言,毕业后是不会从事java方面的编码工作了,因为对java近乎一无所知。最初接触的是Win32、MFC,然后是C#的WinForm,ASP.NET,WPF也略懂(自学WPF的目的完全是为了界面~),不过这几样感觉也没一样学的精的。
就业的方向应该主要分为三块,C/C++、C#.NET、Java。说白了我就是想知道企业招人进去主要是做什么东西?

(发现码字还真是麻烦,正确表达自己的意思更纠结)

------解决方案--------------------
我现在所在的产品研发部门,主要是开发一些特定领域的航空电子机载设备,包括硬件开发和软件开发。在软件开发方面,又分系统软件、应用软件和设计软件。

我们产品组,最底层的C和汇编,以及最上层的C#,都在大量地应用。

我们做航空电子机载设备会用到C#,而且应用的层次很深,C#开发在我们的这个产品组中占据相当大的比重。

但是我们的航空电子设备又确实是基于嵌入式操作系统的。这里面既有一些大众化的嵌入式操作系统,例如嵌入式实时Linux、WinCE,又有我们公司自己研发的并非基于Linux的嵌入式操作系统。而我们的C#开发是覆盖这几种嵌入式操作系统的应用的,包括嵌入式Linux。

这是怎么一回事呢?注意我们的C#开发确确实实是产品开发,不是测试工具开发,也不是周边管理工具的开发。

这个涉及到我们的一套非常独特的架构,这个架构我不能说,怕构成泄密。

我们公司是世界航电产品研发的领头企业,可以说是这个领域内的老大。

------解决方案--------------------
我们公司根本不用Java做开发。

------解决方案--------------------
1.大学时候,学好汇编和C语言;
2.C++是通往高级语言的大门;
3.高级通用编程语言的生产效率都差不多,没有明显的区别
4.有些开发组织并不使用C#或者JAVA,而是自己开发的编程语言或者工具
据我所知的模式是,他们研发好了高级工具,才开始招兵买马投入正式运营

如果类似C#这样的高级语言,基本上不需要花什么时间去专门学习的
看两个小时代码(根据个人基础知识和从业经验而异),就可以上手工作



------解决方案--------------------
微软为开发者提供的支持比较周到,
这使得无论是开发环境还是生产环境的搭建都廉价快捷

而java就好比,你上了飞机,还要自己准备椅子,
如果你背个豪华的航空座椅,你的旅程会比较舒适,可是你登机的代价会很大
如果你拎个小马扎登机是挺方便,不过上了天就苦不堪言了
SSH那种东西基本上比马扎好不了多少