存档在 ‘微型独立软件开发商’ 分类

Script language for Shareware

2009年8月17日

脚本语言早已不是什么新潮的玩意,在shareware中应用脚本语言的例子也不少,例如Resolver Systems的Resolver One软件。脚本语言在构建shareware的过程中究竟有何优劣,应该如何利用好脚本语言的特性呢?

快速原型

轻量的动态脚本语言在构造快速原型方面有着先天的优势。语言的表达能力强过一般的编译语言,开发周期中省却了编译部署的步骤,代码变更后的效果即改即现。灵活的类型系统不仅仅在写程序时比较便捷,写unit test的过程中,构造mock object也更容易。

 

扩展功能

希望在程序中嵌入插件的功能用脚本语言来实现是最简单不过的了。比起用C/C++写dll,或者用reflection来调入.NET的Assembly,脚本语言使用起来方便得多。

扩展模块可以由有编程能力的用户来实现,也可以由软件作者自己开发。极端点的情况是,软件开发者只要利用编译语言和开发环境搭建一个程序的GUI框架,整个程序的功能可以完全使用脚本语言来实现。

 

防破解

在程序中嵌入脚本引擎或者虚拟机,并且让程序本身和脚本/虚拟机代码有比较复杂的交互是一种减少程序被破解的途径。脚本语言和虚拟机引入了有别于主程序代码的额外复杂性,这种复杂性对于试图进行破解或逆向工程的人有一定的阻碍作用。

 

不利之处

这里简单列出了在程序中使用脚本语言可能带来的问题:

  1. 额外的学习曲线
  2. 多种语言并用使程序的复杂程度变高
  3. 应用程序部署问题

WPF Client

2009年2月24日

blu

blu(来自http://www.thirteen23.com/experiences/desktop/blu/#)是一个使用WPF技术创建的Twitter客户端程序。外观看起来很漂亮,易用性方面也还不错。

Blu blu II

最近读了本书《Programming WPF》,学习了一些WPF相关的知识,主要是WPF编程方面的。从粗略的了解来看,WPF是Windows平台下很有希望的一项客户端程序UI框架(WPF的Web精简版本Sliver Light也是构建Web平台Rich Client的好工具)。随着微软Vista/Win7的普及,WPF所必须的.NET Framework 3.0/3.5支持不再会是一个问题(实际上Win7当中附带的是.NET Framework 4.0版本,而新的开发工具VS.NET 2010本身就是基于WPF的),可以预见基于WPF构建的程序在1-2年内将会流行起来。

开发人员的WPF

WPF的开发并不是特别的困难。不过和以往的技术不同,WPF有着很好的code-presentation分离。如果想开发出吸引人的WPF程序,一个好的界面设计师是必不可少的。

对于开发人员来说,了解如何使用微软Expression套件工具创建WPF资源、设定WPF特效乃至直接设计WPF界面对开发WPF程序是非常有帮助的。

而这是对于程序开发人员来说最大的挑战——掌握一个矢量图创建工具(Expression Design)可不是那么容易,比学一套新的编程框架困难多了。

Next Step

创建一个我自己的WPF程序吧,也许会是一个豆瓣的client。

关于软件作坊

2009年1月16日

前段时间看了《走出软件作坊》这本书,觉得不错(也有不同意见),是作者多年工作的积淀和总结,有很多经验可以借鉴,也可以从一个侧面了解了特定行业软件企业和从业人员的状态。没想到书没看多久,最近就遇到了一个软件作坊。

事情是这样:公司需要开发一个SAP到金税税控机的接口软件,用于自动打印发票。找了几个供应商来做演示,有SAP、IBM和国内某作坊。

因为与会者有不少是来自国外的同事,所以主要用英文来做讲解,多少有点小难度,影响了沟通。

演示机器的设置也有问题,临开始了才发现不能接入我们公司的网络,手忙脚乱了半天。

演示中展示了一些系统截图,为了保护敏感数据,对截图上某些数据做了涂改。这当然可以理解,可是偏偏幻灯片上的截图用mspaint上涂抹得东一块西一坨,如同涂鸦。

熟悉自己系统的演示者操作起界面来速度超级快,APM达到60+。

感叹一下,作坊不易开啊。

平衡

2008年12月30日

开篇

好吧,其实我还不是mISV,只是一直以来有这样的计划,期望成为一个mISV。

我是全职IT developer,在所服务公司的IT部门工作。主要的职责是开发公司内部使用的软件(包括Windows程序和Web程序)。

8年以来,我的工作经验基本集中在微软的.NET平台上。随着.NET平台在客户端的逐渐流行,Vista也内建了.NET平台,使得用.NET开发客户端产品越来越简便。这应该是让我成为mISV的一个契机。

起步

有做产品的想法很久了(5年?差不多吧),自己也有一个Idea List来记录偶尔蹦出来的想法,期待有一天能把某个想法变成一个产品——能赚钱,很多人喜欢用的那种。

然而我是缺乏行动力的,种种原因让我始终没有迈出第一步。

回头探究这些原因,无非是某种懒惰在作祟。今先以文载之,究其根本,而后动,则产品可成也。

平衡

我没想过成为全职mISV(至少不是现在)。兼职mISV的同时保持全职IT developer的工作听起来是个不错的选择(至少这是两个选择,比只有一条路,一道走到黑强)。

作为一个兼职工作,我需要在不同的方面平衡它与我的全职工作,它与我的学习生活之间的关系。大致应该有下面几个方面:

  • 时间 – 与全职工作的时间冲突
  • 技术 – mISV需要的技术能力不会和全职工作的需要完全重合,和我的兴趣也不一定完全相同
  • 金钱 – 全职工作的薪水还过得去,这反倒成为我开始兼职工作的最大阻力之一 —— 目前看起来没有特别的动力让我去努力赚取第二份“工资”
  • 生活 – 全职工作已经比较繁忙了,多了一份兼职会挤占原本就不多的私人时间

粗略分析以上几条,最大的问题是时间这一条。我不太想做那种在上班时间做上班以外事情,拿着薪水去不关心做好自己工作的人。所以mISV的活尽量要在晚上和周末来做。

技术倒还好,大部分是重合的,暂时工作中用不到的技术研究下去也可以做为储备,以后也许就会用得着。

金钱方面,有份不错的薪水至少是对兼职工作很好的支持。在购买软硬件,购买第三方服务方面会有更充足的预算。其实这应该是个很好的推动力,而不应该是阻力。

生活方面,老婆还是蛮支持我的爱好,给我尽量多时间,也支持我购买书籍还有花钱买些看起来没用的电子垃圾。有了明确的目标开始做产品后,也许可以把时间更准确得花在需要的方向上,反而会更有效率。

开发软件的过程有无数的折衷和平衡,全职/兼职的工作也是一样。我能做好前者,相信也可以处理好后者。

希望这里能成为我开始mISV生涯的第一步。