4

我需要通过 http 从 Internet 下载一些 csv 文件,对其进行解析并将其转换为更有用的格式。最终,C++ 程序将使用数据。几年前,我会拿出我的 Perl 书籍并开始编写 Perl 脚本来进行下载和解析。但现在有了 Boost 和 Qt,我可以毫不费力地用 C++ 完成下载、解析和添加 GUI 前端。上次我写 Perl/Python 大约是 6 个月前。在 Perl/Python 中完成它可能需要更长的时间,而且我的 Perl/Python 代码将是废话。如果我唯一的工具是锤子,一切看起来都像钉子吗?还是时代变了,C++ 可以在传统上由脚本语言(如 Perl 或 Python)主导的领域发挥作用?

4

9 回答 9

9

其他人通常期望解决方案是什么有什么关系?如果可以用 C++ 更好更快地完成工作,那就用 C++ 来完成吧。

于 2009-05-29T23:05:08.697 回答
3

对于您的示例,您似乎将更有效率,并且能够更轻松地使用 C++ 解决您的问题,因为这就是您所知道的。

但一般来说,我希望更多的人会使用 python/perl 来完成这类任务。

于 2009-05-29T23:02:54.957 回答
2

为什么不?

如果您的代码由于缺少库/功能而变得很笨拙,那么 C++ 可能不是最好的。如果需要经常更改,那么 C++ 可能不是最好的。如果其他了解 Perl/Python 的人会维护它,那么 C++ 可能不是最好的。等等

你真的需要图形用户界面吗?你需要速度吗?使 C++ 成为一种脚本语言没有任何改变,但这并不意味着您不应该使用它。

如果它通过了这样的常识测试,那为什么不呢?

于 2009-05-29T23:00:17.910 回答
1

好吧,如果你必须盖房子,锤子就可以了。但是使用气动框架钉枪建造房屋要容易得多。

C++ 是一门优秀的语言,您可以在脚本语言主导的领域提高工作效率,但在所有条件相同的情况下,使用 perl/python 进行文本解析会提高工作效率。

于 2009-05-29T22:59:30.237 回答
1

C/C++ 与 python/perl 的生产力问题似乎与我无关。如果您想使用 Qt、Boost 和任何其他现成的工具集编写解析器,那就去做吧。您实际上并没有指定解析速度是否是一个问题,但即使是这样,它对您的情况是否也很重要

即使您认为使用 X 语言可能更容易,如果您想尝试学习该语言的新知识,请用 Y 语言编写它。这听起来是一个非常简单的任务,所以只需按照您想要的方式编写即可。

您还需要考虑未来的使用。如果需要以某种方式增强和扩展该程序,则可能需要选择特定的语言。

于 2009-05-29T23:15:24.557 回答
0

如果您在 C++ 中的工作效率更高,那么一定要使用 C++。学习其他语言仍然是一个好主意,但有时你需要使用你所知道的来完成工作。

顺便说一句,您可能已经知道这一点,但是Boost.Tokenizer库通过转义列表分隔符内置了 CSV 解析功能。

于 2009-05-30T00:21:40.650 回答
0

根据您的描述,听起来您除了锤子还有其他工具。您拥有的工具越多,您完成工作的效率就越高。使用您可以使用的任何工具来完成工作,偶尔购买(学习)更多工具。

于 2009-05-30T00:28:07.110 回答
0

我喜欢 C++。我讨厌编译、运行、测试、关闭循环——特别是当我需要测试数据时。

我的解决方案:我制作了一个小型编程环境 [由 Lua 提供支持],我将其嵌入到我的 C++ 应用程序中,然后在运行时打开它并以交互方式进行操作。为什么要坚持一种或另一种编程环境?使用两全其美

于 2009-05-30T01:40:53.843 回答
-1

C++ 并不是专门为处理长字符串而设计的。(只要看看旧的 C-Strings ......对于任何严肃的事情来说,它们都是一场噩梦。)相比之下,Perl 就是这种用途而设计的。

您可能可以在 C++ 中拼凑一些东西,但是 Perl 解决方案可能会更加健壮和可维护。

于 2009-05-29T23:00:14.150 回答