3 ms·
To me this seems like much the same malady that C++ suffers from. Is it something that established best practice could be brought to bear on? Scott Meyers' Effe
by rusk 10y ago
To me this seems like much the same malady that C++ suffers from. Is it something that established best practice could be brought to bear on? Scott Meyers' Effective C++ seems to be the bible on this topic for that language, I wonder would something similar for Scala help things a bit?
I guess in Java we are spoiled - though sometimes stifling, the rigid structure and syntax help prevent people doing "bad things". It has struck me once or twice these restrictions may have been derived in part from established C++ best practices ...
- JPLeRouzic 10y agoMore than 10 years ago I was asked to provide some insights about Java and Python for internal use in our lab. Despite IBM involvement in Java at that time, both Java and Python were see as possibibly immature by my boss. My own conclusion was exactly what you wrote. In fact during the Internet bubble there was a recruiting crisis, and Java (Python was not mature enough at that time) was exactly what was needed: A language for undergraduate people that produces good results, was easy to read and maintain, while forbiding "innovative" but often buggy code.
- rusk 10y agoAnd these days its also about the tools that a strongly typed well structured language enables. I can refactor many things in IntelliJ in a trice. I've heard Bjarne Stroustroup bemoan the fact that the C++ community "can't have nice things" like this because so much of the community still holds on to legacy kludgy practices like cpp macros.
- mcguire 10y agoThe problem with C++ best practices is that they change with every version of the language. I suspect that Scala may be the same.
- grzm 10y agoNot knowing C++, what are the types of changes in practices? Which are the most burdensome? I can imagine some accompanying changes in the language (as often best practices are there to cover infelicities in the language that are corrected in future versions). Are these of a scale that require large rewrites? Like, past best practices are now actual flaws (as opposed to just not the peak optimizations)?
- mcguire 10y agoI first used C++ around 1990, when it didn't have much of a standard library. Then came the Annotated Reference Manual with its crazy talk of templates and namespaces and what not, which weren't implemented by any compiler I had. Somewhere around here is a copy of PJ Plauger's book on the standard library that doesn't mention templates at all. The standards committee pulled a fast one on Plauger: between the publication of his book and the finalization of the draft, the STL took over the world. Then came C++11, with move constructors, anonymous functions, and a couple of new smart pointers (which was good). C++14 introduced type deduction. And there's Boost's smart pointers (and everything else). Nothing requires a rewrite, but five year old code looks nothing like what people say is "best practices" now.