学习第二个编程语言一定比学习第一个快吗
这里我们说的是平行语言,即那些能够实现相同功能的语言。如果你第一个学习的java,第二个是javascript,这当然没有可比性。人们都说,当你有了一门语言的经验后,再学习一门新的语言就非常容易了。曾经我也是深信不疑。因为我觉得当你用第一门语言开发了一个项目,你了解了开发项目的过程与思路,以及其中需要用到的那些技术,再用第二门语言开发时,因为你有以前的经验。那么开发就应该是非常快速的。但是,最近用PHP来做那个购物网站,我觉得有点问题了。先说一下我的背景吧,我学习了一年java,用java做过几个小的项目,主流的java框架还是比较熟的,虽然说最近这四个月基本并没有写java代码。java开发应用时,编译的过程,以及服务器不能热部署的问题让我很不爽,于是我就转到了这种解释型的语言:php和python。再刚开始用php时,我发现开发起来是很爽的,再也不用写完源文件就编译,重启tomcat或者weblogic等服务器了。现在只需要一台apache或者nginx服务器,甚至这些都不需要,有很多框架自带服务器。开发时,修改了源文件,只需要在网页中刷新一下。ok,everythingworkswell。我用php开发网站,用的第一个框架就是kohana,因为我觉得这个框架功能全面,从mvc到ORM都有。就选用了这个。直到这两天我想将构建好的对象以Json的格式缓存进Memcached。结果缓存的时候,我发现浪费了非常多的空间。因为通过观察我们写的kohana框架中的那些Model,我们使用var_dump将其打印出来,可以看到有很多无用的字段。这让我想起了用java的时候,那时候并没有发现一个对象还有这么多无用的元数据。而且,kohana框架自带的ORM功能非常有限,而且我实验了一下,竟然没效果!!!于是我就开始寻求新的ORM框架,发现了一个非常好的框架,就像java中的hibernate,这让我欣喜若狂,这个框架就是Doctrine。结果,学习了一上午,当我想将其整合进Kohana中时,去google搜。发现github上给出了整合方案。但是我看了好长时间,所有的方案几乎都看了,竟然愣是没看懂。不知道是外国人给方案的时候就是这样给咱们一个具体的步骤还是我的水平有限。结果,我就只能放弃kohana,来寻找别的框架了。以前做好的那些东西,都得重来。如果你的第二个语言是php,那就有一个问题。就是php中的框架是非常多的,每年都会有几个流行的框架。不管是mvc,还是orm,还是什么的,框架都有很多,将这些整合起来的框架也有很多。当初选用kohana就是因为其功能整合了mvc和orm。现在放弃Kohana,发现了另一个框架:symfony。这个框架也是很流行的。mvc和orm它都有,而且它的orm就是Doctrine!!用这个框架写了一个helloworld的例子看了下,发现它的结构很简单。比kohana的结构简单多了。看了它的结构,给我一种使用maven的感觉。使用maven时,结构就很简单,配置文件,源文件,静态文件等,该放在哪,就放在哪。而且,symfony还有一个自带的server,非常方便我们开发。当然,我也是刚开始认识symfony,只是简单的读了一下文档,写了几个小例子。到底是不是真的好使,我也不清楚。但是这个框架在过去的几年是非常出名的,应该不错。php的框架之多,就给我们的选择造成了问题。通过我上面放弃kohana的那个教训,你能看见如果框架选不好是有多麻烦。而在以前使用java开发时,著名的框架就那么几个,spring,struts2,hibernate,ibatis,slf4j等。当我们想要使用某一方面的框架时,从网上搜,结果一般只有一个,比如mvc,一般搜索结果就是struts2。而我们搜索相应的php,出现的结果就可能让我们眼花缭乱。包括使用python时,第一次想写一个图形界面,也是看到了好几个结果,也是在一个上面失败了,最后才转到pyqt。所幸这个用着还算是比较顺手。学习第二个编程语言真的不一定比第一个快,我认为。因为每个编程语言几乎都有和别的语言不一样的地方。而我们在学习第二个时,就很容易在这上面栽跟头。如果你是学习第二个语言,已经有一定的经验了,推荐你在学习时,还是找本有深度的书来学习,否则,你可能看一眼就不想看了。因为你觉得那些你都会。而且,你可能时刻受到第一个语言的影响。当然,学习第二个语言,还是轻松了不少。因为很多东西的内部机制你都了解了,处理流程都清楚了。这篇文章就当是我吐槽吧。毕竟因为一个框架的选择失误问题,就要推倒重来了。如果真的用symfony最后成功开发出来,倒也是收获了一个成熟的框架。有时间还得多看看别人写的代码,提升自己的功力。 北京白癜风医院的地址北京白癜风专科医院咨询转载请注明原文网址:http://www.gzdatangtv.com/bcyykf/1071.html |