入驻博客园,其实也是一个偶然的机会,在百度上搜索的时候,看到一些哥们写的文章,觉得蛮有意思的.突然觉得写博客记录下自己的在工作学习中的一些想法和做法也是很有必要的.之前一直是用evernotes这样类似的工具去记录的.但是重做系统之后,还要去安装一遍原来的软件,觉得很是繁琐.(光是布置开发环境已经很是头疼了.-_-!).尤其是在多操作系统的情况下,比如Linux,很是不方便.
对于Linux真的又爱又恨啊.搞开发的都知道,一些发行版的Linux稳定的令人发指啊,全年开机都不带挂的.但是其中涉及到日常生活的软件,还真是少的可怜,不要跟我说什么openoffice什么的.是的,做服务器那边的人,我们公司,都还是putty连接上以后,黑黑的vim,nano,vi.倒不是不会用那些工具.代码只要有个自动提示,高亮,我认为我是足够了.
原来到还是个货真价实的Java程序员,不知道怎么的就做了前端开发了,从此似乎远离了后台,也就远离了语言之间的是非争论,比如,Java跟php,ruby,perl,python.到底哪个更加的优秀.唯一要面对的语言就是javascript.当然现在混乱的还出现了dart,coffee script,不过这对于js来说,没什么太大的影响力.大约就是因为浏览器的支持问题.所以他们走的都是将源码解析成javascript源码.大约就是多套了张皮,简化了开发.
很多人认为js很深奥,似乎很难懂.其实没那么难懂,只不过js在设计的当初,估计也没想到现在这么人去搞,现在这么火.当时也就指望提高下用户体验什么的.减轻后端服务器的逻辑运算压力.简单的例子:
面向对象版:
class a{
function b(){}
}
Js模拟面向对象
function a(){
function b(){}
}
面向对象中,你可以认为a是个类,b是个函数.但是js中,你可以认为a是个类,b是个函数.但是由于js的思想很是宽松,你一样可以认为,a是个函数,b也是一个函数,或者a是类,b也是类.可能有童鞋说我这个写的不够规范,不够好看.同时也没法用,好吧,看改进版本的js类写法
function a(){
//this.test="test";
//this.testFun=function(){}
}
a.prototype.c="";
a.prototype.b=function(){}
这么写就像那么回事了吧.里面用了原型,闭包,this关键字什么的.当然复杂点,再写点继承的写法,加个call什么的.再复杂点讨论下,var num=58,var str="Hello World".什么的.我这里不是去讲js语法,只是想阐述一些事情.不要让固有的网上学校里面,那些思想洗了你的大脑.面向对象就一定比面向函数优秀?jquery,最优秀的函数库之一,并没有使用这样的写法.但是在YUI,DOJO之中大量的使用了面向对象的思想.这就是为什么jquery可以做的很小,而dojo,YUI体积显的稍显庞大.
思想其实也就是那么回事,要知道在编程的世界里面,一切都是自由的!Free在国内的翻译后很多人第一反应大约说是免费的.很开心,其实,Free真正的翻译是自由!!!没有自由的程序员,只能是码农.就是像是企业里面的java项目那样,本质就是一大堆"免费"的组件所堆叠出来的系统.然后配置配置就完事了.只是在找组件的时候花点精力去找到合适的.搞过两天j2ee,按照"说明书"大约就可以配置个ssh.而且还能满足各种企业开发的需求.程序员只要负责实现业务逻辑那块就可以了.于是就有了码农这样的称呼.大约现在的中国.程序员里面,一个扫帚在马路上扫下去,10个里面6个是java的,3个是php的,1个是前端的.
思想其实是自由的.至于面向对象,面向函数.如果我来翻译.对象式编程,函数式编程.这都是编程的方法体系.作为一个代码的爱好者,并且一直打算靠敲代码活下去的人,真心不想被什么思想去束缚自己的想象力和创造力.中国人造字造词还是很有深度的,所谓方法,解决事情的办法.方,又有方圆,方就是规则,束缚.仔细一琢磨方法有点画地为牢的感觉.思想怎么能被"方"了?
走出属于自己的路.这才是自由的,真正的程序员.
今天跟朋友偶尔提到了理解软件的本质,其实我还不敢妄加断言,我的理解就是,软件的本质其实就是数据!解决数据的问题的关键就是算法+数学,就是这么简单.如果理解了,就觉得其实编程语言就是扯蛋的.那些鼓吹JAVA的,鼓吹.net的,其实用C/C++能写,python能写,Java能写,perl能写,lisp也能写,.net能写,好像什么玩意都能写.然后就得出,大家一直放在口头上的,"语言只是个工具而已,重要的其实是思想".
编程思想的实现,我认为可以分为:
使用的编程方法>挑选个工具(语言)>设计点算法+数学>实现.(ps,前提建立在软件的需求分析已经完成)
明白了就明白了,没明白的还是没明白.初次写博客,欢迎拍砖,欢迎讨论.前提不要涉及人身攻击,万谢!