为开源提供内部工具值得付出努力吗?

时间:2009-06-16 18:22:05

标签: open-source powerbuilder

我知道这是一个普遍的问题,但我想听听其他人对我们案件的看法:

我在一家小公司工作。我们的主要开发工具是PowerBuilder,这是一个非常有限的IDE,社区不断缩小。我们已经创建了一些工具,我们在内部使用这些工具来解决某些需求。它们既没有经过适当的设计也没有经过适当的测试,并且没有生产质量。 OTOH,他们确实拯救了我们很长一段时间,也可以帮助别人。我敢肯定其他公司也有同样的工具,并且想知道与他人分享这些工具有多么普遍。我认为 -

专业人士:

  • 善业
  • 更加关注我们的网站
  • 也许从别人那里得到修复和改进

缺点:

  • 如果不投入更多开发,这些工具可能会让我们看起来很糟糕
  • 发布代码需要付出一些努力
  • 某些工具可能过于专业化以满足我们的需求
  • 鉴于社区不断缩小,整个努力可能会被忽视。

您或您的公司是否曾提供此类工具,或使用其他人开发的此类工具?值得努力吗?

编辑:

对于那些多么奇怪的人,我想到的工具包括 -

  • 通过列出签出给当前用户或其他人的对象,备份签出的对象以及重建PBG,使SourceSafe更容易使用的工具。
  • 在运行时识别PB控件的工具,如Spy ++一样(需要目标应用程序的一些基础结构)。
  • SQLite的PBNI包装器(进程内访问,无ODBC)。
  • SQL客户端,文本测量工具等。

7 个答案:

答案 0 :(得分:12)

“开源”最初意味着您发布了一个工具,并且您使源可用。由于某些预期的项目,以及在某些情况下通过许可要求重新提交源代码的更改以进行共享,“开源”现在经常添加协作开发的概念混合。我做了(或试图做)后者;请允许我分享。

源可用协作开发开源相关的工作量之间存在巨大差异。

领导力:您需要告诉人们变化的人,事,地点,时间,原因和方式。而且很可能,你需要通过外交手段戳戳并刺激你的志愿者。您可能需要定义愿景并确定项目目标的优先级,然后在有人试图以另一种方式采取行动时强制执行。而且,除非你只是希望人们通过意外发现你的工具,否则你必须做广告,在注意力和华而不实之间运行那条非常细的线(在互联网上更薄)。如果该项目将实施meritocracy的概念,正如许多开源支持者所说的那样,那么有人必须判断人们的成就并适当地履行权利和责任。

工作流程:我没有通过任何想象力进行详尽的搜索,但我还没有看到一个协作开发平台,它完成了我需要的所有事情。开源协作开发的部分要点是代码审查中涉及的数量将涵盖提交代码质量的任何潜在问题;我还没有看到一个集成到协作开发平台中的免费工具,该平台有助于干净地管理(例如,计算代码审查; x 审核后自动推广)。我们必须处理这个问题,将手动方法破解到现有工具中。可能在某些时候你必须定义一个版本并创建一个版本。然后就是像文档这样的笨拙的任务。 (曾经尝试发布一个新版本的免费没有发行说明吗?愤怒!! 咧嘴笑

特定于PB的问题:PowerBuilder是一种商业工具,虽然有便宜的版本available,但没有免费的版本。添加到PB11的DRM可能减少或消除了开发人员可能正在做的办公室PB家庭副本的盗版,而PB11及更高版本的双重许可政策允许开发人员合法带回家(经许可和合作)原始许可证所有者创建第二个许可证),我没有看到很多这样做。 (没有科学研究,这正是我所看到的。)这削弱了许多潜在的合作,甚至是爱好者。 PowerBuilder版本之间的代码兼容性问题,以及极少数人拥有每个版本的事实,将再次限制您的潜在贡献者列表。

别误会我的意思。我很想在PowerBuilder社区中看到更多协作开发开源。我很想知道如何自己解决这些问题,并且我正在努力研究是否可以使新模型发挥作用。 (我第一次跟随流行模式的努力失败了,恕我直言。)

是否有理由对将ZIP文件发送到网络并忘记它感到非常不舒服?我不知道。在一个4岁的ZIP文件中是否有任何更多的骄傲或尴尬,而不是SourceForge项目,其3年半前的最后一次贡献是一个帖子“哪里到底是谁?” Sybase CodeXchange协作开发平台转移到源可用平台有一个原因:旁边没有人使用协作开发功能。如果 source available 开源您的代码,那么您将有足够的公司。

BTW,CodeXchange可能是您对PowerBuilder社区可见性的关注的答案,尽管您将丢失网站流量。 PowerBuilder Web Ring是另一种效果明显不太有效的方法,可帮助您保持网站流量的可见性,但它需要您网站目标网页上的导航栏。 CodeXchange也可以解决您对代码质量的担忧以及您必须分享的目标的狭隘性。 笑容

你应该怎么做?不要低估协作开发共享的工作量,但不要让它阻止您从源可用共享。

祝你好运,

特里。

答案 1 :(得分:3)

你可以打折你的一个缺点:任何对这种工具感兴趣的人都在评估你的产品,不太可能在你的反馈表上写公司X是suhors ;相反,如果他们发现你所提供的内容有些不足,你可能会得到有用的错误报告甚至补丁。

答案 2 :(得分:2)

如果你能让你的公司为社区做出贡献而购买,那么我会去做。回馈一点点总是值得努力,这绝对是让你的一些工具向公众开放并由社区改进的好方法。

就缺点而言,我不会过多担心批评,它只能帮助你改善你提供的下一个产品,人们会从错误中吸取教训,没有人是完美的。

即使你的努力没有被你缩小的社区所忽视,未来的员工和客户也会看到你在公司外做出贡献,并可能有助于你的声誉。

我认为这些优点远远超过了这方面的缺点。

答案 3 :(得分:1)

简而言之:去吧。我怀疑没什么可失去的,但要获得很多。

专业人士:

**好业力*

永远不会有坏事。

**更多关注我们的网站*

如果您的代码真的不好,可能是骗局:)

**也许从其他人那里获得修复和改进*

这可能是您从开源代码中获得的最好的东西。它完全是为了分享和互相帮助,你可以使用其他的代码,他们可以使用你的代码和每个人从交易中获得的。

缺点:

**如果不投入更多开发,这些工具可能会让我们看起来很糟糕*

我会搜索删除狡猾/粗鲁/愚蠢的评论,整理格式等。

**发布代码需要付出一些努力*

几乎不需要任何努力 - 在Sourceforge中设置一个帐户,在那里创建一个SVN repo并导入您的代码。然后使用该网站创建二进制包(zip文件将执行)和release it。如果你停下来阅读所有文档,可能需要一个小时。

**某些工具可能过于专业化,无法满足我们的需求*

你可以将整个批次设置为一个组 - 例如PowerBuilder Tools,那么看到真正专业工具的人不会浪费他们的时间来获取它们,他们仍然会拥有'更容易使用'的工具。 / p>

**鉴于社区不断缩小,整个努力可能会被忽视*

可能,但实际上没有理由不发布代码。如果不这样做,当/如果您更改开发工具时,它可能会完全丢失给所有人。

答案 4 :(得分:1)

发布源代码是获取反馈的好方法。如果你看起来很糟糕,那没关系。只是愿意解决这个问题。如果你想要改进方面的帮助,我想不出比寻求帮助更好的方法。

顺便说一句,许多开源项目可以归功于之前萎缩的社区的增长。

答案 5 :(得分:1)

我认为你在确定利弊方面做得很好。专业人士可能会超过缺点。如果没有人喜欢这些公用事业并且对他们没有任何帮助,那么你真的没有失去任何东西;糟糕的代码不应该吓到经验丰富的开发人员(最有经验的开发人员,特别是PB的开发人员,已经看到了他们的遗留代即使一个人受益,那么你也会得到业力,嗯?

如果您继续将您的工具提交给开源社区,请按照此处的说明进行操作,并事先承认这些工具尚未完善。这可能会阻止一些人查看它们,但是,如果它们至少具有功能并且可以很容易地修改,那么它们仍然代表着任何潜在受益者的先发制人。作为一名PB用户,我很想知道更多关于可以让我们在生产力方面具有优势的免费工具。

您是否查看了Sybase CodeExchange?他们有一些开源PB的东西,包括PowerBuilder Foundation Class框架。

答案 6 :(得分:0)

我刚刚看到你对my question的回应 - 令人惊讶的是你已经开发了类似的东西。 : - )

关于您的问题:我所工作的公司在网站上有一个特定部分,其中我们内部使用的工具和/或客户经常要求的简单解决方案(或代码片段)已发布。这些产品的许可证也很自由,我认为它有资格作为开源。

在你的特定情况下,我对你所讨论的类似Spy ++的应用程序非常感兴趣,因为我一直在寻找(和/或尝试开发)类似的东西。

我的目标是在目标应用程序中不需要任何基础结构的东西,但到目前为止,我很乐意使用任何有效的东西,即使它需要修改应用程序。我对PowerBuilder API还不够熟悉,无法在不修改目标应用程序的情况下判断是否可行。

正如我所提到的,我已经为普通的Windows应用程序以及托管代码应用程序(需要与VM交互以查询对象树的状态)开发了类似的类似间谍的应用程序,所以我希望我会能够找到不需要任何目标基础设施的解决方案。

您是否已在某处获得源代码?它不需要是可编译的,我只是很乐意看看你原则上是如何做到这一点的,这样我就可以(希望)从中得到一些解决我特定问题的东西。如果你还没有上传源代码,也许你可以提供一些我可以用来私下联系你的电子邮件地址?我尝试在你的个人资料上寻找一些东西,但到目前为止 - 没有运气。 : - )

相关问题