关于Python、Java、C#语言的一些比较
不能说某某语言不好!
首先,千万别说某一个语言好不好,应为这样的用词是错的,我曾经在好多场合听到一些程序员说java好,.net不好这类的话。
其实语言不分好坏,只是在具体的某些领域或业务场景上不合适罢了。任何技术都没有绝对的好坏,只有在这个场景下合不合适,把正确的技术用在合适的业务节点上才是最重要的。
为什么我会写这篇博客?
博主最近很惆怅,想换工作。想从事的是数据挖掘专业的工作,大数据、云计算等技术这几年很火,博主现在是做web开发的,对数据挖掘也很感兴趣,也知道数据挖掘使用Python语言比较火。今天在地铁上搜了一下数据挖掘工程师职位,发现几乎都是要会使用Python,
但是我net开发的,只用python写过简单的爬虫,用的次数也不是很多。有点纳闷为什么非要python呢?再想起来,之前遇到的各个语言对比的情况所以决定下班回来好好查查资料总结下。(这里我就找java、.net、Python三种语言了,其实还有其他语言)
Java、C#、Python三门语言都是什么样的语言?
首先java、C#、python 都是高级语言,他们都可以做桌面应用程序和web应用程序,但是对于复杂业务下的应用系统java和.net是比较合适的,相比来说,Python在这方面性能一直是个问题.
java、C#、python 三门语言的流行领域上看,python主要火在于数据挖掘和机器学习,java和.net也可以做数据挖掘方面的业务只是流行程度没有python火,python之所以近几年火,是大概可以从三个阶段找出原因。
12-14年的云计算,应为python是解释性语言开发和部署起来比较轻快,著名的云计算开源平台OpenStack就是基于Python开发的,Python对于运维工程师是非常好的一个帮手.
14-15年的O2O,P2P业务需求非常突出,由于python开发起来非常的快速,适合快速开发搭建原型,所以催生了许多Python岗位
16-17年的人工智能和AI的流行,人工智能和AI都是基于大数据只支持的,而真正拥有大数据的商业公司很少,Python又适合写网络爬虫,爬取大量数据。
Python在多个方面都有不俗的表现,包括网络爬虫、金融、AI、数据分析、机器学习、运维、测试。功能强大、简单有丰富的第三方库。
再来看看java和C#,其实上述Python说到的各个方面java和C#也能做,只是火热程度Python还是比较火的。其实java一直是编程语言中的老大哥,.net推出比java晚,但因为其不够开源,所以服务端开发地位不高。应为java在开源社区又丰富的解决方案去处理各种各样的问题,最主要的是.net在之前只能部署在 windows环境下,而windows环境下大部分软件都是要收费的,而在电商业务高并发场景中部署在linux系统下的java虚拟机的性能比在windows平台的iis的性能要好得多。就.net平台的技术来看。c#语言基本上秒杀java,语法优雅,语法糖很多。.net平台支持好。对于大多数业务场景,.net根本不需要第三方框架,.net本身都有很好的支持,而java项目需要拖一大堆第三方框 架,很不爽,还继续引用,经常出现版本问题。.net平台除了基础类库全,框架也很全,wcf专注通信,wpf专注客户端,winphone框架是手机端开发框架(虽然用的少,但是不错的,举个细节的例子,移动端开发都有scrollview类似的控件。而且visual stduio可以说是 个宇宙级强大的编译器超级好用。
由于是闭源的生态圈没有java那么广,在服务端中地位相差越来越远,但是近几年开始微软已经开源了.net框架,相继推出了Mono.、.net Core等跨平台的框架,慢慢也走向开源,眼下技术变革那么快,什么事情都很难说。
java和C#其实写起来就像是一对双胞胎兄弟,有时候感觉都是相互抄袭。
最后想说的是其实语言都是想通的,最重要的是解决问题的思路,选择什么语言也要看具体场景,当然是会的越多越好,俗话说技多不压身。语言最终还是实现业务的一个工具而已。
关于Python、Java、C#语言的一些比较的更多相关文章
- 比较分析C++、Java、Python、R语言的面向对象特征,这些特征如何实现的?有什么相同点?
一门课的课后题答案,在这里备份一下: 面向对象程序设计语言 – 比较分析C++.Java.Python.R语言的面向对象特征,这些特征如何实现的?有什么相同点? C++ 语言的面向对象特征: 对象模 ...
- python与其它语言进行比較
近期python语言貌似比較火, 今天闲来无事,简单的看了下,算是个入门吧.一门语言之所以值得这么多人去学,必然有它的独到之处,以下我们就用python和其它语言做个比較. Pythond VS C# ...
- JAVA开发语言基础
很多时候我们都不知道,为什么android最开始要用java作为基础语言 看看知乎上都是怎么回答的 为什么java最初成为android开发的基础语言 ------------------------ ...
- 基于Spark环境对比Python和Scala语言利弊
在数据挖掘中,Python和Scala语言都是极受欢迎的,本文总结两种语言在Spark环境各自特点. 本文翻译自 https://www.dezyre.com/article/Scala-vs-Py ...
- 建议3---理解Python与C语言的不同之处
我们都知道,Python的底层是用C语言实现的,但切忌用C语言的思维和风格来编写Python代码.Python与其他语言有很多不同,以下来进行简单的分析: (1)"缩进"与“{}” ...
- python的开发语言介绍
-开发语言: 高级语言:python.java.c#.php.GO.ruby.c++ ===>字节码 低级语言:c.汇编 ===>机器码 语言之间的对比: PHP:适用于写网页, ...
- python与其他语言的区别
C 和 Python.Java.C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处 ...
- python基础-初识Python和不同语言之间的区别
一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...
- python之 python 起源、语言特点
一. 1.1 什么是 PythonPython 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性.它可以帮你完成工作,而且一段时间以后,你还能 ...
- python是强语言还是弱语言?
python是强语言还是弱语言,没有一个具体官方的说法 数据类型也就是变量类型,一般编程语言的变量类型可以分成下面两类. 静态类型与动态类型 静态类型语言:一种在编译期间就确定数据类型的语言.大多数静 ...
随机推荐
- 电路设计软件 电路模拟软件 sPlan , LTspice 等
电路设计/PCB绘制 立创EDA https://lceda.cn/ sPlan http://www.electronic-software-shop.com/splan-70.html?langu ...
- ffmpeg 安装和参数介绍
0.说明: 1).configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –pr ...
- hash函数的选择
哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量. 一般来说,对任意一类的数据存在一个理论上完 ...
- 网格中的BFS,逆向(POJ2049)
题目链接:http://poj.org/problem?id=2049 解题报告: 网格中的BFS,最主要的是边界问题. 1.这里在左右,上下两个方向上,分别判断墙,和门,细节是,向上有t个墙,for ...
- 2018.7.19 . php复习
PHP程序设计 1.请写出HTML标记meta的完整英文单词:metadata 2.相当于http文件头作用(向浏览器传回正确和精确地显示网页内容的消息)的meta标记的属性是http-equiv 3 ...
- WinSCP 工具
windows 与 Linux 传文件,非常方便.安全.
- N76E003---看门狗
看门狗的设置 比较简单,根据芯片手册上的说明进行设置.值得一提的是设置看门狗的寄存器是保护寄存器,所以在写寄存器的时候要解除保护 void wtd_init(void) { TA=0xAA; TA=0 ...
- java重定向与请求转发
重定向是不能直接访问WEB-INF下的资源的,因为重定向是浏览器二次请求,众所周知,客户端是不能直接访问WEB-INF下的资源的. 而请求转发却可以直接访问. 然而重定向却可以间接访问WEN-INF下 ...
- ZIGBEE report机制分析
ZIGBEE提供了report机制(现在只学习了send, receive还没学习) 主要目的是实现attribute属性的report功能,即提供了一种服务端和客户端数据同步的机制 以EMBER的H ...
- SpringMVC使用ModelAndView的相对路径和绝对路径的问题
例如:abc/a/a.jsp,想要跳转到根目录的b.jsp 使用 ModelAndView 跳转, 若引用:org.springframework.web.portlet.ModelAndView 这 ...