Light Through a Diamond and Other Musings


Reflections on the Speed of Light

Following on from my last blog entry discussing some of the similarities between diamonds and web development, I would this time like to look at another important facet of both diamonds and web-based software, albeit at opposite ends of the same spectrum.

Before becoming a member of the 1791 Diamonds website team, I knew very little about diamonds. Of course I knew what everyone knows - they're hard enough to cut glass, are expensive, make the perfect engagement present. Over the last few weeks, I've been reading up on diamonds in order to gain a deeper understanding of their nature and of the diamond industry in general.

When Slow is Good

One of the most fascinating titbits I've come across is the fact that diamonds actually slow down light! We all know the old story that the speed of light is constant at 186,000 miles per second. That's only in a vacuum, mind you, and it turns out that as light passes through a diamond it slows to around 100,000 miles per second and is split up into its constituent colours. Each of these - the familiar red, orange, yellow, green, blue, indigo and violet of the rainbow - then travel at slightly different speeds and are bent slightly differently as they bounce around inside the diamond looking to make their escape. This slowing and splitting of light, then, is one of the main factors making diamonds so beautiful.

When Fast is Good

With diamonds and with web applications, then, SPEED IS A FACTOR. Of course the major difference is that instead of a slowing of speed being the important factor in the case of diamonds, an increase of speed is required in the case of a web application. There are many factors that can impinge upon the speed of today's web applications, from hardware infrastructure, to bandwidth, to choices in server software and development strategies.

Diamond design and web design at the speed of light

To ORM or not to ORM

Most web applications today store data in a relational database such as MySQL, Oracle, or Microsoft SQL Server, among others. Relational databases have been around for a long time, in fact since before modern programming languages such as Java, which focus on treating program components and processes as Objects (object oriented programming - OOP). Object-oriented aficionados over the last decade or so have developed systems to try to fit the relational database model into the OOP paradigm, in essence mapping the database to programming objects for easy manipulation of data through the OOP system. This translation is known as Object Relational Mapping (ORM) and is a major consideration in today's programming environment.

Development Speed vs Application Speed

One major advantage of today's ORM systems is that they can automatically generate all the code and objects needed to access the database. This may cut development time, as many of the more mundane development tasks are taken care of for the programmer, and the more human-readable code generated is often easier for novice programmers to grasp. However, because the ORM adds another layer to the application, and because complex SQL (the language used to access relational databases) can often be written more efficiently by hand, there is usually a trade-off in terms of application performance, which of course may negatively impact the user's experience of the site.

We can think of a web page request as a beam of light entering a diamond. The beam of light is slowed and split by the diamond and then bounces around inside until it is finally released to the beholder. In a web application, a user makes a request to a web server. The sever processes the request, and then releases a page to the user's browser. One big difference, as I have discussed, is that the more time light spends inside a diamond the better, while on the other hand, the less time it takes to process a web page request within the server and application environment the better.


Object Relational Mapping is a big topic in today's programming landscape and depending on the nature of an application, may be either highly beneficial, or somewhat of a hindrance to end users in terms of timely application response, and this is just one of the many factors to consider when developing a highly responsive web application.


Robb is a Web Developer and Designer with over 10 years' experience in the LAMP environment. He is part of the technical team at 1791 Diamonds Ltd suppliers of diamond engagement rings in gold and platinum settings.

Mastercard, Visa and American Express Accepted
© 2009-2015 1791 Diamonds Ltd, All Rights Reserved