前言
以前一直从事的PHP的学习与开发。但考虑到python语言在科学计算以及机器学习方面的优势,准备上手学习学习。
我一直是采用一种需求驱动的学习模式。即 为某个需求而学习。这不,前一段时间特别想实现一个 数据在线可视化抓取处理可视化显示的 一个需求,而 在php 端无法找到一个好的解决方案的情况下,开始 学习python,以及 Django。
嗯!当然,目前还在浅显的学习状态中。
好了,开始正文。
正文
首先,从php到python 有一个语言的过度。php属于C语言系,风格上面与c是比较像的,当然,和javascript也是有点像的(主要指的是函数声明,以及变量方面,额,脚本语言其实都挺像的……),而python的语法就有些独特了,虽然很多人说它比较简洁,但是对于我这种习惯了大括号,分号的人来讲,还是有些别扭的。不过值得庆幸的是,python是可以添加分号的,这一点还是挺爽的。
再一个,一些关键字的过度。如:
从funciton 到def
从$ 到啥都没有
从echo 到 print
从数组到列表到字典到元组……
然后就差不多了。
总的来讲,计算机编程语言还是有很多相似之处的,尤其是这种 同属于编程语言顶端的 高级脚本语言,在重重语法糖的包裹下,已经很 符合人类思维力,甚至开始符合人的感性思维。
还有一点,就是面向对象的过度。
python到底还是取消了很多的东西。刚开始看也是懵比的。因为 它的面向对象,所有的方法中都要 写入一个 self 参数,这个就不能默认添加么?还有就是取消了 权限修饰字,转而用 方法名称的不同来 区分。意思其实是一个意思,不过还是比较另类的……
说完了语言本身的一点点差异之后,再谈 在这个语言之上的 web 开发框架。
首先要说明的是,ThinkPHP 是我常用的一个框架。所以学习其它框架总是会去用ThinkPHP的 思想去理解。
在刚接触到Django的时候,总是有一些不可理解的事就是,它的框架文件里面居然就只有这么一丁点文件。而不像thinkPHP那种,具有一个很完整的框架包,就像个大引擎一样放在那里,让人很放心。
不过后来还是明白了,其实Django也是有很多库文件的,只不过它和php组织文件的方式不同。它是把Django框架放在了系统目录下,而在项目目录当中只有需要项目里面用到的文件。这一点,当正真明白了,感觉还是很爽的。再也不用 看 那些 永远也不需要打开 却占着目录的文件了。所有的文件基本上都是 必要的,治愈强迫症的有么有……
在这里就不得再说说Python这点的好处了。由于 其库文件并不需要 放在服务器 www 目录下,对于其 项目也是少了很多的 限制。而且,python 的import 库 是可以在python文件中引入任何 需要的库的,这就使得开发另外的组件非常的方便。而非像PHP 那样 需要 C语言或者C++去开发扩展那般麻烦(当然,并不是说这种方式不好)。在ThinkPHP 当中,引入第三方库是需要经过好大一番折腾的,而PHP 加入第三方扩展也是一件 麻烦的事儿。这也或许是PHP 相对.net ,相对java 不好的一点。简而言之,就是扩展起来比较麻烦。
想想用 PHP去 创建机械学习模型和用python创建机械学习模型的 难易程度,这一点便很突出了。
当然了,相对于python,PHP开发网页似乎是更简单的。只要安装好wamp,在www下创建php文件,打个echo,浏览器上就可以访问了。而且,其web框架非常的成熟,而且框架数量 非常的多,配合composer,php依旧是web开发里面的老大哥。(在php里面,很多需要到的库都有,除非是神功初成想要更上一步,不然,扩展开发还是有一段距离的……)