写点什么

Flex 技术创业公司推动新语言学习

  • 2008-04-24
  • 本文字数:1783 字

    阅读完需:约 6 分钟

近来,对于很多新兴创业型公司来说,选用 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 的开发。

查看英文原文: Flex Startup Helps Learning New Languages

2008-04-24 10:29790
用户头像

发布了 71 篇内容, 共 20.3 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

即时通讯技术文集(第24期):音视频WebRTC好文合集 [共20篇]

JackJiang

网络编程 即时通讯 IM

【TiDB 技术视频合集】史上最全的 121 个 TiDB 用户实践技术视频合集来啦!

TiDB 社区干货传送门

悦数图数据库 v3.6.0 发布|支持 Zone 管理,提升业务安全性和连续性

悦数图数据库

图数据库 悦数 杭州悦数

下一代ETL工具:微服务架构的全新数据集成平台

RestCloud

微服务 ETL

星河创新,开拓新纪!2023“星河产业应用创新奖”报名全面开启!

飞桨PaddlePaddle

星河社区

OpenMLDB SQL 开发调试神器 - OpenMLDB SQL Emulator

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

UDP和TCP网络编程

百度搜索:蓝易云

云计算 Linux TCP 运维 udp

TiDB x 汉口银行丨分布式数据库应用实践

TiDB 社区干货传送门

实践案例

Comsol Multiphysics for Mac(建模仿真软件) v6.2永久激活版

mac

苹果mac Windows软件 COMSOL Multiphysics 多物理场仿真软件

CheckBook Pro for mac(个人理财管理工具) v2.7.27注册激活版

mac

苹果mac Windows软件 CheckBook Pro 个人财务管理软件

Promise规范与原理解析 | 京东物流技术团队

京东科技开发者

前端 Promise JavaScrip 企业号11月PK榜

前端技术探秘-Nodejs的CommonJS规范实现原理 | 京东物流技术团队

京东科技开发者

JavaScript node.js 前端 企业号11月PK榜 ChromeV8

OpenMLDB v0.8.4 诊断工具全面升级

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

技术分享 | 在 IDE 插件开发中接入 JCEF 框架

LigaAI

后端 IDEA web技术分享 前段 IDE插件

一起乐「FUN」天!大模型趣味赛等你来挑战!

飞桨PaddlePaddle

开发者 大模型

议题征集!2023 龙蜥操作系统大会硬核启动

OpenAnolis小助手

操作系统 龙蜥社区 2023龙蜥操作系统大会 智算 议题

零代码AppLink平台触发事件组件

RestCloud

零代码 APPlink

收藏这几个开源库,写css你会笑出声

伤感汤姆布利柏

CSS 开源 低代码

前端必学——实现电商图片放大镜效果(附代码)

小齐写代码

【SOP】最佳实践之 TiDB OOM 分析

TiDB 社区干货传送门

性能调优 实践案例 集群管理 管理与运维 故障排查/诊断

MySQL 到 TiDB:vivo 的 Hive Metastore 横向扩展之路

TiDB 社区干货传送门

实践案例

TiDB 在咪咕云原生场景下的实践

TiDB 社区干货传送门

实践案例

XTransfer与腾讯云达成战略合作 助力外贸数字化转型

XTransfer技术

腾讯云 出海 XTransfer 跨境金融

CloudQuery x GBase,信创数据库管控革新之路

BinTools图尔兹

sql 数据库管理 数据库安全 人大金仓 南大通用

Docker的安装部署以及配置的操作流程。

百度搜索:蓝易云

Docker 云计算 Linux 运维 云服务器

记 Rakuten 技术分享会

TiDB 社区干货传送门

实践案例 社区活动

喜讯!MIAOYUN《电力云原生“一云多芯”大模型信创全适配解决方案》获评第二届中国赛宝信息技术应用创新优秀解决方案奖

MIAOYUN

AI 云原生 大模型 一云多芯解决方案 信创解决方案

Flex技术创业公司推动新语言学习_Java_Moxie Zhang_InfoQ精选文章