程序员必知的8个Java开源IDE工具!你最钟意哪个?

出色的Java工具有助于提高工作效率。Java IDE 工具提供了多种用户独特需求和个人偏好来创建编程环境的方法。

今天,给大家分享8个程序员最爱的Java开源IDE工具,

没有用过的小伙伴,快快收藏哦!

01 BlueJ

BlueJJava环境下的一个内置编辑器、编译器、虚拟机、调试器的多应用软件,是专为教学设计的,很适合在小规模的软件开发中使用。它易于使用和测试的交互式界面,不仅适合用于在学校教授Java编程课程,而且允许程序员调用功能,即对象、方法、参数等,而无需编译源代码。

02 Eclipse

Eclipse是一款主要用Java编写的免费IDE,允许创建各种跨平台的可用于手机、网络、桌面和企业领域的Java应用程序。

它的主要功能包括Windows生成器、集成Maven、Mylyn、XML编辑器、Git客户端、CVS客户端、PyDev,并且还有一个基本工作区,有可扩展插件系统可满足自定义IDE的需求。通过插件,也可以用C、C ++、JavaScript、Perl、PHP、Prolog、Python、R、Ruby(包括Ruby on Rails框架)等语言开发程序。

03 IntelliJ IDEA

IntelliJ IDEA CE(社区版)是IntelliJ IDEA的开源版本,为Java、Groovy、Kotlin、Rust和Scala等提供IDE。可用于现有的源重构,代码检查,使用JUnit或TestNG构建测试用例,以及使用Maven或Ant构建代码。IntelliJ IDEA CE的优秀功能有API测试仪,允许通过Swing GUI设计器测试API的功能,很多经验丰富的程序员尤其喜欢IntelliJ IDEA CE。

04 Netbeans IDE

NetBeans IDE是一个集成的Java开发环境,它能为独立的、移动的和web架构设计模块化的应用程序,并支持web技术。NetBeans IDE能建立关于如何有效管理项目、工具和数据的多个视图,并可以在新开发人员加入项目时进行软件开发协作。

05 VSCodium

VSCodium是一个免费的源代码编辑器,它在Windows、macOS、Linux上皆可用。它是一个基于Visual Studio代码的开源替代品,支持多种编程语言,如Java、c++、c#、PHP、Go、Python、.net等。

06 jEdit

jEdit是一个具有广泛插件架构的文本编辑器,具备编辑搜索,查找,替换和源代码编辑等功能,支持超过两百种语言,包括Unicode。

07 jGRASP

jGRASP是运行在Java平台上的IDE,提供可视化自动生成,能在运行时产生静态可视化的源代码结构和直观化的数据结构,且jGRASP能产生支持Java、C、C ++、Objective-C、Python、Ada和VHDL的控制结构图;支持Java和Ada的复杂文件图表;支持Java的UML类图;还有动态对象查看器和结合了集成调试器和Java工作台的画布查看器。

08 JSource

JSource是免费的Java IDE,尤其在创建跨平台的Java应用程序中非常有用。JSource能运行、编译、编辑和创建Java文件,主要特点是支持多种语言的语法高亮显示和Java Swing组件。

程序员最爱的8个Java开源IDE工具你收藏了吗?如果还有什么想要了解的,或者你有其他更好用的IDE,欢迎大家在下方留言探讨!

会写代码的AI开源!C语言比Codex写得好,掌握12种编程语言丨CMU

萧箫 发自 凹非寺量子位 | 公众号 QbitAI

比Codex还会写C语言的AI代码生成模型,现在开源了!

这段时间,用AI写代码可以说是大火,其中最著名的要属OpenAI的Codex和DeepMind的AlphaCode。

△基于Codex的Copilot

然而,这两个AI模型,全都没有开源:

其中AlphaCode只给出了一些测试样例,而Codex只开放了API。

为此,来自CMU的几个研究人员,用GPT-2搞出了一个名叫PolyCoder的AI代码生成模型,而且还是开源的

据研究人员表示,虽然PolyCoder最大只有27亿参数(相比Codex有120亿参数),但它用C语言写出来的代码,比Codex的效果还要好。

这里面究竟有什么秘诀?

首先来看训练用的数据集,这也是PolyCoder的最大特点之一。

此前,包括Codex、CodeParrot等AI代码生成模型,主要都是基于Python语言的代码来训练。

例如Codex的评估数据集之一HumanEval,评估的也是生成Python代码的效果。

相比之下,PolyCoder采用了多种编程语言代码集来训练,一共有12种:

C、C#、C++、Go、Java、JavaScript、PHP、Python、Ruby、Rust、Scala和TypeScript。

其中,C语言的代码量是最多的,达到了221GB;而Python代码的数据量比Codex和CodeParrot用得都要少。

这里PolyCoder用的是GitHub上的公开代码,主要选取的是各种编程语言中比较受欢迎的库,每个库至少有50 Stars。

据研究人员表示,每种编程语言库的Stars总数加起来不超过25k,以避免模型生成的代码效果太过于倾斜最流行的编程语言(通常编程语言越流行,库的Stars就越多)

通过提取库中的文件、经过简单处理(包括消除重复代码)后,一共筛选出大约254GB的数据用于训练。

然后是预训练的方法。

语言模型的预训练方法通常有三种。

第一种是自左向右的语言模型,根据上文预测下文,比较适用于代码生成等;第二种是掩蔽语言模型,基于上下文预测屏蔽片段,比较适合代码分类等;第三种是编解码器模型,比较适用于代码注释等任务。

这里PolyCoder主要采用的是第一种预训练方法。

相比于同样采用GPT-2训练的CodeParrot和Codex,PolyCoder在超参数设置上也稍微有一些差异:

PolyCoder一共提供了三种不同的模型,分别有27亿参数、4亿参数和1.6亿参数,研究人员可以根据自身需求和不同的训练能力来选取合适的模型。

那么,最终训练出来的AI模型,代码生成效果如何?

研究人员将PolyCoder与已有的AI代码生成模型进行了对比。

由于AlphaCode不好比较(接口没开放),所以研究人员主要分析了下面这些模型,包括GPT-Neo、CodeParrot和Codex等。

其中蓝色的是开源的,橙色的是没开源的:

从参数量来看,PolyCoder并不是最顶尖的,最大的27亿参数模型也只有Codex的四分之一不到。

研究人员先是用语言模型评估常用的困惑度对一系列模型进行了比较。

困惑度(Perplexity),用于衡量语言模型(LM)的好坏。困惑度越低,语言模型面对代码感到困惑的程度就越低,模型生成效果越好。

从图中来看,PolyCoder在C语言中意外取得了最好的效果(困惑度最低)

用大量C语言训练PolyCoder的结果说明,即使模型整体原理不变(基于GPT-2),单纯改变训练用的代码集,也能训练出擅长不同语言风格的AI代码生成模型。

可惜的是,从其他语言来看,生成的效果就完全没办法和Codex相比了:

例如,在主要用于评估Python代码的HumanEval上,PolyCoder的能力远不如Codex好:

据论文分析,这可能是Python代码数据量、模型参数量不足等原因导致的。

此外,作者们也提到,做出PolyCoder的目的主要还是为了开源一个AI代码生成模型,让更多人参与研究和使用。

目前代码已经开源,无论是直接拿来用,还是试着在它的基础上开发新模型都可以。

感兴趣的小伙伴可以上手一试了~

一作许方正(Frank Xu),目前在CMU读博,研究方向是NLP、信息抽取等,发表过多篇顶会论文,包括ICLR、ACL和EMNLP等。本硕毕业于上海交通大学,师从朱其立教授。

Uri Alon,在CMU进行博士后工作,研究方向是编程语言处理(PLP)、NLP和深度学习。

Graham Neubig,CMU助理教授,研究方向是NLP、机器翻译和基于机器学习的自然语言理解。

Vincent J. Hellendoorn,CMU计算机助理教授,主要研究方向是软件工程和机器学习,致力于利用智能方法帮助软件开发人员减少代码调试、程序优化等繁琐工作的时间。

不知道作者们是否已经在用这个AI撸代码了(手动狗头)

项目地址:https://github.com/VHellendoorn/Code-LMs

论文地址:https://arxiv.org/abs/2202.13169

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。