Yeah, 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.
Sorry, 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.
Re:Diminishing returns of static typing
by emodendroket on Monday October 02, 2017 @11:44AM
(#15384697)
Does anyone believe in using the wrong tool for the job?
Yes! Many engineers use tools they like for reasons unrelated to the job they're doing or the product they're building.
Re:Diminishing returns of static typing
by emodendroket on Monday October 02, 2017 @12:25PM
(#15385195)
It 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.
Agree. 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 :(.
Re:Diminishing returns of static typing
by emodendroket on Monday October 02, 2017 @02:52PM
(#15386742)
I've been writing PHP for a couple months and I've been pleasantly surprised so I feel like I am moving beyond that.
To be fair, PHP 7.1 with Composer is a very different language to PHP 4, for the better of course.
Re:Diminishing returns of static typing
by emodendroket on Monday October 02, 2017 @06:37PM
(#15388575)
Yeah, 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.
Oh 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
Re:Diminishing returns of static typing
by 19873287234 on Monday October 02, 2017 @12:04PM
(#15384923)
At a place I worked at once, it was "use Microsoft for everything". So yeah.
Re:Diminishing returns of static typing
by emodendroket on Monday October 02, 2017 @12:26PM
(#15385201)
Yeah 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."
> 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."
Re:Diminishing returns of static typing
by disconnected on Monday October 02, 2017 @11:49AM
(#15384743)
> Does anyone believe in using the wrong tool for the job?
Yes. PHP developers.
:)
Re:Diminishing returns of static typing
by 19873287234 on Monday October 02, 2017 @12:03PM
(#15384910)
The 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.
Re:Diminishing returns of static typing
by emodendroket on Monday October 02, 2017 @08:33PM
(#15389118)
That's not really true.
In 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.
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.