
(刚刚开始接触GAE):
撇开Big Table,GFS,Paas,IaaS以及云里雾里的Cloud Computing不说(其实是不懂),GAE仍然是一个很了不起的服务,它不仅给那些startups穷光蛋们提供了最大的福利,同时也让Python 语言以及Django为更多的人们所认识,最重要的是他的出现突破了传统意义上的Web Hosting Service Provider,他免费提供10个App,每个App 500MB 的持久存储空间,以及可支持每月约 500 万页面浏览量的足够 CPU 和宽带。而你使用机器是Google的架构,Big Table,GFS等,而且带宽、CPU资源、可靠性、吞吐量都是可扩展的,如果不够可按需购买,但其实像我们的简单的应用已经足够使用。其中 Datastore是分布式数据存储服务,我想应该就是Big table技术,他不同于传统关系型数据库(所以如果你集成Django到GAE中来就不能使用Django的ORM),至于GAE的SDK,其实许多地 方模仿了Django了,所以如果了解Django,你可以很轻松地使用SDK的API,而且利用SDK你就可以进行本地的开发和测试,最后部署到GAE 上时只消一个命令就搞定,你完全不用像使用PHP、J2EE Dedicated服务器那样进行大量的服务器端配置,特别是Apache Server(如果你是高级管理员)。如果你也在进行GAE上的Web开发,有问题的话我们也可以讨论一下;-),我也在和我的同僚们进行一项Web App的开发,现在只完成了一小部分。Good luck。
海龙问我,有没有一本书能够使自己对编程感兴趣,我当时说我不知道,好像没有,事实是许多人在学了C/C++之后,就失去了对编程的兴趣,觉得编程既枯燥又难学,我得承认C/C++语言绝对是一流的程序设计语言,它经历整整三十年依然为广大厂商和程序员采纳,可问题是是否C/C++是最好的入门语言。C/C++固然是其他C体系语言的基础,比如Java,我也是在学习了C/C++之后学的Java,这时学习难度并不是很大,至少是在语法方面,可是呢,你知道,许多人在C语言的指针问题上出了问题,它很难学(至少是对初学者来说),所以它绝对是个不折不扣的瓶颈,而C++的面向对象实在是可怕(与其他面向对像语言相比),一堆需要花许多时间来理解的概念(至少我不明白,我认为这是蹩脚翻译惹的祸,辞不达意),友元、虚函数、纯虚函数、模板等。另一方面,学校只教会你一门语言的语法,却不会告诉你编程的本质以及如何设计出好的程序来,什么才是真正的面向对象?什么是设计模式?这暂且不说,再回到C/C++是否是最好的入门语言问题上来,很显然,你知道我要说什么:我想说不。那么谁才是最好的入门语言呢?我很想说是Java,因为许多其他大学都将Java作为首选,而且我自己用起来最流畅的就是Java。可是我仍然认为Java也不是最佳的,因为我觉得最好的入门语言首先应该具有一下几个特点:
0.简单易学
1.语言本身和自然语言(英语)相似度高,代码对人类可读性高。
2.可交互的
3.面向对象
4.通用性高
5.自由灵活
6.平台独立
7.开发效率高(见效快)
Java只具有0,3,4,6,7,而0也要看条件,1 马马虎虎也算是。而这里我想说的是Python语言。我不想过多谈论Python有多么好,那没有任何用处。可是如果你若问我如何对编程感兴趣,那么我会说:去学习Python吧。你看,Linux操作系统自带Python不是没有道理,而Googel、豆瓣使用它作为开发语言也不是心血来潮。我觉得初学者如果能够迅速用一门语言解决掉一个有趣的或是是挑战性的问题,那么这会在很大程度提高自己对编程的兴趣,成就感也很重要不是?不需要编译也不要链接,也没有莫名其妙笨拙的编译链接错误,只需几行代码,执行并给出结果,那该多好。看看下面最简单的例子:
C++版
#include
void main()
{
cout << “Hello, world.” << endl;
}
Python、Groovy版本
print “Hello,world.”
试想一下你从来没有学过C/C++…
你得明白,编程语言这玩意只是个工具,如果花在学习工具上的时间占用了大量时间或者很难学,很有可能使大家望而却步,根本就没有机会去解决那些有趣的问题,是吧?
可是我仍然没有回答最初的问题,怎样使你对编写程序发生兴趣?因为即使是选择Python也不能使我对编程感兴趣啊,其实我觉得这得问你自己除了编程外对什么事情特别的感兴趣,拿我自己作例子,大一时我对骇客技术十分好奇,我想黑掉一个网站,可是我不懂那些骇客技术使用的编程语言,我想大干一票,怎么办?没办法,学习一个语言吧,于是我开始学VBScript(一种Windows上嫡系脚本语言),而且上了瘾,虽然这个语言现在我已经忘光了。可是如果你对对Linux感兴趣、对好玩的硬件、对网络感兴趣,那么你就得去学C/C++,对不对?如果你是一名艺术爱好者,那么你可以去学Processing、CSound,我可以双手按在圣经上发誓,这两种语言绝对能够让你痴迷,并沉醉于其中,只要你真的是热爱艺术,或者你发现游戏里那些带着智能的行为实在是很迷人,那么你可能会去寻找一种你可以控制这种智能行为的方式,那是什么呢?编程,Java、C/C++或其他语言(Inform),又或者你对开发网站很感兴趣,想写出想豆瓣那样的网站来,那么,啥都别做了,开始学习Python(ruby on rails,groovy on grails)吧…