SAN DIEGO -- It's a very good time to be a developer, according to one industry expert.
Speaking at the Burton Group Catalyst Conference last week, Anne Thomas Manes, vice president and research director with the Midvale, Utah-based firm, said that Web services and service-oriented architecture (SOA) have initiated a morphing of architecture infrastructure and developer methodologies.
The resulting effect is that development platforms like .NET, Java and LAMP are becoming more powerful, more flexible and much simpler to use.
"Essentially, what that is doing is making interoperability something that works rather than this torturous framework," Manes said. "The bad news is that you're going to experience a lot of pressure to retire or migrate your older applications to take advantage of this new stuff that is coming out."
Initially, the coming changes will be a difficult for developers to deal with, "but ultimately it's going to be extremely positive and I think you're going to be very happy with the end results of the whole process," Manes added.
Take advantage of new technology
An application platform such as J2EE or .NET is defined by the application programming interfaces (APIs) and protocols that developers use to deploy application systems, she said.
Today, the analyst continued, application platforms have evolved to include enormous sets of class libraries that simplify or automate many processes -- like the allocation and de-allocation of memory -- which used to take a great deal of time.
"The problem is that this infrastructure inside your platform doesn't necessarily talk to the infrastructure that is inside a different platform," Manes said. "Integration across platforms becomes a lot more challenging."
Using frameworks to ease integration issues
To help solve the integration problem, Burton Group recommends that developers make use of frameworks.
A framework is a core set of class libraries, APIs and runtime services that essentially implements a partial solution, Manes explained. A framework is also something that can help developers to build portal-types of applications and automate the process of building Web applications.
"In general, a framework is going to simplify and abstract out a bunch of complex functionality," Manes said.
Application platforms include their own low-level frameworks, she said. The problem is that those frameworks are designed to support all possible application systems.
The need to 'abstract out'
Finally, Manes suggested that developers move to managed code environments. Managed code, she explained, is code that runs in a virtual machine. Examples include Java, C# and Visual Basic.
"Essentially, you write a class in your favorite language syntax … and when you compile that class, what you're actually compiling it into is an intermediate code," Manes said. "This stuff is then portable."
At runtime, this compiled class gets translated by a runtime interpreter. Inside this runtime environment there are things like class loaders to manage object life cycles, memory management for automatic memory allocation and a security framework for performing authentication and authorization functions.
"One of the most important aspects of the managed code world is that it dramatically improves the security of this environment," Manes said.
Programmer chores now automated
Following Manes' remarks, one conference attendee, a chief systems architect for a large financial services firm who asked that his name be withheld, explained that managed code environments handle a lot of the details that programmers used to deal with manually.
"We used to have to worry about every detail of writing security code, low-level connection code, queuing code to manage messaging -- all these frameworks take care of that now," the architect said. "Now we can really focus on business logic."
The architect said that he thinks it will be several years before frameworks and managed code can automate the process of generating business logic code.
"Frameworks can handle things that are always the same," he said. "Business logic isn't something that you can encode in the framework and give to people because the requirements are always different."