在昨天和前天的帖子中聊了以前接触过的一些程序语言,今天来继续吹牛逼闲扯淡。
(图源 :pixabay)
Shell脚本
如果看过我之前帖子的朋友,可能会知道我在Linux系统下工作了好长一段时间,参与过IDS、IPS、防火墙等诸多产品的开发和维护。而这些工作除了和C语言打交道以外,最常用工具就是Shell脚本了。比如说裁剪Linux的内核、生成最小系统、制作安装脚本等等。
为了胜任这些工作,我狂啃了一段时间Shell开发,什么awk、sed
乱七八糟的工具我用得炉火纯青。
最开始玩steem的时候,还不知道有python库,只知道有命令行工具。为了做些好玩的东西,我把抛弃了好多年的Shell编程捡了起来,玩得不亦乐乎。
比如在使用OLED液晶屏实时显示你的STEEM资产/Use the OLED screen to display your STEEM assets in real time这个帖子中,为了简化数据,我用如下代码处理数据:
~/.local/bin/piston --node wss://steemit.com/wspa balance abit | sed -e '/^+/d' | sed -e '/Account/d' | awk -F " " '{ print $2 " " $4 " " $7 " " $13}'
现在看起来,傻的不要不要的。
Lua
Lua也曾是我工作中最重要的伙伴。
在我的开发生涯中,曾经遇到过这样一组需求,将很多繁琐的人工工作自动完成。
比如说我们给一款电路板上的芯片下载固件,那么我们需要连接好电路板,然后根据芯片类型选择对应的下载工具,然后再根据固件的版本等选择对应的固件,再一步一步去执行擦除、下载、校验等工作。当时我们用到的电路板型号特别多,涉及到的下载工具也有好多款,固件版本更是相当混乱。
为了解决这个问题,我主持设计和开发了一个全自动的工具(除了连接硬件),用户链接好硬件后,程序会自动读取对应芯片的信息,然后根据板卡和芯片类型,自动启动对应的下载工具,自动加载文件,鼠标自动点击,一步步完成。
因为不同的下载工具,操作的步骤是不一样的,所以我设计了一门脚本语言,可以启动软件、选择菜单、点击按钮、输入和读取文本框等操作,而实现原理就是我在C++程序中集成了lua虚拟机,可以将对应的脚本读取进来然后通过C++去实现。
前些天去看了一眼Lua的官网,发现好几年没新版本释出了。而我,除了会写Hello World以外,也不会写什么了。
Python
其实工作以后,大多时候我都是用PHP和C++,包括后来在家给国外一家公司打工,都是用的C++。但是后来这个公司丢给我一个项目,用我们自己的模拟软件生成一堆数据,然后用这堆数据生成化合物的结构图。
而且为了让对方公司那边使用方便,需要用Python实现,这是我第一次使用Python开发。为了完成这个任务,我买了《Python编程第四版(影印版)》上下两册,一遍读书一边在网站上学习和查手册,最终终于完美的完成了这个项目。
那之后我用Python写了一些服务器日志分析之类的小脚本,就再也没接触过Python了。直到玩steem和bitshares才重新捡了起来,不过与其说捡起来,不如说重新学,毕竟举例以前接触Python代码已经过了五六年了。原本我以为再也不会用到呢,这世上的事谁又能说得清楚呢。
还是这个公司,后来又让我去改写一些科学计算方面的Fortran代码,每天和老外沟通如何用Fortran实现一个又一个功能,那段日子,苦不堪言啊。
其它
除了上述语言和工具外,其实还接触过好多语言,比如为了给IDS开发一个SNMP管理工具,特意学了一些Delphi 7编程,为了写些小恶意脚本入侵朋友和同事电脑特意学的javascipts和vbs(啥,我啥时候干过这事)至于Jave程序设计教程至今仍摆在我的书架上,哦,我曾经还会用Flash写程序。
(图源 :pixabay)
总之,乱七八糟的东西学了不少,接触了不少。但是说到精通,可能没有那门算精通吧。用一句话形容,就是样样通样样松,不过精不精通又何妨呢,至少我觉得学习、应用过这些语言和工具,让我曾经的生命更加精彩,这就足矣。
全文完
相关文章
This page is synchronized from the post: 渣渣程序员随便聊聊自己学过的编程语言(下)