忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
1234下一页
最近访问板块 发新帖
查看: 9862 | 回复: 35

TIOBE说Perl已死,我却入坑,但不后悔 [复制链接]

论坛徽章:
0
发表于 2018-04-29 00:51 |显示全部楼层
本帖最后由 flywithperl 于 2018-04-29 01:15 编辑

TIOBE Index for April 2018April Headline: Perl is having a hard time
At the moment there are 2 programming languages in the top 20 that have lost more than 3 positions in 1 year's time: Objective-C and Perl. The reason for the fall of Objective-C is clear. Apple abadoned Objective-C a couple of years ago and replaced it by its successor Swift. Moreover, mobile app development is moving to platform independent languages and frameworks, so even Swift, which is only available on Apple's systems, has a hard time. But what about Perl? Till 2005 it was the most dominating scripting language in the world. In 2008 we said in an interview with Dr. Dobb's Journal that Perl would go extinct based on the trend we saw in the TIOBE index at that time. After this a religious war started with Perl diehards who claimed that this won't happen and that the TIOBE index was being gamed. Stevan Little gave a ground-breaking talk in 2013 called "Perl is not dead, it is a dead end" indicating that once software engineers leave the Perl language they will never come back. Personally I think that the fork of Perl 6 (and its delays for decades) together with the unclear future of what was going to happen to the language was the main reason for engineers to look for alternatives such as Python and Ruby. And still today the Perl community hasn't defined a clear future, and as a consequence, it is slowly fading away.
IMPORTANT NOTE. SQL has been added again to the TIOBE index since February 2018. The reason for this is that SQL appears to be Turing complete. As a consequence, there is no recent history for the language and thus it might seem the SQL language is rising very fast. This is not the case.
The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.
The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system. The definition of the TIOBE index can be found here.
TIOBE 2018排名.png

虽然看到此消息,有点失望,但我却不后悔,原因是:
我坚信Perl是我所寻找的,适合我的需要的脚本语言,因为我需要的正是方便与C/C++配合使用的脚本语言;
同时虽然国内学与用Perl的人更是少,但我还是坚信:
Perl仍然将长期存在,因为其本身的瑞士军刀,万能胶水特色,深入到语言中的正则表达式,方便通过C扩展,或者嵌入到C中

1)我在学校学的程序设计语言是C,毕业设计也是用C写程序,毕业后到现在都一直用C/C++做开发。
2)2000年左右,在perl正火的时候,在书店看到有不少介绍perl的书,然后虽然一直没有学习perl,但心里却开始记住这门脚本语言了。2002年左右买了一本“Perl 5 详解”,然后没办法看下去,一直放着。
3)近几年越来越觉得C/C++开发的程序虽然速度不错,基本没有干不了的活,但就是干着累,很多东西都得一点点码,内心非常渴望学一门可以快速开发,与C/C++配合着用的脚本语言。
期间考虑过PHP,JAVA,VB,C#与Perl,最后选择了Perl,原因是多方面的,下面回过头来说说当时自己的想法:
1)PHP
我对PHP的了解不多,对其的应用觉得主要还是WEB开发,而我需要的是与C/C++配置,做系统开发,所以没多考虑就放弃了;
2)JAVA
JAVA的好处就不说了,我只说说我觉得不好,让我放弃的原因:
1. 什么都是对象,让我觉得很不习惯
2. 类库太多了,基本就是比类库的学习,对上了年纪的我不合适
3. 速度太慢
4. 做小项目也要大环境
3)VB
放弃的原因:
1. 由于用C/C++久了,对VB的控制语句很不习惯
2. 界面开发基本是属性设置,要记得太多
4)C#
放弃的原因:
1. 也是巨大数量的类库
2. 觉得就是JAVA的竞品
5)Perl
这个因为是最终选择入坑,就先说选择的原因:
1. 语法和C/C++太类似了
2. 网上可以找到很多(经典)书籍
3. 正则表达式太强大了,都成了RE的代名词
4. 字符处理很强大
5. 真正的“瑞士军刀”!
可以通过C进行扩展,也可以嵌入到C程序中;
即可以结构化方式编码,又可用对象方式编码;
可方便地在模块与程序间转换;
可以应该到许多应用情景中去,如网络管理,WEB开发,系统管理
6)PYTHON
这是补充一说下Python
我花了一个星期学完了Python的联机"The Python Tutorial",然后就真心学不下去了!
虽然说现在Python是Java之外最热闹的脚本语言,但用惯了C/C++开发的我,真的没法坚持!
1. Python是用空格的缩进作为语法标识的
写代码太累了,还会习惯性的用TAB,结果看不出来,却是错的;
2. Python也什么都是对象
C++也是面向对象编程,但不是强对象编程语言,虽然有些是面向对象编程自然,但有些还是面向结构更习惯
TIOBE排名高,说明学的、用的人多,大家觉得有前途;
下面针对当前的排名前几名说下个人看法;
1. JAVA
排名第一,因为学校教学用JAVA很多年了,做电子商务的积累也很久了,加上JEEE架构已经很成熟,大量的类库,可以边学边用,边用边学
2. C
C目前还是性能最好,跨平台最强大的编译语言,加上UNIX等等系统本身大部分就是用C写的,学校的操作系统教材基本清一色用C写的
3. C++
作为支持面向对象,除C外性能最好的编充语言,功能对C作了非常大的扩充;
会C的不一定会C++,但会C++的肯定会C
4. Python
主要是得到大公司的支持,加上AI近来成为热点,其有不少AI相关的库,在国外也开始成为教学语言(因为其缩进的语法,就排版来说,是非常美观的),而语法与功能的唯一性,方便了团结的合作
5. C#
JAVA的竞品,得到微软的大力支持与推广,大量的类库
6. VB .NET
得到微软的大力支持与推广,入门方便
7. PHP
直接嵌入到HTML之中,对WEB的开发非常方便
8. JAVASCRIPT
动态浏览器等WEB需要
9. SQL
只知道关系数据库都用SQL,没了解SQL作为一门语言的情况
10. RUBY
不了解,国内书好象也不多
...
...
16. Perl(去年排名10)
伤心了!入了坑,才发现已经如此不被人爱!
那perl什么这么不被人爱?下面来说说个人的感受:
1. Perl的特殊变量太多了,刚刚学编程的人,看着头就晕了
2. Perl的特殊用法太多了,新学的很容易有挫折感
3. 函数根据标量与列表环境返回不同的结果,让我晕了好久
4. Perl可以应用的情景太多了,但相关书籍与教材都已经是多年以前的了,让人觉得已经跟不上时代
5. Perl6的出现,让人觉得Perl5是不是已经马上要被放弃了?!
6. Perl6现在终于面世,但相关的书籍与教材还没有跟上,如何学习与应用还不明了
不知各位是怎么入手学习Perl的?又如何把它应用到工作中去的?
我最近的学习过程:
学习语法:
1. perl语言编程(第3版)
2. perl语言编程(第4版)
觉得语言作者写的这本书,确实经典,但也信息量太大了,一时不好全部掌握
加深理解:
3. Perl语言入门(第六版)
4. 精通Perl(中文版)
这两本书书虽然不厚,但对讲的专题,讲得很细,很多都是“perl语言编程”没有深入讲解的
后来发现,网上的建议是:
先看“Perl语言入门”,再看“perl语言编程”
正则表达式:
5. 精通正则表达式(第三版)简体中文
讲得太好了,确实是RE的经典!
测试:
6. Perl.Testing程序高手秘笈
讲得很好,讲了很多其它书没有讲的技术
XS与Perl嵌入:
7. 高级perl编程
这本书,我看的是第一版中文版,觉得写得超级棒!
是我看过的Perl书籍中,XS讲得最好的书!
让我对Perl与C的配合使用,心里有了个底!
数据库编程:
8. Perl DBI 编程
觉得写得很细,但没有讲存储过程调用的问题;
PerlMonks上找到了存储过程调用的使用办法
编码风格:
8. Perl最佳实践(中文版)
讲了许多为了大项目开发,建议的Perl风格,很多内容在C/C++中其实也是适用的

以前还看了:
Modern Perl
Perl.by.Example (4th Edition)
Perl网络编程(基本和封装的C接口一样的函数,但参数有部分不同)
Think in Perl
CGI编程 使用Perl

论坛徽章:
0
发表于 2018-04-29 01:05 |显示全部楼层
回头看学习Perl的过程,觉得比学习C还要累,甚至比C++也要累;
但现在再去看Perl,觉得又是非常的亲切,好用!

比如字符变量多,记住与理解后,就象觉得写代码会方便很多;
Perl对面向对象编程的支持,很特别,但也很方便实现与使用;
当你觉得Perl的标准库不够用时,有大量的CPAN库可以使用;
甚至你完全可以回到C,编写XS扩展模块;
又或者,可以在C中购入Perl解释器;

论坛徽章:
0
发表于 2018-04-29 01:13 |显示全部楼层
Perl最Cool的地方是,可以动态生成代码,并通过eval执行代码!

对于Perl程序员的三个优点:懒惰,急躁,傲慢
实际是正话反说:
懒惰=>要尽可能(从长期的角度)少做东西,那么就是写程序,让程序为我们做,自动做!
急躁=>就是要尽快行动,别光想不行动
傲慢=>就是相信自己(的能力),做最好的设计,做最好的产品!

论坛徽章:
0
发表于 2018-04-29 01:24 |显示全部楼层
关于Perl6,我觉得从理念上来说,是很好的,但因为缺少书籍、教材,缺少样例及项目;
加上刚刚出来稳定性问题肯定没有Perl5好,一段时间内,还是会使用Perl5,而不会转而学用Perl6;
等Perl6的书籍、教材样例及项目都大量出来后,应该会有不少新人入坑;
而之前用Perl5写的代码,完成可以通过Perl6直接使用。

作为新人,先写这么多吧。
这里抛砖引玉,希望各位朋友可以进来聊聊perl有关的话题。

论坛徽章:
39
技术图书徽章
日期:2018-08-21 13:30:492015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2018-08-21 13:30:242016科比退役纪念章
日期:2018-03-07 11:23:33
发表于 2018-05-02 09:06 |显示全部楼层
perl是好语言,不过LZ也没必要一棵树吊死
perl的衰落,不主要是语言特性,而是未来不确定导致的生态衰落。
这个是不可逆的。
你说的那些特性,比如动态类型,动态反射,很多不是perl独有的,而是脚本语言的共同特性
要知道,perl的真正财富是cpan.它延续了perl10多年的辉煌。
但是现在热点已经转到github,pypi,npm去了.
一些开源组件,比如kafka,spark,提供了python甚至php的api,但是没有perl的。
tiobe排名并不重要,golang排名还在perl之后
问题是,perl是真的衰落了。
幸运的是,学好了perl,再学其他的脚本,还是很容易的。
至于说perl会不会死,要看perl6了。
python2坚持了这么多年,终究还是被python3给替代了。

论坛徽章:
0
发表于 2018-05-02 12:21 |显示全部楼层
回复 5# laputa73

Perl在国内是早就死了,没一个活跃的论坛,用Perl的人总量也不大;国外,应该是以前的老人还在用;

Perl本来的目标是,易学易用;
但个人觉得虽然一般的问题需要可以即学即用,但要全盘把握,却不容易,或者说很难;

赞同你的观点,学会了Perl再学别的脚本,会相对容易得多

个人观点:
语言本来就是用来解决问题的,只要能解决自己面对的问题,用什么语言都不是问题,适合自己的才是最好的

论坛徽章:
0
发表于 2018-05-03 14:16 |显示全部楼层
Perl在中国只能是加分项,不是工作项。

即使Perl很好,JAVA, C#, C, C++, PHP, Python, Ruby, JavaScript, Go全都轮完了都到不了Perl。

不要把Perl当第一门语言,除非你是搞生物的,搞安全的,学学Perl还行。

论坛徽章:
0
发表于 2018-05-04 07:24 |显示全部楼层
回复 7# asthman

,我的第一语言是C/C++,由于C++是C的超集,只有必须纯C的环境才用C,大部分环境是C++;Perl算我的脚本第一语言吧,但主要还是和C/C++配合用,处理C/C++比较难处理的问题,比较容易变化的问题;

论坛徽章:
0
发表于 2018-05-04 07:44 |显示全部楼层
我觉得Perl不错,其实是因为其可以和C/C++很好的互补,进行扩展或嵌入
对我来说Perl就是一把随时可以用的瑞士军刀,一个可以面面具到的多面手

而对Perl的学习,与原来C/C++的知识,没有本质上的冲突
而不少其它语言,在语法上容易让原来用C/C++的人搞乱

就目前Perl的功能对我来说,已经足够,当然不拒绝更好
所以,就算Perl就这样停止不前,作为配合工具语言,而没什么可怕的
当然Perl每年2次升级从来没有停止过,所以目前就算进步小,也是在进步中
比如据说最近的发布,已经只收了Python的“squares = [x**2 for x in range(10)]”这样的列表表达式,
但我还没有确认,然而各语言的互相借鉴发展,一直都没有停止过
就算真有那么一天Perl真死了,到时还是可以决定是否需要学习一门更好的更合适的语言

语言的学习,语法必须成为习惯,如果不习惯,用着很别扭,但掌握不难
难的是其应用的环境,在环境中需要的各种技术与配合组件的理解及使用

论坛徽章:
39
技术图书徽章
日期:2018-08-21 13:30:492015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00平安夜徽章
日期:2015-12-26 00:06:30技术图书徽章
日期:2018-08-21 13:30:242016科比退役纪念章
日期:2018-03-07 11:23:33
发表于 2018-05-04 08:31 |显示全部楼层
perl就是脚本化的c
至少我一直是这么用的。
用了perl以后,c真的都很少能用到了。
从此和Makefile说再见了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP