随着编程语言不断演进,我们看到那些建立在Java或.NET等框架之上的编程语言,这是一件好事。
在您看来,构建基于框架的语言的最佳原因是什么?
免责声明:我并不试图证明什么,我认为这是一个值得讨论的好话题。
在您看来,构建基于框架的语言的最佳原因是什么?
免责声明:我并不试图证明什么,我认为这是一个值得讨论的好话题。
最好有一个通用的标准,写得好、测试得好,而不是每个程序员都要反复重复相同的工作。在MFC的CString和Java/.net的String类出现之前,全世界写过的字符串类简直太多了。
LPSTR,LPCSTR,LPWCSTR,c_str(),char [] ....
我只是使用了带有trail的任何东西,并且大多数情况下出错了! - gideonstd::string
、std::wstring
(以及C++/CLI的System::string
)。当我编写传统的COM代码时,仍然必须使用那些讨厌的BSTR
。我真的很感激C#和.NET不再需要处理这些问题了。 - Alexandre C.std::u16string
和 std::u32string
到语言特性中。 - dan04可能是因为:
如果我看得更远,那是因为我站在巨人的肩膀上。
更不用说现有的繁荣社区、大量的库等等了 :-)
我很高兴成为第一个不赞同“一切皆可治理框架”方法的人。我认为工程师应该使用正确的(可用)工具来解决问题。相信是一个好词,因为每种软件开发方法都有很多“信徒”,背后则跟着相当数量的悲观主义者 :)
但是,回到这个问题上... 我看到框架方法存在两个主要缺点:
1)可能会过度使用
有时您只需要简单的解决方案来解决简单的问题。您不需要一个工具,它可以解决/链接所有人类问题的解决方案。
2)“如果你不支持我们,你就是反对我们”
事实上,提供一个针对其试图解决的所有问题的最佳/易于/适当解决方案的大而成熟的框架是不可能的。因此,有时您需要引入外部工具。这可能会让您感到痛苦...例如,从非qt线程调用Qt信号无法直接使用(我根本无法使其正常工作)。在这种情况下,您可能会发现自己与框架“斗争”。它不仅没有使您的生活变得更轻松,反而可能会让您想对自己/其他人造成严重伤害 :)
因为这些框架提供了对于任何高级语言实现都必不可少的可重用组件:FFI、GC、JIT、链接器、调试器和其它工具链。而且完全从头重新实现所有这些组件一点也不有趣。