AtomWeaver public beta has been released

Written by Rui Curado on July 28th, 2010

I have quietly released the first public version of AtomWeaver: 0.9.0. Why releasing it quietly if it is a commercially-oriented product? Well, because I am kind of “ashamed” of releasing it.

Some people say that “if you’re not ashamed of your first product release, then you haven’t released it soon enough”. So I followed that advice and I released as soon as I could. Well, it could have been sooner, but I thought it would be cool to release it on my birthday!

And so it happened. The first released public beta version (0.9.0) of AtomWeaver sucks, lacks lots of crucial documentation, has blatant bugs and omisions, and the website is even worse: it has just four pages and two screenshots.

But I had to push myself off the cliff, I had to release one day…

Now I will follow the mantra “release early, then iterate like crazy”. That’s what I am going to do. New releases and website updates will occur on an almost daily basis. I released 0.9.0 yesterday but I already have 0.9.1 today! The update roller coaster will begin. Hopefully the update intensity will slow down as the product reaches an acceptable state.

A new era is starting. Let me take a deep breath…

The ABSE/AtomWeaver Early Access Program

Written by Rui Curado on May 7th, 2010

I’ve started a few days ago the ABSE/AtomWeaver Early Access Program, a closed alpha test of the AtomWeaver IDE, where a select few professionals participate. More than twenty professionals and two tech reporters have been selected.

The objective of the Early Access Program is to get valuable early feedback from professionals that are actively engaged in Model-Driven Software Generation, or code generation in general. With this controlled alpha release, AtomWeaver has seen the real world, and real developers are putting their hands on this new approach to software development.

While most people have yet to report back, some justifying to be severely constrained by their current work, I am starting to get reactions on their first “impact” with ABSE.

I’ve yet to receive a neutral or negative comment about ABSE, which is encouraging. First reactions have been positive, with adjectives varying from “interesting” to “promising”.

I am also learning a lot about how to properly convey the ideas and philosophy behind ABSE, in terms of documentation and tutorials. As with any new, disruptive technology, newcomers always feel confused about the new concepts, and hardly know where to start or where to go. It is a challenging task to put ourselves in the shoes of a newcomer when we are precisely on the opposite side of the knowledge scale. This is called “the curse of knowledge“.

Ada Lovelace Day : Celebrating Women in Technology

Written by Rui Curado on March 24th, 2010

Most people involved in IT know that today is is Ada Lovelace Day; an important day in which we celebrate the achievements of women in technology and science.

Well, I should be talking about women in technology. I don’t know many in a personal level, and none of them are particularly notable. I’ll restrict my choice to my field, programming, and my country, Portugal.

So in the spirit of the Ada Lovelace day, I would like to mention Cândida Ferreira, a Portuguese-born researcher which have made some notable achievents in programming. Here is a shameless copy of her online bio:

Cândida Ferreira studied Biochemistry at Kharkov University (1985-1990) in the former USSR and received her Ph.D. from Lisbon University in Biology in 1995. She joined the Department of Agricultural Sciences at The Azores University in 1994, where she was Assistant Professor of Biochemistry since 1995 till October 2001. She invented the revolutionary Gene Expression Programming technique in 1999 and in 2000 co-founded Gepsoft to develop and commercialize software based on the GEP technique. She now works full time at Gepsoft as Chief Scientist. Her research spans the interplay between molecular biology, evolution, and machine learning.

You can learn more about her achievements at gene-expression-programming.com.

Celebrate Ada Lovelace Day!

Starting the ABSE “One Fact A Day” series

Written by Rui Curado on February 26th, 2010

Starting today I will everyday (or so) post a simple fact about ABSE and a short text regarding that fact, in ABSE/AtomWeaver’s community site at Ning.

I hope this series to be a very simple and easy way for developers to get acquainted with ABSE, to know what it can do, and what they can accomplish with it. It won’t take you more than two minutes per day.

New post announcements will be added to ABSE/AtomWeaver’s twitter account, and the fact pages can be found inside the ABSE section of the community site.

I take the opportunity to invite those that want to learn about ABSE and follow its evolution, to join its official community at http://atomweaver.ning.com.

The Hidden Costs of Domain-Specific Languages

Written by Rui Curado on November 25th, 2009

While I am a big fan of Domain-Specific Modeling, I am openly not in favor of Domain-Specific Languages. DSL supporters advocate many good things. Are they real? Is it the whole truth?

Let’s see some good (valid) points about DSL’s:

  • It’s domain-specific (duh!)
  • Encapsulates boring details
  • Can increase abstraction to the next level

And other not so valid points:

  • It’s a Shiny New [mainstream] Thing. Most developers love that
  • It’s cool and I can do it too

The first are very enticing, valuable, and sought for, and most of DSL’s attraction I guess comes from these features. But, will it pay off?

I really don’t have much experience with DSLs, so I won’t use my own arguments. I’ll let the community speak for myself. Here is a tiny sample of DSL criticism:

http://c2.com/cgi/wiki?DomainSpecificLanguage

… the Tower Of Babel effect that results from having so many languages that a person needs to be familiar with (if not master) in order to get common jobs done.

writing a good DSL that is robust and reusable beyond a limited context, is a lot of work. It requires persons with both domain expertise and language design expertise (not necessarily the same person) to pull off. A truly reusable DSL will require reasonable documentation, otherwise it won’t survive the departure of its designers.

http://www.theserverside.com/news/thread.tss?thread_id=42078

The other mistake some folks make is they think that with a DSL that “non-coders” can actually use the DSL.

But since a DSL is designed for automation of an underlying objet model, writing in a DSL is just like writing in any language — whether it’s DOS .BAT files or Java, and it takes a coding mindset and understanding of the underlying domain as represented by the computer in order to make effective use.

There was much more written on this thread. You can go to the original page to read more opinions.

As general use of DSLs become mainstream, so become the complaints about their shortcomings. If we take so much time to master a general purpose language, should we invest a comparable amount of time in limited-use languages? How can we get support for a DSL, apart from its own creators? Where’s community support? What happens after the departure of the language’s creator? What’s BNF? Do I need it?

DSL critics say really useful DSLs are hard and expensive to create. DSL supporters answer that DSLs are not designed, they evolve. Well, won’t any of those “evolutionary steps” risk breaking the entire development based on that DSL, much like a broken app build? Will the evolution in the language be severe enough to trash what has been done so far? Can you imagine yourself developing a complex C++ software system while C++ itself was still being designed and developed?

Still too many unanswered questions.