The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Code Generation is New?

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Chad Fowler

Posts: 408
Nickname: chadfowler
Registered: Apr, 2003

A programmer, musician, and language addict.
Code Generation is New? Posted: May 31, 2004 2:51 PM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by Chad Fowler.
Original Post: Code Generation is New?
Feed Title: ChadFowler.com
Feed URL: http://feeds2.feedburner.com/Chadfowlercom
Feed Description: Best practices, worst practices, and some generally obvious stuff about programming.
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by Chad Fowler
Latest Posts From ChadFowler.com

Advertisement
Jack Herrington, who wrote the excellent Code Generation In Action, has a couple of newish articles up on java.net.

I’ve linked to them here both because they’re well worth reading and learning from, and because there is something that has been bothering me since I read a draft of Code Generation in Action. The first line of Jack’s java.net article captures it. Here’s the full first paragraph for context:

  Code generation is a key new trend in engineering, one that you need to understand well.  The reason is simple: today's modern frameworks are extremely code-intensive. Using a code generator to build the code for you can save you a lot of time, both in writing the code and fixing the inevitable bugs that spring from swathes of hand-written code.

And, later in the article, Jack’s definition of code generation:

  Code generation is using one application to build code for another application.

So, code generation is the automation of code creation for the purpose of reducing defects and increasing developer productivity. Defect reduction is largely what inspired John Mauchly in 1949 to create "Short Code", which had to be hand-compiled to machine code. Its purpose was to allow developers to think at a higher level and to avoid the 1s and 0s of machine code while programming. Afterward, Grace Hopper took this to the next logical level, and in 1951, created the first compiler. Developers could think and write code at a higher level and the computer would generate machine code for them. I’m no historian, but this appears to be the first concrete example of code generation. And, even in 1951, its goals were the same as today: faster, less defect-ridden coding.

This is not all to say that there isn’t really something ‘new’ going on now. I think what feels ‘new’ to Jack is that he and others have recognized that it’s time to shift a little further up the value chain (again). Java and .NET provide suitable plumbing, but there’s no need to think at that low a level for many of today’s application development needs. Naked Objects solves the problem in a different way. Smalltalk and Ruby solve it in yet another way (you don’t see much code generation going on in the high-level, dynamic language world—incidentally, Jack’s book uses Ruby to generate Java code. Ruby is the high level language and Java is the "machine code").

I’d say this new trend in engineering is really just the natural progression of an ever-present trend in our industry’s evolution. Today’s 1000 high level, cutting-edge language, environment, or paradigm is tomorrow’s machine code. Jack’s right: code generation is important and you do need to understand it…unless you like being a plumber.

Read: Code Generation is New?

Topic: OSCON Schedule Posted Previous Topic   Next Topic Topic: More New Looks

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use