Hacker News new | past | comments | ask | show | jobs | submit login

> Most of the time I have no idea (and my IDE neither) what methods and properties are available on variables and function parameters.

If I am really this lost with a piece of code in Python or Ruby, I usually start an integration test with an added line to call the debugger.

With introspection you can then easily see what methods a given object has.

> And what's the most insane to me: I'm sitting next to people with LOT of experience in Python and I see them losing as much time as me when maintaining and debugging some basic piece of code they have written not even 2 weeks ago.

That is insane. What kind of code coverage do you have and what kind of tests?

It is true that you have to write more tests in a dynamic language than in a static typed language but as tests often convey the information of what was intended to be done much better than code, I don't consider this a drawback.

But if the tests are lacking, you are at a much greater loss than with static typed languages.




> With introspection you can then easily see what methods a given object has.

With VS and C#, I can hit ctrl+space and get a list of absolutely everything that's in the contextually relevant public API. So much faster than introspection. If I'm using an object initializer to instantiate something, I can hit ctrl+space inside the object initializer to get a list of all the available public properties -- no typing the names required. No having to remember the order of arguments of methods, or even their types. Autocomplete means I can usually get away with somewhere between zero and three keypresses to get exactly what I want highlighted in the intellisense.

Forget efficiency via vim/emacs keybindings. Static typing + a strong intellisense/intellisense clone lets me code literally at the speed of my thoughts most of the time. I end up feeling like I'm stuck in molasses the few times I have to write some JS.

> It is true that you have to write more tests in a dynamic language than in a static typed language but as tests often convey the information of what was intended to be done much better than code, I don't consider this a drawback.

I understand your point, but for me, the extra tests I write in dynamic langs just end up making me feel like I've duplicated the work of the static checker in other languages, and in a non-reusable way.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: