Friday, April 16, 2010

Exercise 4: Network and Web programming frameworks


Topic 1
Describe the important and distinguishing properties of Peer to Peer computing with the client/server architecture?
As stated in Wikipedia (2010) Client/server computing or networking is a distributed application architecture that partitions tasks or work loads between server and clients. Often clients and servers work over a computer network on separate hardware. A server machine is a high-performance host that is running one or more server programs which share its resources with clients. Client requests a server’s content or service function and does not share any of its resources. Clients therefore initiate communication sessions with servers which await (listen to) incoming requests.
Whatis.com (2010) describes a peer to peer network is any distributed network architecture composed of participants that make a portion of their resources, such as processing power, disk storage or network bandwidth, directly available to other network participants, without the need for central coordination instances (such as servers or stable hosts). Peers are both suppliers and consumers of resources, in contrast to the traditional client/server model discussed above where only servers supply, and clients consume.

Topic2
Frameworks for development: Compare and contrast any TWO of:
a.              Java
b.             .NET
c.              Ruby on Rails
d.             Turbo Gears
e.              Google Gears
f.               AJAX frameworks

From my brief research it would appear that Java require a more solid software engineering approach to do well whereas Ruby on Rails can be learnt relatively quickly and easily. However, Java appears to have greater underlying capabilities with its scalability being more solid, and security is tighter. The drawback of Java is a far more challenging environment to get started in, but ultimately it will result in a far more solid end product if you persevere. Ruby on Rails appears very easy to get into with a relatively short learning curve. There also appears to be plenty of tutorials and code libraries online which can help to be newbie programmers (Flanagan, 2005).


First of all these "Mac VS PC" style videos are gay. Second of all Ruby on Rails is a framework, while Java isn't. JARs are java archive files, they're compressed data.
Not only that but Ruby On Rails was designed for web applications while Java is a programming language intended for many different uses


Both the Java web development framework and the Ruby on Rails web framework have a number of things in common under that they both utilise object oriented language, they both use Model View Controller Architecture and both are easier to utilise and maintain than other frameworks with use different languages. But there are distinct differences between these two. Java has to be compiled into a binary executable before execution, where as Ruby is interpreted at the time of execution allowing for faster development and processing. Java is statically typed, whilst Ruby is dynamic. Java’s coding effort is much greater and more complex than that of Ruby on Rails. Ruby on Rails allows a much greater ability to produce rapid applications through the use of scaffolding (Holzner, 2006). The following video provides a mildly entertaining brief comparison between the two, highlighting the simplicity of Ruby on Rails.

In terms of which web framework is better, this appears to have generated much debate over the past couple of years. From what I can tell it all depends on your background and level of knowledge of programming, Many sell Ruby on Rails as being superior because of its simplicity and ease of use, however those with solid software engineering background may be able to produce a more solid and secure product using Java. However, for generation Y, who want things now, I would say Ruby on Rails is more suited. Also, from a management view point, Ruby on Rails reduces the load on the System Developer, and presents a more efficient option than Java in terms of time taken to developing an application.

No comments:

Post a Comment