02 JavaCV 相关介绍
Beyond Java and C++Bytedeco是Samuel提出的一个名字,它为他个人项目JavaCPP、JavaCPP预置、JavaCV、ProCamCalib和ProCamTracker提供了一个归宿,其中一些项目已经相当流行(现在JavaCPP和JavaCV每月的下载量超过20000次)。考虑到它们已被证实的增长潜力,我们希望通过这种方式扩大它们的范围。这个名字不仅反映了项目的一些方面,也反映了我们的信仰和哲学。它一开始可能被解释为“字节码”的拼写错误,这种技术被Java等用来创建可移植的二进制可执行文件,当放入虚拟机中时,其设计目的是提供真正的生产率提高。或者,它可以被看作是“字节译码器”之类短语的程式化,暗示某种将数据转换为更有用形式的过程。它还建议以某种方式修饰二进制代码,例如,使用Java注释,以便在构建时或运行时支持额外的特性。最后,我们可以推断出一种对极简和优雅设计的艺术渴望,同时也接受工程需要,如对并行化和高效执行的彻底支持,以及在解决计算机密集型问题时的绝对要求,例如在图形、多媒体、计算机视觉或机器学习领域应用程序需要对音频、视频、物理、文本等进行大量处理,这与Java技术背后最初的管理原则再次吻合。明确地说,我们指的不是Java语言,而是Java平台。许多其他语言,例如BeanShell、COBOL、Clojure、Groovy、JavaScript、Perl、Python、R、Ruby、REXX、Scala、Scheme,甚至MATLAB,都可以利用Java虚拟机(JVM)。
也就是说,我们的思想是开放的。微软已经开放了.NET源代码,有可能成为Java的可靠替代品,因此我们密切关注它的发展。HTML5/JavaScript组合也可以被视为新的Java。但是,因为它不支持多线程,而且除了JavaScript之外没有其他可移植的语言,其中字节码和Java本地接口(JNI)的等价物都没有标准化,而且由于其他多种原因,这并不是一个完全有效的比较。不过,如果HTML5将成为java的替代品,我们将需要一些方法来轻松有效地访问本机C/C++库。从这个意义上说,使用适当标准化的本机功能,在其他平台上实现类似于JavaCPP的东西是有价值的。考虑到全世界对有才华的软件工程师的强烈需求,以及他们可以节省在更具生产力的平台上开发的时间,我们希望JavaCPP能够成为一种催化剂,帮助世界朝着更好的方向前进,但这只有在它自己成功的情况下才能成为现实,首先。无论如何,我们的信念是Java将继续主导行业的大部分,因为C/C++仍然有相同的原因,但是java的抽象程度略有不同。