Difference between IDE and Framework - frameworks

What is a difference between an IDE and Framework with respect to Java?

Basically :
The IDE is the software you use to develop ; for example, Eclipse is an IDE (code editor, debugger, build tools ... )
The Framework is a set of both libraries and best practices that help you not re-invent the wheel, and provide a set of guidelines on how to develop.
Quoting wikipedia, an IDE :
is a software application that
provides comprehensive facilities to
computer programmers for software
development. An IDE normally consists
of:
a source code editor
a compiler and/or an interpreter
build automation tools
a debugger
While a Framework :
is an abstraction in which common code
providing generic functionality can be
selectively overridden or specialized
by user code, thus providing specific
functionality. Frameworks are a
special case of software libraries in
that they are reusable abstractions of
code wrapped in a well-defined
Application programming interface
(API), yet they contain some key
distinguishing features that separate
them from normal libraries.

An IDE is an application used to write and compile code. A framework is generally a software component that someone else wrote that you can use/integrate into your own project, generally to avoid re-inventing the wheel.

A framework is a tool that is closely attached to the language you are using and usually extends upon or adds the the language features.
An IDE (Integrated Development Environment) provides automation support for the language you use with regards to syntax highlighting of keywords, errors, building projects, cleaning them, intgegration with VCS, etc. and usually provides default support for popular frameworks used for your language.
Java makes use of frameworks like Hibernate, Struts and Spring to extend the language and NetBeans or Intellij IDEA bring support for these tools to your Java project in a structured manor.

As per all answers I can come to a conclusion that Visual Studio is an IDE and .NET is a framework.
And also a framework(list of .dll) can be integrated into an IDE. Mean framework is a part of an IDE.

Related

What exactly is e4 and what is its meaning if I want to write a new eclipse plugin?

I am interested in writing an eclipse plugin.
After reading various tutorials around the internet and working through some simple plugin examples, I am quite confused as to how you are supposed to use the new dependency injection/services style of programming I have read about in various places as one of the primary features of eclipse 4.
http://wiki.eclipse.org/Eclipse4/FAQ#For_Adopters_.28Plug-In_Developers.29
The tutorials I've seen, and the eclipse wizard-generated plugins themselves, all use the "old" style of programming using extension points and referencing things using the singleton pattern. Apparently, this style is supported using a compatibility layer.
The information on 3.x style plugin development seems perfectly reasonable and workable to me, but it sounds bad that it is only supported using a "compatibility layer." Is this a style of programming that is going to be phased out/deprecated for Eclipse development?
Where can I find a guide on writing a plugin that uses the new, preferred style? And why do the eclipse plugin wizards themselves not even use this style, if it has been the preferred development model since eclipse 4 was originally released?! Everything I have found about writing eclipse 4 style programs focuses on standalone rcp "applications", not actual plugins to eclipse IDE.
Here are some tutorials I found which use what I understand to be the old style of plugin:
http://www.eclipsepluginsite.com/
http://www.ibm.com/developerworks/opensource/library/os-ecplug/
http://www.vogella.com/tutorials/EclipsePlugIn/article.html
Can someone explain to me clearly what the current status of the eclipse 4 programming model for plugin development is? And if you could point me to some documentation of it that would be great as well.
Thanks!
It will be very long time before the compatibility layer goes as a huge amount of code depends on it.
You can only really use e4 if you are developing a new RCP and don't need any of the existing 3.x style plugins. e4 development is perfectly practical for new apps that don't use compatibility layer plugins - I have several such apps.
An e4 app can use extension points from core plugins which are not part of the compatibility layer. e4 applications make more use of direct injection and the application model which replace some of the old extension points.
For a plugin to an existing RCP (such as Eclipse itself) the 3.x style is required, although
Eclipse Luna provides some support for using e4 style views in a 3.x application.

Which Functional programming language offers best support in Eclipse?

As an exercise my team is looking at learning functional programming. One of the factors to choose a language is its support in Eclipse. Any language with Eclipse plug-in is fine but what language offers the best free plug-in?
Bonus question: the best online/book tutorial for this language.
I don't know if it is the best, but it is evolving and improving fast:
Scala IDE (up to Scala2.8.1RC1 right now)
As for the best online Scala book:
Programming Scala (Creative Commons Attribution-Noncommercial)
But you will find other online sources in the SO question "List of freely available programming books".
Clojure is pretty well supported with the Counterclockwise plugin in Eclipse. Key features:
A nice syntax aware editor including rainbow braces
An integrated REPL
Dependency management orks reasonably nicely with Maven, other Eclipse plugins etc.
Debug mode works fairly well
I would go for Javascript, with Eclipse + Aptana plug-in and Secrets of the Javascript Ninja for a book with some nice advanced material.
Since nobody gave this answer I have to add it.
Groovy offers Java integration, Eclipse plugin and integration, and functional features. Many would argue that it's a scripting language but it's a complete language nonetheless. And it's obvious choice for Java junkies...
Python with PyDev plugin is another great option.
Erlide plugin for Erlang development on Eclipse.

using eclipse for other languages than java?

I came to know that eclipse can be used for other languages as well. But will it give the same comfort level as using java? Is there anybody who has used eclipse for other languages?
I've used Eclipse for both C/C++, Ruby, Erlang, and a few others. None of these are as tightly integrated with Eclipse as Java is, but CDT (C/C++) gives Visual Studio a good run for its money. I usually use Emacs for the other ones.
Yes, you can use Eclipse for many languages other than Java. I personally use Eclipse to code in C++, Perl, PHP, and do JavaScript as well inside of it. While it also supports plugins for connecting and executing queries against databases, I tend to prefer other options there such as Toad or Oracle SQL Developer. There are numerous other plugins to support many other languages that you can find either through the Update Manager or a simple Google search, many of which are excellent.
As a side note, if you're not using Mylyn, you're missing out.
Eclipse is used as a base for other language and tool:
for example As3 with FlashBuilder; PHP, Javascript with Aptana studio, C,Python,... with other plugins, etc...
You can found here for example some plugins for other languages.
I've used it for Javascript (jQuery): compile-time checks are a godsend to the barren lands of javascript.
For Java developement I feel most comfortable using Eclipse.
I tried using Eclipse for coding with Python. There is PyDev, an Eclipse plugin that can be used to work with the Python code in Eclipse. Though PyDev provides features like Code Completion, Syntax highlighting etc, I felt comfortable to use editors like gvim or emacs rather than Eclipse
for working with Python code. YMMV
Yes, Eclipse supports many other languages.
But you knew that already when you saw http://www.eclipse.org/downloads/
So, I guess that you are asking how well it supports them...
It is possible to have Eclipse without Java. Imagine taking that and then adding Java support. Compare that with CDT for C++ and - in my experience - they are pretty much the same.
Yes, Eclipse is slanted at Java, and I doubt that anyone will deny that, but at the same time it tries to be fair and generic and pretty much achieves it. Any few % less other language support doesn't matter when you realize that no other IDE compares.
Bottom line, whatever your language, you will be hard pushed to beat Eclipse.
And that's before I get started on the myriad plugins ...
Not only programming, debugging with Eclipse is sweet. Beside Java, the other languages I mostly work on Eclipse are PHP and Python.
While I was working on the Eclipse Web Tools Platform (WTP) project we often said that the Java Development Tools (JDT) were the model that we referenced for features for Web related languages. I think JDT has set the bar and many other projects that implement language specific tooling try to reach the JDT bar. I don't know that any have or that copying everything about JDT is the point but I do think the Java tools are exemplary development tools.

Ada/Eclipse Integration

Are there any freely available Ada plugins eclipse. Eclipse is my main IDE and I occasionally need to read and modify some Ada, having it all in the one IDE would be ideal.
For Eclipse, AdaCore distributes and maintains the GNATBench plug-in, though I've never personally used it. I believe it is not GNAT specific, so it may still be of value even if you're using a different compiler--but I could be wrong on that :-)
If you're using the GNAT Ada compilation system, you've got a fully Ada-aware IDE in their GNAT Programming Studio (GPS), which is what I've been using ever since it finally stabilized a few years ago. It's got the jump-to-definition, get references, specialized search, etc., capabilities that you'd expect.
These, as well as the rest of AdaCore's GPL Ada development environment and tools, are available from AdaCore's Libre website. Download page is here.
If all you need is syntax highlighting, then maybe EclipseColorer will do the trick for you? It's a general-purpose extensible syntax highlighting engine that has definitions for Ada out of the box.
You may also want to check out Hibachi:
The goal of the Hibachi project is to create an Ada Integrated Development Environment (IDE) and tooling framework for the Eclipse platform.

Developing Eclipse plugins without Java

Is it possible to create Eclipse plugins/program Eclipse RCP apps without Java? (preferably in Jython)
This will be possible in the next Eclipse major release e4:
One of the goals of e4 is to provide support for writing plugins in other languages.
The quote is from http://wiki.eclipse.org/E4/JavaScript which summarizes the current state of using javascript to implement eclipse plug-ins in e4.
This issue in eclipse's bugzilla issue #227058 also has some discussion on that, but I believe it is outdated.
I am currently not aware of activity regarding other languages.
No. An Eclipse plugin is an OSGi bundle, and that requires interacting with a variety of things that can't implemented in Jython as far as I can see.
If you want to avoid Java, you can look at other things that target the JVM, but you will have to figure if you can produce and consume the specific items needed to call the necessary things and be called in the necessary ways.
OSGi bundles may be written in other JVM languages like Scala. Eclipse plug-ins, as of now, does not support any language other than Java. The Eclipse Plug-in Development Environment heavily makes use of JDT which ties it to Java. However there are some plans I heard that plug-ins might be supported in other languages. But I don't see that coming in near future.
You can write your main code in Jython and use Java interfaces to call then from Java. Take a look at this for details. Also, I am writing a utility library (github.com/abhin4v/jywrapper) to do the same. It has very little documentation right now, but you can look at the examples provided.