接触 Python 后的一点感受记录

python最近因为工作的关系开始学习 Python 了。以前从不曾正儿八经地学过,如果说工作学习经验带来改变的话,那么编程语言的学习就是个很好的例子。如果在十年前,我要学习 Python 的话大概会买本系统介绍的 Python 教程,然后一页一页慢慢看,估计能够啃完大半本,跳过一些自认为次要的特性。等到在项目中使用已经得是一两个月之后了吧。但是如今我显然不太会做一样的事情,我现在会拿着我那些熟悉的编程语言来比较,不同的特性上面,Python 是怎样的,是先进还是落后,适合解决什么问题,在哪些领域可以大行其道,但在遇到哪些问题的时候事倍功半。

想起以前接触过的编程语言里,事实上有一半都不能算系统地学过,大致上只是零散地

[……]阅读全文

Scala 的模式匹配

scala

最近开始学习 Scala,相较于学习 Haskell 的过程来看,Scala 真是直观得多,友好得多,更容易上手。以前写过关于从熟悉的 Java 和 JavaScript 来逐步学习 Groovy 和 Haskell 的 文章 ,这以后再来学习 Scala 的话,就可以不断比较了。如果和我一样有 Java 经验的话但是从来没有接触过 Scala 的话,建议先阅读这篇文章,A Scala Tutorial for Java Programmers,一边比较,一边熟悉,同时配套的还有这个,Scala for Java programmers – Joakim Ohlrogge & Enno Runne,Youtube 上的视频,

[……]阅读全文

编程语言学习和使用的观点

vb 我的一些关于编程语言学习和使用的观点如下,因为最近谈到这个事情,就记录下来吧,但是我只想简单的表述出来。当然,我不想陷入语言孰优孰劣这种争论的圈子里。

多掌握一门语言有没有价值?如果一门新的语言能改变你对编程的理解,它就是值得学习的。另外,每一门语言对应着一种或几种“编程范型”,接触不同的编程范型是很有价值的,这是扩展视野的好机会。

编程语言只是工具,工具都是用来解决特定的问题的。特定的问题使用适合的工具来解决。但是很多情况下,我们的选择太多。选择这一门编程语言的原因可能只是因为“它很酷啊”,或者“因为大家都在用它”。另外,还有一种极端的滥用的情况:“当手上有一把锤子的时候,你看什么都是钉子

[……]阅读全文

Dart,你凭什么挑战 JavaScript?

dart 不妨先来打量一下 JavaScript。JavaScript 是唯一至今主流且基于原型的语言,虽然说支持面向对象,但是无论是封装、继承、多态,实现起来总需要用到一些 tricky 的办法,而且也不甚完美。事实上,为了抢市场,从 1995 年 JavaScript 设计完成到发布,只有短短的 7、8 个月的时间,极度缺乏谨慎的语言特性和规范的评估。而和微软 JScript 的竞争,使得 EcmaScript 标准仓促问世,这些都是 JavaScript 存在诸多缺陷的重要因素。

不止如此,Google 认定,JavaScript 的缺陷难以以改良的方式被修复,必须革命。那么都有哪些缺陷呢?推荐大家去阅读《Using JavaSc

[……]阅读全文

Dart:JavaScript 的未来

dart 最近在关注 Dart 语言,下面这篇文章译自 这里 ,其实是 2011 年 11 月 Google 内部员工的一封邮件,邮件中提到的 Dash,就是如今的 Dart 语言的前身。Google 搞东西很有意思,思维似乎非常超前,总是能挖到现在火爆的东西的不足,然后搞一个新的东西代替它,真是凶猛异常。比如 SPDY、V8、WebP、Go 等等,有的成功,有的失败。还有,希望大家能从下面粗糙的译文中留意到,Google 对于标准非常重视,谈论中也是霸气外露,希望把一切标准都控制在自己手里。

Subject: [Caja] 转发:从上周的 JavaScript 会议看 JavaScript 的未来
From: Mark S. Mill

[……]阅读全文

Io 语言导引

Io 第一次接触 Io 语言的时候我就被其简洁干净的语法打动了(如果你有编程语言的经验,也许 15 分钟就可以掌握大部分的语法),Io 语言的简单、灵活和对并发的良好支持都让人印象深刻。本文翻译自 Io 语言官网的 这篇文章

引言

总览

Io 语言是一门基于原型的动态语言,主要思想很大程度上受到了 Smalltalk(所有变量都是对象)、Self(基于原型)、NewtonScript(差异化继承)、Act1(并发行为特征)、Lisp(运行时可观测和修改代码)和 Lua(小巧可嵌入)的影响。

透视图

过去三十年编程语言研究的重心已经转移到了具备强大的表达力的高级语言(比如 Smalltalk),以及性能卓越

[……]阅读全文

一些中文编程语言

1 我自认为本文不是恶搞,让我们本着严肃认真的精神来审视这些中文编程语言。

易语言

易语言 可以说是中文编程语言的老大,拥有独立的编译器。易语言并不是把现存的编程工具进行表面汉化而成的,和其他国外语言相比," 易语言" 最大的不同是彻底中文化,且拥有自下而上的全部自主知识产权。

易语言的全新版本叫做“ 易语言. 飞扬”,包含垃圾收集机制,是完全面向对象的中文编程语言:

公开 类 启动类
{
	公开 静态 启动 ()
	{
		控制台. 输出 (" 你好,世界!");
	}
}

和其他中文编程语言相比,它是最成熟的,而且同时具备了

[……]阅读全文

不妨学习一下 Perl

perl Perl 是什么?用 Larry Wall 自己的话说,Perl 是借取了 C、sed、awk、shell scripting 以及很多其他程序语言的特性的一种语言。你可以说它是“实用报表提取语言”(Practical Extraction and Report Language),也可以叫它“病态折中垃圾列表器”(Pathologically Eclectic Rubbish Lister),Larry 说:“OK,我都承认”。

最近机缘巧合,有幸接触了一把 Perl,以及它的模板引擎 Mason(我是这么理解的)。我用过 Java、C#、C++等等传统高级语言,也研究过 Groovy、JavaScript 之类

[……]阅读全文

Groovy on Grails 交流活动

2008 年 InfoQ 交流活动的胶片:

http://cid-5b1e02933669f469.skydrive.live.com/redir.aspx?page=browse&resid=5B1E02933669F469!105&type=5

 

活动宣传页:
 
 
2008 年上半年,一次活动中的翻译稿。Groovy on Grails 一些文章的翻译:
 
10 个对于 Grails 的误解
 

[……]阅读全文

C++学习杂记

c  智能指针:auto_ptr 和 shared_ptr:

auto_ptr 是个 pointer-like 对象,也就是所谓的“智能指针”,其析构函数会自动调用。

std::auto_ptr<Investment> ptr1(new Investment());
//之后,如果:
std::auto_ptr<Investment> ptr2(ptr1);
//或者:
ptr2=ptr1;
//那么 ptr2 指向那个对象,ptr1 置空。

shared_ptr 类似,但它可以追踪有多少指针指向该对象,并在无指针指向时析构。
这时的拷贝:
ptr2=ptr1;
结果则是两个指针指向同一对象。
aut

[……]阅读全文

back to top