Quo Vadis, Magnitudo?


I want Magnitudo to be a free astronomy web application until the Big Rip happens.
I will think about publishing Magnitudo (or parts of Magnitudo) as Open Source Software when I got the first robust core.
More general information coming soon.

A comment about the software design

Object-oriented programming in JavaScript maybe confusing for developers who are used to OOP with well-known languages like C++, Java etc.. E.g. there is no direct way to define a class or setting the visibility (private, protected, public). But there are several JS-Libraries like Prototype, MooTools, Base2 etc., which make it more convenient to people who are used to common OOP.

New languages, which are similar to JavaScript but will 'fix' a lot of drawbacks of JS, are arising.
Maybe Google DART will become the preferred language for Magnitudo in the future.

There are at least 3 ways to create objects in JavaScript:

1) var app = { version: 42 }; // literal style
2) function Star() { this.distance = 4.4; } var star = new Star; // constructor function
3) var o = new Object; o.prop = 'abc'; // another way, similar to 1)

Magnitudo uses the literal style 1) mostly for Singleton similar structures and sth. like 'namespaces'.
The second way is used, if we want generally more than one instance, e.g. for stars.
For inheritance jQuery.extend() makes us happy at the moment.

What can be improved for future versions

The highly dynamic nature of JavaScript is a very sweet thing, but it may also seduce you to do stupid things.

Some snippet out of Magnitudo 0.3:

SB.Star = function() { // some properties... }
SB.Star.prototype = {
draw: function(context, renderData) { // draw star to the context.. }

As I was programming 'out of the stomach' it seemed very convenient, if a star knows how to render itsself. But you know, that this is no proper software design, because model and view is mixed up here (see MVC pattern etc.). But before I change this, I have to experiment a bit, how to implement common patterns such as MVC in JavaScript (I don't use OO JS Libraries at the moment). Maybe I wait until I decided for a solution like DART.

What are the plans for the next version 0.3.4?

Users of Magnitudo are considered as Hitchhikers now.
Planet orbits / ecliptic
Internal cleanup (proper animation queue etc.)

Change Log

2012-05-22  0.3.3

  Improved UI / Window handling
    Cleaned up start screen
    Z-Index Fix for the windows
    Added window control icons
    Smarter window appearance, animations
  Improved Star Selection  
    Cursor changes on selectable sky objects
    Null selection possible now, if clicked on nothing
    Star Selection Fix (occured if the Star had have no HIP) 

2012-05-11  0.3.2

  Added settings for changing the visual style and adjusting the star color exaggeration

2012-05-06  0.3.1

  Removing needless context.closePath() calls increased performance up to 50%
2012-05-05  0.2.9

  The first official release of Magnitudo has been published.