I am really enjoying what we're learning about complexity right now; the idea that we can do some sort of analysis on algorithms in order to redesign them with their efficiency in mind seems like it will be an important tool now and in the future. What I'm wondering now though is just how big an impact does this have on modern programming.
In CSC148 (Introduction to Computer Science), there is a large emphasis on object-oriented programming and using clever manipulation of objects to create data structures that have specific attributes and a kind of idealistic approach to programming in general; including using high-level language techniques. For example, in class, we're focusing on creating and manipulating trees which is certainly interesting and a good example for which we use recursion, but supposing we used these trees to store created objects which inherit from or are subclasses of other objects which are themselves sandwiched in a class structure, and we get into a scenario of needing recursive calls and to create many of these objects in order to store values, is there a point where we have to just say no because of the physical limitations of carrying out nested functions? Which cases are best to procedurally program in and which are we better off creating our own objects? Is there a rule of thumb for complexity of code? If there is, how would it scale with Moore's Law? I know in enterprise software development there would certainly be questions about runtime. This subject is one of the big reasons why I enjoy playing around with Assemblers.
No comments:
Post a Comment