免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 11873 | 回复: 20
打印 上一主题 下一主题

perl or python? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-01 13:03 |只看该作者 |倒序浏览
谁能比较一下python与perl语言的各自有点和强项,缺点?
我要开发一个程序,linux平台,要将文本中的内容导入oracle数据库,
文本的内容要经过处理才能插入数据库,每个一段时间要执行一次,
所以希望性能比较好,
不知道哪种语言更适合写这个程序?
哪位高人能指点一二?
谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-08-01 13:20 |只看该作者

perl or python?

python对面向对象的支持好一些。它会自动区分一个对象和一个值,对象付值是自动传送一个指针/引用过去的,所以比较适合面向对象开发
perl的执行效率比较高,应该比python高。但是perl的面向对象编程比较麻烦,感觉写法上比较累赘。
感觉perl比较适合做一些文本处理的编程,因为perl对于正则表达式的处理比较方便,还有split/join等函数。当然上面提到的,用python应该也有,这方面我不是太熟。但是python比较适合一些大的面向对象项目的开发,比如做GUI等等的。
从你的描述,我感觉你的程序比较适合用perl来做

论坛徽章:
0
3 [报告]
发表于 2003-08-01 13:22 |只看该作者

perl or python?

另外,perl有比较成熟的数据库接口DBI,python不知道有没有。

论坛徽章:
0
4 [报告]
发表于 2003-08-01 13:33 |只看该作者

perl or python?

谢谢powerplane,我的程序其实比较简单的,文件格式是cvs,每行一条纪录,我只要将这些字段提取出来,加工后插入相应数据库表格中就可以了,想问一下perl里面有读.gz文件的功能吗?我的文件虽然是文本的,但是压缩打包的,可以直接读出.gz或.zip文件的内容吗?

论坛徽章:
0
5 [报告]
发表于 2003-08-01 13:51 |只看该作者

perl or python?

perl应该有相应的mod,去CPAN查查?
再不行,就用 `把一些gunzip的命令括起来,只要输出到STDOUT的,perl就可以把数据抓下来了。
我给一个例子你看看

  1. #!/usr/local/bin/perl
  2. @_=`ls`;
  3. print "$_[0]\n",
复制代码

这个是把ls的数据放在数组@_里头,然后显示数组第一个元素

论坛徽章:
0
6 [报告]
发表于 2003-08-01 14:19 |只看该作者

perl or python?

谢谢powerplane,感觉上perl比python速度要快,
请教一下perl在性能上比c慢多少?

论坛徽章:
0
7 [报告]
发表于 2003-08-01 14:38 |只看该作者

perl or python?

[quote]原帖由 "xugreat"]谢谢powerplane,我的程序其实比较简单的,文件格式是cvs,每行一条纪录,我只要将这些字段提取出来,加工后插入相应数据库表格中就可以了,想问一下perl里面有读.gz文件的功能吗?我的文件虽然是文本的,但是压缩打?.........[/quote 发表:
     

这种问题,用perl来解决是首选。因为这不是大项目,是程序。

读压缩文件用Compress::Zlib module。
详细信息请看置顶帖子里的此模块范例。

论坛徽章:
0
8 [报告]
发表于 2003-08-01 14:44 |只看该作者

perl or python?

原帖由 "xugreat" 发表:
谢谢powerplane,感觉上perl比python速度要快,
请教一下perl在性能上比c慢多少?
   

要看你要处理的数据量的大小。
以我的工作经验,处理百万行以上的,perl的速度就有些捉襟见肘了。

最好的办法是perl开发,然后再编译为bin execute。
因为你这个任务不太复杂,用perl内置函数就可以解决,所以编译会成功。

论坛徽章:
0
9 [报告]
发表于 2003-08-01 14:47 |只看该作者

perl or python?

[quote]原帖由 "powerplane"]另外,perl有比较成熟的数据库接口DBI,python不知道有没有。[/quote 发表:
     

当然有啦。

论坛徽章:
0
10 [报告]
发表于 2003-08-01 15:03 |只看该作者

perl or python?

谢谢大家,决定用perl了
不过也贴一篇关于python的文章,供大家参考
-----------------------------------------------------------------------
python也使用的是虚拟机技术,它采用虚拟机技术还在Java之前。
支持oop,也可以使用内置的对象实现象Java一样的简单编程。
与Java比:
python比Java还要慢。
开发效率更高,比Java快3-5倍。原因:使用了built-in high-level data types 和 d
ynamic typing。比如说多态的list和Dictionary.
具有丰富的内建语法支持但不擅长于处理底层的操作,甚至是数学运算。所以它作为一
种"glue" language更好一些。
和Java结合会更好,模块用Java实现,而用python把这些模块组合成应用程序。
也可以使用python来建立模块原型。Jpython讲python code生成Java bytecode.
与C++比较:
所有对Java的比较都适用于C++,开发速度大约提升到5-10倍。python擅长将多个C++书
写的模块结合起来。
Python shines as a glue language, used to combine components written in C++.

与perl比:
都是有悠久历史的Unix Script语言,现在都支持多平台。
但是设计理念不一样:
Perl强调对通用的基于应用的任务的支持(common application-oriented tasks),比
如说内建的正则表达式,文件搜索和报表产生。
python强调对通用编程方法学的支持,比如说数据结构设计和oop.
As a consequence, Python comes close to Perl but rarely beats it in its orig
inal application domain; however Python has an applicability well beyond Per
l's niche.
与tcl相比:
Tcl和python都可以作为应用程序的扩展语言,也可以作为应用程序的编程语言。
TCL在处理数据结构上比较差,传统上Tcl将所有的数据都存成了strings.
Tcl缺乏书写大型程序所必需的modual namespace概念。
一般而言,Tcl通过书写C模块来扩展。其中Tk是个很好的工具,python也对此支持。
Tcl 8.0提供了bytecode compiler来加快速度,并支持了少量几种数据类型。还不是很
好用。
与SmallTalk(oop的始祖)比较
python和smalltalk最大的区别是python使用的是更主流的语法。
和Smalltalk一样,python使用动态类型和动态绑定(dynamic typing and binding),
并且所有的东西都是对象。
不同的是,python区别内建对象和用户自定义对象,当前还不允许继承内建对象。
Smalltalk的数据类型集合标准库更精简,但python提供了更多的对Internet和WWW功能
的支持。
python在开发环境和代码发布环境上采用了不同的哲学。SmallTalk采用的是完整的Sys
tem Image方案(即包含环境和用户程序),python将标准模块和用户模块存在不同的文
件中。这样一个重要的结果是可以有多种方式为python程序添加GUI界面。
作为python开发的程序的范例,还有一个是Blender:三维造型软件,现在比较流行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP