有关java的参考文献近三年含英文_关于java的外文文献

有关java的参考文献近三年含英文_关于java的外文文献Java演进英文文献和中文翻译时间:2019-06-1610:07来源:毕业论文InTheFeelofJavaJamesGoslingstatedthat:Javaisabluecollarlanguage.ItsnotPhDthesismaterialbutalanguageforajob.Javafeelsveryfamiliarto…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Java演进英文文献和中文翻译

时间:2019-06-16 10:07来源:毕业论文

In The Feel of Java James Gosling stated that: Java is a blue collar language. Its notPhD thesis material but a language for a job. Java feels very familiar to many differentprogrammers because I had a very strong tendency to prefer things t

In “The Feel of Java” James Gosling stated that: Java is a blue collar language. It’s notPhD thesis material but a language for a job. Java feels very familiar to many differentprogrammers because I had a very strong tendency to prefer things that had been used a lotover things that just sounded like a good idea.The extraordinary success of Java offers weight to the notion that this was a sensibleapproach, and if it remains an important goal for Java today, then it makes sense that thelanguage should continue to evolve relatively slowly. In addition to this, the fact that Java is amature, widely used language causes its evolution to be fraught with difficulty. For one thing,each feature added to the language can change the way it feels in subtle and oftenunpredictable ways, risking alienating developers who have already adopted it as theirlanguage of choice. 36328

For another, a feature that makes perfect sense on its own may interactwith other features of the language in awkward or unexpected ways. Worse, once a languagefeature has been added it is all but impossible to remove even if it turns out to be detrimentalto the language as a whole. To justify adding a new feature, a language designer must behighly confident that it will be of long term benefit to the language rather than a short term orfashionable solution to a problem that rapidly becomes redundant. To mitigate the risk alanguage designer will typically experiment by creating a separate language or branch, suchas the Pizza language used to experiment with Java’s generics, prior to their implementation.The problem with this approach is that the audience for such experiments is both small andself-selecting; obviously they will all be interested in language features, and many may beacademics or researchers. An idea which plays well to such an audience may still play badlywhen it is incorporated into the main language and general programmers start to work with it.To get a sense of this, consider the closures debate that became so heated for Java 7.Implementations for the main proposals (and some others) have been available for some timebut no consensus has emerged. In consequence Sun decided that JDK 7 will not get fullclosures support. The core argument came down to whether Java had become as complex as itcould afford to be when generics (and in particular the wildcard syntax) were added to Java 5;and whether the addition of full support for closures was justified when Java already has amore limited form through anonymous inner classes. Two important use cases for adding fullclosures support were to simplify working with the fork/join API that is being added to JDK 7to improve multi-core programming, and to help with resource clean-up. Josh Bloch’s ARMblock proposal, which is now expected to be in JDK 7 via Project Coin, offers an alternativesolution to the latter problem. Dr. Cliff Click’s research on a scalable, non-blockingprogramming style for Java offers an alternative approach to fork/join that may be moreappropriate as the number of processor cores increases. If this were to happen, then the usesfor closures in Java may arguably be too limited to justify their inclusion.It remains important though that a programming language continues to develop at somelevel. This article therefore examines three alternative techniques for adding new languagefeatures to Java that don’t require changes to the language itself – using a custom DomainSpecific Language, exploiting the Java 6 annotation processor to add optional languagefeatures via a library, and moving the syntactic sugar from the language to the IDE.

Eachoffers the potential to allow a wide audience of mainstream developers to experiment with the new features over the medium term in a non-invasive manner, and the best ideas can thenfilter down for inclusion in the core language.Custom DSLsThe most widely discussed of the three is the Domain-Specific Language or DSL. Thereis some disagreement on exactly what the term means, but for the purposes of this discussionwe’ll refer to it simply as a language that has been created with a narrow focus to solve aparticular problem, rather than as a general purpose language designed to solve everycomputing problem. As such we would expect a DSL to be non-Turing complete and for themost part this is the case. There are edge cases of course. Postscript, for example, is a Turingcomplete language but also qualifies as a DSL using our definition.As the above example also illustrates, the idea of a DSL is not new. Other familiar DSLsinclude Regular Expressions, XSLT, Ant, and JSP, all of which require some sort of customparser to process them. Martin Fowler also suggests that fluent interfaces/APIs can beconsidered a second type of DSL, which he refers to as an internal DSL. His definition is thatan internal DSL is developed directly within the host language. This was a common practiceamongst both Lisp and Smalltalk programmers, and more recently the Ruby community hasbeen popularising the technique.Whilst many well-known DSLs are commercially developed and maintained, someenterprise development teams have used the technique to create a language that allows themto rapidly explore aspects of their problem domain. It isn’t however as common as it might be,perhaps because DSLs have a fairly intimidating barrier to entry. The team has to design thelanguage, build the parser and possibly other tools to support the programming team, and traineach new developer that joins the team on how the DSL works. Here the emergence of toolsto specifically support DSL development could significantly change the landscape. IntentionalSoftware’s Intentional Domain Workbench, which has been in development longer than Javahas been around, is the first significant implementation of such a tool. The project started lifeat Microsoft Research, and Dr. Charles Simonyi’s 1995 paper “The Death of ComputerLanguages, the Birth of Intentional Programming” describes his vision. In 2002 Simonyifounded Intentional Software to continue working on his ideas and a hugely impressive videodemo of the system is available. Java演进英文文献和中文翻译:http://www.lwfree.com/fanyi/lunwen_34731.html

——分隔线—————————-

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187560.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Map转json遇到一些问题

    Map转json遇到一些问题最近发现了一个问题,通过查看用户的活跃度发现了奇怪的事情,有的用户访问某一个接口没有问题,而一些奇葩用户访问这一接口就是不成功,经过查看,原来是Android系统4.4以下map转换json的时候出现了问题,具体是什么了,下面我们来分析分析。第一,利用”org.json.JSONObject”下的JsonObject时,4.4以下的系统出现“=”的问题。比如:Map

    2022年6月20日
    32
  • STM32驱动LCD1602程序(调试已成功)「建议收藏」

    STM32驱动LCD1602程序(调试已成功)「建议收藏」IO接线:RSPA8RWPB6EPB7LCD1602_IOPB8-PB15所有的口都配置成开漏输出,并且所有的口都通过10k电阻上拉至5V,部分电路图如下:程序代码LCD1602.C#include”lcd1602.h”voidLCD1602_GPIO_Init_Out()//LCD1602端口初始化,配置为输出{ GPIO_InitTypeDefGPIO_InitStructrue; RCC_APB2PeriphClockCmd(LCD1602_Timer_GPI

    2022年7月16日
    20
  • C语言system函数使用「建议收藏」

    C语言system函数使用「建议收藏」函数原型包含在头文件“stdlib.h”中intsystem(constchar*command)函数功能执行dos(windows系统)或shell(Linux/Unix系统)命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写。说明:在windows系统中,system函数直接在控制台调用一个command命令。在L…

    2022年9月18日
    0
  • composer如何查看已经安装了哪些拓展包(composer 如何使用)

    composer如何查看已经安装了哪些拓展包(composer 如何使用)

    2022年2月14日
    34
  • getchar用法[通俗易懂]

    getchar用法[通俗易懂]getchar用法1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误 3. getchar()是在输入缓冲区顺序读入一个字符(包括空…

    2022年10月19日
    0
  • 批处理的for循环_批处理for循环跳出循环

    批处理的for循环_批处理for循环跳出循环转自脚本之家,感谢作者与版主给我这次学习的机会基本格式(这里写的是在命令行里用的格式,如果是在批处理中,需要把其中%再多加个%形成%%):for/参数%变量in(集)do命令(注:上面除中文的以外,其余的是按它的格式要求书写的,大小写都行)参数:FOR分四种参数DLRF,并且有的参数还可附加另外的选项下面会分别介绍变量:(记住如果是在批处理中使用

    2022年10月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号