这些年我用过的编程语言

好久没做总结了,今天闲来无事,写写最近一段时间在编程语言上的体会吧。

c/c++

c/c++在操作系统底层方面的优势是无疑的,因为操作系统本身就是用c写的嘛。
项目体验:
去年,还在望京的时候,在公司做一个动态二进制安全调研类的事情。
当时做的实验项目主要的技术流程是:
1. 底层用c/c++去instrument操作系统的进程。
2. 在进程的运行时执行流dump到一个文件里。
3. 用python去分析这些文本格式的执行流。
这个项目,让我对操作系统的架构有了清晰的认识,写代码时,很容易想的到程序是怎么使用cpu,内存和硬盘的。

java

java作为一门的服务器语言,运行速度相比python/php较快、稳定性也较高。关键是java有很多成熟的类库,使得我们在开发项目时,更加得心应手。
项目体验:
java这门语言几年前就接触过,真正使用java是做一个java web项目,由于之前从来没有接触过java web开发,所以我首先高屋建瓴了解下javaweb的技术架构。
因为我已经很熟悉http协议和网站开发,所以看到java web中的servlet, jsp,struts2,springMVC,MyBatis等技术时,觉得很容易理解。由此也可以看出,java是一门很容易上手的语言。
java作为一门静态语言,相比python,php来说,程序稍显冗长(比如最常见的几个集合类List, Map的使用),不过程序写出来,也很易读。
作为静态编译型语言,除了运行速度快,编译运行调试方面javaweb也很容易。基本上,只要在eclipse中编译通过,然后export一个war包到tomcat服务器,程序运行就没什么错误。java web运行时调试项目也很容易,只要一个“tail -f *.log”命令就行了。

javascript

javascript绝对是浏览器上的主宰语言了,前端工程师必备技能。
项目经验:
做过一个网站项目,技术路线走的是:前端angularjs,后端web2py。
这两门动态语言,我用起来非常的舒服。尤其是在数据表示上,python的dict和javascript的object,甚合我意。
写程序前,先仔细想解决方案,等想清楚了整个架构时,可以像写作一样,把python和javascript写出来,由此可见这两门语言的易读。
但实际应用时,javascript还是有一些坑,比如:
1. 只有显示在变量前加上var,才是局部变量。
2. 面向对象用起来难以理解。

python

python一直被认为是一门脚本语言,我想主要是因为python实在是太好用,程序写出来,太容易理解了。
项目经验:
说一下我在做一个中文分词作业时用python的体验吧。
我做的中文分词的基本步骤是:
1. 得到一个中文句子的全切分词图,词出现的概率作为权值。
2. 利用最大概率原理和图论,求全切分词图的最佳路径。
3. 利用HMM原理,去识别未登录词,改善基于词库(最大概率)分词的效果。
做这个项目时,使用python可以快速实现我的想法。在写程序的过程中,基本上一路通顺,遇到的最大问题,就是python2.7对中文的支持吧。

php

用php写网站服务器程序,怎一个爽字了得。
项目经验:
我对这门语言的认知,也是因为做过一个网站项目。
网站的后端技术路线走的是:ThinkPHP+apache+mysql(典型的网站架构)。用起来特别方便。ThinkPHP在MVC和数据库的curd上都提供了很好的封装。
php的array用起来真的很方便。和python的dict,javascript的object一样。存取数据,转化json都很棒。php不愧是是写网站后台的很好选择啊!

lua

lua很精简,可以方便地嵌入到c/c++的程序中。
项目经验:
接触这门语言是做一个手机客户端的项目。
客户端的技术路线是:quick-cocos2d-x(cocos2d-x-lua)。
这是我第二次用cocos2d-x,前年做游戏时也用过,不过当时是用c++开发的。
我一开始看到lua写的代码,就有种似曾相识的感觉,因为lua语法看起来完全是python+javascript的结合(c语言一族嘛!也难怪)。lua的table和javascript的object长得很像,lua的函数也简直就是javascript附身。
实际使用quick-cocos2d-x写项目时,最喜欢的地方是:不需要编译啊!以前用c++,改一个被依赖很多的文件,重新编译,要等几分钟左右(一杯咖啡都喝完了)。现在改完lua代码,直接打包成apk(或者先编译成字节码,秒编译),测试运行,真的很快很方便。

你可能感兴趣的:(编程)