我需要从互联网上通过http下载一些csv文件,解析它并将其转换为更有用的fomat。最终,C ++程序将使用数据。几年前,我将提取我的Perl书籍并开始编写Perl脚本来进行下载和解析。但是现在有了Boost和Qt,我可以用很少的努力在C ++中进行下载,解析和投入GUI前端。上次我写Perl / Python大约是6个月前。在Perl / Python中执行它可能需要更长的时间,而我的Perl / Python代码将是垃圾。如果我唯一的工具是锤子,一切看起来像钉子?或者时间已经改变,C ++在传统上由脚本语言(如Perl或Python)主导的领域中可以高效生产?
答案 0 :(得分:9)
其他人通常期望解决方案的重要性是什么?如果你可以在C ++中更好,更快地完成工作,那么在C ++中完成,最后是故事。
答案 1 :(得分:3)
对于您的示例,似乎您将更高效,并且能够使用C ++更轻松地解决您的问题,因为这就是您所知道的。
但通常我会期望更多的人会使用python / perl来完成这类任务。
答案 2 :(得分:2)
为什么不呢?
如果您的代码由于缺少库/功能而变得很容易,那么C ++可能不是最好的。 如果需要经常更改,那么C ++可能不是最好的。 如果知道Perl / Python的其他人会维护它,那么C ++可能不是最好的。 等
你真的需要一个GUI吗?你需要速度吗?没有什么改变使C ++成为脚本语言,但这并不意味着你不应该使用它。
如果它通过这样的常识测试,那为什么不呢?
答案 3 :(得分:1)
好吧,如果你要建房子,锤子就可以正常工作了。但是使用气动框架敲钉器建造房屋要容易得多。
C ++是一门优秀的语言,你可以在脚本语言占主导地位的领域中保持高效,但在所有条件相同的情况下,使用perl / python进行文本分析会更有效率。
答案 4 :(得分:1)
C / C ++与python / perl的生产力问题似乎与我无关。如果您想使用Qt,Boost和任何其他现成工具集编写解析器,请执行此操作。你没有实际指定解析的速度是否是一个问题,但即使它是,它甚至重要你的情况。
即使您认为语言X可能更容易,但如果您想尝试学习该语言的新内容,请使用语言Y编写。这听起来像一个非常简单的任务,所以只需写下你想要写它的方式。
您还需要考虑未来的使用。如果需要以某种方式增强和扩展该程序,则可能需要特定的语言选择。
答案 5 :(得分:0)
如果你在C ++方面更有效率,那么一定要使用C ++。学习其他语言仍然是一个好主意,但有时你需要用你所知道的来完成任务。
BTW,您可能已经知道这一点,但Boost.Tokenizer库具有通过escaped list separator内置的CSV解析功能。
答案 6 :(得分:0)
根据您的描述,听起来除了锤子之外还有其他工具。您拥有的工具越多,您完成工作的效率就越高。使用您拥有的任何工具来完成工作,偶尔购买(学习)更多工具。
答案 7 :(得分:0)
我喜欢C ++。我讨厌编译,运行,测试,关闭周期 - 特别是当我需要测试数据时。
我的解决方案:我创建了一个小的编程环境[由Lua提供支持]我将其嵌入到我的C ++应用程序中我在运行时打开并以交互方式进行操作。为什么要坚持一个编程环境?使用两全其美。
答案 8 :(得分:-1)
C ++并非专为处理长字符串而设计。 (只要看看旧的C-Strings ......对于任何严肃的事情来说,它们都是一场噩梦。)相比之下,Perl是制作用于此类用途。
你可能会用C ++来解决一些问题,但Perl解决方案可能会更强大和可维护。