C++ 如果你只有一把锤子…或者

C++ 如果你只有一把锤子…或者,c++,scripting-language,C++,Scripting Language,我需要从互联网上通过http下载一些csv文件,对其进行解析并将其转换为更有用的fomat。最终,C++程序将消耗数据。几年前,我会拿出我的Perl书籍,开始编写Perl脚本来进行下载和解析。但是现在使用Boost和Qt,我可以在C++中做下载、解析,并在GUI前端投入很少的精力。我上次编写Perl/Python大约是6个月前。用Perl/Python可能需要更长的时间,我的Perl/Python代码将是垃圾。如果我唯一的工具是锤子,一切看起来都像钉子?或者时间已经改变,C++可以在传统上由脚本

我需要从互联网上通过http下载一些csv文件,对其进行解析并将其转换为更有用的fomat。最终,C++程序将消耗数据。几年前,我会拿出我的Perl书籍,开始编写Perl脚本来进行下载和解析。但是现在使用Boost和Qt,我可以在C++中做下载、解析,并在GUI前端投入很少的精力。我上次编写Perl/Python大约是6个月前。用Perl/Python可能需要更长的时间,我的Perl/Python代码将是垃圾。如果我唯一的工具是锤子,一切看起来都像钉子?或者时间已经改变,C++可以在传统上由脚本语言(如Perl或Python?

> P>)的区域生产,那么,如果你必须建造一座房子,锤子将工作得很好。但是使用气动框架钉钉器建造房屋要容易得多


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

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

可能会在C++中结合一些东西,但是Perl解决方案可能会更健壮和可维护。

< P>为什么不?

<>如果你的代码因为缺少库/特性而变得不太好,那么C++可能不是最好的。 如果需要经常改变,那么C++可能不是最好的。 如果知道Perl/Python的其他人会维护它,那么C++可能不是最好的。 等等

你真的需要GUI吗?你需要速度吗?没有什么改变使C++成为脚本语言,但这并不意味着你不应该使用它。

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

< P>,对于你的例子,你似乎更能生产效率,并且能够更容易地使用C++来解决你的问题,因为这是你所知道的。
但一般来说,我希望更多的人会使用python/perl来完成这类任务。

其他人通常期望的解决方案是什么有什么关系?如果<>强> > <强>可以在C++中完成更快更好的工作,在C++、故事结尾做。< /P> < P>对C/C++与Python/Perl的生产率问题似乎与我无关。如果您想使用Qt、Boost和任何其他现成的工具集编写解析器,那么就这样做。您实际上没有指定解析的速度是否是一个问题,但即使是,它对您的案例是否有影响

即使你认为用X语言可能更容易,如果你想尝试学习该语言的新知识,也可以用Y语言写。这听起来是一项相当简单的任务,所以只要按照你想写的方式来写就行了


您还需要考虑将来的使用。如果这个程序需要以某种方式被增强和扩展,这可能决定了一个特定的语言选择。

< P>如果你在C++中更有效率,那么就一定要使用C++。学习其他语言仍然是一个好主意,但有时你需要用你所知道的去完成事情


顺便说一句,您可能已经知道这一点,但该库通过内置的CSV解析功能。

从您的描述中,听起来您除了锤子之外还有其他工具。你拥有的工具越多,完成事情的效率就越高。使用C++中的任何工具来完成任务,偶尔购买(学习)更多的工具。我讨厌编译、运行、测试、关闭循环——特别是当我需要测试数据时。
BR>我的解决方案:我制作了一个小型编程环境[Lua[Audio ] ],它嵌入在我的C++应用程序中,我在运行时打开它,并交互地进行操作。为什么要坚持一种编程环境或另一种?使用“两全其美”

编写无法维护的perl很容易。+1“如果我唯一的工具是锤子,一切看起来都像钉子”…只是不要用锤子敲打干墙螺钉,只是说你可以稍后用一些泥来掩盖。投票结束,因为这不是一个真正的问题。无论是C++还是脚本语言都能做到这一点。你的问题到底是什么?