Hast du nix zu tun, schreibst du eine neue IDE …

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!

NetBeans 7.0 Roadmap und NetBeans 7.0M1/M2

Die Roadmap sieht so aus:

NetBeans Roadmap

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.

  • Milestone 1: NewAndNoteworthyMilestone1NB70
  • Milestone 2: NewAndNoteworthyMilestone2NB70
  • 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, …

    cos.jpg

    add-dep.jpg

    generate_code.jpg

     

    worthy-maven-generate.png

     

    worthy-maven-completion.png

    Viele Neuerungen aus dem PHP-Projekt (netbeans php blog)

    Und Ruby

    Aktualisierung auf JS 1.7

    http://blogs.sun.com/tor/resource/wrong-yield.png

    http://blogs.sun.com/tor/resource/yield-ok.png

     

    http://blogs.sun.com/tor/resource/e4x-completion.png

    Komlettes Redesign unter Mac OS

     

    maclaf.png

    Bessere Unterstützung fürs Profiling:

     

    FitnessViaPartnership/profileme.png

    SVG-Komponenten in NB Mobility

    VMD.png

    Von jHat eine interessante Unterstützung, um im Speicherbaum zumzusuchen.

    OQL_code_completion.png

    Bei der C++-IDE: Unterstützung zum Bau vom Qt-Applikationen, Macro-Expansion (Tooltip), Tastaturvervollständigung, Setter/Getter bauen.

    Vervollständigung bei Grails:

    worthy-groovy-editordynamic.png

    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:

    New OProfile View UI

    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

    click to enlargeClick to enlarge

    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

    click to enlargeClick to enlarge

    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:

    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:

    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.

    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.

    image

    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

    wtp-screwup

    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-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)