Slashdot Mirror


Grady Booch On Software Engineering

aebrain writes "Grady Booch is one of the Big Names in Software Engineering. If you use OOP or UML you're making use of his work. There's an interview with him on .NET that's interesting reading ('Language was once Key - Now it's Design'). Lots about the impedence mismatch between SQL and OOP, what the future holds re .NET and Java, and when UML modelling isn't appropriate."

52 comments

  1. Grady Booch by TC+(WC) · · Score: 0, Offtopic

    I read that as Brady Bunch :(

    I probably need to get more sleep.

  2. I know I am fighting with the windmill, but by pbox · · Score: 2, Informative

    that would be impedance mismatch.

    See impedance

    Thank you Merriam-Webster.

    --
    Code poet, espresso fiend, starter upper.
  3. Impedence mismatches by bigsteve@dstc · · Score: 5, Interesting
    Grady Booch is right about the mismatch between relational databases and OOP modelling. But in reality, this mirrors a more fundamental mismatch between databases (in general) and programming languages.

    To put it simply, data is handled differently by the storage system in an executing program. Typically we find:

    • Data is represented differently; i.e. the basic type systems are different.
    • Data is organized differently; e.g. tables and indexes versus lists, hash tables, etc.
    • Data accesses and update models are different; e.g. queries and transactions versus ad hoc programmed searches and synchronization.
    • Database access and non-database code is typically written in different languages, often in the same "program".

    Over that last (at least) 20 years, there have been attempts to remove the database / proogram impedence mismatch. The most radical approach is Orthogonal Persistence. This aims to treat all data the same, irrespective of its lifetime. Data that needs to persist is made to persist without the programmer doing ANYTHING about it.

    Classical examples of Orthogonal Persistence are the PS-Algol and Napier-88 programming languages. A notable (relatively) recent example was Sun Research Labs' Forest project which added OP support to Java. Unfortunately, the Forest project was shut down. My guess is that it conflicted with Sun's vision for mainstream Java. Sad.

    1. Re:Impedence mismatches by randomjotter · · Score: 2, Interesting

      Of course both are different. They are meant for different things! The question to ask is if they do what they intend to do and does database being different has affected OOP anyway. There are abstraction layers available in any platform for you to work oblivious of the underlying data sources( what ever that might be from databases to text files). Does that really affect me at the programming level.Donot think so.

    2. Re:Impedence mismatches by bigsteve@dstc · · Score: 2, Interesting
      Of course both are different. They are meant for different things!

      Fundamentally, DBMS and programming languages are both meant to do the same thing; i.e. allow you to build "systems". While most people make a clear distinction between DBMS and (and file systems) which handle persistent data and Programming languages which handle in-memory data, this does not need to be so. There is no fundamental law of IT that makes this so. Indeed, the fact that there are Orthogonally Persistent PLs that work clearly demonstrates this.

      There are abstraction layers available in any platform for you to work oblivious of the underlying data sources( what ever that might be from databases to text files). Does that really affect me at the programming level. Do not think so.

      Actually, the DB (or FS) versus PL affects you at a pretty fundamental level, because your programs are designed to use different abstractions to deal with persistent and non-persistent data ... or persistent and non-persistent incarnations of the same data.

      The fundamental idea of an OPPL is that you are not forced to deal with two kinds of data ... anywhere. Persistence just happens, without you (the programmer) having to worry about it.

    3. Re:Impedence mismatches by Anonymous Coward · · Score: 1, Insightful

      There's less of an "impedance mismatch" in languages where OO is real OO and doesn't suck - e.g. Common Lisp + UnCommonSQL is pretty impressive.

    4. Re:Impedence mismatches by Tablizer · · Score: 1

      I agree there is an "impedence mismatch". There are fundimental base philosophical differences between relational tables and objects that have resisted solutions.

      Relational fans (like me) tend to put and keep the "noun model" in the database, while OO fans want to put it in application code (sometimes through duplication of what is in the database. Such duplication is to be avoided IMO. It makes for too many change-points.) IMO the noun model is better in the database so that sharing info with other languages and applications is much easier.

      The rules of OO encapsulation tend to conflict with the very concept of databases. You put behavioral "wrappers" around the state. One problem I see with this is that it results in one reinventing database or database-like operations from scratch in app code, such as inserts, updates, deletes finds, cross-references, concurrency, indexing, etc. Plus, diminishes sharing per above.

      Relational tables impose certain constraints on data that OO does not. This might seem limiting at first, but it also allows the power of "relational algebra", which OO does not have a usable equivalent of yet. Until there is a Dr. Codd of Objects, I find relational theory superior (even if RDBMS vendors F it up). Relational allows larger-scale operations and grokking because of its "table shape". OO has no consistent equivalent, and thus must be manipulated one class at a time for the most part. Similar issues with pre-relational databases popped up again when OODBMS were tried two decades later.(Inheritance and GOF-patterns have been quoted as a solution to the big-picture-gap, but these have their own sticky issues. Dr. Codd has nothing to fear just yet.)

      For more on this, see:

      http://geocities.com/tablizer/core1.htm

      For now, the conflict is with us. Some people seem to think relational, and some think OO. We fight.

    5. Re:Impedence mismatches by Tablizer · · Score: 1

      Your description makes it sound like databases are *only* for persistence. This seems common among the OO crowd. IMO this is because OO fans would rather reinvent database-like fatures in app code rather than let the database handle it (per my other message). This is poor "reuse" IMO. Here are things databases can take care of:

      1. Persistence
      2. Query languages or query ability
      3. Noun Modeling
      4. State management
      5. Concurrency - Multi-user contention management (locks, transactions, rollbacks, etc.)
      6. Backup and replication of data
      7. Access security
      8. Data rule enforcement or validation
      9. Automatic access optimization
      10. Multi-language or multi-app access

      You cannot just "abstract away" many of these because they are too high-level of concepts. The tools that claim they do, do it by "dumbing down" what they let the database do. IOW, lowest common denominator, which is too low. They neuter the DB's abilities.

    6. Re:Impedence mismatches by Anonymous Coward · · Score: 0

      Developers gravitate to putting heavy lifting in full-featured languages because expressing business rules and complex queries in SQL tends to be both nonportable and painful. SQL/PSM seems moribund but SQL/OLB (aka SQLj) looks like it'll finally help somewhat.

    7. Re:Impedence mismatches by Tablizer · · Score: 1

      Developers gravitate to putting heavy lifting in full-featured languages because expressing business rules and complex queries in SQL tends to be both nonportable and painful.

      Example?

      Note that I agree that SQL is not the ideal relational language, but few if any are pushing better relational alternatives right now.

      As far as portability, how is being tied to a specific language or application worse than being tied to a specific database vendor? At least being in the DB still allows the *data* to be readily shared. I would rather have sharability and non-portability than just non-portability.

    8. Re:Impedence mismatches by bigsteve@dstc · · Score: 1
      Your description makes it sound like databases are *only* for persistence.

      That was not my intention. Classical DBMS do a lot more besides simply making data persist. But most of the things you list as things that DBMS do could also be done in a fully fledged Orthogonally Persistent Programming Language / environment. For example:

      • Assuming that a query language and query optimizer is required, these could be implemented as a suite of library code that makes use of reflection.
      • Constraints and data validation could be handled the same way, or they could be handled by statically generated code modules, emitted by the programmer's IDE.
      • Contention management (transactions) should be part of the OPPL's core infrastructure; e.g. core libraries.
      • Ditto for security/access control, backup, replication and data migration.

      I'm not saying that OPPL's currently support these things. But with enough work they could!

    9. Re:Impedence mismatches by bigsteve@dstc · · Score: 1
      Relational tables impose certain constraints on data that OO does not. This might seem limiting at first, but it also allows the power of "relational algebra", which OO does not have a usable equivalent of yet.

      I'd say that languages like OCL and OQL are OO's moral equivalent to a language for relational algebra. But there is still an impedence mismatch between OO query languages (e.g. OCL/OQL) on the one hand and OO programming languages (e.g. Java) on the other. What is needed is a language / environment that supports both paradigms within a single syntactic framework and type system/value domain.

    10. Re:Impedence mismatches by Tablizer · · Score: 1

      I'd say that languages like OCL and OQL are OO's moral equivalent to a language for relational algebra.

      OQL is too similar to the CODYSAL (spelling?) query languages of the pre-relational era. It has not caught for similar reasons.

      What is needed is a language / environment that supports both paradigms within a single syntactic framework and type system/value domain.

      Easier said than done. Further, if you have a strong type system, what about using it with dynamically or type-free languages?

    11. Re:Impedence mismatches by Tablizer · · Score: 1

      could also be done in a fully fledged Orthogonally Persistent Programming Language / environment.

      How does an OPPL differ from a "database" then?

    12. Re:Impedence mismatches by kinga · · Score: 1

      You're not Steve Blackburn are you? If you are, I thought you were at ANU/Amherst...

      In any case, I spent a couple of summers working for the Persistant Java team at Glasgow. You can still find info on the implementation at:

      PJama.

    13. Re:Impedence mismatches by bigsteve@dstc · · Score: 1
      How does an OPPL differ from a "database" then?

      It differs in that it has all the functionality / usability of a conventional programming language, including all of the data types / constructors and all of the control constructs you'd expect to see there. Think of (say) a dialect of Java in which the way you accessed / updated data was completely independent of its persistency.

      BTW, I didn't mention Java by accident. There are two existing implementations of Java with support for OP; i.e. 'pJama' and 'Kissme'. In both cases, no changes were made to the Java language to support OP. Rather, it is implemented (respectively) in the bytecode generator and in the Java virtual machine.

    14. Re:Impedence mismatches by bigsteve@dstc · · Score: 1

      You're not Steve Blackburn are you? No :-)

    15. Re:Impedence mismatches by Tablizer · · Score: 1

      It differs in that it has all the functionality / usability of a conventional programming language,

      Which language? Application language? A language like Oracle's PL/SQL? If in Java, why is Java better than a relational language (like SQL, although SQL is not the best IMO)?

      Think of (say) a dialect of Java in which the way you accessed / updated data was completely independent of its persistency.

      I am not sure what you mean by this. Databases are for more than just persistence. If you are only using it for persistence, then you are wasting it.

    16. Re:Impedence mismatches by bigsteve@dstc · · Score: 1
      Which language? Application language? A language like Oracle's PL/SQL? If in Java, why is Java better than a relational language (like SQL, although SQL is not the best IMO)?

      Would you write a compiler or a scientific application in PL/SQL? Why not?

      Think of (say) a dialect of Java in which the way you accessed / updated data was completely independent of its persistency.

      I am not sure what you mean by this.

      In a typical OPPL (e.g. PSAlgol, Napier88, pJama), the only thing that distingusishes persistent and non-persistent data is that persistent data can be reached by following pointers / references from a distinguished "persistent root" object. To make any object persist, you simply make it reachable. To access a persistent object, you simply follow the pointers. The runtime system takes care of all of the rest, behind your back.

      Databases are for more than just persistence. If you are only using it for persistence, then you are wasting it.

      I've already pointed out that most of what a conventional DBMS does is also doable by the OPPL itself, or by libraries built therein. However, I take issue with your assertion that I'm "wasting it" if I only use a DBMS for simple persistence. This is often the best technical alternative available, and it is often what the customer demands. One reason for keeping your applications's use of the DBMS simple is to reduce problems porting another DBMS.

    17. Re:Impedence mismatches by Tablizer · · Score: 1

      Would you write a compiler or a scientific application in PL/SQL? Why not?

      I don't know. I don't write compilers and scientific applications. I thought those all went to India, or soon will, anyhow.

      To make any object persist, you simply make it reachable.

      What if a non-OOP language/tool needs access, especially query access, to the data?

      I've already pointed out that most of what a conventional DBMS does is also doable by the OPPL itself

      Doable, and do well at are two different things.

      One reason for keeping your application's use of the DBMS simple is to reduce problems porting another DBMS.

      Reinventing a lot of wheels from scratch to ease porting is usually not worth it. Better to be locked into something that has wide support instead locked into roll-your-own database-like operations. If you want to write your own Oracle, be my guest. Use an open-source DB if you want to customize it.

    18. Re:Impedence mismatches by bigsteve@dstc · · Score: 1
      To make any object persist, you simply make it reachable.
      What if a non-OOP language/tool needs access, especially query access, to the data?

      There are lots of answers to that:

      • If your OPPL is an extension of a general purpose programming language (e.g. Java), why do you need to use another language? (OK, there are cases, but this is the exception, not the rule. In the same way that it is exception to have to mix C / C++ with Java.)
      • The OPPL could support calls to/from embedded libraries written in another language, for example like JNI and the Invocation API do for Java.
      • The OPPL could provide a set of libraries that implement the notional equivalent of an SQL engine. Programs written in other languages could access the OPPL native data via the equivalent of JDBC / ODBC / whatever.
      • You could make your OPPL application a network server.
      • And so on ...
    19. Re:Impedence mismatches by Tablizer · · Score: 1

      If your OPPL is an extension of a general purpose programming language (e.g. Java), why do you need to use another language?

      Oh boy. Java forever. Even if something better is found (which is not hard to do IMO).

      So in short, you eventually turn your OOPL application into a database server and/or a network server. That is about as logical as using a car for a tool shed.

  4. testing mentioned once, rational robot not at all by stanwirth · · Score: 4, Interesting

    This is the most important paragraph in the article:

    The healthiest organizations we encounter do development iteratively and incrementally; testing continuously. They have good configuration management policies. A lot of organizations still don't have this. An astounding number of development teams don't use any configuration management tools. This reflects the fact that a lot of software development teams are going about it in an ad-hoc fashion. That's a problem of process. And until they get their process right no tool you throw at them will add value.

    Read that 10 times. I've seen it over and over. Happens all the time. I didn't know whether to laugh or cry. I wish he'd mentioned Rational Robot at least once, and the importance of test harnesses in general. gcc and g++ would never have gotten where they are today without dejaGNU, for example.

    His comments on the mismatch between relational data and OO data is quite true -- Zope, for example(which is, underneath it all, an OODBMS) just falls over when you start loading it up with 10 GB or so, which is why it's recommended to put an RDB under it for relational data, and access to a chrooted jailed filesystem for big data stored as flat files. It would have been reasonable for him to mention, however, that these issues are addressed in spades by tools such as Oracle 9iAS connected to an Oracle 9i DB, and IBM Websphere connected to a DB2 UDB in the real world. In terms of functionality, these are are the "enterprise-ready" tools that sit in the same space as Zope and PostGreSQL.

    I was also surprised that, in his discussion of bringing relational and OO data to the end user he didn't mention Data Warehousing, OLAP (Online Analytical Processing), Metadata Management tools, Multidimensional database technologies, Business Intelligence tools and such as Cognos, Oracle SQL_OLAP and BI_Beans, Coglin Mills, Datastage, etc etc etc. But then, it was already 10 pages long, and the .NO^hET Magazine editors might not have been able to find the space for the balance of that discussion.

  5. Uh, anyhow... by SN74S181 · · Score: 4, Interesting

    I hate to be an Assembly Language redneck about this but: Object Oriented doo daa doo is seeming more and more like software-for-the-sake-of-software-developers. A lot of hand waving about 'code reuse' goes on, and a lot of talk about 'well written code' but in the end there are two areas of software development that look bright in the future:

    1. Tightly written embedded code.

    2. Code written by people 'close to the site where it will be used', i.e. code for point-of-sale written by people specialized in the POS biz.

    As software development tools become more and more powerful, fewer and fewer guru-level experts are needed. It's far more valueable to the development process to involve the people who actually do the real-world tasks that the software will assist in accomplishing. And those are NOT going to be people who plonked down their $70 for the latest Gooch/Rational Software propaganda hype-hardbacks.

    The buzz surrounding 'Object-Oriented' and similar catch phraseology seems like a job program for specialists with no experience outside of software engineering, and a panacea for academics wanting to weave fancy webs.

    Well, enough said.

    1. Re:Uh, anyhow... by You're+All+Wrong · · Score: 2, Interesting

      Woo woo!

      I've worked on large projects that used an OO language, and an OO design, where there were _11_ different abstract "linked list" base classes (huge project started in 1992 before the STL was around, but still being worked on 11 years later in its maintanance phase).

      If that's code re-use, then my arsehole's a lilly.

      However, I don't think you sharpenned your claws quite enough, as you didn't attack
      "Grady Booch is one of the Big Names in Software Engineering"

      to which I think you should have said something like:
      "Pah, Grady Booch is a slimy little bugger who'll change his view on what's best for everyone every couple of years such that he can bring out a new book with a new 'methodology', with a new graphical representation that's different enough from what has come before that you are _obliged_ to shell out another couple of hundred dollars to buy the accompanying piece of software to permit you to use that methodology." or something. Don't feel you have to hold back - this is Slashdot!

      YAW.

      --
      Your head of state is a corrupt weasel, I hope you're happy.
    2. Re:Uh, anyhow... by Anonymous Coward · · Score: 2, Insightful

      That sounds alot like something certain members of the craftwork industry might have said around the time the power loom was invented.

    3. Re:Uh, anyhow... by SN74S181 · · Score: 1

      The power loom industry wasn't producing 'power looms for the sake of power looms'. And they weren't selling book after expensive book hyping up power looms.

      And accusing my comment of being luddism doesn't address my point at all- people close to the actual work the computer will be performing have an inherent advantage over people mired in the internal theory of how the computer works. They're not spending 60% of their time in efforts to justify their existence.

    4. Re:Uh, anyhow... by Anonymous Coward · · Score: 0

      That sounds alot like something certain members of the craftwork industry might have said around the time the power loom was invented.

      I am tired of people calling anything non-OO "legacy". I would note that relational was born after OOP (I consider relational philosophy in conflict with OO for the most part).

      If you call something non-OO "legacy" or "outdated", please give a bit more detail why it deserves such a label.

      Besides, new != good.

    5. Re:Uh, anyhow... by lgordon · · Score: 1

      The extant literature on recent advances in software engineering encompasses the task of taking real world problems and finding real world solutions. In order to produce a huge system from a tremendous amount of primary and countless derived requirements, some measure of problem space reduction and abstraction must be performed. UML provides some of those tools. There is a job description for specialists that revolves around implementing the latest in software technologies to bring to market projects that ten years ago seemed impossible to produce yet can now be accomplished with a staff of six in twelve months.

      The job description is "Software Architect."

    6. Re:Uh, anyhow... by SN74S181 · · Score: 1

      The paragraph description is "Marketing Boilerplate"

    7. Re:Uh, anyhow... by Anonymous Coward · · Score: 0

      Just because you've never been in a situation that requred anything more than 5 pages of code doesn't mean that there isn't more requirements for design out there.

      I feel pretty sorry for you if you end up changing jobs and find yourself in a real project with that kind of attitude. You sound like you code like they build in mexico where buildings routinely fall down under their own weight. Hope you aren't working on anything I have to rely on!

    8. Re:Uh, anyhow... by fastdecade · · Score: 1

      I've worked on large projects that used an OO language, and an OO design, where there were _11_ different abstract "linked list" base classes (huge project started in 1992 before the STL was around, but still being worked on 11 years later in its maintanance phase).

      Doesn't your comment answer itself? If STL *had* been around, or *gasp* Java, then every competent developer would know there is a single solution that fits their needs. Without even so much as a common standard, there would only be one linked list class instead of 11. That's reuse.

      OO as a technology facilitates reuse, but it's only with comprehensive APIs like J2SE, J2EE, STL, and yes .NET that industry-wide reuse is possible.

  6. isn't UML supposed to be a language? by kruntiform · · Score: 4, Interesting

    Language isn't so important, but Universal Modelling Language is. That seems a bit contradictory to me. Okay, so now we have a design langauge and an implementation language both describing the exact same software at the same time. It sounds like there's a lot of potential for impedance mismatches between those two right there.

    He backs up his assertion that programming languages aren't important by saying there is lots of good software written in different languages. But there is lots of good software written without UML. In fact most good software would fall under that heading. Does that mean UML is not important?

    1. Re:isn't UML supposed to be a language? by TheRealRamone · · Score: 1

      UML is kind of like 4GL smalltalk. --TRR

    2. Re:isn't UML supposed to be a language? by jorleif · · Score: 2, Interesting

      UML is mostly meant to be a standard notation to aid communication between people. UML is not merely a design language, but also an analysis language that can be used to model the problem domain. To do this kind of analysis in a programming language would hardly be a good idea


      UML is fundamentally OO so impedance matches between UML and OO-languages should not become very big. It's a recommended practice to do design models in UML using the constraints of the implementation language. For instance UML has no problem with multiple inheritance, but Java does not support it, so systems developed in Java should not be modeled using multiple inheritance.


      I agree with you that his argument about languages is rubbish, especially as he describes languages that are fundamentally so similar, that one would be best off picking the one with the best libraries for the task. This whole notion that the programming language should protect people from their own bad programming is also very stupid (which Booch also said). Bad programming is always possible. Of course I'd rather have Java created by monkeys than C created by monkeys, but neither is going to be very good. I'm not certain I'd prefer Java by geniuses over C from geniuses.

  7. Somebody forgot to review the transcript by Lumpish+Scholar · · Score: 2, Informative
    ... there's the IEEE's effort on what's called the "sweet box of software body of knowledge."
    I'm sure this was meant to refer to the Software Engineering Body Of Knowledge (SWEBOK). It almost did.
    --
    Stupid job ads, weird spam, occasional insight at
  8. Back to the future? by Bazzargh · · Score: 3, Interesting

    Its interesting that Booch talks about an 'executable, testable UML 2.0', given the history of his own methodology. Prior to UML, the Booch, Rumbaugh, and Jacobsen advocated design by elaboration. This meant you continually add artifacts to your design and code until you get to a running system. The 'tools' did nothing but book-keeping for you. They unified their approaches into the UML.

    Standing on the other side was the Shlaer-Mellor method, which advocated design by translation (also called recursive design). In this methodology, you diagram different 'domains' and write code generators to eventually produce executable code directly from the model. CASE tools provide assistance in actually producing software (now there's a novel idea).

    UML put a lot more emphasis in 'round tripping' in CASE tools, because you edited artifacts that were derived 'in your head' and often failed to match the original model (would you consider editing java bytecode, or asm files?), culminating in the excellent TogetherJ. In Shlaer-Mellor round-tripping didn't matter - you worked on the model and the translators, never on the end code directly (you modify the translator to alter generated code).

    I remember back in the day, all the Booch advocates denigrating Shlaer-Mellor, saying it would never work, but here we are, with Booch telling us he's doing executable UML...ah well, at least the methodology wars are over - looks like the tool & book vendors won ;)

    - Baz

    1. Re:Back to the future? by derubergeek · · Score: 2, Interesting
      I remember back in the day, all the Booch advocates denigrating Shlaer-Mellor, saying it would never work, but here we are, with Booch telling us he's doing executable UML

      Oh, come on. Give Grady a break. You can't expect him to keep himself fed if he actually did produce something with any longevity. Gotta keep those book sales, Rational tools, and lecture/training circuits a rollin'...

      --
      Trust me. This is an inactive account. Regardless of what the /. bean counters might report.
  9. Re:testing mentioned once, rational robot not at a by Anonymous Coward · · Score: 0
    and the .NO^hET Magazine editors

    You were doing so well, then you had to throw Flamebait into the mix. Sigh.

  10. Re:testing mentioned once, rational robot not at a by Anonymous Coward · · Score: 0

    Hardly flamebait. Flamebait would be ".net is unchristian". .no^het is just an expression of contempt for yet-another-m$-proprietary technology, like m$ is an expression of contempt for the profit-motive-driven microsoft corporation.

  11. Re:Back to the future? (-1: offtopic) by zm · · Score: 2
    CASE tools provide assistance in actually producing software

    Funny you should mention that. I have a tape of one of Grady's lectures where he said:
    "CASE tools allow poor designers to produce bad designs much more quickly."
    Not that it has anything to do with .NET or this article... :-)
    --
    Sig ?
  12. Problem with "Executable UML" by Tablizer · · Score: 4, Insightful

    The biggest problem I see with "executable UML" is that in order to make it detailed enough to be executable, you have to insert tons of detail into the UML model. There is a point where it is easier for some (perhaps most) developers to work with those details as code instead of as a sprawling set of diagrams.

    IOW, just because you can program entirely with diagrams, does not necessarily mean you should.

    I will agree that some people prefer diagram-based programming, and a tool called LabView has been doing this for years. It tends to match electronic circuit diagrams, so e. engineers grok it fairly quickly. Whether it makes them more productive than those who master code is hard to say.

    Perhaps some shops that can hire people who think alike can go diagrams galore, put I don't think it will fly everywhere. Some linguistical people probably think in code no matter what.

    1. Re:Problem with "Executable UML" by Tsali · · Score: 1

      Can you say, "Softwire"? I've never used it, but I think it has the same problems.

      My personal preference is to use my own notation (on small projects), sketch it out relationally, and then code the objects and data tiers separate.

      --
      This space for rent.
    2. Re:Problem with "Executable UML" by Anonymous Coward · · Score: 0

      I would even say, that a lot of graphical languages are just not fit for depicting processes in a concise and compact way - least of all UML.

      While UML is very good at creating object models it is about the most ineffective technology to model process flow. The fact that three diagram types are needed to depict processes drives me mad.

      Also, a business operation of average complexity easily deals with dozens, if not hundreds of objects. To build and -especially - to read such stuff using UML - say using sequence and collaboration diagrams - is a nightmare.

  13. pictogram-based programming by Anonymous Coward · · Score: 0

    All pictogram-based programming languages died horrible deaths - as they should. There is a good reason why human beings developed a written language - because you can communicate your ideas much more concisely and effectively with written words than ambiguous pictures. Speaking of pictogram-based coding, using Rational Rose is a nightmare of modal nested dialog boxes. Who designed that user interface? Oh, I see, the "experts" on design - nevermind.

    1. Re:pictogram-based programming by Tablizer · · Score: 1

      because you can communicate your ideas much more concisely and effectively with written words than ambiguous pictures.

      I don't think pictures have to be ambiguous. Further, whether text is more "concise and effective" is probably subjective. Pictures can be quite compact and concise. You know the ol' Chinese saying: a picture is worth 1K words.

  14. Another interview with him, released yesterday by selfsealingstembolt · · Score: 3, Informative

    To find at:

    IBM-Developerworks

    --
    Keep open minded - but not that open your brain falls out...
  15. Well said by GCP · · Score: 1

    Lots of useful content, then a bit of childish name calling to spoil the effect

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  16. How come XPCOM always misses out by phanki · · Score: 1

    When people talk about .NET , J2EE in the context of web development, how come XPCOM is missed out. It might not be a complete framework as .NET or J2EE are, but with C++, the mozilla hackers have managed to make a framework, which is faster and is also based on C++. How come it is missed out ?

    1. Re:How come XPCOM always misses out by TwistedSquare · · Score: 1

      Lack of publicity causing no-one to hear about it which means no-one talks about it... I've never heard of XPCOM but I've heard of the others. Grady is a man's name? You learn something new every day (especially when you know as little as me!)