Client/Server Computing Essay II 1) What is Java? How does it accomplish its goal of being platform-independent?

What advantages does it have over more traditional languages such as C++? Java is a platform-independent, object oriented programming language developed by Sun Microsystems in the mid-1990’s. Java can be used to develop fully featured desktop applications, web applications, or applets, which are small applications that can be incorporated into a webpage. Java is one of the most popular programming languages today. Java is architecture neutral and portable. Not only can Java applications run under any OS with a JVM, it can also run on a variety of different devices including cell phones, PDA’s, or smart cards. One of the main reasons for Java’s success is the fact that it is portable. Java was designed with a distributed environment in mind. Java applications have varying levels of security (depending on the type of Java application) and can be controlled by network administrators. For instance, a Java applet does not have file system access to a user’s computer. A Java application, however, can access the file system if the administration approves the process. Java can also be described as distributed, multi-threaded, and dynamic. These features allow for database access (distributed), seamless updates (dynamic), and for multiple processes to occur at the same time in an application (multi-threaded). These features are all expected out of any modern development language. Java is still one of the top multi-purpose development languages today. One of the main advantages of Java is that it is designed to run on multiple operating systems. A single Java application can run on Windows, Linux, or Mac without any changes to the code. One of the drawbacks of this is that it is slow compared to compiled C or C++ programs (it is also much slower than Microsoft’s .NET). Java is able

to accomplish platform independence (architecture neutral) because Java is interpreted rather than compiled. Interpreted languages are definitely slower than compiled, but are a huge step up from scripting languages often used for web development. Java code is compiled into something called bytecode. It is this bytecode that is then interpreted by the Java Virtual Machine (JVM). The JVM interprets the bytecode into a specific implementation for the machine that you are on. In other words, each OS has its own JVM that is able to interpret the bytecode into an application that can be run in the user’s environment. Java is interpreted so that it is portable, but the drawback is that Java is slower than many of its platform specific competitors. Developers love Java’s ease of use. Java is a simple language to learn and use. Its syntax is similar to C++ but many of the complexities of C++ have been removed. In fact, many universities (including UT’s CSE program) are starting to teach Java instead of C++ due its simplicity, object-oriented structure and relevance to modern application development. Java eliminates pointers, multiple inheritance, and operator overloading. Java also forces developers into using object-oriented programming techniques – in Java there are no functions, procedures, or goto’s, only classes. Sun Microsystems also ships a number of class libraries and API’s with Java. These allow developers to perform common tasks, such as database manipulation, right out the box. In summary, Java is simpler and easier to use than C++ and other traditional languages and also provides a class library that allows developers to focus on business logic rather than common tasks.

2) Describe and discuss Microsoft’s .NET technology. What are its goals? How does it accomplish them? Microsoft’s .NET vision is that companies all over the world will connect their clients and network servers via .NET web services, and application providers will use .NET to develop their applications. By doing so, Microsoft will also be tying corporations down to using Windows as an operating system both for clients and for servers because .NET applications only run on Windows. Another portion of the .NET vision is for .NET to connect client to client, client to server, server to server, and service to service. Every level of an enterprise would be connected to each of the other levels using .NET. Additionally, .NET can be run on PC’s, servers, and mobile devices (devices running Windows Mobile). Because Windows is by far the most popular operating system in the world today, .NET can attain a sense of portability (I can have the same app on my PDA as I have on my PC). One of Microsoft’s main goals for .NET is to create a superior development experience for consistent, fast application development. This is accomplished by various methods. The .NET framework is a developer tool used for Windows application development. The framework is important because the framework contains the framework class library (FCL) and the common language runtime (CLR). The FCL provides developers access to 5000 class libraries for their application development. Tasks such as data access or string manipulation can be easily accomplished and are also relatively similar among the various .NET languages. The CLR allows developers to use different languages for the application development. As a comparison, Java basically forces developers to use Java as their language. Microsoft’s .NET supports visual basic, visual C++, C#, J# (which is basically Java), as well as about 15 other languages

including some open source choices such Perl and Python. The CLR is also .NET’s equivalent to Java’s JVM. The CLR basically acts as an “interpreter”, only it converts compiled code into machine code and caches it for future use (essentially .NET lies somewhere between interpreted and compiled). The .NET framework provides developers with a rich class library and allows developers to work in the language they are most comfortable with. Microsoft’s .NET also provides developers ways to create various types of applications. Developers can create console applications, Windows GUI applications, ASP.NET web applications, and web services. With .NET, it is easy for developers to develop for several areas at the same time. For instance, a development team could create a Win32 app as a sales tool. At the same time, the team could easily translate the Windows app into an ASP.NET web application. Probably the most exciting part of that process is that the developers can use the same classes (whether custom or those from the FCL) in the web application as the Windows application. Microsoft’s .NET has integrated many emerging technologies including XML, SOAP. WSDL, COM+, UDDI, and web services. The importance of these technologies is that they are all standardized, a move away from many of the proprietary services Microsoft uses. Web services allow corporations to integrate their systems. This problem has emerged as one of the most challenging for IT departments today. Microsoft’s .NET web services provide developers with a familiar development environment (Visual Studio) and Microsoft has marketed .NET web services as the “best alternative” for web service development.

In summary, Microsoft wants everyone to use Windows for their PC’s, servers, and mobile devices. They want all applications, whether web apps, web services, or PC apps, to be developed using .NET. They want to provide developers with the best tools so that developers will not want to write applications for any other platforms. They also want to make a lot of money while doing it…in other words they want to take over the world :)

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.