4 ms·
"Refactoring" is part of the current paradigm, so the act of refactoring is not a pardigm shift. Consider, however, that you are a computer scientist in 2012 t
by trashtester 8y ago
"Refactoring" is part of the current paradigm, so the act of refactoring is not a pardigm shift.
Consider, however, that you are a computer scientist in 2012 that has been working in the field of image recognition using hand written algorthms for 20 years. You are the best in your field, highly respected. Your code has been refactored so many times that you think it is near perfect.
Then along comes a young PhD student named Alex, and presents a completely different way of doing image recognition. Instead of talking about "refactoring", the talks about "retraining" or "rewireing". Instead of talking about "software architecture" he talks about "network topology". While you are "unit testing", he is "regularizing". He is still refactoring and building software architecture, you say, but for him, those are less important.
6 years later, everyone has forgotten about your life's work, and Alex's one paper has been cited 25 000 times and triggered a multi-billion $/year field of study.
I think THIS is the on-going paradigm shift in computer science, and it has just started.
- westoncb 8y ago> "Refactoring" is part of the current paradigm, so the act of refactoring is not a pardigm shift. The example you cited to justify that claim is a difference in magnitude, not intrinsic structure. I brought up refactoring as an analogy to highlight the key features of another structure less familiar to software developers.
- trashtester 8y agoThe point of my example, is that the paradigm shift typically involves new people, with a new outlook, sometimes a different education or skill set, etc. They often are younger (but not always, sometimes they are just visionaries finally proven true, like Hinton). When there is a paradigm shift, there is typically an "old guard" that is not able to or willing to let go of the old way, and that gets left behind. This is why the saying goes: "Science advances one funeral at a time". In most cases (at least in my experience), refactoring is done either by the same team of programmers creating the original version, or a new team with a similar outlook to the old team. This means that there is not really an "old guard" to leave behind. But maybe you meant some other type of refactoring?
- westoncb 8y agoThe key word in my previous comment would be 'analogy'. In any analogy, some elements in the analogous domain have no mapping. I was highlighting the isomorphism between code undergoing refactors and theories undergoing paradigm shifts, in terms of linguistic structure; I was not commenting on the social components of either.
- piano 8y ago> Consider, however, that you are a computer scientist in 2012 that has been working in the field of image recognition using hand written algorthms for 20 years. You are the best in your field, highly respected. Your code has been refactored so many times that you think it is near perfect. > Then along comes a young PhD student named Alex, and presents a completely different way of doing image recognition. Instead of talking about "refactoring", the talks about "retraining" or "rewireing". Instead of talking about "software architecture" he talks about "network topology". While you are "unit testing", he is "regularizing". He is still refactoring and building software architecture, you say, but for him, those are less important. Sounds like an intro to an unusually intellectual and a tad weird porn clip.