有关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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 检测数据集(测试数据集是什么)

    AdvancedVideoandSignalbasedSurveillanceCoupledObjectDetectionandTrackingMichaelD.Breitenstein

  • gemtuzumab ozogamicin_gazopa识图

    gemtuzumab ozogamicin_gazopa识图原文链接:http://www.sohu.com/a/306325058_671230纵观数据中心业界,底层技术方面其实正处在一场架构变革的初始点,这场变革就是I/O总线的网络化以及I/O资源的大规模池化。众所周知,在开放平台下,PCIE是目前高性能I/O设备普遍采用的总线类型,目前已经到Gen4,很快会到Gen5。但是PCIE总线的树形拓扑以及有限的设备标识ID号码范围,导致其无法形成一个大规模网络,这个问题在NVMe盘未普及之前显得不那么是个问题,但是NVMe盘得道广泛应用之后,会占用大量的PCIE

    2022年10月30日
  • 升级Windows Phone 开发环境

    升级Windows Phone 开发环境

  • mysql下载不是运作宝教程_魔力宝贝私服架设教程[通俗易懂]

    mysql下载不是运作宝教程_魔力宝贝私服架设教程[通俗易懂]CC魔力宝贝服务端setup.cf解释#blserv=211.232.109.164//bl服务器地址#blserv=127.0.0.1//bl服务器端口blserv=222.122.31.125//bl服务器地址blservport=1072//bl服务器端口#blservport=9650//bl服务器端口battledebugmsg=0//战斗debug信息ba…

  • 测试知识图谱[通俗易懂]

    测试知识图谱[通俗易懂]之前整理了一份测试知识图谱,还有一些不足,希望大家指出来。参考了数位大师的成果,下面是他人整理的。

  • vue报错:Navigation cancelled from “/userIndex“ to “/blank/login“ with a new navigati

    vue报错:Navigation cancelled from “/userIndex“ to “/blank/login“ with a new navigati最近在弄一个vue项目时碰到这么一个报错,查了下资料,记录一下:这个错误是vue-router的内部错误,是因为没有进行catch处理,导致的编程式导航跳转问题,往同一个地址跳转时,会报错。解决方法如下:在路由文件中进行配置:router/index.jsimportVuefrom’vue’importRouterfrom’vue-router’Vue.use(Router)//解决报错constoriginalPush=Router.prototype.pushco

发表回复

您的电子邮箱地址不会被公开。

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