Austin Ziegler
4/28/2005 2:37:00 PM
On 4/28/05, Alex the_mindstorm Popescu <the_mindstorm@evolva.ro> wrote:
>> Johan Toki Persson [mailto:tokikenshi@gmail.com ]:
>> We're not a craving bunch. Hacking in such a wonderful language
>> is good enough. :-) No seriously, I dont't have the slightest. I
>> guess the average rubyist are quite satisfied with either vim or
>> emacs.
> My current project (Java) size: aprox.2000 classes. I don't think
> this is nice manageable in a vim environment (and remember I've
> been there ;-)).
I'm working on a relatively large project in Ruby -- PDF::Writer.
This is not a small project in Ruby; it has between 40 and 60
classes and represents about six months continuous work. It also
uses a few other classes that I've refactored out.
ActionMailer (part of Rails) is similar -- it looks to be about 40
classes. (There's a lot of files that are 10k or less in
ActionMailer.)
I think that part of the reason that a lot of people are happy --
satisfied, even -- with vim and emacs for Ruby (and Rails)
development is that there's a lot *less* code.
How many of your 2000 classes are *useful* classes that do real
work? How many of your 2000 classes are necessary because of the
nightmare that is Java enterprise application programming? (When I
looked at "Code Generation in Action", I was amazed at how many
classes had to be generated for a single table/view combination.)
If, as I suspect, there's a 1:4 useful:framework ratio, then you're
talking about 400 classes that do real work. In PDF::Writer,
although I've got 40 - 60 classes (in about 35 files), I am working
mostly in -- get this -- three files. How many files do you work in
mostly? If your percentages are similar, then you're probably
working with about 35 files.
In a C++ project that I am doing at work, there's a similar ratio.
At any given time, I'm working with between three and fifteen files.
I will use the VisualStudio environment for code completion and a
few project-centric searches (it's a bit smarter than a text search
that I do on Windows, but equally smart to a good find-grep search
that I do on our Unix ports), and for integrated debugging, but
that's about it. I do 95% of my code editing in vim.
Interesting SLOCCount stats for PDF::Writer:
Total SLOC : 5,980
Person-Years Estimate (COCOMO) : 1.31 (15.69 months)
Schedule Estimate (COCOMO) : 0.59 (7.12 months)
Estimated Developers: : 2.21
Estimated Cost: : $ 176,676
> I have seen this "vim or emacs is enough behavior", and I
> interpret it much like a: "hey if you are not an elite to use
> vim/emacs, you have not the right to use xxx" (programming
> language for elites), and this is _completely_ wrong. Imo this
> support is mandatory (I can give you lots of examples about nice
> technologies/ideas that remained little - maybe even are dead now
> - because of the lack of tool support).
Then you are interpreting this incorrectly, at least for Ruby. You
can use any editor to work with Ruby. There is some support for Ruby
in the major cross-language IDEs, but Ruby is a notoriously
difficult language to provide full IDE capabilities for.
> I really believe (and I am sure almost all of you accept this ;-)
> ) that an IDE is helping a lot the development of real world
> projects and it brings a lot of efficiency to experienced
> developers, but is also helping beginners to become proficient.
Mmmm. I don't necessarily agree. An IDE can help, certainly, with
things that are difficult to remember often. An IDE can also provide
an environment for bad code. In the Java world, an IDE is almost
certainly necessary to deal with the idiocies behind the library
design. In the MS world, an IDE is almost certainly necessary to
deal with the massive API set (and some of the idiocies behind the
library design).
In Ruby, I think that an IDE is much less necessary and useful. Code
completion is very unlikely to be possible on a Ruby IDE, at least
inasmuch as developers have come to expect with IDEs for statically
typed languages.
Can you point me to a Python IDE or three? I'd like to look at them
to see if they come close to what VisualStudio can do, even, for
C++.
-austin
--
Austin Ziegler * halostatue@gmail.com
* Alternate: austin@halostatue.ca