IntelliJ 7 has now shipped and I am most excited to see the non-Java support. If you take a peak at the Ruby features, it looks pretty good and thorough:
- Smart, scope based JRuby-aware Ruby code completion
- Automatic completion of built-in methods
- Smart Ruby statements completion
- Completion and automatic resolution in require and load calls
- Ruby code syntax and error highlighting, with brace matching and folding
- Code style support with automatic formatting, indentation and TODO marks
- On-the-fly Ruby code analysis with quick-fixes
- JRuby and Ruby-aware intention actions
- Advanced Ruby code and project navigation
- Ruby-aware structure view, quick structure popup
- Go to Ruby class, file, symbol and declaration actions
- Quick declaration view, context and method parameter info
- Quick overriding of classes, modules and methods with active navigation gutters
- Multiple ruby-aware refactorings
- Ruby code usage search for local variables, method parameters, class fields and constants
- Dedicated Ruby run configuration and quick script execution
- JRuby support for running Ruby applications, with cross-resolution of classes between Ruby and Java
- Unit testing support with quick tests launching for a specified method, class or set of tests
- Stack trace analysis with one-click Ruby code navigation
- Ruby code documentation lookup with hyperlinks and navigation
- More than 50 Ruby and RSpec live templates
- Shortcuts settings for rake tasks, generators, RSpec, etc
I like Textmate and all, but it is far from being IntelliJ. Textmate is fast, clean, and simple. IntelliJ is smart. Netbeans has done a great job with Ruby support, and it is fantastic to see IntelliJ put its hat in the ring. I am looking forward to putting it through its paces. As much as I like IntelliJ, I have to admit that sometimes I wish that I still have version 3 around…. which was lean and mean. Hopefully the performance improvements are real in v7.
I use a bunch of editing tools. OmniOutliner, TextMate, IntelliJ IDEA, vi, the editor that lives in my email client, etc.
One of the great things about TextMate is that it groks the power of the shell, and of the platform.
This is shown throughout the product, from being able to type a command and have it kick out, run it, and put the results back in the document, to the plugin system.
I have written a bunch of plugins in TextMate to make my life easier. Why haven’t I done this in IntellIJ or Eclipse? The thought of doing those is daunting. Time consuming.
With TextMate I can write a plugin in any language that I want because the contract is so loose. It will shell out, and I can run ruby, perl, lisp, or whatever I feel like for the given problem.
This is a truly killer feature.
Ted Leung pointed me to Gobby, which is “SubEthaEdit for the rest of us”, as he put it.
I love SEE, so it is great to see something that I can use cross-platform, with people on other systems.
Now, if it could be an IDEA plugin….
Kunal Anand wants an Ajaxian Code Editor.
When you read on, you quickly find that whether it is Ajax or not isn’t the issue. The issue is that he wants a more “live” experience in his group coding.
This is something that keeps coming back.
Now-a-days, a lot of coders are lucky enough to have multiple monitors (or monitor + laptop screen).
When I am plugged in, my laptop screen becomes a dashboard. That is where I have my email, my calendar, etc. On my main screen I have my code and real work.
I would like to see apps grokking that this is a growing setup.
Imagine if my IDE had a panel that I could move over to my dashboard screen that had IM windows for people in my team, and I can see what they are coding. Live. Then we can chat (text/voice) and iterate together. You can bring in, or ignore various people on the team to not bug eachother, etc etc.
You would truly feel like the entire team is running fast getting stuff done, and multitasking at the same time.
Charles Miller is talking about the IntelliJ 5.0 new ‘inspector’ feature.
I once mentioned the “Those who coded also coded” feature.
Now Hector is watching our code, wouldn’t it be nice if I could tell him to start talking to others of His Type:
- Talk to your brother over there, and allow us to pair code remotely
- Learn about me. Watch, learn, and remind me
- Talk to a set of brothers and discuss how we all work, and teach us
- … and much more!
It was good to hear that IntelliJ IDEA 5.0 is coming soon.
It was great to hear about Coyote:
The goal of this project is to develop a set of NetBeans modules to help developers write code in dynamic languages using the NetBeans IDE. Initially, we are targeting the the Groovy and Jython languages, but we anticipate a common framework allowing support for more languages.
The coyote is a quiet, efficient animal that thrives in urban and rural settings without any particular encouragement, and once established in an ecosystem, is virtually impossible to eradicate.
Getting completion and the like for Groovy is a god-send. This will have me installing NetBeans just for that development, although coyote doesn’t support 4.1 beta (which is actually VERY slick).
I wish this was in IDEA and Eclipse ;)
I had a strange dream last night. I won’t go into the details of my warped conciousness, but will talk about one small piece that flashed by.
At one point I was coding using IntelliJ IDEA Eclipse 12.5. As I started to write some code, a panel changed to say “Those who coded with API FOO, went on to do X, Y, Z”. The dream-like, better looking, Dion, then clicked on Y and a bunch of skeleton code was done for me.
Although this is a little out there, I do always come back to the fact that it feels like there are thousands of developers doing their own thing. As a profession, each project is making its own mistakes, and I don’t think we have avenues and ways to learn from eachother. Sure, there are design patterns, and practices which we sometimes share, but isn’t there more?
If there was a way to capture our experiences, it would be great. E.g., in some small ways…. say I started to tie together Tapestry and Spring. My IDE could see that I was doing this, and knows that someone in my social network has also done this, and shows/does this for me. Roll on the AI IDE! ;)
Eclipse is a great product, don’t get me wrong. But I have such a tough time keeping things in sync.
It means that:
a) I have multiple versions of Eclipse
b) I keep spending time “trying” to see if the latest plugin works on the latest Eclipse version
Then, add the fact that eclipse plugin X has a dependency on plugin Y and you soon are driven nuts :)
I am really glad that 3.0 is in RC1 and that the API shouldn’t be changing, so hopefully the plugin writers have time to catch up and I can just use 3.0 :)
Until then, I will keep using IDEA unless I need to do AspectJ (in which I use AJDT), Tapestry (Spindle, or the cool Eclipse profiler plugin, …
It is a good time to be a Java developer. We have the new IDE releases of IDEA and Eclipse, new frameworks like dynaop, WebWork 2, Chrysillis and more. Then we have the beta release of JDK 1.5. A lot of fun stuff!