Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Some of My Best Friends Still Use Objects?! Objects are too hard for normal people, including.

Similar presentations


Presentation on theme: "© 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Some of My Best Friends Still Use Objects?! Objects are too hard for normal people, including."— Presentation transcript:

1 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Some of My Best Friends Still Use Objects?! Objects are too hard for normal people, including many people who supposedly know them!! Object think is artificial for many computations which are better described through function composition, algorithms, transformations, rules etc. Objects are too cumbersome and slow for current machines to execute them efficiently Objects are a modeling, meta data concept, but a bulky and computationally expensive runtime abstraction. Objects at runtime suffer an acute impedance mismatch with memory and storage Objects need a little HW support, but never get it www.dreamsongs.com/ObjectsHaveFailedNarrative.html

2 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOP Democrats and Republicans Smart Macro Programming Lisp/Smalltalk Hackers Code Snatchers Interception = Interrupt, exception programming AOP Improves Systems Software AOP Is a software engineering best practice AOP is Next OO – AO Programmer Wanted $300K AOP is right, it they dont get it their stupid or just dont get it.

3 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Transitioning AOSD from Research Park to Main Street Challenges and Opportunities Dave Thomas dave@bedarra.com www.davethomas.net Bedarra Research Labs Carleton University and University of Queensland

4 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Overview Complexity of Application Development Today Challenges of Application Development 2010 Experiences Selling New Technology AOSD Works! AOSD Analysis and Design AOSD Software Engineering AOSD Speculation AOSD Research

5 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. The Challenges of Current Generation Application Development Life In Middleware USA - The OO API Field Of Dreams Latent Technical Complexity Accidental Complexity Open Source from OS to Application allow every customer application to be unique! => Creates An Immense Tool and Services Opportunity To Make An Even Bigger Layer CAKE!

6 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. The Complexity of Software Technology Latent Complexity Of Technology Objects, Components, Interfaces, Patterns, AOP, MOF, UML, Java/C#, XML, Web Services, Scripting, Messaging, Transformations… Crossed trained in the essence of enterprise applications and their customization Requires MSc or PHD ++ Gratuitous technical complexity for simple problems The Impedance Imperative – Tuples + Objects + Infosets = Too Much Stuff!, in Journal of Object Technology, vol. 2, no. 5, September-October 2003, pp. 7-12. http://www.jot.fm/issues/issue_2003_09/column1 http://www.jot.fm/issues/issue_2003_09/column1

7 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. The Complexity of Software Technology Accidental Complexity Schemata, protocols, languages, libraries, tools, platforms, enterprise applications, middleware, standards, security, reliability, interoperability Multiple technologies with 100s of APIs Requires extensive expert level experience with platform technologies Integration requires EAP expertise in addition to platform expertise Complex and bug ridden libraries "The Deplorable State of Class Libraries", in Journal of Object Technology, vol. 1, no. 1, May-June 2002, pp. 21-27, http://www.jot.fm/issues/issue_2002_05/column2 http://www.jot.fm/issues/issue_2002_05/column2 Flagrant disregard for limited resources Embedded Java, XML and SOAP …

8 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. The Skills Gap Focus on short-term knowledge (certification) versus professionalism (competence). IT employers increasing hiring platform specific single language 3 year graduates and vendor certification. Program specialization and compression (3 years) means that graduates have little application context and are essentially blue collar programmers. Computational competency and programming languages has reduced stature in ACM and IEEE programs and there is a distinct lack of appreciation for computational diversity. Decreased enrollments in graduate CS/SE programs and hence the availability of competent. Lack Of Application Domain Knowledge in CS/SE Graduates

9 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. The Challenges of Next Generation Applications Business Driven vs. Technology Driven Based on sound and deep understanding of the business Complexity mandates inter-disciplinary collaborative definition and development driven by business experts First Time Applications vs. Traditional Processes Improvement Support For High Performance Teams Enterprise Application Platforms (SAP, PeopleSoft…) vs. Technology Platforms (J2EE,.NET, Unix, Mainframes)

10 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. The Challenges of Next Generation Applications Real-time Business Development in Real-time Execution in Real-time Massive Amounts Of Data –3D Data – semi-structured numeric, text, multimedia Processors, Memory, Bandwidth and Storage are free –100s to 1000s of processors –Multiprocessing and Memory System On Chip –Gaggles of Memory and Disk Storage –Dynamically Reconfigurable Systems

11 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Experiences Selling New Technology This is exactly the same as you have been doing it all along except that it is completely different! Sell concept and benefits relating to current/previous practice – avoid the language/tool debate Illustrate with an example which makes sense to them Address the critics concerns before they ask Explain that tools help productivity and quality

12 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Experiences Selling New Technology This is exactly the same as you have been doing it all along except that it is completely different! Early Adopters Pull the ideas, tools and move aggressively ahead Will inflate your most conservative claims Will alienate others inside their company Position between the early adopter and those who fear/oppose them Later Adopters Have a long list of questions they just need to have answered Often have very different skills and must less software engineering experience than any AOSD attendee can imagine Want standards, customer references, case studies and insurance of major vendors/ISVs

13 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Inside Works! Encourage Separation of Concerns as a Best Practice Encourage Role/Subject Modeling Refactor to improve maintainability of large complex products – e.g. middle ware Refactor to improve usability of large complex products - e.g. middleware Manage Variability of Product Line Assembly/Deployment J2EE desperately needs an industry standard Aspect Library to provide a simpler programming model. Java desperately needs a better model than J2EE

14 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Analysis and Design Revive an understanding or Role Modeling, Interfaces Provide an implementation of Use Case Extensions Require a revision to UML and associated tool chain What does A/D mean in the presence of Aspect libraries What does it mean w/respect to Architecture

15 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Software Engineering Who, where, when should AOP be applied? What does unit testing, acceptance, regression testing mean in the context of aspects? How can we avoid the problems we found with before, after, doesNotUnderstand etc. in large Lisp and Smalltalk programs? How does one debug at the level of the abstract – can powerful tools really fix a bad language or platform?

16 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Software Engineering When do we need an aspect language vs. an aspect transformer vs. an aspect runtime? Are there a useful subset of AOSD that can be implemented via existing OO mechanisms? E.g. Envy/Developer, AspectJ2EE Is there standards of practice and convergence of key concepts? Are some problems better solved using non OO languages/techniques – e.g. dependencies?

17 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Education Teach Computational Reflection ( SCIP+, AMOP-) Functional Programming Design Patterns Meta Object Protocols big ideas behind AOP/SEP Separation of Concerns Teach Program Transformation Where in the curricula should we teach Aspect Programming?

18 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Predictions AOSD will at a minimum be a master craftsman tool for systems programmers. It isnt clear that AOP will be outside for application developers? AOP will likely find success in software product engineering vs. application development in the same way that OO CBSE has. Aspect Libraries should increase the use, and also reduce the need for aspect developers in favor of aspect users. AOP Analysis and Design will find a slow adoption, and may get stuck behind UML 2. Teaching AOSD concepts - Separation Of Concerns, Role Modeling and Meta Object Protocols may find a resurgence. AOP will be a challenge to position in undergrad curriculum

19 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD Predictions Language neutral tools will find better acceptance than new languages. AOP in every language is easy but not interesting. e.g. AspectJavascript. AOSD tools will fill current gaps e.g. true OO - > AOP Refactoring, AOP tools for AOP users. AOP load/deployment time will become the preferred implementation AOP OS and VMs will remain a research topic for at least another generation of commercial VMs

20 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. AOSD at The Edge of Something Deeper?! What formal machinery can be usefully bring to bare on AOP? Does the holy grail of a declarative reflective language philosophized by Brian Smith really exist? AOSD suggests we may be closer to true meta programming? – program composition of fragments of requirements, design, code into programs. e.g. Hyperspaces, Feature Oriented Programming, Beta

21 © 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. References "Computational Diversity, Practice and a Passion for Applications, in Journal of Object Technology, vol. 2, no. 3, May-June 2003, pp. 7-12. http://www.jot.fm/issues/issue_2003_05/column1 "Reflective Software Engineering - From MOPS to AOSD, in Journal of Object Technology, vol. 1, no. 4, September- October 2002, pp. 17-26. http://www.jot.fm/issues/issue_2002_09/column1 "Refactoring as Meta Programming?", in Journal of Object Technology, vol. 4, no. 1, January-February 2005, pp. 7-11. http://www.jot.fm/issues/issue_2005_01/column1 MDA: Revenge of the Modelers or UML Utopia? http://www.jot.fm/issues/issue_2003_05/column1 http://www.jot.fm/issues/issue_2002_09/column1 http://www.jot.fm/issues/issue_2005_01/column1


Download ppt "© 2003, 2004, 2005 Bedarra Research Labs. All rights reserved. Some of My Best Friends Still Use Objects?! Objects are too hard for normal people, including."

Similar presentations


Ads by Google