DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
  1. DZone
  2. Coding
  3. Frameworks
  4. Benchmarking JavaScript: Spring Tool Suite, Red Hat Dev Studio, and CodeMix

Benchmarking JavaScript: Spring Tool Suite, Red Hat Dev Studio, and CodeMix

Learn more about performance benchmarking in JavaScript.

Brian Dawson user avatar by
Brian Dawson
·
Mar. 21, 19 · Tutorial
Like (1)
Save
Tweet
Share
5.41K Views

Join the DZone community and get the full member experience.

Join For Free

When working with JavaScript in Eclipse, whether you’re just editing a few files or working on an advanced front-end application, there are both performance and functional considerations you need to be aware of. Let’s take a couple of Eclipse-based IDEs and put them through their paces with a couple of applications, both without and with CodeMix.

We’re going to be using BlurAdmin, an AngularJS-based application, and the Node-based Express framework. If you wonder why we’re choosing an AngularJS application in today’s world of Angular 2+, Vue, and React, it’s because Spring Tool Suite (STS) and Red Hat Developer Studio (RHDS) don’t support these frameworks out of the box. In fact, outside of CodeMix, these frameworks aren’t well supported in Eclipse.

Performance



Some notes on how we tested:

  • OS: Windows 10 Pro 64-bit
  • Processor: Intel i7-6700 @ 3.4GHz
  • RAM: 32GB
  • Storage: Samsung 850 EVO SSD
  • Versions tested: STS 4.1.2, Red Hat Dev Studio 12.9.0 GA, CodeMix 3
  • Import times were measured after restarting the machine for each IDE, so OS / file-system caching would not skew results

So, let’s talk about these results — import typically takes a long time, because as soon as you import a project, a validation cycle runs, validating all the JS files in your project, even those in your node_modules folder. Yes, you could exclude this folder from the JavaScript path, but then, you can only do that after you import the project. With CodeMix in the mix (ha!), our validation logic intelligently skips this folder — it’s a lot smarter than that, but we’ll cover that later.

When we come to content assist, the Tern integration in RHDS frequently synchronizes source with the Tern server. You get a very limited set of results immediately, just like STS, but if the synchronization is successfully completed, it gives you somewhat better results. Synchronization takes time even when the node_modules folder is excluded from the JavaScript path, and it sometimes fails, so the results are hit-and-miss. CodeMix provides accurate suggestions immediately, and we’ll look at a couple of examples in the next section.

Functionality

When it comes to working with JavaScript, if you’re just editing a few files, you’ll want validation to stay out of your way. Or when working with a large project, you’d appreciate good IntelliSense and code navigation capabilities. You want to be able to build your projects using the same tools you use in production, and finally, if you had an easy to use debugger, perhaps you’d use it more often!

Having accurate type information is vital to providing good IntelliSense, navigation, validation, refactoring, and even formatting capabilities. CodeMix achieves this by using type inference, JSDoc, or even TypeScript declaration files, often available for key JavaScript libraries. RHDS uses Tern and Tern modules for the same, while STS is stock JSDT.

IntelliSense

While RHDS can take a while to provide suggestions (see chart above), it eventually gets there. CodeMix provides suggestions instantly, in most cases, and has the added benefit of providing parameter hints as well.

Navigation and Peek

Being able to navigate around a large code base, or even back to the function you were just working on, is an often underrated ability. Sometimes, you don’t need to actually navigate to that point, just peeking at the code for a bit is good enough. With CodeMix, press Ctrl and hover to either navigate or just peek. Hyperlink navigation does exist outside of CodeMix, but results vary based on the quality of the created model — peek, on the other hand is MIA.

Validation and Build Pipelines

In many cases, you just need to edit a few lines of JavaScript and can’t be bothered to deal with errors, mostly spurious, that are reported against other JavaScript files in your project. Nor do you have the patience to deal with long validation cycles when you first open or build the project.

CodeMix takes an intelligent approach to validation; by default, it validates only the file being currently edited. If you want it to validate the entire project, you can change the settings to achieve that. Now, the pièce de résistance is our build pipeline support, with which you can utilize external tools for building and validation and see the results directly in your editor. By using the same tools you would normally use to build your application for deployment to production, you are guaranteed to have an experience that is consistent between your dev and production environments.

In Closing

We haven’t explored all of what CodeMix can do with JavaScript, and there’s more, like linting, refactoring, and debugging. If you need more than what we provide out of the box, there are a plethora of Code extensions that you are free to install. These provide everything from snippets for popular frameworks to extensions that convert JSON to JavaScript. 

If you do any amount of JavaScript development in Eclipse, you’ll, unfortunately, likely be familiar with the problems we discussed, and we’re quite sure your current JavaScript dev experience doesn’t “spark joy.” 

JavaScript dev Spring Framework application Build (game engine) Framework 64-bit File system

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Apache Kafka Is NOT Real Real-Time Data Streaming!
  • Choosing the Right Framework for Your Project
  • Building a RESTful API With AWS Lambda and Express
  • OpenVPN With Radius and Multi-Factor Authentication

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: