CSDN头版头条 《近匠》 Wijmo 5 CTO:从Web到移动,我的25年编程生涯

Stella981
• 阅读 571

现年52岁的Bernardo Castilho先生是GrapeCity(中文名为葡萄城)ComponentOne公司的CTO,在与他的对话过程中,充满风趣严谨和厚重的历史感。

CSDN头版头条 《近匠》 Wijmo 5 CTO:从Web到移动,我的25年编程生涯

当作为年轻人的我们崇拜着各式娱乐男神女神时,他的偶像却是这个世界上最为杰出的科学家,从少年时代开始,编程成了他的兴趣爱好,并最终成为了他许以一生的职业。作为Wijmo 5开发团队的Leader之一,他是HTML5、JavaScript等众多技术的行家里手,在采访他之前,笔者特地在CSDN论坛上发起了一个**问题征集**的活动,接下来,就让我们一起看看Bernardo Castilho先生就自己、团队以及Wijmo都回答了哪些问题吧。

CSDN头版头条 《近匠》 Wijmo 5 CTO:从Web到移动,我的25年编程生涯

图:GrapeCity ComponentOne CTO Bernardo Castilho先生

CSDN:首先,请向我们的读者自我介绍一下,可以分享一些您的小八卦。从业以来,有哪些印象深刻的经历?从Web到移动,有哪些经验分享?

Bernardo Castilho:我的编程生涯可以追溯到少年时代,当时我使用的是一台45k内存的Apple II,我沉醉于这种能让一切事物变得格外简单的编程滋味儿。上世纪90年代初,当我编写出我的第一款适用于Visual Basic 1.0的自定义控件,这种爱好变成了我许以一生的职业。

一直以来,我都非常热爱阅读,如果必须选择一本的话,我会推荐侯世达的《哥德尔、埃舍尔、巴赫:集异璧之大成》,从严格意义上来讲,它并不是一本编程书籍,但它却涵盖了包括万物相连在内的诸多领域。我也有很多的偶像,比如阿基米德、伽利略、牛顿、高斯、冯·诺伊曼、艾伦·图灵等,但在我的生命中,我最崇拜的人是Turbo Pascal、Delphi、C#和TypeScript的创造者——安德斯·海尔斯伯格,我参加过他很多的演讲,他独到的见解与想法总会让我倍感惊喜。

在过往25年的职业生涯里,我有幸目睹了Web革命的完整历程,从上世纪的一个天才想法逐渐演变成为今时今日人们生活中不可或缺的一部分,从向一个平台发布内容到一次编程处处运行的跨平台应用。于我个人而言,从Web到移动最重要的转折点是微软决定停止开发Silverlight,它让我看到了HTML5和JavaScript将成为未来的技术趋势。

从我涉足这一行业开始,一切都变得有趣起来,回首过去,人们发明了个人电脑和万维网,许许多多惊天地的事情对现实生活产生了剧烈影响。而今天,冒着像个老男人一样唠叨的风险,我看到很多年轻的孩子在iPad上浪费他们的大好光阴,而成年人则成日在Facebook等社交网络上刷屏度日,甚至还有的人在为他们的下一部手机该选个什么颜色而苦恼。当然,在此之中,仍然有许多有趣的事情正在发生,只是还不为人知罢了。对我来说,EcmaScript 5、TypeScript、AngularJS以及Wijmo 5都格外地有趣,希望会有更多的人喜爱它们。

CSDN:请具体说一下Wijmo 5是什么?为什么将其命名为“Five”?

Bernardo Castilho:Wijmo 5是新一代的HTML5/JavaScript控件库,采用最新和最受欢迎的技术,包含了开发可运行于桌面与移动设备之上的现代MVVM应用需要的所有控件和组件,并且,它不再兼容任何传统浏览器,我们仍然会继续支持并更新Wijmo 3,以便传统浏览器的用户还能继续使用。

Wijmo 5的“Five”实际上来自于EcmaScript 5。在Wijmo 5中有一项非常重要的特性,就是真正实现了对于getter和setter属性的支持,这是EcmaScript 5新添加的部分,也是Wijmo早期版本一直缺乏的东西。

CSDN:请讲讲Wijmo 5开发团队的成员以及分工情况。

Bernardo Castilho:Wijmo 5团队的大部分人也负责其他的产品开发工作。我们利用在各自擅长领域的专业经验来为各个类别的开发项目创建拥有最好品质的控件。

就我而言,我之前负责了从ActiveX、Winforms到XAML等FlexGrid所有版本的开发工作,而我在Grid方面也拥有着极为丰富的经验,并把它们带到了Wijmo 5 FlexGrid的开发中。Alex Trefilov是Wijmo 5 FlexChart控件的开发者,他一直负责XAML图表控件的开发工作,可以说是图表方面的行家。Tim Emanuel是我们的主设计师兼CSS专家,他创建了Wijmo控件的外观和布局行为,以及可轻松新建控件主题的LESS文件。

Chris Bannon是Wijmo的产品经理,负责包括Wijmo 5在内的Wijmo所有版本的研发工作。Chris在Web开发、HTML5、JavaScript以及包括jQuery、SVG、Bootstrap、AngularJS、KnockoutJS等的所有流行JavaScript技术和控件方面绝对称得上是行家,他为我们了解当下最先进的Web开发技术以及该如何开展研发工作投入了大量的精力。Alex Ivanenko是我们的项目经理,负责包括构建过程、自动化测试、Bug管理及用户请求等基础架构工作。而Wijmo 5的所有演示示例则是由Raleigh Johnson来开发的,Nazim Turakulov是我们负责交互层的开发者,主要包括AngularJS和KnockoutJS指令等。Kim Landis是我们的技术文档工程师,主要负责文档、技术论文博客等的审校工作,确保所有信息都是简洁明确的。而市场经理Eve Turzillo则负责包括广告、视频、会议等在内的推广工作。除此之外,我们还有一个分布在中美等国家的开发团队,同时负责Wijmo 3和Wijmo 5产品的开发工作。

CSDN:Wijmo 5的开发用到了哪些技术?具体的开发思路是怎样的?

Bernardo Castilho:2013年,当我们看到通过EcmaScript 5、HTML5、TypeScript、AngularJS等全新的Web技术能够创建出像Silverlight和.NET中的那些工具一样强大的HTML工具时,我们决定开发Wijmo 5。我们想要创建一个这样的库,当我们的客户习惯于体积更小、依赖性更弱的其他平台时,能够为他们提供拥有同样强大的功能及灵活性的控件。我们使用到了jQuery,但不包含jQuery UI、Raphael、Globalize或其他的库。

我们希望这些控件能够充分利用HTML5随处运行的特性,因此,所有的控件设计都以可良好运行于移动/触屏及桌面设备为前提。

CSDN头版头条 《近匠》 Wijmo 5 CTO:从Web到移动,我的25年编程生涯

图:Wijmo 5设计草图

Wijmo 5使用TypeScript语言编写,它融合了包括类、继承等在内的面向对象编程所有优点,并编译成EcmaScript 5,从而实现可运行于所有现代浏览器。此外,TypeScript还提供了静态误差检查,能够极大地加快开发速度并提供产品质量。

Wijmo 5的控件拥有着非常丰富的对象模型,在我们其他平台已有控件的基础上,利用我们作为控件开发者的经验优势来减少客户的学习曲线。并且,我们还从Silverlight移植了JavaScript堆栈所缺失的类,其中就包括和MVVM应用关键接口ICollectionView相似的Control和Event基础类。

CSDN:这款工具做了多久?遇到过哪些坑?

Bernardo Castilho:我们用了一年的时间来开发Wijmo 5,整个过程可以说很顺利,但也遇到了一些挑战,而最大的挑战当属文档,我们渴望能够找到像JSDoc这样的工具来将代码注释编译进在线帮助系统,但却无功而返,最终,我们自己编写了一款能够从源码中提取注释并生成支持本地化的XML文件的工具。另外,还有一款专门用于将XML文件编译成Web页面一起汇成帮助系统的工具,这样一来,无论何时构建Wijmo,我们的帮助站点都能实现自动更新。相对而言,其他的问题则容易得多。

CSDN:Wijmo 5和Wijmo在本质上有哪些不同?与同类工具相比,Wijmo 5的优势在哪儿?

Bernardo Castilho:Wijmo 5与之前诸多版本的Wijmo存在着很大的不同,并且完全不相兼容,它包含了一系列截然不同的控件,不同的架构,最为关键的是,它不再对传统浏览器提供支持。与其他同类工具相比,Wijmo 5的控件体积更小,速度更快,并有着更为富足也易于使用的对象模型,整个Wijmo 5库也就300k大小,同类产品则通常比它大10倍左右,Wijmo的控件不是“widgets”,而是真真正正的控件,拥有着更棒的性能。

CSDN:关于Wijmo 5未来会有哪些规划?是否会考虑开源?

Bernardo Castilho:我们没有将Wijmo 5开源的计划,相反,我们会将Wijmo 5以一个极具竞争力的价格出售,并提供用户支持。对于Wijmo 5的未来发展,我们有一套路线图以及用户请求列表,在发布Beta之后,我们会将所收集到的信息汇总出一个优先级列表,根据它们来制定具体的实施计划。

CSDN:很多开发者关心,Angular与其他流行组件集成时是否会存在问题?

Bernardo Castilho:对于Angular的支持实际上是Wijmo 5开发的重点项目之一,我们热爱AngularJS,并在大部分的示例中使用了它,并且,我们还提供了指令来让使用带有AngularJS的Wijmo 5变得更容易。另外,对于控件本身,Wijmo 5还有一个CollectionView类,让使用AngularJS的MVVM开发达到XAML平台的水准。

CSDN:如果开发者想将项目从Wijmo向Wijmo 5迁移,该怎么实现?

Bernardo Castilho:从Wijmo向Wijmo 5迁移非常容易,如果开发者使用AngularJS和MVVM,那么就可以通过对控制类进行细微的调整并指令执行以旧换新操作,即可完成项目迁移。当然,我们非常乐于为用户提供迁移指导,在官网的NewsGroup版块就包含了Wijmo等主题相关的信息,对开发者而言绝对非常实用。

CSDN头版头条 《近匠》 Wijmo 5 CTO:从Web到移动,我的25年编程生涯

图:Wijmo 5代码截图

CSDN:在Wijmo 5的介绍中,有一块“真正的JavaScript控件”,可否具体讲讲它所指的意思?

Bernardo Castilho:从字面意思来理解,“控件”是指一个具备用户接口以及包含属性、事件、方法等的对象模型的可重复使用的软构件。大多数JavaScript库所提供的都是与控件极为类似的组件(Widget),只不过,组件的性能有一个单一却相当难管理的“Options”对象,并且,它们使用调用方法或附加事件处理程序的字符串,导致语法冗长又容易出错。

而Wijmo 5则完全不同,它实现了getter和setter等属性支持,拥有真正的事件和方法。所有的对象模型都是类型安全的,开发者可从IntelliSense和TypeScript编译器受益。最重要的是,Wijmo 5语法和JavaScript类一样简洁,代码更易于编写、阅读和理解。

CSDN:Wijmo 5控件是否可以根据设备或浏览器进行自适应?其通用性如何?

Bernardo Castilho:Wijmo 5控件支持包括手机、平板电脑、PC在内的所有设备,无论开发者选择使用哪种布局框架,都可以完美集成。比如说,我们大部分的示例都是用Bootstrap来实现自适应布局,这就确保了应用程序不仅可以运行于小屏设备之上,还能自适应,当然,有些示例还用到了其他框架,比如专门用于开发混合应用的Ionic。Wijmo并不提供布局服务,但无论开发者选择Bootstrap、Ionic还是其他任何CSS库,都可将其轻松集成到Wijmo中。

CSDN:Wijmo 5在中国有哪些技术支持?如果中国的开发者们遇到问题该如何寻求帮助?

Bernardo Castilho:我们将为来自中国的开发者提供一流的服务支持。我们的母公司GrapeCity在中国的上海和西安都设有分公司,关于Wijmo 5开发的许多工作都是在中国完成。如果来自中国的开发者们关于Wijmo有任何的问题,都可以在GrapeCity论坛提出,我们的开发人员一定会及时提供帮助。

CSDN:作为资深程序员,能否谈谈您对于HTML5/JavaScript技术趋势的看法?

Bernardo Castilho:在我看来,EcmaScript 5、TypeScript、AngularJS等技术的更新已经让HTML5和JavaScript成为应用开发最高效实用的平台。EcmaScript 5引入了最为重要的getter和setter属性以及SVG、Canvas、JSON等支持,而在此版本之前, EcmaScript根本不够强大。TypeScript也新增了许多关键元素,除了面向对象之外,还有能节省时间并提高代码质量的静态错误检查。AngularJS则提供了丰富的MVVM和Web组件,两者都是现代应用开发的关键部分,尽管AngularJS所具备的功能并不是独此一家,但它却是当下最流行的技术之一。

CSDN:近期在中国,有一个颇为热门的话题,就是Adobe关闭了在中国的研发分公司,仅留销售部门,其中很重要的一个原因就是对于国人而言,正版软件太过昂贵,就GrapeCity控件来说,你们是否会针对中国市场进行价格调整以适应中国国情?

Bernardo Castilho:我们曾就定价进行过许多内部讨论,大部分人认为目前的价格是相当合适的,而有的人则希望能够增加一个价格较低但有限制条件或减少支持的选择。对于中国的开发者,究竟该提供一个什么样的价位?关于这一切,我们仍在思考中。同时,根据我们在中国的业务团队的反馈,中国的企业用户非常重视技术服务,因此在中国市场,我们会提供本地化的技术支持,以及电话、邮件响应等增值服务,以帮助开发者获取更棒的体验。

CSDN:有没有想对中国的开发者们说的话?

Bernardo Castilho:我鼓励所有对HTML5和JavaScript感兴趣的中国开发者登陆我们的官网了解Wijmo 5,在这里,不仅可以下载Wijmo 5,还有视频、示例、文档、论坛等让你深入了解Wijmo 5。更希望来自中国的开发者们能够以英语或中文等方式直接与我们联系,获取更多信息,或向我们提出建议,来帮助我们将Wijmo 5做得更好!

----------------

Wijmo 5中文官网:http://wijmo.gcpowertools.com.cn/5

Wijmo 5中文社区:http://gcdn.gcpowertools.com.cn/showforum-140.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这