我在刚开始学习java那会,会纠结这样的一个问题,我该用什么来写java程序呢?那时候看的视频教程和书籍,刚开始都是用记事本来演示以下这个经典的程序代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
那时候我就在想,难道以后写java就用记事本了,这显然不太科学啊,然后看看后面的视频教程或者书籍,都提到了一个叫做eclipse的集成开发工具。
我想这才是开发java程序的正规军吧,然后自己百度搜了一下eclipse,因为自己当时对集成开发环境真的没有什么概念,不知道到底是个啥,总觉得它功能很强大,我当时从百度得知,它是个这:
说实话,当初的我看了这些依然觉得懵,感觉对它还是有点模糊,可能现在很多人说到集成开发环境都知道是个啥,但是对于当时的我来说,因为本身接触到的编程知识就比较少,所以对于一些专业名词,确实有点模糊。
什么是集成开发环境(IDE)
那么,这个集成开发环境到底是个啥呢?下面我就通俗的给大家说一下集成开发环境到底是个啥?
我们平常其实很少说***集成开发环境***,我们一般会说IDE。
完了,IDE是个啥,在这里我要说下,在编程开发中的很多概念名词其实都是来源于它的英文首字母缩写,举几个简单的例子:
JDK:是Java Development Kit 首字母简称。
JRE:是Java Runtime Environment首字母简称。
关于JDK和JRE我们在上一篇文章中就详细的介绍过了。你看,这些都是英文单词的首字母的缩写,也就是一个简称,所以IDE也是如此,集成开发环境的英文全称是:Integrated Development Environment。
注意啦,首字母缩写就是IDE,所以说IDE其实就是集成开发环境。
ps:现在公认的开发java的主流IDE是IDEA,有些人会被这个弄迷糊,IDE和IDEA只差一个字母啊,IDEA其实全称是IntelliJ IDEA,它是一款商业化(就是需要付费才能使用完整的功能版本)的java集成开发环境,大家平常很少说全名,直接就叫IDEA了。
那么集成开发环境有啥用呢?说简单点,集成开发工具就是个软件,是用来帮助你开发程序的,使用它你可以更快的开发程序,因为它提供了很多的功能,比如如果我们不使用IDE,而是使用记事本自己写一个java源代码,那么我们需要手动输入以下指令来编译运行它:
javac HelloWorld.java
java HelloWorld
要知道,如果我们使用IDE的话,我们只需要点击一个按钮,这个IDE就会自动帮我们完成这些指令。
当然,除此之外,IDE提供的功能还有很多,会让你的开发效率大大提升,总的来说,编程开发,最终一定是要使用IDE的。
那么,为啥我刚开始看的那么多的视频教程和书籍,刚开始的代码演示都是使用记事本而不是使用IDE呢?
我当初这么疑惑,想必也有其他伙伴有这样的疑惑,既然IDE那么强大,为啥不直接使用IDE呢?还要使用记事本。
其实,这就牵涉出了一个问题,一直存在争论的问题:
新手编程,是该用IDE还是记事本呢?
对于这个问题,早在我们之前,就有很多人在争论了,有人支持使用IDE,有人支持使用记事本编程,对了,这里是有个前提的,在刚开始学习编程的时候,而不是过了入门阶段了,如果过了入门阶段,比如要做一些完整的项目之类的,那是必须上手IDE的。
那么,是该用IDE还记事本呢?
《疯狂java讲义》一书中对这个问题,有这样的描述:
对于java语言的初学者而言,这里给出一个忠告:不要使用任何IDE工具来学习java编程,在Windows平台上可以选择“记事本”程序。
作者的意思很明确,对于java初学者而言,不建议使用IDE,使用自带的记事本即可,作者还举了这样一个例子:
曾经看到一个在某培训机构已经学习了2个月的学生,连extends这个关键字都拼不出来,不禁令人哑然,这就是依赖IDE工具的后果。
所以作者建议java初学者,千万不要对IDE工具产生依赖,否则就会出现上述的情况。
可能有些小白不知道咋回事,为啥会这样呢?使用IDE怎么会造成这样的情况呢?我这里简单给小白解释一下。
对于IDE来说,它有个重要的功能就是代码提示和补全,说的直白点就是你写代码的时候,比如你想输入extends,但是你只要输入ext就可以给出提示,就像这样:
你看,你并不需要完整的输入extends就可以获取这个关键字,那么对java初学者而言,因为本身对java的一些关键字就不熟悉,再加上如果你对英语单词不敏感的话,脱离了IDE的自动提示,让你去手写,很有可能写错或者写不出来。
那么如果是使用记事本呢?因为记事本的功能很单一,没有什么自动提示,都需要你一个字母一个字母的写,所以如果你写错了,那么程序编译是会出错的,这样你就知道你对哪个单词不熟悉,你就会格外注意它,从而加深对它的印象,再加上经常完整的去写它,那么一回生二回熟,你也就不会忘记了。
所以这就成了那些不支持初学的时候使用IDE的一个原因之一,那么除此之外,不支持初学就使用IDE的一个原因就是IDE由于功能强大,封装了很多功能,因此让初学者看不到一些执行细节,就比如之前举的那个例子。
如果不使用IDE,那么你就要手动输入javac和java指令来编译执行java程序,那么使用IDE的话,一个按钮就搞定了,这样带来的一个问题就是,初学者根本不知道点击了按钮之后干了什么,而使用记事本的话,起码初学者知道java程序的执行是因为输入了javac和java指令造成的。
所以,使用IDE会让初学者对一些底层执行感到疑惑,不利于他们的学习。
那么,那些支持使用IDE的就说了,使用记事本编程并不能帮助你理解编译原理和操作系统原理,看上去只能是让你对一些常用单词写法记得更加牢固,因为你需要自己完完整整的把单词都写一遍,但是这些相比较你失去的时间和效率根本不值一提,因此这种做法是不值得的。
更狠的则发问:“既然有了记事本,为啥还要发明IDE呢?”
为什么会有不同意见
那么,到底是用记事本还是IDE呢?可能你马上也要纠结了,接下来我简单说下我的看法:
首先,那些不支持初学者使用IDE的大致因为如下原因:
1、IDE会隐藏一些实现细节,对新手不友好
2、造成新手对IDE的依赖,导致基础不扎实,可能最简单的一些关键字都写不出来
3、反正就是不利于新手的学习。
而那些支持使用IDE的大致是因为如下的原因:
1、使用记事本也并不能让新手了解底层实现
2、使用记事本效率低下,弊大于利
3、使用IDE可以提高学习效率
其实吧,说到底,我们的注意点应该是语言本身,也就是要把重点放在java这门语言上,工具始终只是工具,如果你对语言本身掌握的很透彻,使用什么工具就不会对你造成那么大的困扰了,因此,首先要注意的就是分清重点,你要学的是语言而不是工具。
我的建议
那么在学习语言的基础上有个好工具那也是锦上添花的事情啊,所以***我这里给出我具体的看法:***
1、刚刚接触java阶段,这个时候使用记事本,最起码要在上面写出来一个java的经典程序,然后使用javac和java命令去编译和执行,你要知道一个java源代码是怎么变成字节码的,又是怎么执行的,使用的jdk中的哪些工具,这个是你一定要知道的,而且必须要会自己操作。
2、学了一段时间之后,就可以不使用记事本了,这里也暂时不推荐使用eclipse或者idea,这个时候可以使用折中一些的工具,就目前来说VSCode是个非常不错的工具,推荐使用VSCode,VSCode也是有代码提示的,为了帮助新手锻炼对java一些常见代码的熟悉度,大家可以把自动提示的功能关闭掉,其实我觉得没有必要关掉,你只需要记住,刚开始阶段,大部分的代码你都要自己试着去敲,即使有提示,也不要直接一步到位,自己要把单词写完整,因为有提示,也可以对照自己写的是否正确。
3、到了后期学习,比如学完基础了,可以做一些简单的项目了,推荐使用IDEA,做java的,就目前来说,以后还是要把IDEA作为主要生产力工具的。
小结
说了这么多,其实道理也很简单,作为初学者,一定会有很多不熟悉和不懂得地方,所以在学习的时候,我们要有耐心,不可急躁,更加不能偷懒耍滑,要多写写代码,培养自己的手感,要牢记,前期一定要脚踏实地的打牢基础,只有这样,后面的路才会走得顺畅。