Java User Group Switzerland
About us Contact us Services Events
Board Join Us Java News Upcoming
By_Laws Address Change Past
Growth Ideas
General Assembly Press
Partners

C# and Java

A language and platform comparison.

28.5.2001
Speakers:

Anders Hejlsberg, Designer of C# and Chief Architect with Microsoft
Bruce Haddon, Senior Java Architect with Sun Microsystems

The chief architect of C#, Anders Hejlsberg, presents the new language and its platform .NET in a debate with Bruce Haddon, Senior Java Architect at Sun Microsystems, speaking for Java and its J2EE platform.

Download: Anders Heijlsberg: C# and .NET - language and framework
(ppt, zip-file, 103.8 kb)
Bruce Haddon: Java - language and platform (ppt, zip-file, 333.8 kb)
Introduction:

This event was intended to give you insights of C# and a comparison to Java. After a short presentation of each languages and platforms, the two speakers were invited in a discussion to argue on concepts, differences, advantages and visions covering the hottest topics in the enterprise today including Web Services. This unique 90 minutes confrontation between the two software architects were moderated by an independent professional and enriched by questions from the audience.

On the positioning of this event: At first sight it seems weird to present another language when the goal of the JUGS is to promote Java. But after some reflections, we are convinced that the JUGS members are interested in the "idea" of Java as a clean powerful object-oriented language with a virtual machine, internet integration etc., the technologies behind the name and we are all open minded for new technologies, particularly if they may have an influence on Java.

Language: English
Track 1

C# and .NET: language and framework

Anders Hejlsberg
Abstract:

In June 2000 Microsoft announced the new language C# and the .NET strategy. C# is a modern, object-oriented language that enables programmers to quickly and easily build solutions for the .NET platform. The .NET framework allows C# components to become Web Services that are available across the Internet, from any application running on any platform.

Anders Hejlsberg, the chief architect of C# and a key designer of the .NET Framework, made an introduction of the basic features and concepts of the programming language C# as well as the Common Language Runtime, the Class Library, the framework and the architecture of .NET. The audience should understand a little more about the scope of this effort, rationales behind the design decisions and how it will both radically change, and greatly simplify, the integration of applications on the Internet and beyond.

Anders Hejlsberg is a Distinguished Engineer in the Developer Division at Microsoft Corporation. He is the chief designer of the C# programming language and a key participant in the development of the .NET Framework. Previously, Anders was the architect for Visual J++ and the Windows Foundation Classes. Before joining Microsoft in 1996, Anders was a Principal Engineer at Borland International. As one of the first employees of Borland, he was the original author of Turbo Pascal and later worked as the Chief Architect of the Delphi product line. Anders studied Engineering at the Technical University of Denmark.

Track 2

Java: language and platform

Dr. Bruce K. Haddon
Abstract:

Java's initial claim-to-fame is that it delivered on the promise to provide a true Internet loadable programming environment. The history of Java itself in extension of that programming environment from the "Java applet" to enterprise computing, in one direction, and to imbedded computing in the other. This was driven as much by demand from intending users as much as directed evolution on behalf of Sun Microsystems. This interaction was formalized in the "Java Community Process." to ensure consistency and quality in new Java extensions. The collection of technologies that has become formalized as the "J2EE Specification" now forms the focus of the Java enterprise computing space.

In this presentation, a short history of Java was reviewed, leading to the current state of the J2EE application development. In doing so, some features of the language, the virtual machine in which the programs run, and the extent of the cross-platform support, were examined.

The technologies that go to make up the J2EE world were briefly described, and the relationship to each other and other features supported by the Java language. This tour included Java Beans, EJB, Servlets, JSP, and well as some mention of Swing, the security model, and current architectural principles.

Some guesses at future directions were proposed, dealing a little with Sun ONE, the role of XML, and joint industry initiatives.

Dr. Bruce K. Haddon is a Senior Java Architect with Sun Microsystems .COM Consulting Professional Services, from the Denver Java Center. In addition to consulting with Sun's clients on the application of Java technologies to web-based business systems, he is also supports the Sun StartUp Essentials program, introducing new companies to the elements of web-based architectures. Prior to this, he was one of the two senior architects behind the Jiro product, and the Federated Management Architecture, a Java extension developed under the Java Community Process. In that role, he contributed to industry standards in system management, being involved with the DMTF CIM Schema and XML-over-HTTP object access protocol development, and the IEEE Media Management System standards, being currently the Principal Editor of P1244.2, dealing with protocol security. He has been, over the last two decades or so, Director of the University Computing Centre, Sydney, Australia; Associate Professor at the University of Colorado; and Vice-President of a leading localization company. Dr. Haddon earned his Doctorate at the University of Colorado, in Electrical Engineering, and Masters Degree at the University of Sydney, in Computer Science.

Track 3

C# vs. Java debate

The debate was divided into 8 industry relevant topics introduced by the moderator. During the discussion of the topics by the 2 keynote speakers the audience was encouraged to participate with questions and remarks. The following topics were covered.

1. The language proper: C# and Java
C# and Java have a lot of similarities but they have differences too. As Java developers we wanted to know the differences we will face by programming in C#. We wanted to know which C# features are really better and why. Both speakers developed the rationales behind their language design decisions.

2. The virtual machines: CLR and JVM
Both C# and Java are compiled into an intermediate code and have the concept of virtual machine that runs this intermediate code. On the one side there is the JVM and on the other the CLR (Common Language Runtime). The CLR is probably the most important piece of .NET. The speakers discussed pros and contras of their intermediate languages and virtual machines as well as the impact on the IT industry. Issues like security, performance and portability were tackled.

3. Components
We are moving towards a software component industry. But the support for building and using components may be understood quite differently. We wanted to hear how C# and Java see this fundamental concept, how they provide the means to realize a component world. The important issue on native code integration was also tackled.

4. Application Servers
In a world where components are distributed over network there is the concept of application servers. J2EE with its different container types is one approach. EJB Containers has been specified to hold the business logic. What is the .NET approach concerning distributed components?

5. Web Services
XML is the standard for self-describing data. It is the corner-stone of .NET and a complementary technology to Java. Both Sun and Microsoft have spoken about Web Services. Both sides presented their vision on Web Services and how they want to realize it. SOAP and ebXML were handled.

6. Web front-end and rich clients
The internet is certainly the technology that has influence the IT industry the most these years. Java provides a set of technologies like Servlet and JSP. The actual web technologies from Microsoft are comparable but .NET introduces new ones like ASP+ and WebForm. What is new, what is better? There are sometimes good reasons to be have rich clients. How is Swing compared to WinForms or other libraries?

7. Tools
The role of the development environment is certainly important for both Java and C# but while Microsoft promotes a tight integration between language and tool with Visual Studio, Sun makes a separation between the language and the tools which may be purchase from third party vendors. What are the advantages of both approach for the developers? For the IT industry? For the companies themselves?

8. The development processs
Both C# and Java evolve with time.
How to control the evolution is critical for any technologies. It has also to do with culture and philosophie. Sun has defined the Java Community Process. Microsoft is getting more and more open to standard organization. How far does both openness go, which parts of the technologies are public specifications and which ones are owned by the respective companies?