3 ms·
There are lots of details about what we're rewriting any why that aren't really relevant to this discussion. I'm (we're) not against 3rd party libraries; but w
by d2p 12y ago
There are lots of details about what we're rewriting any why that aren't really relevant to this discussion.
I'm (we're) not against 3rd party libraries; but we'd like to minimise our use of them because we're constantly bitten by poor libraries introducing breaking changes or being abandoned. I'm sure anyone that has worked on a huge codebase over a long period of time has been bitten in the same way. We certainly don't want to rely on 3rd party libraries for something so fundamental (and the absence of it from the Dart Team only makes us more concerned).
- andybak 12y ago> poor libraries introducing breaking changes Don't update unless you have to? > being abandoned How is abandoned 3rd party code any worse than code you wrote yourself? In one instance you won't get any updates unless you write them yourself, in the other... 3rd party code is almost always a win - at best you get free code, at the very worst you get to look at some code that you can learn something from.
- d2p 12y ago> Don't update unless you have to? We just starting hitting a bug in NHibernate where objects are GC'd that shouldn't, and it crashes. It was fixed in a newer version, so we updated. This minor update changed the way a bunch of queries work (optimisations that fail when a certain feature is used), and we've had to roll back. We either have Bug A or Bug B. > How is abandoned 3rd party code any worse than code you wrote yourself? I understand code I wrote myself and can easily fix bugs. The lsat thing I want to do when I find a bug in a 3rd party library is spend weeks debugging their code because it's been abandoned. In many cases it's a false economy. > 3rd party code is almost always a win I don't think you've worked on enough codebases you didn't write that are years old and had hundreds of dependencies pulled in without any thought; especially in something with no sound type-system like JS :O( Try upgrading jQuery when you've got 150 jQuery plugins that have been abandoned and/or don't work in the new version of IE :-/
- andybak 12y ago> We either have Bug A or Bug B Can you cherry-pick just the fix you want? I'll admit this depends how intertwingled the fixes are... > I understand code I wrote myself and can easily fix bugs. I assumed you were in a team - which would level things out a bit even if you have pretty consistent coding standards. Yes - in a one man team the cost/benefit calculation might change. > I don't think you've worked on enough codebases you didn't write that are years old and had hundreds of dependencies pulled in without any thought; especially in something with no sound type-system like JS :O( Maybe this is the key to our different perspectives. I use lots of 3rd party code but it has to pass the smell test. I'm mainly talking about the Python ecosystem and I've probably learnt how to spot trouble and run away. My heuristics are based on code location: (-5 if it's on Sourceforge or Launchpad, -3 if it's on Google code, -1 if it's on Bitbucket ;-) and then stuff like documentation, number of forks and recency of commits - plus just the vibe I get skimming the code...