用python已经不是装逼了确实没有错,但现在逼界的风向是要反python吗
我想不通的是,未来10年,如果不是python/ruby这样的语言发展的时机,那会是什么语言
我来说说对上述所谓问题我的看法吧:
1. 兼容性问题
2to3的问题让社区不少人寒了心,但guido坚持要这样做,因为他认为这是python追求简单优雅所必须要做的。对于没有历史包袱的项目来说,直接选择用python3000肯定是明智的。对于已有项目,2to3、six这样的工具也是可以解决绝大部分问题。
大版本内的兼容性问题我还没遇到过,不知道有啥案例让我学习学习的。
对于活跃的开源项目,小的兼容性问题不容易成为项目发展的瓶颈。而对于不活跃或者设计较差的项目,即使是使用其它语言,时间长了,也一般不会是兼容性影响它的使用。
(我司的web后台几年前大部分是C++写的,理论上讲不会有兼容性问题,但是现在当有需求实现时,却没有人想去维护那一整片一整片的业务逻辑和不同的前同事造的轮子。)
如果说,你想写一个完美的能立即稳定下来并且再也不需要维护的软件,那还是用C语言吧(换言之,这样的东西python里不都是用C写的吗)
总的来说,我个人确实没怎么在python上吃过兼容性的亏,反而对C++大包大揽时留下的坑深恶痛绝
2. python的库恶心
哪个库?有C++的库恶心吗,有java的库恶心吗
3. python的使用场合
前面已经说过,guido是个有理想的人,他希望python在任何一个领域都能牛逼起来,所以python才会强调简单、通用,让你干啥都能想到它。在实际上,python也未能做到处处通杀,甚至还没能做到在某个领域的权威(在云计算领域,python应该已经快了),基于语言本身的特点,目前在运维、大数据、云计算、web、科学计算上都还混得可以
4. 找工作
积重难返,python更多的会在某种口味的创业团队使用,国内的大公司不大会直接招python程序员,像
@白如冰
说的那样。从社区上的招聘广告来看,大部分的岗位需求是web后台和运维系统开发的,web后台又有大部分是要求django的。
python的水不深,单靠对语言本身的考察,难以分清水平高低,于是,要么需要你有丰富的经验,要么你有坚强的毅力(比如C++学得很好)
最后,补充下,我极少在windows下用python(除了靠python在淘宝上秒杀了个手机),但每次一用就觉得别扭,也许这也是需要考虑的部分吧
5. 逼格
(1) 用什么语言都不能证明逼格,包括汇编,也包括lisp/haskell。
(2) 在适当的场合用适当的工具,解除耦合、减少重复、易于扩展才是对逼格的更高挑战。
比如有一组件对数据库有大量操作,我同事认为他要用C++模板元编程加上一些巧妙的设计模式来生成sql是逼格高的体现,我认为在这样的场景下至少要用上orm才能谈得上对逼格有要求。
大胆预测,10年后,python程序员不一定会更多,但python一定会使用得更广泛得多
Python是一款流行的计算机编程语言,具有简单、易学、免费、开源、可移植、可扩展、可嵌入以及面向对象等特点,拥有强大的库,简洁的几行代码即可实现强大的功能,应用范围广泛,可广泛应用于以下领域:
1. Web开发
最火的Python web框架Django,支持异步高并发的Tornado框架,短小精悍的flask,bottle,Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
2. 网络编程
支持高并发的Twisted网络框架,py3引入的asyncio使异步编程变的非常简单
3. 爬虫开发
爬虫领域,Python几乎是霸主地位,Scrapy/Request/BeautifuSoap/urllib等,想爬啥就爬啥
4. 云计算开发
目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算市场近几年的爆发
5. 人工智能
MASA和Google早期大量使用Python,为什么Python积累了丰富的科学运算库,当AI时代来临后,Python从众多编程语言中脱颖而出,各种人工智能算法都基于Python编写,由其PyTorch之后,Python作为AI时代头牌语言的位置基本确立!
6. 自动化运维
问问中国的每个运维人员,运维人员必须会的语言是什么?10个人详细会给你一个相同的答案,它的名字叫Python
7. 金融分析
金融公司使用的很多分析程序、高频交易软件就是用的Python,目前,Python是金融分析、量化交易领域里用得最多的语言
8. 科学运算
97年开始,NASA就在大量使用Python在进行各种复杂的科学运算,随着NumPy,SciPy,Matplotlib,Enthought librarys等众多程序库的开发,使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛
9. 游戏开发
在网络游戏开发中Python也有很多应用。相比Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与Lua相比,Python更适合作为一种Host语言,即程序的入口点是在Python那一端会比较好,然后用C/C++在非常必要的时候写一些扩展。Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。
10. 桌面软件
虽然大家很少使用桌面软件了,但是Python在图形界面开发上也很强大,你可以用tkinter/PyQT框架开发各种桌面软件!
python会成为AI时代的首要语言
很多时候,一个程序库本身是用 C/C++ 写的,但你会发现,直接使用 C 或者 C++ 去调用那个程序库,从环境配置到接口调用,都非常麻烦,反而隔着一层,用其python 包装库更加清爽整洁,又快又漂亮。这些特点到了 AI 领域中,就成了 Python 的强大优势。
Python 也借助 AI 和数据科学,攀爬到了编程语言生态链的顶级位置。Python 与 AI绑在一起,对它们来说,无论是电子商务、搜索引擎、社交网络还是智能硬件,未来都只是生态链下游的数据奶牛、电子神经和执行工具,都将听命于自己。
对编程语言发展历史缺乏了解的人可能会觉得,Python 的战略定位是犬儒主义和缺乏进取心的。但事实证明,能同时做到简单而严谨、易用而专业,是很难的,而能够坚守胶水语言的定位,更是难上加难。
有的语言,从一开始就是出于学术而非实用的目的,学习曲线过于陡峭,一般人很难接近。
有的语言,过于依赖背后金主的商业支持,好的时候风光无限,一旦被打入冷宫,连生存下去都成问题。
有的语言,设计的时候有明确的假想场景,要么是为了解决大规模并发,要么是为了解决矩阵运算,要么是为了做网页渲染模板,一旦离开这个场景,就各种不爽。
更多的语言,刚刚取得一点成功,就迫不及待的想成为全能冠军,在各个方向上拼命的伸展触角,特别是在增强表达能力和提升性能方面经常过分积极,不惜将核心语言改得面目全非,最后变成谁都无法掌控的庞然大物。
相比之下,Python 是现代编程语言设计和演化当中的一个成功典范。
Python 之所以在战略定位上如此清晰,战略坚持上如此坚定,归根结底是因为其社区构建了一个堪称典范的决策和治理机制。
这个机制以 Guido van Rossum (BDFL,Pythoners 都知道这是什么意思), DavidBeazley, Raymond Hettinger 等人为核心,以 PEP 为组织平台,民主而有序,集中而开明。只要这个机制本身得以维系,Python 在可见的未来里仍将一路平稳上行。
最有可能向 Python 发起挑战的,当然是Java。Java 的用户存量大,它本身也是一种战略定位清晰而且非常坚定的语言。
但我并不认为 Java 有很大的机会,因为它本质上是为构造大型复杂系统而设计的。什么是大型复杂系统?就是由人清清楚楚描述和构造出来的系统,其规模和复杂性是外生的,或者说外界赋予的。
而 AI 的本质是一个自学习、自组织的系统,其规模和复杂性是一个数学模型在数据的喂养下自己长出来的,是内生的。
因此,Java大多数的语言结构对于大数据的处理和 AI 系统的开发显得使不上劲,你强的东西这里用不上,这里需要的东西你做起来又别扭。
而 Python 在数据处理方面的简洁强悍早就尽人皆知。对比两个功能相同的 Java 和 Python 机器学习程序,正常人只要看两眼就能做出判断,一定是 Python 程序更加清爽痛快。
广州千锋Python培训课程以企业需求为导向,融合前沿科技,由大牛讲师全程面授,23周超长课时,细致打造Python人才。人工智能时代将至,Python作为人工智能的开发神器必将大显身手。如果你想抓住这股浪潮,那就加入千锋,你的未来由你掌控。
我认为最根本的原因只有一点:Python 是众多主流语言中唯一一个战略定位明确,而且始终坚持原有战略定位不动摇的语言。相比之下,太多的语言不断的用战术上无原则的勤奋去侵蚀和模糊自己的战略定位,最终只能等而下之。
Python是一种面向bai对象的解释型计算机程序的设du计zhi语言, Python具有丰富和强dao大的库。它常被称zhuan为胶水语言,能够把其他语言制作的各种模块很轻松地结合在一起。
相对于Java、C语言等,Python简单易学,更适合没有编程基础的小白入门。Python 的语言没有多少仪式化的东西,所以就算不是一个 Python 专家,你也能读懂它的代码。
Python的发展方向:数据分析、人工智能、web开发、测试、运维、web安全、游戏制作等等。
另外说下,Python目前的发展趋势非常好,伴随着大数据和人工智能的发展,Python的应用将得到更广泛的普及,目前在落地应用中已有不少Python开发的项目了。
Python前景还是很不错的,尤其是我国在大力发展人工智能的情况下,Python的就业岗位也比较多,所以你不用担心。
Python的就业方向:
① web开发
豆瓣、知乎、拉勾网等都是用的Python,web开发在国内的发展也非常好,因为Python的web开发框架是最大的一个优势,如果你用Python搭建一个网站只需要几行的代码就可以搞定,非常简洁;
② 数据挖分析
Python所拥有的完整的生态环境十分有利于进行数据分析处理,比如,"大数据"分析所需要的分布式计算、数据可视化、数据库操作等,都可以通过Python中的十分成熟的模块完成;
③ 自动化测试
Python在自动化测试方面占着一大半天,有丰富的第三方库,满足接口测试、单元测试、web自动化和APP自动化、性能测试......几乎涵盖了所有的测试方面;
④ 网络爬虫
最早用Python做网络爬虫的是谷歌,Python做爬虫非常容易上手,市场占有率比较大,现在公司基本做爬虫的都是用Python来做的;
⑤ 人工智能
人工智能的发展潜力和前途就不说了吧,这个都是大家都知道的东西,但是目前的话,人工智能方面的工作对学历要求比较高,但肯定是最具有发展潜力的方向了;
⑥ 自动化运维
最开始一批学习Python的人,就是运维和测试的在职人员,因为Python对于他们的工作起到很大的作用,因为使用Python脚本进行批量化的文件部署和运行调整都成了Linux服务器上很不错的选择;
Python的就业方向这么多,有一个会适合你的!