5 ms·
IMO the autocomplete argument is rather unconvincing. Every dynamic language I've worked deeply with has powerful and simple introspection capabilities, and th
by cle 9y ago
IMO the autocomplete argument is rather unconvincing. Every dynamic language I've worked deeply with has powerful and simple introspection capabilities, and they generally come with much more interactive development environments (shell/REPL), so I've never found API discoverability to be any worse than statically typed languages, just different.
In general though, the more you can formally reason about the program, the more you can automate program transformations (refactoring). Programmers in dynamic languages will argue that the amount of code is far less than the equivalent code in a mainstream statically-typed language, so while the cost of refactoring may be higher per unit, the number of units is less, so the overall cost is the same (or less).
I believe in using the best tool for the job...some use cases would benefit more from static typing, while others would benefit more from using a dynamic language. One of the most important factors is the team and its engineers' backgrounds, preferences, styles, etc.
- wootness 9y agoI found Ruby (even in something like RubyMine) to be a far cry from even the basic stuff you get from Java. Suggestions for vars and funcs that don't actually exist really slowed down things.
- emodendroket 9y agoDoes anyone believe in using the wrong tool for the job?
- disconnected 9y ago> Does anyone believe in using the wrong tool for the job? Yes. PHP developers. :)
- cle 9y agoYes! Many engineers use tools they like for reasons unrelated to the job they're doing or the product they're building.
- emodendroket 9y agoIt might still, at least arguably, be "the right tool for the job." If you have a huge team of expert C# developers C# might be "the right tool for the job" even if it would be a little easier to do in a different language, given the same pool of experts in that language.
- cle 9y agoAgree. My point is that, if I personally dislike C# (I don't), and I'm on a team of C# experts and C# is the best choice for shipping the product given those experts and all the other use cases, then C# is the best tool for the job and I'll peruse C# documentation. I try my best to focus objectively on the product, not my ego or subjective preferences...and I often fail :(.
- emodendroket 9y agoI've been writing PHP for a couple months and I've been pleasantly surprised so I feel like I am moving beyond that.
- girvo 9y agoTo be fair, PHP 7.1 with Composer is a very different language to PHP 4, for the better of course.
- emodendroket 9y agoYeah, sure, and I was able to avoid the painful years. But C# pre-generics and pre-Linq is a way less appealing language too, you know? Most languages that are popular now look kind of rough to work in several versions ago.
- girvo 9y agoOh definitely. I think that’s the case for nearly any language that’s worth the code it’s written in. C++ is an interesting case study in how to do it both right and wrong; we’re spoilt for choice and it keeps getting better every day
- 19873287234 9y agoAt a place I worked at once, it was "use Microsoft for everything". So yeah.
- emodendroket 9y agoYeah but that's more a matter of the criteria to decide on the right tool. Nobody would say "I intend to use the wrong tool for the job."
- vorg 9y ago> Nobody would say "I intend to use the wrong tool for the job." ...but there's plenty of sales charlatans out there who will say "I intend to get the manager of that IT dept to make its developers use my tool for the job, and I don't care if my tool is the right one or the wrong one."
- msla 9y agoYeah, I agree: Two of the languages with the best autocomplete and introspection in general are Common Lisp and Smalltalk. Some of that's simple maturity, but it proves that those features can work very, very well in even the most dynamic languages around.
- dahauns 9y agoSorry, but I'd contest that remark, at least for Smalltalk. It only has the best autocomplete/introspection for people who have never worked with modern statically typed languages/IDEs and/or significantly large projects. It just doesn't have the neccessary information.
- 19873287234 9y agoThe thing about magical refactoring though is that it often isn't a good idea. You usually don't just change the name of something, but you change it conceptually. If you just let the ide go and change the name everywhere, you create bugs because you never actually went and made sure the old code was updated for the new concept, rather than just the name.
- deleted 9y ago[deleted]
- emodendroket 9y agoThat's not really true.
- a-saleh 9y agoIn my mind, what swayed me towards static typing languages was after I played around with Haskell and was able to use the 'deriving' clause. The realization that with types, smart enough compiler can implement interfaces for me, was amazing. Unfortunately, I am afraid that it will take a while for these techniques to go mainstream. A.f.a.i.k most a mainstream language can do, is to fill in the method stubs for you.