Das ist zumindest das Ziel von https://gravityide.dev.java.net/. Eine “Easy-to-use Java IDE for Java and other JVM languages”. Problem nur: Was einfach mit einem Editor beginnt wird (zwangsläufig) komplexer und komplexer und komplexer. Man kann darüber streiten, was – nach einer gewissen Einarbeitungszeit – nun intuitiver ist, IntelliJ, NetBeans, Eclipse, JDevelper (oder vi?), aber dass es bei einem Editor mit farblicher Hervorhebung nicht getan ist, ist klar. Und wer mit lauten Sprüchen wie “Gravity will be the only IDE you’ll need.” wirbt, und mit dem Satz “A GUI editor so you can make forms in seconds!” schreit, macht sich keine Freunde, wenn gravityide Vaporware bleibt; gravityide bleibt also vorerst das Duke Nukem Forever der Java-IDEs. Toll!
Entwicklungsumgebung
Eclipse wants me to “change to ‘pussy’”
NetBeans 6.7 M3
Unter http://wiki.netbeans.org/NewAndNoteworthyMilestone3NB67 gibt es wieder viel zu bestaunen:
- NetBeans-Kenai Integration
- Dependency Graph Viewer
- GlassFish Services in der View
- Hudson Integration
- und mehr…
NetBeans 7.0 Roadmap und NetBeans 7.0M1/M2
Die Roadmap sieht so aus:
Der Development Plan spricht vom 22. Juni, dann soll die finale Version kommen.
Mit NetBeans 7.0M2 ist auch die zweite Version aus dem 7er-Zweig raus.
Ein paar Impressionen aus den M1 und M2:
Verbesserte Maven-Unterstützung (super, wo doch jetzt Ivy immer mehr zur Alternative fürs dependency management (nicht builds!!) wird). In den Dialogen, Vervollständigung, Web-Services, …
Viele Neuerungen aus dem PHP-Projekt (netbeans php blog)
- Generating Getters and Setters Improved
- SFTP support added
- Parameter Info
- Code completion for constructors
- Marking returns
- Go to type for class members – improved
- SQL code completion in the PHP editor
- Marking occurrences improved
Und Ruby
Aktualisierung auf JS 1.7
Komlettes Redesign unter Mac OS
Bessere Unterstützung fürs Profiling:
SVG-Komponenten in NB Mobility
Von jHat eine interessante Unterstützung, um im Speicherbaum zumzusuchen.
Bei der C++-IDE: Unterstützung zum Bau vom Qt-Applikationen, Macro-Expansion (Tooltip), Tastaturvervollständigung, Setter/Getter bauen.
Vervollständigung bei Grails:
Insgesamt viele Änderungen, wobei die meisten Sachen nicht in der Java-IDE selbst passieren, sondern im Tooling und in anderen Sprachen.
Linux Tools Project
Dass Linux Tools Project fasst verschiedene Projekte wie automake, Valgrind, Systemtrap-Editoren zur Linux-Entwickung zusammen. Von der Eclipse-Webseite:
The Linux Tools project aims to bring a full-featured C and C++ IDE to Linux developers. We build on the source editing and debugging features of the CDT and integrate popular native development tools such as the GNU Autotools, Valgrind, OProfile, RPM, Systemtap, etc. Current projects include Autotools build integration, a Valgrind heap usage analysis tool, and an OProfile call profiling tool.
Drei Scrrenshots von New and Noteworthy:
IntelliJ IDEA 8.1
JetBrains hat eine neue Version ihrer IDE herausgegeben: IntelliJ 8.1. Die Änderungen sind eher unter der Haube (wie Performance Optimierungen) als das groß neue Features implementiert wurden. Dennoch gibt es einiges Neues:
IntelliJ IDEA Server
To make all of your favorite settings (keymap, fonts and colors, inspection profiles, etc.) accessible from any computer where you run IntelliJ IDEA, create a JetBrains Account and log in with it to a dedicated JetBrains server at IntelliJ IDEA startup.
Team Foundation Server integration
Perform all common VCS functions (commit, update, revert, etc.) from IDE. Create and manage TFS workspaces, merge branches, lock and unlock files, view the changes history, and do more.
Git integration
Carry out common VCS operations right from IntelliJ IDEA, plus do Git-specific tasks like cloning of remote repositories, pushing and pulling of local repositories, rebasing (including interactive mode and multiple Git roots), and more.
Perforce jobs support
IntelliJ IDEA Perforce integration now lets you list Perforce jobs, view their details and link them to arbitrary changelists. Jobs can be selected and linked directly from the Commit Changes dialog.
Oracle SQL dialect support
SQL editor supports Oracle SQL dialect, with completion, validation and highlighting.
Resin integration
Resin application server is supported via the dedicated run configuration, with application deployment and debugging (both local and remote).
Copyright plugin bundled
Generate copyright headers for any type of source code and let IntelliJ IDEA automatically keep them up-to-date. All it takes is creating a template for the copyright text and specifying the scope to which it should be applied.
Aptana Studio wird immer größer (Rails, pydev, …)
http://www.aptana.com/ find klein an. Erst war es die PHP-IDE auf der Basis von Eclipse, nun ist auch noch die Python-IDE pydev dazugekommen und eine Entwicklungsumgebung für Ruby/Rails und Mobile Web.
Das Geschäftsmodell bei pydev ist wie folgt: Während der Kern immer noch OpenSource bei http://pydev.sourceforge.net/ bleibt, kommt es kommerzielles Pydev Extensions hinzu. Die Webseite zählt für das Produkt etwa die folgenden Neuerungen auf:
- Rename refactoring: renames all occurrences for some token in your workspace — with preview and undo/redo (1.2.6)
- Support for python 2.5 (1.2.3)
- Mark Occurrences is able to highlight all the occurrences of some token in a file (1.0.7)
- Rename Occurrences: renames all the occurrences of some token in a file (Ctrl+2+R — 1.0.7)
- Interactive Console binded to the Pydev Editor (1.0.4)
- Open Definition Quick-outline (1.0.3)
- Debug console (1.0.2 — allows interactive probing in suspended mode)
- Code completion with auto-import
- Code analysis (PyLint replacement, but much faster)
- Quick-Fix for problems found in code analysis
- Go to definition (Bycicle Repair Man replacement, but much more reliable)
- Debug server (allows debugging scripts not lauched from within Eclipse)
- Keywords presented as auto-completions as you type
- Quick-outline
- Python 3.0 Unterstützung
Für die IDE gibt es unter http://showmedo.com/videos/series?name=PyDevEclipseList zwei Screencasts.
NetBeans IDE 6.5
Von der Webseite (http://www.netbeans.org/servlets/NewsItemView?newsItemID=1313):
NetBeans.org is proud to announce the availability of NetBeans IDE 6.5!
NetBeans IDE 6.5 offers simplified and rapid development of web, enterprise, desktop, and mobile applications with PHP, JavaScript, Java, C/C++, Ruby, and Groovy.
New features include a robust IDE for PHP, JavaScript debugging for Firefox and IE, and support for Groovy and Grails. The release also delivers a number of enhancements for Java, Ruby on Rails, and C/C++ development. Java highlights include: built-in support for Hibernate, Eclipse project import, and compile on save. Combining excellent out of the box experience, compelling features, and a great plugin ecosystem, NetBeans IDE 6.5 is a must-download for all developers.
NetBeans IDE 6.5 is currently available in English, Japanese, Simplified Chinese and Brazilian Portuguese. There are several community contributed localization efforts underway to support additional languages. Join the efforts today.
More information about NetBeans IDE 6.5:
- NetBeans IDE 6.5 Features
- NetBeans IDE 6.5 Tutorials and Documentation
- Guided Video Tour of NetBeans IDE 6.5
As always, we welcome and encourage feedback about your experience using the NetBeans IDE. Share your thoughts on our mailing lists and forums; if you blog about NetBeans add your blog to Planet NetBeans. NetBeans is now on Twitter! Follow us at twitter.com/netbeans to get the latest news and information, ask questions and engage with the NetBeans team.
Branching with Eclipse and CVS
Strg+F11: Noch so eine komische Eclipse-Änderung
Vor nicht allzulanger Zeit startete Eclipse mit Strg+F11 das letzte Programm. Dann änderte man dies und Eclipse versuchte automatisch das im Editor aktive Programm zu starten. Ich denke, dass diese Umstellung eher lästig ist und eines der ersten Sachen sein dürfte, die man abschaltet. Das geht so: In den Preferences unter Run/Debug > Launching den Schalter bei Always launch the … einstellen.
1 Stunde Suchen für eine doofe Eclipse-Einstellung
<Sarkasmus>Dankenswerterweise</Sarkasmus> hat Eclipse eine neue Einstellung bekommen, in dem gewissen Daten vom Kopieren in den Output-Folder ausgenommen werden können. Dass sich diese Einstellung unter Java > Compiler > Building befindet, fand ich erst nach langem Suchen hier: http://www.codecommit.com/blog/eclipse/wtps-crazy-and-undocumented-setting-change
Mein Problem: Bei der Entwicklung mit Wicket stehen die HTML-Seiten Seite an Seite mit den Java-Klassen. In den classes-Folder für die Web-Anwendung gingen aber nur die Klassen und nicht die HTML-Dateien. Da gestern auf einer anderen Eclipse-Version alles noch lief, war ich heute lange verzweifelt und kann glücklicherweise nach dieser Einstellung wieder an die Arbeit gehen.
Das ANTLR Eclipse-Plugin
Für den beliebten Parsergenerator ANTLR gibt es unter http://www.javadude.com/tools/antlr3-eclipse/ ein praktisches Plugin. Der Update-Manger von Eclipse wird auf die URL http://javadude.com/eclipse/update gelegt, installiert und neu gestartet. Anschließend geht man im Projekt auf das Kontextmenü und aktiviert Add/Remove ANTLR 3 Nature.
Als nächstes kann man eine ANTLR-Datei ablegen. Auf der Doku-Seite vom Plugin wird eine Grammatik (Datei Expr.g3) angegeben, die hier — leicht überarbeitet — angegeben werden soll:
grammar Expr;
@header {
package com.tutego.script.fp;
import java.util.HashMap;
}
@lexer::header {
package com.tutego.script.fp;
}
@members {
HashMap<String,Integer> memory = new HashMap<String,Integer>();
}
prog:
stat +
;
stat:
expr NEWLINE
{
System.out.println( $expr.value );
}
| ID '=' expr NEWLINE
{
memory.put( $ID.text, $expr.value );
}
| NEWLINE
;
expr returns [int value]:
e = multExpr { $value = $e.value; }
(
'+' e = multExpr { $value += $e.value; }
| '-' e = multExpr { $value -= $e.value; }
)*
;
multExpr returns [int value]:
e = atom { $value = $e.value; }
(
'*' e = atom { $value *= $e.value; }
)*
;
atom returns [int value]:
INT
{
$value = Integer.parseInt($INT.text);
}
| ID
{
Integer v = memory.get( $ID.text );
if ( v!=null ) $value = v.intValue();
else System.err.println( "Undefined variable " + $ID.text );
}
| '(' expr ')' {$value = $expr.value;}
;
ID:
('a'..'z' | 'A'..'Z') +
;
INT:
'0'..'9' +
;
NEWLINE:
'\r' ? '\n'
;
WS:
(' ' | '\t') +
{
skip();
}
;
Bearbeiten lässt sich die Grammatik in Eclipse nicht ordentlich, doch dafür dient ja die ANTLRWorks: The ANTLR GUI Development Environment.
Das Schöne beim Plugin: Es generiert automatisch im Hintergrund den Parser und Lexer. Das Testprogramm ist schnell geschrieben:
package com.tutego.script.fp;import org.antlr.runtime.*;
public class FpRunner
{
public static void main( String[] args ) throws Exception
{
ExprLexer lex = new ExprLexer( new ANTLRStringStream("age=34\nage*2\n12*111\n") );ExprParser parser = new ExprParser( new CommonTokenStream( lex ) );
try
{
parser.prog();
}
catch ( RecognitionException e )
{
e.printStackTrace();
}
}
}
Die Ausgabe ist dann
68
1332
Shell-Script-Editor (ShellEd) und Eclipse Target Management Project/Remote System Explorer
ShellEd (Bild) ist ein Shell-Script-Editor für Unix-Skripte (also ash, bsh, bash, csh, ksh, sh, zsh). Mit Manual und Vervollständigung. Interessant dazu ist das relativ unbekannte Target Management Project, wo man remote, etwa über SSH oder FTP auf einem Server arbeiten und zum Beispiel Dokumente editieren kann. Siehe dazu den Screenshot zum Remote System Explorer (RSE).
Mehr Eclipse-Plugins gibt’s unter http://www.tutego.com/java/eclipse/plugin/eclipse-plugins.html.
Eclipse auf das Basis von Swing
Gerade habe ich ein interessantes Projekt gefunden: http://eos.sourceforge.net/. Zwar gab es seit einiger Zeit kein Update, dennoch sehen die Screenshots schon sehr gut aus: http://eos.sourceforge.net/gallery/Eos%20-%204th%20Release%20(Beta%20Status)/index.html.
Eclipse-Plugin JSEclipse für JavaScript
JSEclipse: Ein JavaScript Editor aus den Adobe-Labors. Der bietet farbliche Hervorhebung, Templates, Tastaturvervollständigung, Fehler- und Hinweismeldungen, Outline und mehr. Das Plugin lässt sich manuell, oder über den Update-Manger mit der Adresse http://download.macromedia.com/pub/labs/jseclipse/autoinstall installieren. In einem Forum finden Probleme und Lösungen zusammen. Die Doku wird im Eclipse Hilfe-Manager eingebunden. (Bild 1, Bild 2)