osx& Windows开发 - 为新手

时间:2009-04-01 10:11:02

标签: windows macos cross-platform

我的背景:过去十年来,我一直在使用php和javascript开发Web应用程序。在此之前,我已经开发了使用turbo pascal for DOS的应用程序。在我看来,应用程序和Web应用程序开发是两种不同的开发(至少它是我想起的,当我记得回到DOS应用程序开发的旧时代)。

现在我需要回到“正常”应用程序开发的各种原因。我想要构建的应用程序需要一个GUI,它必须在osx和windows上运行。作为mac os用户,我将获得一个应用程序作为结果非常好,这真的感觉就像一个osx应用程序。我不需要任何特殊的UI组件:像树,数据网格和一些表单元素的探索器/查找器就足以满足我的需求。

现在的问题是,我不知道从哪里开始:我会把我归类为新手,因为自从我上次开发除了Web应用程序以外的任何东西以来,已经很长时间了。有没有编程语言和gui工具包的建议,而不是陡峭的学习曲线?或者你能推荐一本我应该阅读的书来进入跨平台的osx / windows app开发吗?

非常感谢!

谢谢大家!我想我会看看真正的基础!

13 个答案:

答案 0 :(得分:11)

2011年11月编辑 - 撤消

我在下面说的大部分内容仍然是正确的,但我现在对于尝试发布商业级应用程序的任何人推荐REALbasic有严重的保留意见。为了节省我记得以后编辑这篇文章,看看RealSoftware是否已经设法使用他们框架的Cocoa版本发布了一个强大的IDE版本。如果没有,请非常谨慎。

我写这篇文章时心情沉重,因为我仍然非常喜欢这种语言,认为框架和IDE都做得很好。问题显然是公司内部的资本不足和可能的软件开发文化之一,一直无法处理错误回归问题。每个版本都修复了许多错误,但是对于开发人员来说,引入的错误数量似乎很大。他们有一个非常小的团队来应对产品的复杂性,特别是考虑到新发布的Web版本,它实际上是一个全新的平台。

理论上它仍然是一个很棒的产品,但是要利用试用期,在你计划定位的每个平台上彻底测试它,并决定你是否可以忍受你找到的任何错误,因为它们可能会存在一段时间。< / p>


REALbasic.

该语言是一种功能强大的现代OO语言,您可能难以适应您隐约记忆的Pascal或当前的JavaScript。它具有C ++的大部分功能,没有使调试成为噩梦的危险因素。您还会发现IDE比Visual Studio更简单,更容易处理。

IDE可以很容易地将GUI组合在一起,让它可以在多个平台上运行。 Pro版本拥有我使用过的最好的跨平台调试器之一,很容易在Mac上工作(比如说)并为Windows和Linux开发,只需点击一下即可进行编译和测试。

还有一个蓬勃发展的社区,包括许多具有您专业水平的人,因此您不会被嘲笑为新手

我是一名拥有超过25年经验的专业软件开发人员,目前主要从事REALbasic,C ++,C#,Objective-C和一些Ruby。对于你提到的应用程序,REALbasic是我的首选工具。

编辑:我无法相信有人对此进行了投票,但没有胆量添加评论解释原因。我听说过对REALbasic的偏见,但这是我第一次遇到它。我的答案以什么方式不适合这个问题?

只是为了增加我的信誉,我已经实施 cross-platform frameworks部署到成千上万的最终用户的系统 - 我有C ++的跨平台体验来为别人鼓掌做得很好,REALbasic框架非常好。

答案 1 :(得分:5)

我用一个相对较小的学习曲线来研究最好的跨平台工具...特别是如果你熟悉Visual Basic ......是REALbasic。使用REALbasic Pro,您可以编译程序以从相同的代码库中定位Win32,Linux和OS X,只要您不使用特定于操作系统的调用和功能(可以使用插件或直接调用)。他们的支持对我的问题非常敏感,个人版(仅编译为你下载IDE的单一目标平台)对于Linux是免费的,对于其他平台来说是便宜的,但实际上你可能想要下载并试用它出。一个IDE,相对便宜,可以在OS X,Windows和Linux上编译本机应用程序...它不那么麻烦,对我而言,当你想完成工作时这很重要。

答案 2 :(得分:5)

我建议反对C和Qt,并且也会推荐REALbasic。

凭借你在Pascal和JavaScript中的背景,你会对REALbasic感到更舒服。我在Pascal和C / C ++中做了很多编码 - Pascal指导你避免编程错误,C让你直接进入,甚至邀请你,然后你将很难弄清楚它为什么出错。 Qt是一个非常抽象的框架,需要你在学习之前学到很多东西,就像用C语言一样。当时我们曾经使用过TP的简单性。

在这方面,RB更像是Pascal。它的IDE在支持您的编程方面非常现代化,使用易于使用的GUI设计器,直接编辑器来填补处理UI事件,代码完成等方面的空白。

只有当你进入大规模的程序时,RB才会失去一些吸引力,因为缺少工具可以很好地概述复杂的类交互等。

另一件事是Qt更有可能造成丑陋的Mac应用程序而不是RB。 RB在视觉上引导你将它全部对齐 - 在Qt中你必须使用数字,偏移等来定位你的对象(至少在2年前使用Qt时就是这样)。

我在RB中编写了不少x平台应用程序,对结果非常满意。

你可能不会写那些在开放的小型企业市场上与最好的应用竞争的超级好看的应用程序,但如果你只是想让一些可靠的代码工作,那么易于设计的UI是可以接受的普通用户,试试吧。

但是,这不是免费的。但它相当小的社区就在你身边 - 他们渴望提供帮助,而不是抨击那些试图说话的人:)

答案 3 :(得分:4)

我是新来的,但是通过REALbasic用户组获取了这个帖子。我认为我的立场与你的相似。我为我的工作做了网站设计,主要使用javascript(有一点点php,不多)。我有一个Pascal和BASIC背景。我已经涉足C但是不喜欢你需要监控它的详细程度。这让我想起了太多的集会(我从高中/大学时代开始做噩梦)。

我一直在寻找一种跨平台语言,熟悉它,但最初是用VB开始的,因为它是免费的。我更喜欢在MacOS中编程,所以我尝试了REALbasic。我发现REALbasic的UI构建器比VB更容易使用。我会回应其他评论,社区是我参与过的任何用户群中响应最快的。我已经使用REALbasic和我的Mac制作了几个程序,超过100个用户每天都在我的工作中使用(在PC上,主要是XP和2000)。我对这些程序的易用性和易用性表示赞赏。你 DO 必须记住调整'小'的东西,让它看起来正确跨平台(即:默认按钮位置在PC与Mac相反,Linux上的按钮大小不同等)。很多人都捐赠了自定义课程来为你做这些东西。

人们似乎认为“基本”语言对于他们的目的来说不够强大。虽然它的核心是BASIC(使用For..Next,Do..While和If..Then命令),但它不是你爸爸的BASIC。基于事件驱动的结构,它比我使用的任何其他东西都要多得多OOP,这对我来说很容易接受。他们有免费试用,所以抓住一个演示并运行教程。如果您遇到困难,请在网站上询问有关NUG或论坛的问题,您很快就会得到答案。

答案 4 :(得分:3)

您可能对以下问题和答案感兴趣:

以及许多其他人在这些问题的相关侧边栏中提出建议。

一些答案​​提示gtk(跨平台gimp使用)。其他人建议本土方法。有人认为Mac是开发Mac OS X,Windows,Unix和Linux的好平台。

答案 5 :(得分:3)

正如Andy Dent和其他人所说,对于创建跨平台应用程序的新手来说,很难击败REALbasic(现在Xojo)。

当然,还有很多其他跨平台解决方案,如QT(C ++),Java,.NET(在某种程度上)和wxWidgets,但它们不是初学者能够有效使用的。

我有多年的各种语言和技术的专业开发经验,我更喜欢在大多数时候使用REALbasic。

话虽如此,您也可以考虑运行时革命或Adobe Air。

答案 6 :(得分:3)

我也全心全意地推荐RealBasic。我已经使用RB大约8年了,并且发现它是我公司开发需求的完美工具,从小型应用程序到大型多用户系统。

它非常适合初学者和那些重新开始编程的人,也适合专业开发人员。

强烈推荐。

答案 7 :(得分:1)

虽然使用一种独立于平台的语言并允许您编写应用程序一次并在任何地方使用它似乎很诱人,但毫无疑问,您会牺牲每种语言,特别是在UI和用户体验方面。 如果您可以使用本机API创建一些东西,让您充分利用操作系统的功能,使您的应用程序大放异彩。

答案 8 :(得分:0)

我肯定会选择C ++和Qt,你编写的代码将在Windows,Mac和Linux上编译运行没有问题。 Qt-Qt Creator附带的新IDE非常出色,在Windows,Mac和Linux上运行和外观相同,您无需开始编写跨平台应用程序。

我尝试过WxWidgets,但没有找到好的IDE,最好的是Code Blocks,但GUI Designer并不完美,在不同的系统上有不同的问题,IDE本身仍在大力开发中。

其他选项是Java和C#,但这些不是跨平台语言,而是平台本身。虽然你不需要为每个平台编译代码,但在路上会有很多不同的问题......

答案 9 :(得分:0)

如果你的GUI很简单,为什么不只是创建一个通用的GUI层,然后编程呢?使用本机窗口小部件为每个操作系统编译版本。这是在多个平台上确保原生L&amp; F的最佳方式。

Qt和REALbasic的建议都很好,虽然它们将你与特定的技术联系起来(在这种特殊情况下我无法想象这会是一个问题)。

就个人而言,我会选择Java,因为它之前对我有用(我有一个在我的PDA,手机和桌面上运行的应用程序),但它不使用本机小部件。

答案 10 :(得分:0)

在此处添加迟到的评论:

看看Revolution。这有点像在roids上的现代Hyper-card。它是跨平台的(Mac,Linux和Windows)。这是RealBasic的一个重要竞争者,并且正在变得强大。虽然我仍然使用RB(并且喜欢它),但我正在认真对待革命。

答案 11 :(得分:0)

我也会研究Realbasic或Revolution。他们都创建跨平台本机应用程序。我个人认为Realbasic是一个更好的选择,因为它与VB语言非常相似。您可以通过RB学习一些有价值的技能,它可以随着您的经验而增长。我已经使用VB和RB超过10年了,我想你会很高兴。

答案 12 :(得分:-1)

如果您需要将代码设置为跨平台,则必须使用QT之类的内容。

虽然,我建议为每一个使用本机API(Cocoa for Mac OS X,.NET或Win32 API for Windows)。用户体验会好很多。但是,当然,这会花费你更多的开发时间。