我当信息图书的兼职翻译者,已经有好长的一段时间了。我觉得,在信息产业当一个译者需要有三种技能:
第一:英文能力
第二:中文能力
第三:专业能力
专业能力会影响对于文章的理解,所以专业能力不足的人,即使英文能力很好,可能无法很好地理解原文。中文写作能力不好的人,即使英文能力和专业能力都很好,也无法很流畅地用中文表达出来。英文能力不好的人,即使中文能力和专业能力都很好,可能一开始就无法很好地理解原文。
如果你问起这三者何者较重要,我认为依序是:专业能力大于中文能力大于英文能力。英文的听说读写不用样样精通,只要看得懂基本的英文句子就可以,反正随时可以查字典。中文能力就比英文能力重要了,表达成中文句子时,需要信、雅、达。而专业能力又比中文能力重要一些,特别是在文章的技术门坎很高时。
而软件的迁徙( migration )也和翻译文章相彷佛。由于信息产业变动很快,技术改朝换代是常有的事。有时候我们想把旧技术换到新一代的技术(例如 Visual Basic 到 Visual Basic .NET ),有时候我们想把甲公司的技术换到乙公司的技术(例如 Java 到 C# ,或 Visual Basic 到 Java ),这些都算是软件的迁徙。不管你是从 Visual Basic 迁徙到 Java 或 Visual Basic .NET 或 C# 、或者从 Java 迁徙到 C# ,都必须具备三种能力:
第一:原始语言能力
第二:目标语言能力
第三:专业领域能力
我认为这三者的重要性也是:专业领域能力大于目标语言能力大于原始语言能力。原始语言不需要太精通,只要能看得懂原始语言的程序逻辑就可以,反正随时可以查原始语言的 API 文件。目标语言能力就比原始语言能力重要了,而且还必须很熟悉目标语言的 API ,这一点非常麻烦,要花很多力气和时间。专业领域的能力是最重要的,该程序到底是涉及数据库、图学、 Web Services… 等,技术人员必须先具备该领域的知识。所以,对于负责进行软件迁徙的技术人原来说,首重目标语言能力和专业领域能力。
软件迁徙的工作,如果需要技术人员一行一行地转换,就太辛苦了。所幸,市场上有许多工具可以帮忙转换,但是这样的转换工具并不能让我们高枕无忧,他们通常具有下面的特色:
? 通常能很完整的转换程序语言的逻辑
? 通常者能转换一部份的 API
? 通常不能转换编程模型,与系统架构
也因此,软件迁徙的难度颇高,必须审慎评估。甚至许多人为,重写一套会更简单。评估软件迁徙若有确切的必要性之后,除了择定工具之外,也可以寻求技术顾问公司的服务。例如 ArtinSoft 就有提供 Java 转 .NET 的技术服务。
软件的迁徙绝对不是一件简单的事。我最近动手进行了一些例子,发现这需要高度的能力,也需要许多人投入。绝对是一件苦差事!