It seems to me that measuring productivity in a programming language
must take into account available tools and libraries.
Eclipse for example provides such an amazing IDE for java that it is no
longer obvious to me that one would be much more productive in python
for medium sized projects.
Sure, all that Java static typing can be painful, but Eclipse takes
some of that pain away. Moreover, static typing can result in better
on-the-fly error detection and refactoring support.
Any thoughts on this?
Amir
Eclipse can generate a lot of the Java boilerplate code, it's true,
saving you a lot of typing up front. But it can't maintain all those
reams of pointless code for you, and perhaps more importantly, it
can't read it for you. All the useless code that Java requires still
has a large price, even if you don't need to type it yourself.
> Sure, all that Java static typing can be painful, but Eclipse takes
> some of that pain away. Moreover, static typing can result in better
> on-the-fly error detection and refactoring support.
I do sometimes spend some time finding and fixing bugs of the "I
though I had a Spam instance, but it turns out to be a Eggs instance"
issues when coding in Python, but then I spend some time sorting out
"I know you've got a fry() method in there somewhere - just let me
call it!" issues in Java, so it balances out. And the latter problems
are more annoying, 'cos I feel the compiler isn't trusting me. Python
usually trusts me, even if I don't always deserve it. ;-)
FWIW, I spend perhaps 80% of my coding time with Java (and Eclipse),
and 20% with Python.
--
Cheers,
Simon B
si...@brunningonline.net
http://www.brunningonline.net/simon/blog/
I also, after weeks of testing, decided to invest in the pydev
extensions / the bugs it has found for me already justify the investment.
hg
Yes, thats true, but since eclipse is resource monster (it is still
using java), and some people (like me) don't have a super fresh and new
computer, and have to run other services to test their work locally
(like mysql and apache servers), it gets pretty harsh with eclipse. I
personally tried eclipse on my laptop (which I work most with), and I
had quite a system resource problem. So I switched back to vim and
console and it hasn't been too bad, since if you know how to use a
powerful editor, it can be as productive.
But in the end, it is up to anyone to find the best solutiion for
themselves.
Thomas
If you compare eclipse to VS, it is not that memory hungry - but i agree
with you that a min-config is needed. Yet (I believe that) a complete
IDE can bring functions that an editor, however powerful, cannot (I
still use emacs).
I have tried Komodo, Wing, Eric3, Idle, emacs, (not vi ;-) ), SPE,
boa-constructor, .... and many more - I like most of them but am really
addicted to eclipse + pydev.
... but even without pydev, I would not use java just because of eclipse.
hg
But isn't support for java better because the eclipse ide can take
advantage of explicit type declarations (e.g., for intellisense,
refactoring, etc.)?
Amir
> krishnakant Mane wrote:
> > just used the py dev plugin for eclipse.
> > it is great.
>
> But isn't support for java better because the eclipse ide can take
> advantage of explicit type declarations (e.g., for intellisense,
> refactoring, etc.)?
>
> Amir
The support for Java is light-years ahead. Sometimes I feel that
Eclipse is coding for me (quickfix, for instance). There's the fact
that Eclipse is developed in Java, so they are eating their own
dogfood.
That said, the code completion for Python is still in its early stages.
There is a lot of room for improvement, even for a dynamic language.
Stephen
Eclipse may be quite a technical achievement, but I found it
irritating. Aside from the misuse of screen real-estate, I found that
typing two characters and having what seemed like half my source file
underlined in red, with multiple messages telling me that I had yet to
define or import something or other when what I was about to do was to
write the declaration, all conspired to make me want to scream, "WTF do
you think I was going to type in about five seconds time? Work it out
and autocomplete it if you're so damned clever!"
So, Eclipse certainly has its share of detractors, too. ;-)
[...]
> That said, the code completion for Python is still in its early stages.
> There is a lot of room for improvement, even for a dynamic language.
Agreed. I don't believe in endless refactoring, and I think that's
frequently a symptom of using an overly inflexible statically typed
language (where it's more like "Refactoring" - the big R symbolising
the seriousness and heavy lifting involved), but there are often times
when I've wondered whether something could alert me to obvious
breakage, especially after fairly big changes, acting possibly within
the editing environment. I suppose pylint and similar tools have been
working towards that goal, but I often wonder about producing something
more subtle: something which is more clever than looking at modules and
globals, and yet doesn't nag you continously about things which you'll
discover almost immediately anyway.
Paul
> Eclipse may be quite a technical achievement, but I found it
> irritating. Aside from the misuse of screen real-estate, I found
> that typing two characters and having what seemed like half my
> source file underlined in red, with multiple messages telling me
> that I had yet to define or import something or other when what I
> was about to do was to write the declaration, all conspired to
> make me want to scream, "WTF do you think I was going to type in
> about five seconds time? Work it out and autocomplete it if you're
> so damned clever!"
I had exactly the same experience when trying out Eclipse :D I'll
stick with "good ol' vi".
Regards,
Björn
--
BOFH excuse #227:
Fatal error right in front of screen
And if you compare Saturn to Jupiter, it's not that big.
> Yet (I believe that) a complete
> IDE can bring functions that an editor, however powerful, cannot
Is there anything _useful_ that it'll bring that a good editor doesn't?
e.g. in vim I do get
* automatic syntax checking (if I type "if a=1:" and hit enter, it'll
immediately highlight the syntax error)
* omni-completion (because Intellisense is trademarked)
* refactoring (with BicycleRepairMan integration)
* folding (which is more important than the above 3 combined, IMO)
* online help (typing cmp( gives me the docstring for cmp in the status
line, F1 to view the whole thing)
As well as all the basics (tags/class browser/good regex support/syntax
highlighting/autoindent/source control integration/etc).
I'm not trolling here, I'm looking for interesting new features I can
steal.
How about we try to find some papers on the subject?
Here's one to start things off:
http://pag.csail.mit.edu/~akiezun/companion.pdf
Amir
Thanks. Seems a bit high-level to be very useful, and the plethora of
examples around "self encapsulate field" seem inapplicable, but it
makes me wonder if there's anything to be gained by integrating the vim
refactoring support with the Vim 7 undo branches.
just run this script and you will find that you always get "I don't
know you", even if you entered tom.
I then figured out that length of name actually comes to 4 even when I
entered tom. that's why it always goes in the else claws.
but when I ran the same script from a command promt the length of name
returned 3 when tom was entered and the code worked fine.
I can't understand why is this happening? why is eclipse putting an
extra character in the name variable?
Krishnakant.
Here's a blog post that is relevant to this discussion:
http://sixthandredriver.typepad.com/river_of_code/2006/01/automated_refac.html
Amir
Yes : Python's productivity does not only comes from dynamic typing.