Blog

Blog

PHODAL

过去的那些语言

说说过去的这些事,我有点小怀念第一个语言了:logo,也就是海龟绘图。。。

 



2002年吧Logo 语言的原型来自 Lisp 语言,内置一套海龟绘图系统,很适合于儿童学习。一开始学的时候是小学5年级吧,没错就是这种语言中。那时候貌似是开始在WIN95在运行的,各种神奇。WIN95的系统没有完全离开DOS系统,因此很多问题而且很容易崩溃。启动LOGO的时候应该是个DOS应用程序图标,还记得的命令不是很多。有的话好像就rt,fd,lt,bk,home其它的貌似忘得差不多了,当然还有个叫repeat,话说,那个时候不是很喜欢递归,现在貌似也一样。虽然递归带来的好处貌似是有的,不过,递归还是挺浪费资源的。那时候也是递归用得比较多,循环用得比较少吧。不过,和现在接触的lisp还真是有些想像。但是,还是不一样的(Lisp,后面讲)。还记忆吧,KTurtle实现的一个KDE桌面上的海龟绘图。不过,还是都忘了,而且语法还是有区别的,不过比较容易理解的。

 

BASIC,忘记了先接触哪个BASIC了,可能是GAME BASIC或者F BASIC(好像是这个名字)。不过,我也忘了。这个是小霸王学习机上带的。这也让人想起那时候不睡觉RPG游戏的经历,几个人围一起。名字,不清楚了,其它有一个主角叫“海伦”好像被石化了,那时候有点吧。就是中吧。然后,也就是在那时候开始玩BASIC,老实说GAME BASIC这 个语言可以写游戏,那时候拿的手册,缺了一页,一页啊,关键的一页,有一些重要的函数。中途因为这个中断了那个小小游戏的开发,这也是一个超级玛莉的人物 吧。那时候实现了就是用遥控柄控制人物走啊,跳啊,子弹什么的,小小的地图。不过后来,在继续写地图的时候,把机子烧坏了。从那以后三年内就基本没有玩编 程了。想想那时候写的这个程序也有一百多行吧。不过,讨厌那该死的GOTO语句还有行号,有时候修改代码的话,就得修改各种行号。。

还有一点是那个卡只是个ROM,唉。。每次关机的时候代码都没了,下次开机还得重新敲,所以经常开机着,因此我们就可以解释那台游戏机为什么会坏掉了。后来,学校买了点QBASIC的书,一开始订的是C语言,后来不知道怎么改了。因此,C语言后来是到大一才学的。也就是去年咯。不过,那时候这家里没有电脑,因此QBASIC应该怎么样,而且那台游戏机也没有文件操作什么的。后来,也接触了VB。

 

二、三年之后高一开始玩C++,之间几年的时间基本没玩电脑了。然后主力都入在数学上了,后来厌倦数学了,那时候也是厌倦计算机的。

C++,接触C++的时候用的是游戏编程那个系列的书,C++游戏编程。没错,C++是一种优雅的语言,之前虽然没有接触C语言,不过C++程序员和C程序员好像之间的攻击很严重。这我就不是了解了,后来的C学得很情愿吧。不过,C++那本还真是错,感觉。特别是那个游戏引擎初始化后的,感觉神奇。那时候不是了解WINDOWS 的API,不过现在也不了解,写的东西不多,泛泛的了解整个游戏是怎么开始的。那时候结识了那个叫DEV C++的IDE。一个轻量级的IDE,不过好像很久没有更新了。

 

JAVA,初识JAVA也是因为那个系列的书,那时候看了些JAVA的示例,英文单词有点多,然后要敲的东西也很多。后来,再次接触到JAVA这种语言的时候是教务系统的代码。后缀是JSP,一开始还 以为是JAVA的分支。。。JAVA完全是辛苦了你的手指头的语言。而且,还要看SUN公司的脸色,应该是ORACLE的埃里森的脸色。同时受制于平台,虽然说JAVA说是多平台的,可是各平台上的虚拟机总有差距的。QT也是如此吧,但是,还好些。、

 

Visual Basic对VB的印像一直很不好,首先是依赖于WINDOWS的,或者说是微软公司的。其次,他的快速开发,确实是一种不错的开发。但是,把程序的一个个功能直接用拉拉推推的鼠标操作总是感觉怪怪的,而且一开始接触的时候不知道在哪里写代码。无语掉了。。。不过,总的来说还算可以的一种语言吧,至少开发个GUI很快。QT也可以,而且是跨平台的。至少在我的openSUSE、Kubuntu(删了)、Windows都能运行,至于跨平台的话,还是得编译多次。VB跨平台也是可以的,至少可以在多个WINDOWS版本嘛。

 

PHP,PHP就了解得不是很详细了,一开始接触的时候是因为一个论坛,那时候有人提供了一个空间和给我,然后我试着修改了一下其中的代码,感觉好像压力很大,因为了解不多,而且了解C/S什么的,也不了解各种数据库。后来,是上学期吧,继续了解一下,开发动态网页还可以吧,但是开发效率高,或许没有深入了解吧。而且,最大的问题是要自己一个个在WIN在架起来环境压力很大的,我没有成功过。后来用的是XAMMP,一个集成的PHP开发环境。不过,总的来说应该比一些语言快了许多,不过,这个是动态网站语言的开发首选,因为无论是*nix还是win的服务器上面都是可以运行的。廉价的解决方案。Linux+Apache+MySQL+PHP,也就是LAMP。。。。不过,用nginx代替apache的选择可以的。

 

汇编,汇编就是一种蛋疼的语言了。在高四的时候想了解整个操作系统是怎么工作的时候,才接触到这种语言的。买的是IBM-PC汇编的书。一开始觉得还算比想像中的简单些。但是后来一遇到循环,还有其它各种东西的时候开始头大了。一个简单的循环足够让我们写相当从时间了,于是我现在也忘了,汇编语言的HELLO WORLD是怎么写的。除了一开始接触的计算机操作系统用了一部份,还有后来的 Orangle's 一个操作系统的实现 也用了很汇编,还有的话,C语言是这书上看到的,不过直到大学才学的。汇编如他所说执行效率算是最高的,但是开发效率是最低吧。

 

大学,接触语言多了,多数都泛学吧,很多像HTML之类的,容易就可以玩了。。

 

C语言应该是最开始时候接触的语言了,办法计算机课上教的,虽说上课都是睡过去的,但是总得来说还可以吧。那时候借了本谁的书,花了一星期看完的,然后就上课睡觉了 ,一直不是很习惯清华大学出的书。计算机的话,首选国外O'Reilly出的书,确实很不错的选择,就是带着个要么是珍稀动物,要么是虱子什么的封面。国内的外一般首选机械工业出版社的,博文视1点的书也不错,然后是电子工业出版社,或者人民邮电出版社的。因为这几个出版社都是翻译国外的一些比较好的书,还有的也有一些很不错的国内的作者写的书。C总的还是忍了,无论是LINUX上的开发,还是单片机上面的那些都用得挺多的,用作者的原话来说这是一个系统开发语言。这也是多数人接触的第一个语言,我话,估计就第七、八种了。看来,再次OUT了。。。

 

*ML/CSS 网页制作就是各种神奇。还有ML,取了个这么好的名字。。Makeup Language标记语言,就是各种<name>开始的地方,</name>结束的地方,这种类型的还就是很神奇,可惜这只是种标记语言,不过可不是程序开发用的,如果是的话,HTML可以取代JAVA成为第一的程序开发语言。C第二,C++第三,已经稳定了几年了,每个月都有一个程序语言什么排行的。CSS就不是一种语言了,不过还是写在一起,反正都开发网页用的。。

 

Javascript,和java类似的是,java是浏览器大战时代而走向巅峰的,javascript则是因为web 2.0而受到越来越多的重视。javascript可不是JAVA的分支,只是名字得有点相似罢了,JS总的来说和C有点相似,JS是面向对像的。。就是重多区别中的一个。JS的用处就广泛了,比如注册时候用红字什么的提醒你,哪里错了。还以前讨厌的弹出广告什么的,总之,用处大得很。比如QQ空间就用得多了,Ajax,熟悉吧。。。还有谷歌地图、WEB QQ等等。JQuery 是一个轻量级的库,开发网页的时候可以考虑。

 

SQL,数据库语言,带了个L,唉。不过SQL在某种方面像是解释型语言吧。就是输入几个字符然后再敲个回车,不过数据库的用途还是挺大的。或者sql文件等等,不过各个产商之间还是有差异的,最好的应该是Oracle公司的,毕竟是第二大独立软件公司嘛,但是用的还是MySQL,其一是免费的,其二是用得广泛吧,不过MySQL好像也在甲骨文旗下了。。一开始接触的时候是教务系统的代码。。。

 

然后就接触(仅仅是稍微了解一下基本语法和用法而已)了许多开发网页用的语言了。。

Python,Python确实不错,挺适合的,至少相比于其它语言可以解放一下你的双手,还有你的时间,当然对于计算机的时间来说会有点小浪费了,不过,总的来就说是值得的。开发GUI的时候也挺不错的,用下QT什么的。不过,问题好像有的,版本问题吧,应该各个语言都有的。然后很适合当系统管理员的第二语言,在手机上玩python也是个不错的选择,至少在我的N72上还是勉强可以用的。至少在计算数学问题上也是个不错的选择,同RUBY一样,RUBY在手机上玩编程时候,计算一些数学问题时候也是可以的。同时,在SYMBIAN平台上的话,也有GUI,当然不是跨平台了,不过PYS60项目好像停止了,之前试着联系了其中的几个作者,但是都没有回音。自己从那些代码开始会成为一个问题的。

 

Python作为WEB开发的时候,用django作为 web framework也是个不错的选择吧。用得挺多的,而且挺方便的。我记得手机上的PY好像也是刷QQ游戏什么的,用挺多的。一开始了解的是GAE,然后时候好像没用过django,用Python作为GUI玩时候是暑假,老实说还是很划算的,还有的话,配合shell在linux下面还是可以很给力的。

 

*shell,就说是shell了,不知道这算不算,不过也是依赖着相同的能力。然后,*nix下面用得比较多,就是一个环境。

 

Perl,处理文本很是强大,所以一开始的时候是干嘛的,我就忘了,也懒得查了,一个语言学家设计的,处理文本很强大吧。所以啊,和cgi配合作网站用的也挺多的。反正,我借的那本书讲得更多的是正则表达式->神器啊。。。所以,不想理解这个什么复杂的正则。

 

之间还学了很多语言但是不是很了解吧。比如Lua,C51、VHDL。。不想说这个,感觉和很多语言相似吧。

 

ADA,这个名字取得不错,很像我的名字的本地方言。美国国防部开发的,结构算是严谨的,因为用作嵌入式设计的。以后还会继续学的。

 

Lisp,人工智能语言。出于使用Emacs的需求开始了解这个语言的,感觉,这个语言就是骂人很方便的。比如.

所以,这也就是这个语言智能的地方了,用于人工智能领域确是个不错的选择,还有各种神奇的东西。



(defun double(x)

(* x 2))

这就是一个简单的LISP的函数。当我们在clisp环境运行的时候输入,

(double 2)结果出现4了。。有着很多神奇的括号,什么的。。正在学习,基本语法差不多了解了,还少本语法书呢。

 

 

就差不多的那些语言了,学得不精,都是因为兴趣才学的。


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806

新书《前端架构:从入门到微前端》

《前端架构:从入门到微前端》是一本围绕前端架构的实施手册,从基础的架构规范,到如何设计前端架构,再到采用微前端架构拆分复杂的前端应用。本书通过系统地介绍前端架构世界的方方面面,来帮助前端工程师更好地进行系统设计。

前端架构包含以下五部分内容:

  • 设计:讲述了架构设计的模式,以及设计和制定前端工作流。
  • 基础:通过深入构建系统、单页面应用原理、前端知识体系等,来构建出完整的前端应用架构体系。
  • 实施:通过与代码结构的方式,介绍如何在企业级应用中实施组件化架构、设计系统和前后端分离架构。
  • 微前端:引入6种微前端的概念,以及如何划分、设计微前端应用,并展示了如何实现这6种微前端架构。
  • 演进:提出更新、迁移、重构、重写、重新架构等架构演进方式,来帮助开发人员更好地设计演进式架构。
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Developer, Consultant, Writer, Designer

ThoughtWorks 高级咨询师

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 与我沟通

标签