Question

What exactly is an SDK, in the context of IntelliJ?

Add New SDK dropdown menu in IntelliJ IDEA Project

For the education of non-Java developers of PHP, Ruby or JavaScript applications who prefer IntelliJ IDEA for its Polyglot capabilities, do any knowledgeable IntelliJ IDEA users please have a moment to explain:

2. Why is the concept of an SDK (in the context of InteliJ) essential only to Java?

As Ryan J writes in his answer below:

An SDK (such as Java) can be very big, containing a lot of information and capability. Other SDK's may simply be a set of API's or libraries, and as such, may not be as conducive to being used with an IDE, and could be deemed as "convenient" from the perspective of a user that is not familiar with the concept of an SDK in the "Java" sense.

Update: 1 Year Later. I've edited this question to focus on the simplest most useful answer I've found, and am awarding the correct answer to Ryan J. Simply put: Java is a platform. Platforms have SDKs. PHP, JavaScript, and Ruby are languages, with various available runtime environments not mentioned in this Q&A. This programmer now uses Sublime Text 3 for developing in those languages. At the expense of much processor overhead there were neat features in IntelliJ for refactoring, etc.. but IMO they are no match for having tight regex game.

2. What is the "Ruby SDK" option if not an SDK?

JetBrains support writes:

Ruby has SDK for convenience as users may need multiple Ruby/RVM versions. The same applies to Python, multiple different virtualenvs can be defined and a user may need to switch between them (including Remote SDK on the server via SSH).

3. What is the "PHP Interpreter" option if not an SDK?

JetBrains support writes:

PHP has no SDK in IDEA/PhpStorm.

See http://youtrack.jetbrains.com/issue/WI-22627#comment=27-720859

PhpStorm Project Lead Alexey Gopachenko is against the PHP SDK configuration. It would be probably removed or will be available only in IDEA, not sure.

In my opinion, this makes a lot of sense. PHP is a language. We can use IDE extensions to better understand that language, but its API is completely exposed by text scripts.

Shameless big up my personal favorite PHP workflow, Phundament. This programmer no longer endorses PHP.

Was it helpful?

Solution 2

In an attempt to answer the question as asked, an SDK is a Software Development Kit. It is a collection of tools, libraries, api's, source code, licenses, examples, documentation, and/or anything else required to develop software applications in a specific programming language or framework.

The integration of an SDK into an IDE is essentially the ability for an external application to leverage the capability provided by the SDK, and make programming and application writing easier for the user.

The SDK configured in an IDE might provide the capability for the IDE to allow API auto-complete, object inspection, source code compile/debugging, syntax highlighting, integrated code inspection and warning/error information, just-in-time compiling, unit testing, etc.

An SDK (such as Java) can be very big, containing a lot of information and capability. Other SDK's may simply be a set of API's or libraries, and as such, may not be as conducive to being used with an IDE, and could be deemed as "convenient" from the perspective of a user that is not familiar with the concept of an SDK in the "Java" sense.

The IDE's capability to leverage what is provided by the SDK may be determined by a couple things: 1. The SDK doesn't provide a very comprehensive set of tools and capabilities that allow an IDE to do what it does best, and thus appear "useless" 2. The IDE just didn't implement the SDK capability all that well

Hopefully this provides some insight...

OTHER TIPS

A Node.js-oriented answer comes from JetBrains at long last. From devnet.jetbrains.com:

No, configuring Node.js SDK isn't on our roadmap, because of IDE design limitation: a project can have only one SDK associated. Thus, projects that already have SDK (e.g. python, java, ruby) wouldn't be able to configure Node.js SDK.

However I'm still very interested in proposing enhancements to IntelliJ to benefit those of use who choose to use it as a JavaScript full-stack IDE.

For now, I've gotten my IntelliJ IDEA setup pretty tight for a full-stack JavaScript application built with Daftmonk's angular-fullstack Yeoman generator.

I've elected to post this as a new self-answered question here.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top