在我们发现开发软件的新方法的同时,我们也发现了更好的编程语言。C被C++所替代,接着又出现了Java。Perl非常棒,但PHP和Python却让它有了更进一步的发展。更新的还有Ruby,由于它表达代码的自然方式而广为流行。云南电脑培训http://www.kmbdqn.cn/发现由于这些进化的发展,如今我们已经有了大量优秀的,并且实际上是等同的编程语言。
虽然对编程语言的选择总是一个敏感话题,而事实就是,并不是语言本身的问题,但加上程序库就会让它们之间产生不同。C++从来没有Java所具备的标准程序库。是的,Java是更简单的语言,但人们使用C++也已经十年有余。真正赋予Java优势的是它丰富的可多次使用的程序库。对于PHP来说也是一样的。它是那些网络开发者们的选择,因为它对网络数据库处理有着丰富的支持。
除了现代语言的程序库之外,开源运动也为全球的软件架构贡献了很大力量。特别是Apache开发除了大量高质量可重复使用的代码。如今,我们已经拥有开发复杂软件系统的雄厚基础。我们知道方法并且具备相关的工具,那么这意味着什么呢?
在软件开发的早些时候,人们都竭力地为开发好的系统而奋斗。越来越多的人被投入于解决问题,而结果就是让事情变得更糟。但随着最近我们亲眼所见的一个新的有趣的现象:那就是少数几个开发者如今能够开发出成百上千万人使用的系统。那么这是怎么做到的呢?
其中的秘密在于,其中有效的努力仅是由很少的一部分人完成的。只需要一点的纪律加上澎湃的激情,高素质的工程师就能够独立开发出高度精密复杂的系统。
加上现代编程语言,良好的程序库以及敏捷方法,比起一群中庸的开发者大军,这个领域的一些聪明的人就能够将事情做得更快更好。
在接下来的几年我们很可能看到如下的一些改变:
高素质、高热情的软件工程师将会有很高的需求,并且他们也确实能够赚更多的钱。
那些不具备优秀的变成技术的开发者将为工作四处奔波。
我们如今在社会软件市场中所目击到的改变将会触及到企业级别。
软件外包将越来越没有经济意义。
对于程序员来,一般都会掌握许多编程工具来提高自己的工作效率的,但是如果有一款编程工具能够适用所有编程语言的话,我觉得应该就是GraalVM了,今天丽江北大青鸟http://www.kmbdqn.cn/就一起来了解一下GraalVM的特点。
1.高性能Java
GraalVM中的Graal得名于Graal编译器。Graal是一种“万能”编译器,也就是,虽然它是单一的实现,却可以用于很多用途。例如,我们可以使用Graal进行预编译(ahead-of-time)和即时编译(just-in-time),也可用于编译多种编程语言。
2.占用内存小、启动速度快的Java
Java对于长时间运行的进程来是相当强大的,但短时间运行的进程可能会因较长的启动时间和较高的内存占用而饱受其苦。
3.组合JavaScript、Java、Ruby和R语言
除了Java,GraalVM还包含了JavaScript、Ruby、R语言和Python的实现。它们都是使用一个叫作Truffle的语言实现框架开发的,Truffle让实现简单且高性能的语言解释器成为可能。在使用Truffle开发语言解释器时,会自动使用Graal作为JIT编译器。因此,Graal不仅是Java的JIT编译器和预编译器,也可以是JavaScript、Ruby、R语言和Python的JIT编译器。
4.在JVM上运行本地语言
GraalVM也支持C语言,GraalVM可以像运行JavaScript和Ruby之类的语言一样运行C代码。
实际上,GraalVM通过运行LLVM位码的方式来支持C语言,而不是直接运行C代码。也就是,我们可以将现有工具与C语言一起使用,还可以使用其他可输出LLVM的语言,例如C++、Fortran和未来可能出现的其他语言。为了简化演示,我使用了由StephenMcCamant维护的gzip的单文件版本。为简单起见,它只是将gzip源代码和autoconf配置连成一个单独的文件。我还需要修改一些东西才能让它在macOS上运行起来,但不能在GraalVM上运行。
5.适用于所有编程语言的工具
如果你使用Java编程,可能已经习惯了使用那些高质量的工具,比如IDE、调试器和分析器,但并非所有的编程语言都有这么好用的工具。不过如果你是在GraalVM中使用某种语言,就可以获得这样的工具。
6.扩展基于JVM的应用程序
除了可用作独立语言实现和用于多语言编程,这些语言和工具也可以嵌入到Java应用程序中。新的org.graalvm.polyglotAPI可用于加载和运行其他语言的代码。
在HTML5发展的同时,XHTML2.0也在不断发展,那么到底是哪些特点导致HTML5取得最终的胜利呢?
1.向下兼容
对于XHTML2.0要求遵循规则,否则不予显示的方式,HTML5却实行“不破坏Web”的原则。也就是说,以往已存在的Web页面,还可以保持正确的显示。
当然,面对开发者,IT培训http://www.kmbdqn.cn/HTML5规范要求摒弃过去那些编码坏习惯和废弃的标签元素;而面对浏览器厂商,要求它们兼容HTML遗留的一切,以做到向下兼容。
2.用户至上
HTML5遵循“用户至上”的原则,在出现具体问题时,会把用户放在第一位,其次是开发者,然后是浏览器厂商,最后才是规范制定者。比如,开发者在编码时不严谨导致本该出现警告或错误时,却正常显示了页面。
3.化繁为简
HTML5对比之前的XHTML,做了大量的简化工作。具体如下:
(1).以浏览器的原生能力代替复杂的JavaScript;
(2).DOCTYPE被简化到极致;
(3).字符集声明被简化;
(4).简单强大的API。
4.无插件范式
在HTML5出现之前,很多功能只能通过插件或hack(如绘图API)来实现,但HTML5原生提供了这些支持。使用插件有很多问题,具体如下:
(1).插件安装容易失败;
(2).插件被浏览器或软件禁用屏蔽(如Flash插件);
(3).插件经常会被爆出漏洞被利用攻击;
(4).插件不容易与HTML文档其他部分集成(比如整体透明化等)。5.访问通用性
这个原则分为三个概念:
(1).可访问性:比如更加利于残障人士的阅读方案;
(2).媒体中立:比如HTML5的媒体播放在不同设备或平台均能正常运行;
(3).支持所有语种:比如新元素<ruby>。