02 febrero 2009

Why Taylor?

Why Taylor?

Posted by Gilbert under Taylor

Taylor MDA is an Eclipse-based UML modeling tool that specializes in the generation of EJB3 code, JSR-168 Portlets, and business processes. It leverages other open-source tools like Maven 2, JBoss Seam, and JBoss Portal.

So, why did I decide to create Taylor?

In the mid 90s I was the architect of a major ERP system. This was before Java App Servers, so we wrote everything in C++ and used Tuxedo as our application server. Since open source software was not big at the time we wrote all the frameworks ourselves, such as object relational mapping, MVC, etc. We wrote all this by hand. I recall I used Notepad most of the time. This was a lot of work, but we did have complete control of all our code and we were successful!!! But I thought there had to be a better way.

Then in the late 90s the EAI and BPM waves rolled in. So, we evaluated all the tools and selected one and trained everyone. I have to say that all the EAI/BPM design patterns are spot on, but I can't say the same for any of the tools. I don't remember delivering a successful project. I think there are several main reasons for this:
  • The frameworks were immature and since we didn't own the code we couldn't fix it.
  • The code generated by the tools could not be modified, so when the tool generated bad code we couldn't fix it.
  • When the code did work, it wouldn't scale.
We tried several tools, but had the same results. A co-worker suggested that we were doing all the developers a disservice by making them learn the languages of these tools instead of learning how JEE works. In the end we used all the design patterns, but wrote everything by hand in JEE. We were back in control and successful!!!!

I still thought that tools were the right way to go, so in '04 I went to work for a tools vendor that had a really good composite application development tool.Or so I thought. Once I got under the hood it turned out that they had made all the same mistakes. We would say "the tool made all the hard stuff easy and all the easy stuff hard". Again, we didn't have control of the code. I didn't stick around.

Then I started using open source software extensively. Finally I was in control again. I didn't have to write all the frameworks, but I could fix them when I found bugs!!! But I still thought that a tool could work.

I have been using UML since day one to design everything. Typically Rose or Visio. However, I didn't generate anything from the models because the tools just didn't generated useful code and couldn't be modified easily or were just to expensive. So, I searched for and tried every open source UML tool I could find. I didn't find a tool with all the right pieces, but I did find all the right pieces:
  • Eclipse Modeling Framework (EMF)
  • Eclipse Java Emitter Templates (JET)
  • Eclipse Graphical Editing Framework (GEF)
  • Eclipse Graphical Modeling Framework (GMF)
  • Eclipse UML2
So, I decided to put them all together myself without making all the same mistakes. To this end the tool
  • generates the same code you would write by hand,
  • it allows you to modify all the generated code,
  • it utilizes all the best open source frameworks instead of reinventing the wheel,
  • and it handles all the easy, boring stuff and lets you write all the interesting, challenging stuff!!!
Taylor MDA lets you be in Control! Try it out and let me know what you think!

BTW, I chose the name Taylor because I live on Taylor Street and because the tool lets you tailor software!!!

No hay comentarios: