3

我想在夏天找点乐子。编写一段代码,可以在支持 Unicode 但不支持东方语言的系统中呈现阿拉伯语。我最初只写逻辑,希望没有集成代码。

我应该使用 C++ 还是 C?

哪种语言更容易编写可移植代码并且更容易与 Python 集成?


编辑:

尽管我认为自己更接近 C++,但我对 C/C++ 相当擅长。但是似乎更容易编写 C 并在每个地方插入它还是我错了?我会编写一些函数来处理阿拉伯语 Unicode 字符串。呈现阿拉伯语需要一些处理,因为几乎所有字符在不同的上下文中都有不同的形状。


编辑:

看来我会使用 C++,只是为了让它更有趣。

4

8 回答 8

4

我会使用 C++,主要是因为它提供了更多可供使用的“东西”,而且就我的经验而言,它与 C 一样可移植。但是,我已经有 10 年或更长时间没有使用直接的 C/C 编译器了。


编辑

一位评论者质疑我在便携性方面的经验。我的主要限于 Linux 和 Win32。我认为这对于这个练习来说已经足够了。

于 2009-07-01T02:06:01.230 回答
4

我强烈不同意在考虑可移植性时 C 和 C++ 具有可比性的说法。诚然,如果您将自己限制在最近的 Visual Studio 和 g++ 中,C++ 是“可移植的”。但是,如果您关心的平台比这更多(旧的 gcc/visual studio,专有 unices 上的许多其他旧编译器),那么像 boost 之类的东西就是维护的噩梦。在这种情况下,根据我的经验,C 比 C++ 更便携。如果您查看大多数使用 C++(mozilla,一些 google 代码)的开源项目,它们会将自己限制在 C++ 的一个非常有限的子集中。

现在,对于字符串处理,我会说 C 和 C++ 都是非常糟糕的语言 :) 我当然会考虑更高级别的东西,对 unicode 字符串处理有很好的支持。

于 2009-07-01T04:29:00.227 回答
3

如果是为了好玩,那就选择你想学得更好的语言。

我敢打赌,有更多最新的库支持 C++ 中的各种语言包,但也许这是乐趣的一部分,就是用 C 编写自己的版本。

于 2009-07-01T02:06:44.507 回答
3

我会用 C++ 编写它并提供一个 C 接口以获得尽可能广泛的集成足迹。此外,您可以使用SWIG生成许多常用语言的包装器。

于 2009-07-01T04:10:54.447 回答
2

尝试查看下一个站点:

“boost.org/”(参见与 python 的集成)

或者

“pocoproject.org/”

这两个网站似乎都得到了 C++ 的创造者 Stroustrup 的同情

于 2009-07-01T02:30:53.583 回答
2

您需要强大的支持。为此,C++ 有更丰富的选择。如果您使用像QT这样的框架,这几乎是微不足道的。它在所有系统上也非常便携。与 Python 集成也很简单(尽管我喜欢boost::python)。

于 2009-07-01T02:33:36.387 回答
1

如果你小心的话,C 或 C++ 中的任何一个都应该能够让你编写可移植的代码。对于 Unicode 处理,您可能还需要一个支持 Unicode 的字符串工具;对于 C,Glib 可能非常有用。

当然,您可以从一开始就用 Python 编写它。这是相当可移植的,而且可能是最简单的。

于 2009-07-01T02:15:38.637 回答
1

我认为用 C 编写更好。因为 C 将为您提供比 C++ 更多的方式来生成优化和可移植的代码。如果你用 C 编写,那么与 python 集成会更容易。

于 2009-07-01T02:57:05.327 回答