I want to base a tool on eclipse in a way that I could change eclipse framework whenever required. So probably writing a plugin is not a good choice ?
I want to extend it in a way as in Rodin(http://www.event-b.org/install.html)
The Rodin Platform is an Eclipse-based IDE for Event-B that provides effective support for refinement and mathematical proof. The platform is open source, contributes to the Eclipse framework and is further extendable with plugins.
So far I decided to download Eclipse platform project as directed in (http://wiki.eclipse.org/CVS_Howto) and downloaded all projects in(
:pserver:anonymous#dev.eclipse.org:/cvsroot/eclipse).
Should I download all of them?
Some of them contain error.
Is it correct way to do what I am trying to do?
How should I remove those errors?
I want to base a tool on eclipse in a
way that I could change eclipse
framework whenever required. So
probably writing a plugin is not a
good choice ? I want to extend it in a
way as in
Rodin(http://www.event-b.org/install.html)
Well there can be two approaches to extend eclipse framework. First approach, as you already know, is writing eclipse plugins. This is the way other platform specific versions or flavors of eclipse do. For example, eclipse Eclipse WTP and Eclipse Modelling work in the same way. They have core eclipse base i.e. classic Java base and then on top of it they have their on set of plugins and features. To give it a more product like feel, they have their own perspectives, views, cheatsheets and splash screen. Also to make your tool extensible you can provide custom extension points. These links would be useful:
PDE Introduction
Plugin Tutorial
Hello world plugin
How to write a plugin for Eclipse?
Eclipse Extension Point
Alternate Approach
The second way is more like making your own product, which in turn is based on eclipse framework, commonly known as Rich Client Platform (RCP). There are tools like IBM Lotus Notes, IBM Sametime, Bittorrent client Vuze. Again if you want to have an extensible IDE then you have to provide some custom extension points or use the existing ones. To make your application moduler, you have to organize it in plugins. The main benefit against the previous approach is that you don't have to ship the plugins which you are not using, which in turn makes your product smaller. The problem with the approach is that you have to think out the look and feel of the IDE, have to implement or least hook into the existing functionality like plugin installation from remote sites, code refactor, Java IDE, run/debug configurations etc. These links would be useful:
RCP Tutorial 1
RCP Tutorial 2
RCP Tutorial 3
RCP Tutorial 4
So far I decided to download Eclipse
platform project as directed in
(http://wiki.eclipse.org/CVS_Howto)
and downloaded all projects in(
:pserver:anonymous#dev.eclipse.org:/cvsroot/eclipse).
Should I download all of them?
Well it depends what do you want to do with them. If you are going to modify some functionalities (add or remove) from them then YES download/checkout the ones which you want to modify. Otherwise, if your intention is to extend eclipse then you need not to checkout/download any of the plugin/sources. Most of them have well defined and documented extension points; just use them.
Some of them contain error. How should
I remove those errors?
Its hard to say how to remove the errors without the stacktrace :). Still you might not need the source as I have mentioned above.
Is it correct way to do what I am
trying to do?
I will suggest you to go in a step wise manner. For me the logical step would be:
Learn about SWT widgets
Play with JFace
Read the releavent eclipse corner articles
Sit back and think what all features you need, out of that what can be reused from eclipse and what extra you need to develop.
Extending eclipse is a very well defined process. You won't face any problem :).
Good luck.
To base a tool on eclipse, you contribute plugins. You don't need to get the ones that are in CVS. Simply go to the eclipse download page, http://download.eclipse.org/eclipse/downloads/ and get the Eclipse SDK. That contains PDE, the Plug-in Development Environment, and source and schema for all of the API you would use.
Then check out the Official FAQ as a getting started reference. There's even a section on how to contribute your own language: http://wiki.eclipse.org/The_Official_Eclipse_FAQs
There's some "Getting Started" stuff on the Eclipse Wiki (includes a lot of the links that Favonius and Paul mentioned).
http://wiki.eclipse.org/Learn_About_Eclipse
Related
I am a full time rubyist, really enjoying rails, Sinatra, etc. Currently, however, I find myself working on a Java/TomCat/JSP project.
I was hoping someone could help me find tools, articles, books, and any other resources that will make me more comfortable?
I'm aware that Java is very different from Ruby, and the communities, likewise, are very different. That being said, all of the documentation around Java (that I have found) is a mess, and discovery is very difficult in this community.
Things I'm specifically looking for:
development environment setup tips
logger, logging, colorful output, best practice, etc
library resources and documentation
easy to navigate documentation for Java SE 6
anything you have found that makes your daily life better
Thanks!
If you are joining an existing Java project then you probably want to take a look at the tools already in use and get an existing developer / co-worker to bring you up to speed with them as a first port of call.
Having said that, here are my top tips:
Get comfortable with one of the main Java IDEs. Eclipse (my personal choice), Netbeans or IntelliJ are all excellent and very powerful tools once you get to know them. The refactoring / code navigation tools are probably better than anything you are used to in the Ruby world, they will help you a lot. Java is a lot less painful with a good IDE setup.
Learn Maven - this will take some time investment but it is extremely powerful for automating your dependency management and build process. Once you get it working you will save a huge amount of time on project / build management. Maven also provides automated access to the equivalent of Ruby gems through the various public Maven repositories.
And here are some particularly useful resources:
Java tutorials - good to get an introductory feel for the core Java libraries.
Java 6 API - useful as a reference resource for all the classes and functionality available in core Java (a lot of this is also provided via the IDEs)
JSP Documentation - for the JSP / Java EE aspects
As a little side note don't forget to learn about JSTL and Expression Language.
first of all you are on the right road to discover how elegant Java EE is. since you adressed various topics i will divide my answer into different parts :
Development environment:
Without further talk i will advise you to directly go and pick your eclipse Java EE Juno (last release) version, however if you'd like to have a look at other IDEs you can either check NetBeans 7.2 (last release) or IntelliJIDEA 11.2 Ultimate (last release i know of and that I have). Basically Eclipse has tons of plugins and features and backed up by a very great, large and passionate community.
[ i personally tried NetBeans, and IntellijIDEA, but felt more comfortable with Eclipse because of its look, features, cool color theme etc]
For JSP and HTML, CSS ,JS stuff, i however recommend the great IDE of Jetbrains Webstorm it has zen coding as well as many many other things like fast auto completion and support for many frameworks.
Lastly, pick up Sublime Text 2 as a text editor for quick edits or to just check a source file, it has a very beautiful layout and support for many languages as well as tons of plugins.
Ressources and documentations :
All the Java API specifications are available for offline viewing for free in Oracle's website and come packaged with the various SDK that are available there.
The easy to navigate documentation :
Eclipse IDE makes it very easy to attach JavaDoc and Source to the different jar files that make up a JDK, that said, your learning and coding experience will be greatly increased once you've set that up.So when you type Connection for example in IDE, you can simple hold Ctrl command then right click on it and the source code of the class implementation would be opened in a different tab. yes yes it's the power of the open source world :)
Concerning tips and tricks :
I'll recommend you use //TODO comments as Eclipse has support for them and you can setup your own TODO comments in settings, also you can use TASK comments, you've Mylyn too to manage your bugs, tasks either locally or connect to your favorite bug and issue tracker through a connector since many connectors are available for such purpose. Add to this list the possibility to configure bookmarks to help you manage your source files when they become full of lines.
About Tomcat:
Well if your goal is to make Java EE applications that do not require the advanced features of the Java EE specification, then you can use the sweet Tomcat, it's easy to use and configure and a well known web container.
However if that's not the case, and you wanna specialize in Java and spend lots of time to try to understand the ins and outs of this huge specification, you are likely to need a certified Application Server that supports all Java EE components. There are lot of them available, but since you asked for advise and I am here giving my modest suggestions I would advise you to pick the GlassFish Application Server, it's Open Source, and once you install it on Eclipse IDE for example, it will be bundled with both Java EE 5 and Java EE 6 API doc. This means no time to be wasted on browsing different tools and tabs, you will have everything grouped inside your Eclipse IDE so that you are 100% on the tasks at hand.
p.s: if you've any more questions please feel free to ping me.
Any good tip or trick :
Have fun with Java, because you will be learning everyday something new :)
p.s: i didn't mention any framework, because by the time you get used to Java EE you will be in position to pick the one that suits your needs. Also forgot to mention JUnit (Testing Framework) and a great eclipse plugin EClemma for code coverage (much better than Cobertura/eCobertura and easier to use), and of course you can try Maven as the other post mentioned, or try Apache Ant as build tool.
If you're coming from a Rails background, I'd be prepared for some initial frustration. Setting up projects in an IDE can be time consuming, and generally it's going to be more painful to get things like a basic web+app server up and running using Tomcat than using Ruby.
For a REPL, I would recommend Groovy (and indeed it comes pre-installed on Intellij) but you can also use BeanShell. Grails, or groovy on rails, is probably the closest thing we have to a Rails-like environment.
As others have said, with Java, using an IDE is really best. I like Intellij IDEA, but eclipse and NetBeans are also good.
For build and dependency management, Maven is probably as close as we have to standard, although I have heard nice things about Gradle.
There are entirely too many logging frameworks in java, use whatever your project currently uses, probably log4j or SLF4J. learn how to change log levels across the board, and also at a package level.
In terms of libraries, Google's Guava makes my life better on a daily basis.
The best "tips, tricks and general best practices" book on java is Josh Bloch's Effective Java. For documentation, the Javadoc is the authoritative source. Learn to read and write good javadocs.
For Test Driven Development, jUnit is probably the most widely used library, a very popular library is mockito, which also happens to be my favorite.
All my other colleagues use Netbeans, but I have an opportunity to use IDEA. Will we be able to work on the same Java EE projects together, or will we have issues with projects, checking in and out of SVN, etc?
We primarily develop EE and Spring MVC applications using Glassfish on our desktops, and commit to an SVN, although it is possible that I may have to load a coworker's entire projec.
As long as you are using some standard, IDE-agnostic build tool like maven, I see no problems. I work on IntelliJ IDEA while my colleagues use Eclipse - no issues except different formatting rules or import order - all of this can be customized.
Subversion (or any other VCS) is the least of your problems. Even if the rest of your team pushes Netbeans project metadata files, IntelliJ will simply ignore them.
If you use Maven as your build tool, then yes (and Eclipse too).
All three have tooling allowing them to work well with Maven projects.
If you are using "plain" Netbeans projects I do not think that IDEA can work with them. If so, I suggest you lobby for the change. Maven is one of the investments that pay well of.
Why would you want to fly in the face of convention and be the only one on a different IDE? You'll waste time on issues that nobody else has, have formatting hiccups, struggle with pair programming etc.
As much as I like freedom of choice, the development environment within teams should be consistent.
I thought build tools like ant, maven or gradle are de-facto standart of java ee industry. Purpose your teammates to use it.
You will have issues with sharing projects, because the project folder and structure for Netbeans and IDEA is different.
However, you can attempt to share your src folders with one another and update your codes with one another through SVN, though I wouldn't advise it for compatibility reasons because you won't be able to properly share libraries and use other team functionality available in NetBeans.
So it won't be a good idea to use a different IDE so you don't waste time debugging compatibility.
Also, its useful to note that IDEA uses its own custom libraries for certain functionalities, and also build projects in a different way from NetBeans, so projects that appear to work on IDEA may not work on NetBeans and vice versa.
Bottom line, don't waste your time using a different IDE from the rest.
So here we go. I want to choose between Aptana, Eclipse, and Netbeans. I want a sort of all inclusive program as I try out these different languages to see what I want to try out. I have VS for my C/C++. So do any of these support HTML, CSS, Javascript, and Java? I think it's netbeans but I'm not sure.
Also, what is the best paid app for Javascript? Is dreamweaver any good?
Aptana, Eclipse, and Netbeans all support HTML, CSS, JavaScript and Java.
Aptana is actually Eclipse under the covers with what looks like better support for web applications.
I have used Eclipse extensively and found that it was sufficient for my Java web development work.
Recently I have switched to using IntelliJ IDEA after using their JavaScript IDE - Webstorm. IntelliJ IDEA is a full-featured IDE with great support for various languages and frameworks. Webstorm (as far as I can tell) is a cut-down version of IntelliJ IDEA specifically focused on JavaScript development.
The great thing about IntelliJ IDEA and Webstorm is their support for mixed languages. That is, if you have HTML, CSS, and Javascript all in one file, it understands it all and highlights, and formats, the code for you properly. Another great feature are the code inspections which analyse your code for errors and common mistakes - this is a great feature.
Both IntelliJ IDEA and Webstorm are paid applications, but you can try them out for free for 30 days.
I would highly recommend trying out IntelliJ IDEA and/or Webstorm.
Eclipse is a develpoers best friend. Every language leave for .NET, but it's MEANT for Java, and the others. And NEVER buy an app to develop, it becomes a crutch.
And Eclipse has a million and a half plug-ins that can become super useful... just found this LESS CSS compiler that runs on file save... epic!
Depends on what you're doing but every place I've worked for prefers Eclipse over anything else, may just be industry standard but I get along with Eclipse very well. One thing that stands out it's modularity and the ability to find a plugin for any specific technology. I have used Netbeans in the past and it's not bad - perhaps the biggest advantage, at least when I was using it, was the built-in GUI builder specific to Swing applications but I suppose it's a matter of preference in the end. I believe both have support for the technologies that you mentioned although I haven't encountered Aptana before.
Aptana is actually Eclipse, bundled directly with highlighters for CSS, HTML, JS and adds additional very handy functionality. But you just as well could use eclipse and download all the plugins via the plugin manager and you'd have the experience of pornific-java developement, as well as porntastic javascript/html/css possibilities.
I'd recommend Aptana, unless you really need Java, then I'd do the Eclipse+Plugins attempt.
There are Eclipse builds for everything and is widely used. Netbeans is more for (you guessed it) web development, but I find a lot of people find it easier to use. Eclipse confuses people when they start using it. They both do HTML, JavaScript and CSS pretty well.
I am new to the world of Java and web programming. Never wrote a single line of javascript and my knowledge of HTML is pretty basic. Although, I am very experienced with .NET, so I guess transition to Java should not be a revolution.
Anyway, I wish to learn GWT and for that I want to work on Eclipse (I have Mac at home, so no Visual Studio).
Now, there are a dozen different download flavors of Eclipse, so my question is - which one best suits my needs?
Thanks.
P.S.
This is probably not a factor in the decision, but I will need Visual Studio keyboard bindings. I want to believe that no matter which flavor I install, I will be able to change the keyboard bindings later.
You should be fine with any version of Eclipse. Eclipse is extremely modular so it's only really a case of ensuring you have the correct plugins installed.
I'd recommend:
Start with the Eclipse IDE for Java Developers as a base install. This has everything you need for Java (i.e. the Java Development Tools, stndard editor features, source code control etc.)
Then install the GWT plugin for Eclipse
After that you should be good to go. If you find you need more plugins later, you can easily add them.
I also know both .NET and Java, and you should not have have much difficulty making the transition - it's really just a case of learning a few slightly different conventions, APIs and ways of doing things.
With regards to the keyboard bindings, I've never really changed from the default settings myself but they are completely customizable so I'm sure you can get it set up how you want. You might want to look at the answers to this question, which give you a few options (apparently you can download the full set of bindings, or install the C++ plugin which includes them).
I would probably start by installing Eclipse for Java EE developers and then the GWT plugin. It will cause less dependencies to be installed and you will get some things installed that you will probably want to start using later. But regardless of whether you are using that or the Java developer-version you should not have any major problems.
I'm using eclipse to work on a project with portions written in Java, C, Perl, and bash. Which version of eclipse should I get for this? I'm currently using 3.5-CDT+perl-plugin and would really like better Java handling with out loosing the C. What plugin should i add for java?
How does Eclipse handle multi-language projects? when I hit "new project" what do I click?
can I add a new language to an existing project?
is there some other IDE that handles multi language projects?
Once you start adding plugins, the Eclipse that you start with doesn't matter. They just happen to provide commonly used sets of plugins prebundled - it's the same core Eclipse under the hood. Whenever I've worked with Eclipse, I've always started with Eclipse Classic and added the plugins that I want to use.
As far as multilanguage projects, I can't address that. I've never used Eclipse (or any other IDE) for multilanguage projects. I've used NetBeans with projects of different languages, but each project was of a particular language.
For perl, try using the Epic plugin. Update site: http://www.epic-ide.org/updates
The nice thing about eclipse is that whatever "version" you pick, you can add the updates from other versions (usually) without too many problems. Pick the version you use the most features of, then go back and add additional plugins as desired.
The best Eclipse is the one that installs the cleanest on your current OS setup. Most of the Eclipse issues I've had have had less to do with the language (the exception being PHP) and more to do with my underlying OS. That said, I haven't even had those issues in a couple of years.