Slashdot Mirror


Ask Jazz Technical Lead Dr. Erich Gamma

As IBM continues to build out Jazz, their community-oriented development site, technical lead Dr. Erich Gamma has offered to answer questions about Jazz or anything else in his realm of expertise. Among his many accomplishments, Erich worked with Kent Beck on the Java unit testing framework, JUnit, and was actively involved until JUnit 4. Dr. Gamma was also one of the fathers of Eclipse and the original lead on the Eclipse Java development tools. Feel free to fire away on Eclipse, Java, JUnit, the Rational suite, the Jazz site, or anything else you think Erich might be able to answer. Usual Slashdot interview rules apply. Update 19:05 GMT by SM: As pointed out by user Hop-Frog, Dr. Gamma is also co-author of the influential computer science textbook Design Patterns: Elements of Reusable Object-Oriented Software.

16 of 83 comments (clear)

  1. The Directions of the Eclipse Foundation by eldavojohn · · Score: 5, Interesting

    Dr Gamma was also one of the fathers of Eclipse and the original lead on the Eclipse Java development tools.

    Eclipse has been going on since the early 2000s and six days ago enjoyed the release of Galileo (v3.5). If you've had time to look at recent release, what are your opinions on what Eclipse has become? Has it made any wrong turns? How do you respond to criticisms of "bloat" or "too resource intensive"? Do you see it becoming more than what it is or transforming?

    --
    My work here is dung.
    1. Re:The Directions of the Eclipse Foundation by Anonymous Coward · · Score: 5, Insightful

      Plugins.

      Eclipse is an awesome platform for Java. As good as Netbeans. Over the years I've checked it out and I've never felt the desire to stay with it like I do with Netbeans.

      But when it comes to developing in other languages, Eclipse just doesn't cut and Netbeans blows the doors off of it.

      Some examples:

      When I downloaded the previous version of Galileo, from the menu I installed the plugins for C++. I couldn't get the C++ compiling and linking to work.

      BPEL?!?! They wanted me to GO BACK a couple of versions of Eclipse. I couldn't even find it on the net.

      Anyway, that's not the Eclipse foundations problem. What is their problem is the dependencies installation of the plugins. There's been times where I try to install a plugin and after a while it says I need another, the that dependency says I need a couple of more, and then those dependencies say I need more, and eventually, one dependency fails. Spent a couple of hours over that. What can't Eclipse do all that horseshit for me?

      There's other things that I don't like about the UI and the way Eclipse handles projects and their dependencies in Java. I went to Netbeans six months ago and never looked back. I am very happy with Netbeans and I don't see any reason to try to go back to Eclipse.

    2. Re:The Directions of the Eclipse Foundation by A+Big+Gnu+Thrush · · Score: 4, Funny

      Agreed. Not a troll. Valid criticisms of Eclipse.

      Netbeans, on the other hand, is only used by pedophiles, so GP should be ignored on those grounds.

  2. I can't figure out what Jazz is... by Anonymous Coward · · Score: 3, Insightful

    Reading the About page is useless. The impression I get is that this is a fancy marketing scheme for Rational products. Which, is business as usual for Rational...they market well to managers and are more trouble than they're worth to the people that have to actually use them.

    1. Re:I can't figure out what Jazz is... by BillHiggins · · Score: 3, Informative

      Disclosure: I am a developer on Jazz and Rational Team Concert.

      I can't speak for all of Rational or all of our users, but I can speak as a member of a development team that uses Rational Team Concert. When we were building what became Rational Team Concert (the first Jazz-based product), we made it an early priority (like 2 years before we shipped 1.0) that we would use Team Concert for our day to day development of Team Concert. Since we build Jazz and Team Concert from the ground up (read: from scratch), the early days of self-hosting were very painful, but because of this pain and the commitment of our developers to make continuous improvements, it's turned into a very useful well-integrated tool over the past couple of years.

      We've had very good internal grassroots of Team Concert within IBM (I can't speak about customer uptake) and have received very positive feedback from customers and fellow IBMers about what we've done and where we're going with Jazz.

      It's certainly not perfect and there's much more to do, but I assure you that Jazz is useful technology. It's not simply a "fancy marketing scheme for Rational products". Maybe try it out and judge for yourself.

      Thanks,
      Bill Higgins (bhiggins@us.ibm.com / http://twitter.com/BillHiggins / http://billhiggins.us/)

      --
      - Bill
    2. Re:I can't figure out what Jazz is... by BillHiggins · · Score: 3, Informative

      Thanks for the feedback. Your admonition about not slapping the Jazz label on everything is something we have to be careful about and don't always succeed on. I guess I don't see the contradiction that you do - why can't Jazz be a technology platform and an initiative? Jazz is not a web site, though we obviously have a web site (with a nice short URL). I looked at the About page you referenced (https://jazz.net/about/) and it's basically accurate, though in sort of IBM Professional English.

      Here's how I would explain Jazz to another developer if I ran into him or her at a conference:

      "I work on a technology at IBM called Jazz. What we're trying to do is make it easier for teams of people to build better software by making it easier for them to collaborate together. We're building a core technology stack ("Jazz") and we're building a bunch of products on top of it that address different parts of the software lifecycle - e.g. requirements, development, testing, build, move to production. If Jazz is going to succeed as a platform, we have to make it very possible to tie a lot of data together. You see, one of the things that we've learned is that it's not physically possible for human beings to build a single tool that solves every problem - the complexity is too great the interdependencies between components is too brittle. We believe that the only way all of these tools are going to work together is to define simple standard protocols and simple standard formats (open service for lifecycle collaboration - http://open-services.net/) built on top of standard Internet and web protocols (like http) and formats like AtomPub. Our Jazz-based products integrate together using this sort of loosely coupled web style and we're starting to integrate with business partners as well. Another thing I like about working on Jazz is the fact that we develop in the open at Jazz.net. Many of the leaders on our project like Erich Gamma, John Wiegand, and Dave Thomson came from Eclipse, and from that experience they came to realize that software turns out better when you open high-bandwidth direct channels with your users and extenders, so we're doing that with Jazz, even though it's commercial software."

      That's about as simple as I can make it. I'm not sure if you're trying to understand or just to throw stones. If you'd like to learn more, there's some good info at Jazz.net, we're on YouTube (http://www.youtube.com/user/IBMJazz) or you can find a bunch of us on Twitter. http://jazz.net/community/twitter/. If you still think it's a bunch of marketing B.S. then that's that, but we have quite a few happy users, and we're working hard to make it better.

      --
      - Bill
  3. Cleaning Up Collaboration by eldavojohn · · Score: 4, Interesting
    Jazz seems to rely heavily on developer community and their collaboration--and the influence for Jazz is said to be the World Wide Web.

    The Jazz portfolio consists of a common platform and a set of tools that enable all of the members of the extended development team to collaborate more easily.

    The biggest problem I have with collaboration tools is the metadata. No one does it right. Someone writes a blog or uploads a document but doesn't tag it. Enterprise search is broken. Management hands us wikis yet no one has the time or patience to maintain them. The protective blanket of "it's agile, baby" shields us from any beat downs. And with every new tool I realize that it's not the tool that improves collaboration, it's the team. Look at Slashdot's tagging system. Does it help me that one hundred stories are tagged with "no"? Collaboration seems to spontaneously work but is often out of your control when it does and doesn't. How does Jazz fix these problems? How does Jazz improve collaboration when it seems to me that tools are such a small part of collaboration? Will a small development team be able to use such a large set of tools?

    --
    My work here is dung.
  4. Re:Patterns by Suiggy · · Score: 3, Funny

    Design patterns? The open source community doesn't need no stinkin' design patterns. We just code by the seat of our pants into oblivion!

  5. New Important Design Patterns? by eldavojohn · · Score: 5, Interesting

    On your influential book regarding design patterns, you listed 23 design patterns that would become the foundation for the concept of design patterns in computer science. Since then, many more types and subtypes have arisen but a lot of them seem to be derivatives or a combination of others. What new design patterns if any do you wish you had included in your book or that you feel are necessary for competent developers to learn?

    --
    My work here is dung.
  6. On the Current State of Academia? by eldavojohn · · Score: 5, Interesting

    I know a lot of people that are very vocal about what is right and wrong with education today. Especially college institutions: "No one teaches C, everyone teaches four years of Java, no one understands the theory, a CS grad doesn't even know what a model-view-controller pattern is." The list goes on. Since you have your doctorate and have probably spent a lot of time in research and academia, what's wrong with most computer science or engineering programs in general today? What would you like to see more or less of? Are there any subject directions recently taken (EJB, garbage collectors, interpreted languages) you'd like to comment on?

    You seem to be non-opposed to Java which, I'll admit, is rare to me for someone with a doctorate. I would like to hear your views since so often all I hear about Java is that it is slow and only good for people that want cheap software developed quick by beginner developers.

    --
    My work here is dung.
  7. Will SWT and Swing ever merge in Eclipse? by Fuzuli · · Score: 4, Interesting

    I have to build quite complex tools using GEF and GMF, and there are many cases where I'd like to have the power of Java2D, and reuse some of the great frameworks out there built on Swing.
    More and more people are using AWT/SWT bridge, since SWT does not provide an underlying drawing framework as rich as Java2D.
    Eclipse has great things like EMF, and the platform is number one choice for tooling, but when it comes to things like Bezier curves etc, Swing is much easier to use. So are we going to see more developer friendly versions of Eclipse where Swing is more available to us?

  8. Rational? by Anonymous Coward · · Score: 3, Insightful

    I work in a small shop that makes some use of Websphere Application Server and the Rational development tools. I basically find the entire structure of the IBM software offerings relating to the above technologies incomprehensible. Products are constantly being renamed, discontunued, bundled, unbundled and rebranded. Names are long, generic, and practically interchangeable, and so are the feature lists.

    How do you plan to run a community support site based around this hodge-podge? I would assume the volatile nature of IBM's software marketing makes your task something approaching impossible. How do you expect to build a strong developer community based around products that are in a constant flux? I don't see any way around ending up with a large number of granular, isolated communities that spring up around specific products and thrive for a year or two. In short, how do you plan to unify a developer community without IBM first unifying the software development platform that this community is to be built around?

    Thank you.

  9. What do you make of Patterns now? by zuperduperman · · Score: 3, Interesting

    I came into professional software development just as patterns were emerging as the "next big thing".

    It seems to me looking back that at best we would have to rate the success of design patterns as mixed. One the one hand they've formed a useful vocabulary for discussing software designs and a useful tool for thinking about software in general. However on the other hand it seems like in a huge number of cases they have inspired large amounts of complexity and over-engineering and get misused more often than not. By and large the software world seems to have moved on.

    So, I'm curious what you make of them now, looking back? Do you think design patterns as a concept has been a success or not? Do you yourself still use them in daily work?

    1. Re:What do you make of Patterns now? by zuperduperman · · Score: 3, Interesting

      You're right, I probably could have phrased the last question better.

      When I say "use design patterns", what I really mean is put them front and center in the design process, using them as building blocks when designing software. This was definitely the vision people had at one point. My experience however has been that they are rarely successful when used that way. I'd say everyone does in fact use design patterns by definition - design patterns are after all just descriptions of common designs, so you'd have to be going out of your way and doing very unusual things to avoid them. But my experience is that in successful designs the patterns tend to emerge *after* you've built the software and become useful as way to discuss it and communicate about it, and possibly to critique it, but not really to build it in the first place. Somehow, conceptualizing designs as made out of pattern building blocks always seems to lead to over-engineering. My theory is that, with software, anything that distracts from the principle of "the simplest thing that could possibly work" ends up being a negative. We are enchanted by the idea of software being like buildings - let's put an arch over there, a staircase here, split level room here ... in architecture that makes buildings beautiful, but in software it just makes it unnecessarily complex.

      So - hopefully that clarifies what I mean. I'm curious if this is also his experience, or not.

  10. Why Jazz? by autophile · · Score: 3, Interesting

    Could you explain, minus the marketing speak that seems to pervade the IBM site, what is Jazz, what makes it a community-oriented developer's site, why is it different from, say, sourceforge.net, and if Jazz is so community-oriented and yet apparently tied in to Rational, where are the community versions (not trials, not demos, not limited to the point of uselessness functionality) of Rational products?

    --
    Towards the Singularity.
  11. Trying to help... by carlzetie · · Score: 3, Informative

    Disclaimer: I also work for IBM Rational. I've worked in a lot of other places too and I've been around the block a couple of times.

    Maybe it's hard to summarize in a couple of sentences because Jazz really is a number of things. I'll try to describe each of them in one to three sentences. And I'll try not to use marketing buzzwords, although I can't promise not to use URLs.

    1. Jazz is the belief that professional software development is a team effort, and the part of that effort that tools in the past have supported least well is communication and collaboration between team members. Tools in the past treated communication more like a ceremony than a conversation. That's just wrong.

    The question that Erich and his colleagues set themselves was: what can we do to make it easier to work as a team? So the features that you find across Jazz tools include things like team awareness, status tracking, newsfeeds for things like build completion or test pass/fail, and so on.

    2. Jazz is also platform or technology stack that provides common services like storage, query, events, process, collaboration, etc. to tools built on top of it. Middleware for tools, if you like. It relies heavily on Eclipse technologies including OSGi. Rational Team Concert is one example of a tool built on the Jazz platform, there are many more.

    3. Jazz also is an integration technical architecture that uses RESTful interfaces between tools, whether those tools are on the Jazz platform or standalone. Links between artifacts are simply URIs. It's designed to be, yes, loosely coupled and web-style. What that means in practice is that you don't have brittle connections where upgrading one tool breaks the integration with another. It also means you don't have to consolidate everything into one repository. The open part of that integration is OSLC, which is where we are developing specs for integration, i.e. metadata definitions in XML and JSON plus service interfaces, in plain sight and publishing them under Creative Commons so that anybody can consume them to integrate with our tools -- or, heck, without our tools if they want to. Anybody can also participate in the spec process -- there's no membership fees or purity test, and the only requirement is a willingness to disclaim patent enforcement against anybody who implements a spec.

    Does that help?