Here is a much simpler and more informative archiecture model that is browsable from our research group. It requires a Java-enabled browser and some patience for the initial loading of the data.
See also the paper at the Intl Conf on Software Engineering that was written around it.
Wrong-o. Waterloo CS students learn C++ in cs246, a required second year course about software design. UW grads may wish to know that Modula3 has been removed from this course.
But even then, C# as a language has enough interestingness to it that (let's ignore politics for a minute here) it would also be a pretty good pedigogical choice for learning about trade-offs and levels of abstraction that Java (by design) doesn't exhibit to the programmer.
http://plg.uwaterloo.ca/~migod/papers/icsm00.pdf contains a paper our group wrote on the evolution and growth of the Linux kernel that appeared in the 2000 Intl Conference on Software Maintenance. We looked at SLOC of 96 versions of the kernel. This paper is quite readable by non-academics. Comments (and insights) are most welcome.
Actually that's not true (I'm the author of the paper, but not the website that was the subject of this thread), tho the graph is easy to misinterpret this way.
Figures 6 and 7 show growth of the subsystem (SS) relative to the system as a whole.
So a straight line means that that SS is growing at the same rate as the kernel as a whole (which fits nicely into an n**2 curve).
Of the major SSs, only the file system SS failed to grow at the same rate as the system as a whole. The drivers were slightly faster growing and the other major SSs grew at roughly the same rate as the whole system.
So, therefore, it's not true that the growth was primarily in the drivers.
-- MWG
For those of you who were interested in the "exponential growth" issue, I did a much more detailed study on the growth of the Linux kernel that was published in the 2000 Intl Conference on Software Maintenance. I think it's very readable by non-academics. Comments welcome. -- MWG
http://plg.uwaterloo.ca/~migod/papers/icsm00.pdf
Here is a much simpler and more informative archiecture model that is browsable from our research group. It requires a Java-enabled browser and some patience for the initial loading of the data.
See also the paper at the Intl Conf on Software Engineering that was written around it.
Wrong-o. Waterloo CS students learn C++ in cs246, a required second year course about software design. UW grads may wish to know that Modula3 has been removed from this course.
But even then, C# as a language has enough interestingness to it that (let's ignore politics for a minute here) it would also be a pretty good pedigogical choice for learning about trade-offs and levels of abstraction that Java (by design) doesn't exhibit to the programmer.
See this link for the generally accepted historical view.
-- Dr. Mike
Figures 6 and 7 show growth of the subsystem (SS) relative to the system as a whole. So a straight line means that that SS is growing at the same rate as the kernel as a whole (which fits nicely into an n**2 curve).
Of the major SSs, only the file system SS failed to grow at the same rate as the system as a whole. The drivers were slightly faster growing and the other major SSs grew at roughly the same rate as the whole system.
So, therefore, it's not true that the growth was primarily in the drivers. -- MWG
For those of you who were interested in the "exponential growth" issue, I did a much more detailed study on the growth of the Linux kernel that was published in the 2000 Intl Conference on Software Maintenance. I think it's very readable by non-academics. Comments welcome. -- MWG http://plg.uwaterloo.ca/~migod/papers/icsm00.pdf