Alicia Davasia & Hyeop Lee
Introduction
Everyone who can read this is probably reading from some type of technology. This can be phones, tablets, or computers. We use these devices every day, but how many actually understand what is going on underneath that wall of applications and screen? Everything you see is written by code. Anyone who has seen the movie Matrix would probably imagine 0’s and 1’s raining down to make the interface that you interact with every day. That is not quite how it works, but it is a good start.
Coding, in essence, require only a text editor and a compiler, usually a UNIX terminal which makes sense of the code from the text file and brings our code to life. Some programming languages, like Java, work more efficiently using an Integrated Development Environment (IDE). An IDE is the combination of both a text editor and a compiler integrated into one software. It is crucial for programmers to stick with one IDE for a chosen language because most programmers feel lost when switching to a different IDE software. IntelliJ is the software of choice for our Computer Science department for the course Introduction to Software Development at Clemson University. IntelliJ is easy to use and well supported, by both developers and coding community, software that can help students prosper into future software engineers. While there are other IDE software's available, students should first exploit the full potential of IntelliJ before considering any other software.
|
Context
About The Company: JetBrains
IntelliJ Idea is a Java integrated development environment, IDE, software made by a privately owned software company called JetBrains. The company started in 2000 and was founded by three software developers: Sergey Dmitriev, Valentin Kipiatkov and Eugene Belyaev. In 2001, JetBrains launched their first product, IntelliJ Renamer, and had only one office in Prague, the Czech Republic, which is now JetBrains headquarter. As of 2017, the company has launched over 22 products and has 6 offices around the world with over 700 employees. This include IDE’s for popular programming languages, such as Java, Python, C++, and Ruby. As well as non-IDE products like .Net Tools and Team Tools, such as TeamCity, youTrack, and ReSharper C++.
|
JetBrains has multiple well-known companies that use IntelliJ Idea. Bruce Kratz, the Director of Hewlett-Packard (HP) Engineering, said that “JetBrains IntelliJ IDEA provided HP with the solution it needed to build enterprise Java technologies quicker, without sacrificing quality” (“JetBrains HP”). An enterprise content management platform called Documentum said that, “... IntelliJ IDEA is helping the company maintain its position as the visionary market leader…” (“JetBrains Documentum”). Quest Software, an application management, said, IntelliJ’s “refactorings give our developers the ability to make structural changes to their code with the confidence that it will still compile and run correctly afterward" (“Quest”). They also have 94 resellers around the globe to spread their products to as many developers as they can. |
About IntelliJ IDEA
...makes developing easier and more natural." |
JetBrains offers two version of IntelliJ, Ultimate and Community. The interface for both editions is relativity same. IntelliJ Idea contain features like any other IDE, like a code editor, a compiler or interpreter, and a debugger, accessed through a single graphical user interface. How do you choose which one to get, IntelliJ Community or IntelliJ Ultimate? Like many things, it comes down to the cost.
|
System Requirements
Operating System:
RAM: Size: |
Windows
MacOS Linux (GNOME and KDE) 2 GB 1.5 GB hard disk space |
Language Support
|
Cost: Free
|
Community
Java Groovy Kotlin Scala (via a plugin) Dart (via a plugin) Python, Jython (via a plugin) Erlang (via a plugin) XML, JSON, YAML AsciiDoc, Markdown (via plugin) supports many server-side and front-end frameworks such as Android, Swing, and JavaFX |
Cost:
$149.00/first year Decrements $30/year for 2 years $119.00/second year $89.00/year |
Ultimate
JavaScript TypeScript Java EE SQL (all the functionality of DataGrip) CSS, LESS, Sass, Stylus CoffeeScript ActionScript XSL, XPath Ruby, Ruby (via a plugin) PHP (via a plugin) Go (via a plugin) Plus all the Community edition features |
|
|
YouTuber ProgrammingKnowledge shows how easy it is to install IntelliJ.
|
IntelliJ IDEA is an IDE mainly for the Java language
|
|
A user could go an extra step by knowing how to use Git. These applications are version controls that allow the programmer to check out/in changes, browse history, [and] work with branches
|
|
Formalities
Rules Of The World
There are rules, or how to, for all software. IntelliJ is no exception. There are implementations of the Java world that constitutes the software of the IntelliJ. Java requires specific file structure in order for it to run on any system. Java calls this Project. Project management is important for Java because coders can encounter annoying errors after importing a project into an IDE. IntelliJ makes it easy for Java developers to create the structures to effectively organize codes by giving step by step fill-in.
1) We start by creating a new project and giving it a name. This will create a project with the directories needed to write the code. |
|
2) Next, we go down the directory hierarchy and select the source (src) file. From here, we create our code classes and interface.
|
|
3) There are differences between what is possible in the software and what the programmer is allowed to do. Java, like most coding languages, has a lot of libraries a programmer can use. Java library is exactly as it sounds, a library of books, more specifically algorithms and data structures, that a programmer can borrow to use on their program. A programmer has plentiful ways of coding a software that does the exact same job, but the software is limited to when and how to implement it. For instance, a programmer can create a very sophisticated code that uses fancy algorithm and data structures that makes a program more efficient, but IntelliJ cannot choose what Java libraries to use. However, IntelliJ has the ability to let the programmer know when to use a specific library.
|
Save Games/Software Dynamic
Save Games deserves its own building block because whether save games are possible, when, and how are important to how the software is used. IntelliJ has an auto-save feature, by default, that allows programmers to freely write or edit code and immediately close out the program without to having check if they saved their code. In contrast, one of the most popular alternatives to IntelliJ does not have this feature by default. This software is called Eclipse. Both have the ability to turn on and turn off autosave, but why is one by default and the other not? This is where the software dynamic is important because specific elements can be encouraged or discouraged in certain ways in order to use the software. Prashant Deva explains some pros and cons of the auto-save feature after experimenting with both software. With autosave, you never have to worry about “saving” your code.
|
So why does Eclipse have it off by default? Deva explains that without auto-save, a programmer can type code without worrying about indentation, formatting, imports or anything. Auto-save is discouraged in Eclipse because it has a “Save Action” feature that allows Eclipse to do a bunch of things every time a code is saved, like: organize imports, format code, add missing annotations, remove unused casts, etc. While this may not sound important to a non-programmer, it’s features that IntelliJ cannot do. That is why software dynamic is important when it comes to Save Games because it helps users to choose which software and the implementation of a specific element to use.
|
Procedural Content vs Hard-code Content
How the content is generated can be a defining feature of a software, and how those features are represented makes a more pleasurable experience. Hard-coded is defined as contents in a game that is always presented in the same manner. That means if there are a lot of files, like toolbar settings, that are hard-coded to the software, it can take up a lot of memory/storage. There is a toolbar at the top of IntelliJ that gives options to configure, build, run a code, and more. These features are hard-coded. No matter what program you write, those options will always be presented in the same manner.
Procedural content tells the computer how to generate a type of content. For example, for a game, the music should play faster if the player is at the end of the level. A YouTube tutorial, by Valandi Allulis, gives us a walk-through on how to create a program for quadratic formula. As you watch this video, you can notice as he creates more files for his codes on the left-hand side. As he adds more files, IntelliJ generates the file content. Also, you can observe under the toolbar, IntelliJ also creates a new tab for each new files created (Allulis). IntelliJ uses the concept of procedural content to take up only the space necessary to create this program, compared to being hard-code which could take up memory/storage space that may not be used.
|
|
Conclusion
There are multiple IDE’s available for Java, but IntelliJ is the superior choice to Clemson professors. This is because IntelliJ is easy to use and well supported by JetBrains. This simplicity allows students who are new to the software to effortlessly learn the new language, for example Java. Another plus is IntelliJ’s level of support, through them we can contact JetBrains for any questions, assistance, or just to share feedback on the software. IntelliJ makes development an enjoyable experience by keeping codes organized and connected. Developers can utilize these features to write efficient code that gives the clean and satisfying look that you see on your devices today.
Image Sources
- "Coding on photo" https://burst.shopify.com/photos/coding-on-laptop
- "HP" https://bn.wikipedia.org/wiki/%E0%A6%9A%E0%A6%BF%E0%A6%A4%E0%A7%8D%E0%A6%B0:HP_New_Logo_2D.svg
- "Twitter" https://smartblogger.com/twitter-traffic/
- "Samsung" https://en.wikipedia.org/wiki/File:Samsung_Logo.svg
- "NASA" https://www.festisite.com/logo/nasa/
- "Binary Rain Wallpapers" http://www.biocenit.cat/mykeys/binary-wallpaper/
- "Clemson" https://www.clemson.edu/cecas/
- "Python" https://www.pluralsight.com/paths/python
- "C++" https://www.pluralsight.com/paths/c-plus-plus
- "IntelliJ"https://en.wikipedia.org/wiki/IntelliJ_IDEA
- "JetBrains" https://en.wikipedia.org/wiki/JetBrains
- "Java Code" https://steemit.com/java/@run.vince.run/1-month-of-java-is-my-plan
- "Clemson College Of Engineering and Science" http://newsstand.clemson.edu/job-hopes-fuel-growth-in-clemsons-college-of-engineering-and-science/
- "Java 8" https://www.lynda.com/Java-tutorials/Java-8-Essential-Training-2015/377484-2.html
- "Sergey Dmitriev" https://www.jetbrains.com/company/people/
- "Valentin Kipiatkov" https://www.jetbrains.com/company/people/
- "Eugene Belyaev" https://www.jetbrains.com/company/people/
Work Cited |
|
Azaria, Nadav. “Intellij vs. Eclipse”. Java Code Geeks, 18 January 2012, https://www.javacodegeeks.com/2012/01/intellij-vs-eclipse.html. (Experimental review)
“Building a Java project in IntelliJ”. YouTube, uploaded by Valandi Allulis, 14 September 2015, https://www.youtube.com/watch?v=5mx6rGP6jiQ. (Tutorial)
Clement, Thibault. “Review of the JetBrains IntelliJ IDEA—why we’re using it at eXo.” eXo, 11 November 2015, https://www.exoplatform.com/blog/2014/11/11/review-of-the-jetbrains-intellij-idea-why-were-using-it-at-exo. (Review)
Deva, Prashant. “Eclipse vs IntelliJ dilemma: To Auto Save or Not.” Tumblr, 20 August 2013. http://movingfulcrum.tumblr.com/post/58820190063/eclipse-vs-intellij-dilemma-to-auto-save-or-not. (Experimental review)
"Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains." JetBrains, n.d. https://www.jetbrains.com/idea/download/#section=linux. (Official site)
Fernández-Vara, Clara. “Introduction to Game Analysis.” New York, Routledge, published 2015. (Book)
"How to Install IntelliJ IDEA on Windows 8 / Windows 10 + Creating First Hello World Java Application." YouTube, uploaded by ProgrammingKnowledge, 04 Apr. 2016. https://www.youtube.com/watch?v=2IqfF4WMKGc (Tutorial)
"Industry Recognition & Awards - Press Room." JetBrains,
n.d. https://www.jetbrains.com/company/press/awards.html#. (Website)
“JetBrains Documentum Case Study.” JetBrains, n.d. www.jetbrains.com/company/customers/DocumentumCaseStudy.pdf. (Review)
“JetBrains HP Case Study.” JetBrains, n.d. www.jetbrains.com/company/customers/JetBrains_HPCaseStudy_5_14.pdf. (Review)
"JetBrains." Wikipedia, 3 Oct. 2018,
https://en.wikipedia.org/wiki/JetBrains#IntelliJ_IDEA. (Website)
“Learn and Support.” JetBrains, n.d. https://www.jetbrains.com/idea/documentation/ . (Tutorial)
"Monthly and Yearly Plans with JetBrains Toolbox." JetBrains, n.d. https://www.jetbrains.com/store/?fromMenu#edition=commercial. (Website)
“Overview of IntelliJ IDEA.” YouTube, uploaded by IntelliJ, 17 Feb. 2017, www.youtube.com/watch?v=GSKERVTMWqs. (Walkthrough)
“Purchase Personal License.” YouTube, uploaded by Jet Brains, 18 July 2018, www.youtube.com/watch?v=pr46Fobo9Og. (Walkthrough)
“Quest Software - Customer Success.” JetBrains, n.d. n.d.www.jetbrains.com/company/customers/profiles/quest.html. (Review)
Rouse, Margaret. “Integrated Development Environment (IDE).” SerachSoftwareQuality, September 2018. https://searchsoftwarequality.techtarget.com/definition/integrated-development-environment. (Website)
"Technology Partners." JetBrains, n.d. https://www.jetbrains.com/company/partners-technology/. (Website)
"Ultimate vs. Community - Compare Editions | IntelliJ IDEA." JetBrains, n.d. https://www.jetbrains.com/idea/features/editions_comparison_matrix.html. (Website)
"Using Git in IntelliJ." YouTube, uploaded by LaunchCode, 02 Mar. 2017, https://www.youtube.com/watch?v=uUzRMOCBorg. (Tutorial)
“Building a Java project in IntelliJ”. YouTube, uploaded by Valandi Allulis, 14 September 2015, https://www.youtube.com/watch?v=5mx6rGP6jiQ. (Tutorial)
Clement, Thibault. “Review of the JetBrains IntelliJ IDEA—why we’re using it at eXo.” eXo, 11 November 2015, https://www.exoplatform.com/blog/2014/11/11/review-of-the-jetbrains-intellij-idea-why-were-using-it-at-exo. (Review)
Deva, Prashant. “Eclipse vs IntelliJ dilemma: To Auto Save or Not.” Tumblr, 20 August 2013. http://movingfulcrum.tumblr.com/post/58820190063/eclipse-vs-intellij-dilemma-to-auto-save-or-not. (Experimental review)
"Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains." JetBrains, n.d. https://www.jetbrains.com/idea/download/#section=linux. (Official site)
Fernández-Vara, Clara. “Introduction to Game Analysis.” New York, Routledge, published 2015. (Book)
"How to Install IntelliJ IDEA on Windows 8 / Windows 10 + Creating First Hello World Java Application." YouTube, uploaded by ProgrammingKnowledge, 04 Apr. 2016. https://www.youtube.com/watch?v=2IqfF4WMKGc (Tutorial)
"Industry Recognition & Awards - Press Room." JetBrains,
n.d. https://www.jetbrains.com/company/press/awards.html#. (Website)
“JetBrains Documentum Case Study.” JetBrains, n.d. www.jetbrains.com/company/customers/DocumentumCaseStudy.pdf. (Review)
“JetBrains HP Case Study.” JetBrains, n.d. www.jetbrains.com/company/customers/JetBrains_HPCaseStudy_5_14.pdf. (Review)
"JetBrains." Wikipedia, 3 Oct. 2018,
https://en.wikipedia.org/wiki/JetBrains#IntelliJ_IDEA. (Website)
“Learn and Support.” JetBrains, n.d. https://www.jetbrains.com/idea/documentation/ . (Tutorial)
"Monthly and Yearly Plans with JetBrains Toolbox." JetBrains, n.d. https://www.jetbrains.com/store/?fromMenu#edition=commercial. (Website)
“Overview of IntelliJ IDEA.” YouTube, uploaded by IntelliJ, 17 Feb. 2017, www.youtube.com/watch?v=GSKERVTMWqs. (Walkthrough)
“Purchase Personal License.” YouTube, uploaded by Jet Brains, 18 July 2018, www.youtube.com/watch?v=pr46Fobo9Og. (Walkthrough)
“Quest Software - Customer Success.” JetBrains, n.d. n.d.www.jetbrains.com/company/customers/profiles/quest.html. (Review)
Rouse, Margaret. “Integrated Development Environment (IDE).” SerachSoftwareQuality, September 2018. https://searchsoftwarequality.techtarget.com/definition/integrated-development-environment. (Website)
"Technology Partners." JetBrains, n.d. https://www.jetbrains.com/company/partners-technology/. (Website)
"Ultimate vs. Community - Compare Editions | IntelliJ IDEA." JetBrains, n.d. https://www.jetbrains.com/idea/features/editions_comparison_matrix.html. (Website)
"Using Git in IntelliJ." YouTube, uploaded by LaunchCode, 02 Mar. 2017, https://www.youtube.com/watch?v=uUzRMOCBorg. (Tutorial)