`
zscomehuyue
  • 浏览: 422241 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

我眼中的Python 引用

阅读更多
我眼中的Python

python这种编程语言我很早就听说它了,早在1998年,我在玩Linux的时候,就接触过它,但是我对python的印象仅仅停留在它是一种流行的面向对象的脚本语言的认识上。

zope,基于python的app server,早在2000年我就已经对它如雷贯耳了,但是我对zope的印象仅仅停留在它是一种类似Apache HTTPD Server,AOL Server之类的web server上。

今年ozzzzzz多次向我提到python和zope,听得我耳朵都起了老茧了,dlee又建议我开设python版面,虽然我没有答应,但是架不住朋友们的左劝右劝,终究对python这门语言有了好奇心。

几天前,当我漫不经心的浏览了python和zope的网站之后,我突然有了一种“众里寻它千百度,那人却在灯火阑珊处”的感觉,悔不迭错过了那么多次相逢的机会。

对于软件开发,我和ozzzzzz有一个共识,就是脚本解释弱类型语言在开发效率上远远超过编译强类型语言,从软件开发角度来说,脚本语言具备天然的开发效率上的优势,这是由语言的内在属性决定的。

例如我们可以比较一下Web编程使用PHP和Servlet/JSP,比较一下Windows桌面应用使用VB和VC/Delphi,比较一下Unix环境下面Shell和C/Java,比较一下数据库环境下面的PL/SQL和JDBC/SQLJ。

我虽然使用Java开发软件已经有5年的历史了,但是能不用Java的时候,我一定不会用Java的。如果搭建一个小型的网站,我一定选择PHP 而不是Java;如果针对数据库的小型编程,我一定使用PL/SQL而不是Java;如果是桌面应用,我一定选择VB而不是Java;如果是Unix环境我宁愿选择shell,perl甚至PHP,而不是Java。

做为一种严谨的,编译式的,面向对象语言,Java总是给我一种须正襟危坐,须一板一眼的按照OOAD的原则编程,才敢在键盘上敲下字符的感觉。即使编写一个最小规模的程序,我也不能够接受把所有的code塞到main里面的做法。Java似乎以不怒自威的威严使我不敢随意编码,不敢玷污Java 的严谨。于是我即使写一个很简单的JDBC程序,也要一板一眼的try catch finally,一层层的处理Connection,PreparedStatement和ResultSet。

诚然,如果开发规模比较大的项目,或者开发自有的软件产品,必须应该按照严谨的方式,此时Java也是最适合的语言。但是我不想活的那么累,很多人也不想活的那么累,于是大家都怀念起来脚本语言的好来。对于小规模的应用,使用脚本语言快速简单完成的事情,当你使用Java的时候,你陷入了过多的层层代码包围中去。于是groovy出现了,bean shell出现了。大家终于明白,编译语言不是软件开发的全部,脚本语言才是最适合程序员的语言。

我喜欢脚本语言,喜欢的没边,Java是我的职业,但是我从来都没有在内心深处喜欢过它的语法,我更加讨厌C++变本加厉的复杂。我钟爱的语言包括小学就接触的BASIC和Logo,毕业以后才掌握的Unix Shell和PHP,Perl,PL/SQL。几乎我接触过的每种脚本语言,我都有浓厚的兴趣和感情,除了VBA是一个例外。

看看Java里面长长的对象,方法和属性命名,看看Java编程冗长的调用语句和愚蠢的对象赋值和经常长达几十行的getter/setter,我会时不时从心底泛起恶心的感觉,虽然我经常也是这种恶心感觉的制造者。但是恶心归恶心,我知道Java有它不可取代的作用,PHP有它无法弥补的缺陷。大部分脚本语言,包括perl,PHP,PL/SQL,VBA都不是真正意义上的面向对象编程语言,即使包括了部分面向对象语言的特性,这注定了脚本语言不能够承担大型项目的开发,甚至也不能够充当良好的可复用的组件存在。

所以我很遗憾,我欣赏PHP脚本语言的开发效率,我也欣赏Java的面向对象的能力,我欣赏PHP的低部署成本高可靠运行,我也欣赏Java App Server带来的开发复杂运算的强大能力,但是鱼与熊掌不可得兼。

直到我看到了python和zope,我终于找到了梦寐以求的东西,兼有脚本语言开发的高效率,兼有低部署成本的易用性,同时又有完备的面向对象的强大支撑能力,同时又具备完善的强大的app server支持。最令我生气的还是plone,这个运行在zope之上的软件,你可以称之为portal,或者称之为cms,或者其他的什么名词,但是我知道它几乎可以实现任何网站想要实现的功能。默认安装下,这个东西很像confluence,一个Java的商业的cms,但是比confluence 功能强大的太多,可定制性,可开发性又强的太多了。plone在默认安装情况下你就可以把它当做cms来用,比较类似***nuke类软件 (PHPNuke, PostNuke, JBossNuke,...),通过插件的扩展,你可以让plone里面集成了forum,blog,wiki的功能,再加上plone本来就支持的 WebDAV,功能强大的基于文档的权限控制,多用户多组的管理,你可以在很短的时间内实现一个全功能的门户网站。可笑的是,我从去年到今年一直在考虑把 JavaEye建设成为一个集成forum,blog,wiki,cms功能的网站,甚至雄心壮志的想要做一个这么的软件产品来,但是现在我发现 plone已经漂亮的实现了这一切,最令我沮丧的是,ozzzzzz在听过我的软件产品计划之后提出一个用关键词来组织网站内容的设想,结果我发现 plone已经这样做了,我能说的只有惭愧!

我只能感叹自己没有在一年之前就发现plone,否则的话现在的JavaEye将完整的使用plone来架设。更令我惭愧的是,当我刚刚意识到 zope/plone的价值的时候,上海已经有人成立了专业的zope/plone解决方案的软件厂商,并且拿下了好几个大型的客户,(http: //www.zopechina.com)。有时候我们真的不能把眼睛盲目的盯着大厂商强行推广的标准了,应该好好的审视自己真正需要的是什么,并且围绕它构建自己的核心竞争力,否则我们只有永远做IT行业食物链最底层的命运。

ozzzzzz曾经对我说,zope是B/S应用中的VB,快速原型开发中小型企业应用的最佳武器,我现在真切的理解了他的话。我觉得我们确实不能够眼睛光盯着Java/C#不放,也应该了解一下zope/plone,它应该成为中小型企业应用,特别是基于文档管理的企业应用的最重要的解决方案。

zope/plone虽然很好,但是我知道它不会如Java/J2EE,C#/dotnet那样在国内成为一种主流的软件开发解决方案。原因就在于国内的软件开发行业长期处于国际分工产业链的底层,缺乏创新意识和开拓的精神,而往往满足于跟随跨国公司的标准,啃啃人家剩下的肉骨头。位于食物链顶层的厂商,例如MS,IBM,Sun,BEA,CA,Oracle等等,争夺的是标准。他们是规则的制订者,制订好了规则,放大家进场,他们负责收费,钱收的差不多了的时候,他们又重新竞争,制订新一轮的规则,继续坐地收费。很多时候,市场的真实需求并没有被真实的体现,真实的需求被顶级厂商掩盖了。他们创造了一个市场需求,有了市场需求,就有钱赚,赚的差不多了,就摧毁这个市场,然后创造下一个市场需求。因此本质上来说,IT行业就是几个寡头在博弈,不管谁赢谁输,我们都是输家,我们只是人家的筹码。大家可以回顾一下这些年软件技术发展的历程,寡头厂商制造了EJB市场赚大发了,寡头厂商了制造了ERP市场赚大发了,寡头厂商继续在制造着SOA,等着继续收钱。我们不能够被满天飞的技术迷惑了,我们不能被人卖了还替人家数钱。

所以多多关注一下我们真正需要的技术吧。
分享到:
评论

相关推荐

    一个软件牛人眼中的编译原理

    它涉及到将高级编程语言(如C++、Java、Python等)转换为机器可执行的二进制指令的过程。对于软件开发者,尤其是那些希望深入底层、优化代码性能或者设计自己的编程语言的人来说,理解和掌握编译原理至关重要。 ...

    PERL语言编程

    从 Perl 最早的文本处理语言开始,它已经发展成为一种非常复杂的,通用的编程语言,以及完整的开发环境,包括调试器,调节器,交叉引用,编译器,库,语法提示编辑器,以及所有其它“真正”的编程语言所具有的所有...

    基于MATLAB GUI与CNN的模糊车牌识别系统:从图像预处理到字符识别全流程解析

    内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。

    嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip

    嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip

    嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip

    开关磁阻电机技术参数与建模技术深度解析:4kW电机性能详述

    内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。

    少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip

    少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip

    四象限直流电机速度驱动控制系统PID控制仿真模型设计与实现

    内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。

    嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip

    嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip

    少儿编程scratch项目源代码文件案例素材-驾驶通关.zip

    少儿编程scratch项目源代码文件案例素材-驾驶通关.zip

    小区开放对周边道路通行能力影响的研究.pdf

    小区开放对周边道路通行能力影响的研究.pdf

    冷链物流路径优化:基于NSGA-2遗传算法与软硬时间窗策略的研究

    内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。

    少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip

    少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip

    基于STM32F030的无刷电机高压FOC控制方案:滑膜无感FOC技术及保护机制

    内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。

    基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf

    基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf

    嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip

    嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip

    少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip

    Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统.zip

    Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统

    C# WPF - LiveCharts Project

    C# WPF - LiveCharts Project

Global site tag (gtag.js) - Google Analytics