5 ms·
I think the article is fundamentally flawed from this comment alone: "In well over a year of working in Scala teams there hasn’t been a single day where I felt
by emcrazyone 12y ago
I think the article is fundamentally flawed from this comment alone:
"In well over a year of working in Scala teams there hasn’t been a single day where I felt that there was a shared mindset about how to develop a system or even approach a problem."
So this guy expects a programming language to create a shared mindset?
I've been developing software for close to 17 years in more languages than you can shake a stick at and none of them do this for you. It's always about picking the right tool for the job and/or team.
A shared mindset comes from other planning type activities like use cases, function/non-functional specifications, and general architecture type planning before you write code. Especially for larger projects.
I think software patterns tend to help drive synergy in a team environment. It's not perfect but my experience has shown me and the folks I work with at least, that adopting patterns helps to bring us together but those patterns are usually fleshed out during architecture planning activities.
- cwyers 12y agoI think there's a huge contrast between a language like Perl, where There Is More Than One Way To Do It, and say Python, where "There should be one -- and preferably only one -- obvious way to do it."
- RodgerTheGreat 12y ago"The Zen of Python" makes a number of lofty claims like that, but the actual language design doesn't embody them well if at all. To pick an example off the top of my head, there are three syntaxes for string literals (single quote, double quote, triple quote) and three prefixes (raw, binary, unicode) which can be combined in a number of ways. As a result python offers 15 ways(!) to express a string literal.
- pekk 12y agoThat's really disingenuous. The "Zen of Python" is not bragging on the part of Python, but an expression of values in a community.
- TodPunk 12y agoHis point is that those values don't exist in most of the community as exemplified by their code and blogs, and this is largely because the language encourages straying from those values. I should note that I agree, and I'm a Python dev full time.
- duaneb 12y agoEach of those string literals has a purpose. There may be more than one way to create a string depending on what exactly you MEAN by a "string", and what the constraints of the code are.
- xorcist 12y agoThe standard library is not much better. There are three ways to load an URL, and a lot of people use neither but a third party library. Add a few more third party tools and you probably have active code paths to all variants throughout your code base. Speaking of third party libraries, you want to install those? Just go with distuils, no setuptools, no distribute, no distutils2, no distlib, no wait distutils again but a new one. I probably even missed a few. It's still my go to language for a lot of things, but I can't help but agree that design goal hasn't aged very well.
- smutticus 12y agoI took that quote to mean he wanted Scala to be idiomatic. There's much mileage to be had from linguistic idiomaticity. Like you said, "software patterns tend to help drive synergy." I don't think your opinion and the authors are all that far apart.
- pjmlp 12y agoFor me a good way to deal with team code was getting involved into enterprise offshoring. Either you learn to live with code that works, regardless how it is written, in a world that doesn't care about stuff discussed in HN or better change job. Trying to bring everyone involved, both onsite and distributed locations to follow best practices, is playing D. Quixote.