这些年我用过的编程语言
好久没做总结了,今天闲来无事,写写最近一段时间在编程语言上的体会吧。
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(或者先编译成字节码,秒编译),测试运行,真的很快很方便。
这些年我用过的编程语言相关推荐
- JavaScript—— 前端编程语言
JavaScript 前端编程语言 http://caibaojian.com/javascript/ 转载于:https://www.cnblogs.com/highpointengineer/ ...
- ae编程语言as_AE开发 入门教程
此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法和步骤. 你可以在下面的目录下找到相应的样例程序: /DeveloperKit/Samples/D ...
- perl语言编程 第四版_2020年,5 种 将死的编程语言!
来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...
- 移动应用开发的六大编程语言
过去五年中,移动应用程序开发行业实现了跨越式增长,改变了全球业务运作方式.随着企业最近使移动应用程序适应其生产力,以及跨平台移动设备的快速创新,它呼吁移动应用程序开发人员使用一种语言和许多可重用代码为 ...
- 最新的全球编程语言,操作系统,web服务器等使用率分析报告
由www.w3techs.com 根据alexa排名前100万的网站数据给出的分析报告,并每天持续更新. 1.服务器端编程语言排名 http://w3techs.com/technologies/ov ...
- 怎样创造计算机语言,如何创建编译成JavaScript的编程语言
你曾经想过创建自己的编程语言吗?在本文中,我将演示如何使用免费工具和PEG.js解析器生成器快速编写编译为JavaScript的简单语言. 什么是解析器生成器 解析器生成器顾名思义就是一个基于语法.语 ...
- java nextline_Java编程语言基础的9根支柱
Java编程的基础概念包括:数据类型,分支与循环等. 1.HelloWorld 先从最简单的Java程序开始: public class HelloWorld{ public static void ...
- python属于哪种类型的语言_Python是什么类型的编程语言,有什么特性
由于近几年人工智能的不断发展,Python也跟着火了,因为Python是深度学习技术的主流应用编程语言.同时它的应用场景很多,被称为"胶水语言".下面给大家科普一下Python这门 ...
- 最早接触到的计算机编程语言——c语言
最早接触到的计算机编程语言--C语言 在经过入学后计算机导论的熏陶后,在大一的下半学期我终于接触到了一门语言,这也是我们最早接触的计算机编程语言--c语言. 在初学的时候,感觉这门课程十分晦涩,但是当 ...
- 区块链技术入门,都涉及哪些编程语言?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 关于区块链的技能掌握,提到最多的就是Go语言和C++.Java,但是很多人产生了歧义,认为只有这几种语言才可以,CDA数 ...
最新文章
- GWPY:利用公开的 LIGO 数据进行绘图
- CentOS6.5挂载windows共享文件夹
- linux7怎么查看rsync状态,linux – Rsync显示单个文件的进度
- git 忽略文件 .gitignore 以及规则
- new Fiori 2.0 theme sap_belize
- jmeter分布式压测原理简介1
- 关于在软件中添加扫描二维码功能的详细步骤及对应的资源。
- 怎么通过MQTT查看数据是否上云端_设备工程师们的福利来啦!JSON数据采集网关帮你实现云端对接~...
- html 分页_MySQL——优化嵌套查询和分页查询
- vue 指令 v-once
- Highcharts 显示图表
- 一维前缀和,二维前缀和,一维差分,二维差分(翻译)
- 触发器中的 Inserted表和Deleted表
- Deep Learning for NLP Best Practices
- admin is not in the sudoers file. This incident will be reported
- 《Python简明教程》一
- ue4蓝图运行顺序_UE4蓝图编程的第一步
- 第六章 平均绝对误差(MAE)与均方根误差(RMSE)
- 【运动控制篇】(7)路径跟踪及组合动作方向
- 开学至此时总结。(月末总结好像一直没写)
热门文章
- iss版本服务器读取_Netty每次读取客户端数量
- 微表情如何用计算机分析计算,基于微表情识别的学生课堂专注度分析系统研究...
- php include不可用,无法设置PHP include_path
- mac下安装mysql-pyhon_mac下安装MySQL-python模块
- 6-4cifar10数据介绍读取处理(下)
- 3-17Pytorch与线性代数运算
- java 字符串 常量_Java进阶——Java中的字符串常量池
- python如何下载pandas、时间延长_大pandas,python – 如何在时间表中选择具体时间
- android jni arm x86,使用houdini(Android模拟器)在基于x86的AVD上运行ARM库
- 用matlab求解信号的DFT,利用MATLAB实现信号DFT的计算