Technology Positioning Statement Report

1.2.1 Markup Language Editors

Description: Editors and IDEs for use with XML, XSL, SGML, schemas, HTML, and other markup languages.

Category: 1 - Authoring and Editing   Subcategory: 2 - Development Editing Tools
Old Category: Application Toolset - Programming Languages


  Visual Studio


Industry UsageSC Usage
Java 2

Performance Metrics

Programmer experience and knowledge with the language is a key success driver for custom application development. However, skills must be kept up-to-date, which requires continuing education.

Usage and Dependencies

Industry Usage: Microsoft Visual Basic is the most widely used programming language, which means that there is a larger supply of skilled developers available as well as a larger installed base. In the client-server environment, VBA (Visual Basic for Applications) is used as a subset of VB, and in the web environment, VBScript is the basis for Active Server Pages. Currently VB 6.0 is transitioning to VisualBasic.NET, with components to WebClasses, and ASP to ASP.NET, which incorporates XML-based features.

Java (e.g. J2EE, Java 2 Enterprise Edition) is now fairly mature, but Java is the dominant language only in some non-Microsoft operating system environments such as those within the Sun-Oracle-IBM nexus. This limits general use of Java to applets running in web browsers with the Java Virtual Machine.

Microsoft recently announced that it is preparing a set of tools that will enable Java developers to take advantage of the .NET platform. These tools will be released later this year as a resource called "JUMP," which stands for "Java User Migration Path." The goal of these tools is to provide a path for Visual J++ and other Java developers to preserve their existing Java language projects and migrate those projects to the .NET platform. Using these tools, developers will have several different options for how to migrate their existing source code so that it can fully support the "language agnostic" .NET platform.

"We’ve always believed in componentization, but one of the biggest challenges in building components on a large farm when you have international data centers, is the deployment of all those components, so you need to register, unregister existing versions. When you have large farms and hundreds of servers running around worldwide, the mechanics and the logistics of pulling that off are kind of tricky. What .NET framework offered to us was the beauty of componentization with the ease of deployment which the scripting languages had brought us. So we kind of got the best of both worlds, and the performance that you get in a compiled language. So there’s really no trade offs. You get the rapid development that you would expect with the scripting language, the ease of deployment, which makes your operational teams happy, and they’re delighted with it, and very, very good developer productivity, because you get very powerful languages without having to do a lot of the memory management and a lot of the other mundane, sometimes relatively error prone parts of the development process. You can really focus on just the feature set of the application."

"It’s the return of structured programming, is the way we’re kind of looking at it, is that we kind of lost our way there for a couple years. The Internet was great, and you had these kind of static applications. At first you just had HTML, you would just link around casually and life was good, but as we started to build more functionality and started to build applications, we found that the application development environments were somewhat limited. They were more of a goto programming style, where you have one large monolithic chunk of code with, you know, hundreds of includes, and to build really large scale enterprise systems out of that is pretty tricky for a very large development team. So the ability to get back to sort of an n-tier type of an architecture, and with services it’s taken even further in that you don’t have to worry about the deployment and the calling of remoting across machines. That’s a huge benefit. Before in our environment we’d have to set up DCOM ports and a lot of other functionality to do the cross machine calling, and now with http we can make those remote calls very, very rapidly without any additional operational overhead." -- Mike Moore, Microsoft

Extensible Markup Language (XML) is apparently inevitable in most business applications. However, XML requires a data architecture in order to function (i.e. namespaces, schemas, and document formats). SC business applications are in many ways like those of a bank. Even in commercial financial institutions, standards are not yet mature and not yet comprehensive enough to commit to just one standard. At some point it will be necessary for SC to develop in-house standard vocabularies.

Microsoft has 'bet the company' on its .NET framework, which is being released in 2001. The foundation of .NET is the Common Language Runtime (CLR), which provides an execution environment that manages running code and provides services that make development easier, such as cross-language integration (ASP.NET, VisualBasic.NET, Java, COM and C# runtimes). ASP.NET starts the CLR and runs web requests. A future version of SQL Server will allow stored procedures to be written in languages that are executed with the CLR.

Most aspects of .NET take advantage of XML, using industry standards such as the DOM Level 2 Core, XPath, XSLT (which replaces XSL), XML Schemas (XSD), and SOAP (Simple Object Access Protocol). The .NET framework uses XML as its native data representation format, which can handle both hierarchical and relational data structures, in ADO.NET. All of the new server products, including SQL Server 2000 and Exchange 2000, use this XML-based foundation, and most of the services and tools are web-oriented: WebClasses, WebItems, Web Forms, Web Services, etc.

Visual Basic.NET introduces ASP.NET, an enhanced version of ASP, and adds to the architecture with Web Forms, which are HTML pages with Visual Basic events. The architecture is server-based.

The upgrade from VB 6.0 to VB.NET is not 100% compatible. An upgrade tool is provided, but developers will have to modify some things manually. Microsoft recommends use of the Microsoft multi-tier architecture guidelines to create applications, create the interface with ASP, and use Visual Basic 6.0 or Visual C++ 6.0 COM objects for the business logic. ASP is fully supported in Visual Basic.NET, and you can continue to extend your application using ASP, ASP.NET, and Web Forms. The Visual Basic 6.0 and Visual C++ 6.0 business objects can either be used without modification or upgraded to Visual Studio.NET.

The W3C is urging developers to move away from HTML toward XML-based standards. XHTML 1.0, which wraps HTML in an XML namespace, is the current recommended standard for web documents. MathML is an emerging standard for mathematical markup, and SVG is a vector-based graphics standard. Tools to use these specialized languages are immature at present.

An ongoing problem is the lack of uniform standards for web browser languages, which conflicts with the intended purpose of a web browser - to provide a standard graphical interface. Client-side JavaScript or ECMAscript in its various versions is often necessary but must be used with care. Use of ActiveX is declining because of its incompatibility with Netscape and other non-Microsoft web browsers. Java and Java applets are acceptable alternatives to support special needs such as graphics (preferably using well-tested COTS products). Sometimes programmers must resort to browser detection and browser-specific versions to ensure similar functionality for diverse clients. But this approach increases development time.

SC Usage: SC's strategic direction is toward web-based COTS and custom applications using popular industry standards. SCIP (the Office of Science Intranet Portal) is being developed to provide a unified web portal for all SC business applications. Visual Basic 6.0 and ASP 3.0 are currently used for application development. Client-side DHTML and ActiveX are only useful for internal applications, where Internet Explorer 5.x is the standard browser. But ActiveX and ADO should only be used on the server side for WAN or Internet applications, due to its Microsoft-only browser support. This leaves only Java and plug-ins such as Macromedia Shockwave to provide complex interactive graphics over the Internet at present.

Migration toward industry-standard languages and tools such as XML, SVG and Microsoft's .NET architecture will increase as tools improve and programmers gain experience with them, but we have a year or two to go before a major commitment to these new languages is feasible.

SC Application Impacts: All architected applications, including IMSC modules and the planned SCIP project, are web-based. The SC user community needs user-customizable, web-based applications for cross-platform, browser-based support of all its information management requirements.

Last Update: Valid Until:


Previous TPS
The Naked Truth (about XML)
Uttam Narsu, Giga, Feb. 23, 2001.

List all Categories

Administer the Database