Flex的起步推动新语言学习

近来,对于很多新兴创业型公司来说,选用RIA技术来实现他们的创意和服务已经不是什么新鲜的事情了。正处于起步阶段的基于Adobe Flex技术的Babbel就是其中一个例子。为了让读者能够对如何设计和实现一个应用Flex技术的新起步应用的构架有一个深刻的了解,InfoQ就此采访了Babbel背后运营公司Lesson
Nine GmbH的CTO-Thomas Holl。

Holl首先这样描述Babbel:

Babbel是一个基于社区的在线语言学习工具。Babbel.com提供德语、英语、法语、意大利语及西班牙语课程,将社交网络的乐趣融入到有趣并有效的词汇扩充和句型构造的工具中。

而后,他回答了创建Babbel的初衷:

2006年年末时,我们曾试图寻找一个现代的在线语言学习工具,让我们感到惊讶的是,当时还没有一个像Babbel这样的工具。现在的形势看上去已经在慢慢开始转变。但那个时候,能找到的词汇练习都极为基础,界面也不是非常友好。另外,你能买到的CD-ROM或DVD上的多媒体应用不仅昂贵,而且无论是在技术还是内容上都很陈旧。通过控制台进行的教学游戏是Babbel概念的角色模型-这些简单的应用使用起来很有趣并且获得了大众的喜爱。

在Flex与AJAX的比较上,他解释说:

从一开始就很明显,我们的站点应该使用流行的多媒体选项,比如播放音频、动画以及在后台缓存数据使得之对请求的回应更快。去年在我们着手开发的时候,除了Flex框架以外,再没有什么技术更能符合我们对Babbel定下的愿景了。我们也许可以通过AJAX来做很多事情,但那样就不得不处理繁多的JavaScript库,另外,用户体验也还是无法匹及Flash应用。

在众所关注的Babble开发所使用的技术上,Holl和大家分享道:

我们有4个开发人员参与了Babbel的开发,其中2个关注Flex客户端,另外2个则开发了运行在Amazon
EC2
实例上的基于Ruby On
Rails
的后端。2007年5月,我们一切从零开始,直到2008年1月发布第一个版本,整个开发历时8个月。

服务器端的实现包括了12000的Ruby代码,Flex客户端的实现大概有50000行代码(包括7000行自动生成的集成代码)。

我们一直遵循一个循环的开发流程,并发现以一周为循环周期对我们来说最适用。除此以外,我们还使用了最实用的工具和流程,例如,使用Subversion来管理版本;采用Trac来跟踪事件(defect
tracking)、文档编制(documentation)及交互(communication);通过Ant/Capistrano自动构建/部署(automated builds/deployment
)等等。

Holl也谈到了在Babbel的开发过程中所遇到的挑战:

为了实现从客户端对后端服务的访问,我们开始采用简单的定义语言(考虑过WSDL,但基于JSON来的更为简单)来描述这些服务,然后,我们的生成器(generator)将这些定义转化为ActionScript方法,这样一来,客户端可以通过静态类型值对象(类也是自动生成的)来访问从服务器返回的数据(通过HTTP协议以JSON类型返回)。然而,对于某些功能(比如“people
search”)将数据以这样的方式封送处理似乎不是很合适,通过编写代码来动态的创建GUI元素纯粹是浪费。我们想充分利用Rails的力量来生成HTML代码,但由于Flex所支持的HTML元素和风格有限,在Flex上显示HTML受到了严重的束缚,而现在,我们通过Rails来生成MXML然后在客户端显示。通过这个方法,服务器同样可以在客户端激发一些动作(比如,收到新信息的时候,需要在客户端显示一个提示)。

关于RIA相关技术和构架,Holl回想道:

另外一个时不时就冒出来的问题是客户究竟可以并且应该拥有多少个不同的状态。这个问题的提出,促使我们进行了几轮优化和测试来寻找对于Babbel来说最好的平衡点。客户在服务器端的相关变化,服务器会在回应下一个客户请求的时候通知客户(这就不再需要push构架),客户收到通知以后再由其本身决定是否要与客户端同步。

什么技术可以推动Bebbel将来的发展?

我们会将我们的语言教学工具努力推向类似游戏的用户体验。下一个大的目标之一是集成语音和视频聊天功能,通过Adobe系列技术,这个功能是极有可能实现的,我们目前正在对其进行评估。之后,我们想在网络和社团特性方面添加大量的功能。另外,团队对于网站内容的管理、以及用户对网站的贡献的可能都需要得到巨大的扩展。我们还想将Babbel带入移动世界,这也意味着会涉及到J2ME、Symbian或iPhone的开发。

时间: 2024-09-05 07:23:22

Flex的起步推动新语言学习的相关文章

路易斯•冯•安打算利用语言学习平台改变生活

12年前,路易斯•冯•安(Luis von Ahn)用验证码(CAPTHCA)改变了整个互联网:12年后,他打算利用语言学习平台Duolingo改变更多人的生活. 路易斯今年34岁,毕业于美国卡内基梅隆大学.早在2002年,他和导师一起发明了验证码,极大打击了垃圾邮件和恶意注册行为:随后,他又启动了reCAPTHCA项目,希望通过验证码推动古籍.过刊的电子化:如今,他把所有精力投入到了Duolingo中. Duolingo(中文译名为"多邻国")是一个"寓教于乐"的

Unix和Linux下C语言学习指南

尽管 C 语言问世已近 30 年,但它的魅力仍未减退.C 语言继续吸引着众多的开发者,他们为了编写.移植或维护应用程序而必须学习新技能. 本文是为了满足对C语言初学者或想提高自身C语言修为的开发人员的需要而写的.希望对您的学习和工作有所帮助.您也许不赞同其中的某些方法,但我们希望您会喜欢其中的一些. 本文不介绍作为一个程序员应掌握得语言细节,而是与初学者分享自己的UNIX 下C语言编程学习经验;也不说明一个合格的编程人员应该掌握的计算机知识,比如:操作系统.数据结构与算法.数据库等等. 不管您出

剑桥AI公司:7天精通一门新语言,未来将学会7000种语言

11月11日,剑桥AI公司Speechmatics正式上线其机器学习平台Automatic Linguist,能在一周内掌握一门新语言.该平台沿用剑桥大学研发的技术,能够识别并应用语言中的不同模式.目前,该平台能够识别28种语言,实现从语音到文字的准确转录. 图示: Speechmatics将28种语言逐渐加入其系统中. 一个大公司客户要求Speechmatics两周内学会印地语,该公司发布了一个系统,根据测试,该系统比市场领先者的错误率少23%. Speechmatics首席执行官Benedi

ACL 2017 最佳长论文,带你创造一门优雅的新语言

雷锋网 AI科技评论按:在昨天结束的ACL 2017大会的正会上,分别公布了今年的终身成就奖和五篇最佳论文奖.本篇文章雷锋网将带你一块儿来解读其中的最佳长论文<Probabilistic Typology: Deep Generative Models of Vowel Inventories>. 在了解这篇文章之前,首先需要了解一些语言类型学的知识.根据语言类型学的研究,发现任何一种人类语言都有元音,例如英语中的[i], [u], [æ]等,把所有语言中的这些元音收集起来(目前收集的大概有6

语言学习太闷了,就开始有点意思,现在好累

问题描述 语言学习太闷了,就开始有点意思,现在好累看样子学计算机不适合我们这些女孩子,但我必需要坚持下去.....有同感的么.. 解决方案 解决方案二:累是累但是只要每天能用到新的东西感觉还是不错的解决方案三:呵呵编程需要的是一种激情.我们公司也有女生编程玩得不错的解决方案四:女孩子最好不好学,趁早转行吧,想想你生小孩时拿下那么东西,还能干吗?

语言学习服务Voxy 教室之外的学习

近日,据国外媒体报道,近年来,学习应用类的服务层出不穷,他让人们摆脱教室的束缚,随时随地的在网络上学习自己想学的东西. 而Voxy作为一款语言学习服务,就像是Rosetta Stone(罗赛塔石碑语言学习软件是风靡世界的多媒体英语教学软件)和纽约时报的结合体,它基于地理位置和用户实时环境提供课程,并且提供基于视频聊天的课程辅导服务."语言学习就像是学习烹饪或冲浪一样," Voxy创始人格拉斯保罗格莱希(Paul Gollash)如是说道.确实,并不是所有学习都必须要在教室里进行不可.

LINQ体验(3)——C# 3.0新语言特性和改进(下篇)

上一篇我们介绍了C# 3.0新语言特性和改进上部分,这篇我们继续介绍剩下 的部分. C# 3.0新语言特性和改进包括: 自动属性(Auto- Implemented Properties) 隐含类型局部变量(Local Variable Type Inference) 匿名类型(Anonymous Types) 对象与集合初始化器 (Object and Collection Initializers) 扩展方法(Extension Methods) Lambda表达式和Lambda表达式树 (

LINQ体验(2)——C# 3.0新语言特性和改进(上篇)

在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的 第二部分--介绍C# 3.0新语言特性和改进. 总体来说, Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心 本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍 ),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大 简化我们编写程序.关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我

c语言函数-c语言学习求助大神:i函数问题

问题描述 c语言学习求助大神:i函数问题 编写函数,根据整型形参n的值,计算以下公式. T=1-1/(2*2)-1/(3*3)-1(4*4)---1(m*m) 例如,若m=5,T=0.536389 解决方案 double t = 1; for (int i =2; i <=m; i++) { t = t - 1 / (double)(m * m); } printf("%lf", t); 解决方案二: 这是个级数问题,当n值较大时,不能使用常规方法来求,这样精度不够,建议使用级数