动态语言碎碎念

阅读更多
动态语言很容易开发。
这一点好像大伙都已经认同了吧。ruby&rails的盛行,到groovy&grails的跟进,对开发效率的提升应该是主要的推动力。

前几天看了个pdf,摘录一个其中的例子,是用来过滤list中长度超过3的字符串的。相信大家能有更清晰的认识。

java版
import java.util.List;
import java.util.ArrayList;

class Erase {
	private List filterLongerThan(List strings, int length) {
		List result = new ArrayList();
		for (int i = 0; i < strings.size(); i++) {
			String s = (String) strings.get(i);
			if (s.length() <= length) {
				result.add(s);
			}
		}
		return result;
	}

	public static void main(String[] args) {
		List names = new ArrayList();
		names.add("Ted");
		names.add("Fred");
		names.add("Jed");
		names.add("Ned");
		System.out.println(names);
		Erase e = new Erase();
		List shortNames = e.filterLongerThan(names, 3);
		System.out.println(shortNames.size());
		for (int i = 0; i < shortNames.size(); i++) {
			String s = (String) shortNames.get(i);
			System.out.println(s);
		}
	}
}


groovy版
		def names = ["Ted", "Fred", "Jed", "Ned"]
		println names
		shortNames= names.findAll{ it.size() <= 3 }
		println shortNames.size()
		shortNames.each{ println it }		


groovy被称作新一代的java,更好的java不是没有道理的。

动态语言是弱类型的,不够安全。
这一点则是见仁见智。
弱类型的语言当然导致了编译器无法帮你发现因为类型导致的错误,也许还会让你的代码不够健壮。但是这样做却也较少你的代码的侵入性。大家也许会碰到有时候不知道该给一个变量什么类型的情况吧。有了弱类型的语言,你将不再有这样的烦恼,你不再需要定义一大堆接口来保持代码的适应性了。另外一方面,动态语言结合单元测试,也可以让你的代码足够安全和健壮。

你可能感兴趣的:(Groovy,Grails,Rails,JavaScript,Ruby)