接触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