“Python是AI专用语言”、“全民学Python”种种,说明的不是Python被高估了,而是Python被曲解了。

Python是通用编程语言,只是在AI、大数据等方面(还是技术栈上层;底层还是靠C/C++)应用得比较多。专用语言出了专用的领域就不能用了。python零基础学习

固然,Python有它的相对简单性(相对简单性指的是语言和各种库都给好了再去写的时候比较简单)。首先是它的语法简洁,语法糖多,模板少,比如文件读取。然后是一些特性支持比较好,比如int理论上可以任意大,又如读JSON不用模板。

然后就是Python真正复杂到可怕的一些特性了,这里仅举几例。

首先,动态类型。这就允许a是个int型的然后a=str(a),就要小心变量的类型在转换前后发生变化。Python还允许函数参数类型不事先确定,只要用到的时候类型不出错就可以了,比如只用到加减乘除,如果没有显式的类型检查,就适用于整数、浮点数、复数、分数,甚至素数域或扩域里的数了。如果要用某个第三方库的函数,还要看这个函数各个参数是什么含义、支持什么类型、推荐用什么类型;不给或给不全就只能要么分析库源码要么尝试了。

其次,作用域。一个函数里面(只要不是里面再套一层函数),if、try、while、for的局部变量甚至可以在跳出之后使用,编程时极易不小心引用到名称十分相近的变量(而IDE可能不会报错)。

再次,异构类型集合(collection)和匿名类型(注意不是匿名类)。集合(collection)在Python里面包括元组(tuple)、列表(list)、集合(set)、字典(dict)等,所述四种collection中除set的元素和dict的键必须是可hash的这个要求以外,对存放元素的类型并无要求,甚至可以混合存放。可以想象,编程者对collection中哪个位置存放什么类型的元素必须十分清楚。至于匿名类型,大概是JSON里怎么表示对象的,Python里就怎么写,不用class,却也要清楚哪个键对应什么类型的值;甚至直接用元组,不仅要清楚哪个位置存放什么类型的元素,还要清楚哪个位置存放的元素是什么含义。

最后,抛出异常的位置和程序出错的位置或许相隔较远。可能只是一个TypeError或ValueError或AttributeError,程序出错的位置离抛出异常并中止的位置可能隔了几个函数,而且成因或许很复杂,比如不同的类型执行“相同的”函数,实际却差之千里。

所以,如果要用Python做一些正经的事,请一定先学静态程序分析,而其中的类型分析在这里尤为重要。

python相对来说比较容易,但其实我觉得python的坑还是比较多的,单从语言本身讲,我觉得不如java来的稳定和健壮(指开发方面不是运行方面)。同时python的运行性能比java差很多特别是线程方面。所以如果用python的web服务,都需要支持协程(coroutine)比如tornado。需要并发的时候,就需要使用多进程的方案了。

python还有二进制文件的反编译问题,这个java也有。

python还有版本兼容问题,比如2和3,这个java好点。

但是我仍然坚持我的一贯观点,尽可能用python脚本代替shell脚本吧。很多场景可能python无法替代shell,但是更多的场景,python是远胜shell的。很多人批评go语言是70style,那么shell脚本我觉得就是60style了,有浓郁的历史气息,各种节俭,省略的作风。类似的还有makefile,GNU autoconf的m4脚本……。反正我每次读这些都有一种读易经的感觉,嗯,就是坑龙有悔的感觉。

所以总的来说Java是否被高估了?我觉得并没有,因为在好多应用上python并没有被高估,反而还降低了好多人对他的期待值,如果,你要是问我python到底值不值学习,我认为是非常值得学习的

python是否被高估了?相关推荐

  1. 高估自己了?Python 字典这6个使用技巧着实太妙

    Python 的优点之一是字典可以与 JSON 对象无缝集成,这使得字典数据结构的使用比其他编程语言更频繁. 在这篇文章中,我将介绍 6 个关于 Python 字典的技巧,相信如果你以前不知道这些技巧 ...

  2. 独家 | Python的“predict_prob”方法不能真实反映预测概率校准(如何实现校准)...

    作者:  Samuele Mazzanti 翻译:欧阳锦 校对:王可汗 本文约2300字,建议阅读8分钟 本文讨论了使用python中" predict_proba"的方法所生成的 ...

  3. 进击的Python【第一章】:Python背景初探与Python基础(一)

    Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...

  4. 怎么学python-如何高效学 Python?

    随着数据科学概念的普及,Python 这门并不算新的语言火得一塌糊涂.因为写了几篇用 Python 做数据分析的 文章,经常有读者和学生在留言区问我,想学习 Python,该如何入手?我经常需要根据他 ...

  5. python 如何自学-如何系统地自学 Python?

    如果你一直想学Python,但是不知道如何入手,那就别犹豫了.这篇文章就是为你写的. 疑问 随着数据科学概念的普及,Python这门并不算新的语言火得一塌糊涂. 有现成的资源和路径,为什么许多人依然在 ...

  6. 怎么学python-如何高效学python?这篇文章就是为想学的你写的

    如过你一直想学Python,但是不知道如何入手,那就别犹豫了.这篇文章就是为你写的. 疑问 随着数据科学概念的普及,Python这门并不算新的语言火得一塌糊涂. 因为写了几篇用Python做数据分析的 ...

  7. 廖雪峰python教程视频-为什么看不懂廖雪峰的Python学习教程?

    廖雪峰的Python教程已经很友好了,接近于把饭喂到嘴边了. 这不是廖雪峰教程的问题,而是一个基础代码技能和实际应用需求的代码技能差距太远导致的. 如果是新手,只学会了廖雪峰Python教程,那约等于 ...

  8. 廖雪峰python教程完整版-为什么看不懂廖雪峰的Python学习教程?

    廖雪峰的Python教程已经很友好了,接近于把饭喂到嘴边了. 这不是廖雪峰教程的问题,而是一个基础代码技能和实际应用需求的代码技能差距太远导致的. 如果是新手,只学会了廖雪峰Python教程,那约等于 ...

  9. AI 学习之路——轻松初探 Python 篇(一)

    喜欢小之的文章的可以关注公众号「WeaponZhi」持续关注动态 这是「AI 学习之路」的第 1 篇,「Python 学习」的第 1 篇 前言 1. Python 篇的组织结构 不管是学习人工智能还是 ...

最新文章

  1. 【转载】 regsvr32 注册dll
  2. Android开发中调用系统窗口的方法
  3. css布局模型详细介绍
  4. Fiddler跨域调试及Django跨域处理
  5. C++相对路径下新建文件夹
  6. java语言环境变量_java语言环境jdk的安装和环境变量的配置
  7. HanLP: Han Language Processing
  8. 数据结构折半查找例题_查找(习题课)
  9. 基于阿里语音识别(ASR)C/C++ SDK2.0编写的unimrcp中间件
  10. java实现中文数字与阿拉伯数字互相转换
  11. 怎么让蜘蛛喜欢你的网站
  12. U盘拷贝4G以上的文件(非格式化)
  13. TP问题现象分析和解决方法汇总
  14. Java匿名内部类的用法(简单教学)
  15. [渝粤教育] 西南科技大学 投资项目评估 在线考试复习资料
  16. JavaWeb开发:历史变更记录(基于SSM框架)
  17. 不要让未来的你,讨厌现在的自己
  18. 学习笔记:CODESYS(顺序功能图SFC)
  19. apk改之理 转java_冷宫:Apk改之理下载地址及说说其它
  20. FreeSwitch 终端命令详细介绍

热门文章

  1. MATLAB运动目标增强
  2. 如何对U盘文件数据加密,U盘加密方法教程分享
  3. java标签outer,java outer
  4. 三代测序的简介和原理
  5. 计算机系统1 实验 LC-3 Nim游戏 子程序
  6. 大厂必考深度学习算法面试题
  7. 电脑桌面变成了计算机,电脑屏幕黄怎么调整_电脑屏幕突然变黄如何恢复
  8. linux的iso镜像文件,linux系统安装iso文件方法
  9. php中预定义常量的,php预定义常量_PHP教程
  10. linux 发送邮件到163或者QQ邮箱