Vinland Solutions

Vinland Solutions
Home » Philosophy

Philosophy of Vinland Solutions

# 01 - Open Source Benefits Everyone

Open source software benefits everyone. Most importantly, it opens the software market up to everyone, even those that can't afford the outrageous prices and subscription fees that far too many corporations try to charge for their proprietary software. Open source software also increases security, as the entire world is able to view the source code of the software they use and determine if it does something inappropriate or non-secure. Open source software also promotes creativity and innovation, allowing anyone with the proper knowledge to improve, correct, or expand the software beyond what one team or company could do by itself. Most important of all, sharing is caring.

To this end, the vast majority of software publicly released by Vinland Solutions will be put into the market as copyleft software, generally under a Creative Commons or similar license, and will be both free as in beer (you don't have to pay to get it) and free as in freedom of speech (once you have it, you can share in original or modified form). The only stipulations we universally support restricting the use software, ours or anyone else's, is that you don't claim it was created by anyone other than the actual author(s) and you don't try to make money off of something you got for free.

# 02 - Documentation Is Important

Generally the greatest problem with most open source software is a lack of informative documentation, whether it be developer or users. Too often many developers try to remedy this with bare bones text files or auto-magically generated APIs. Both do little more than show that the developer knew their was a problem and that they didn't care enough to properly solve it. Vinland Solutions products will strive toward not falling into this pattern by providing comprehensive documentation appropriate for the consuming market, such as generated APIs accompanied by properly documented code for libraries directed at developers and descriptive documentation including necessary instruction and step by step guides for applications directed at users.

# 03 - Backwards Compatibility Is Not King

Keeping programming libraries compatible with older versions is not bad, but many programmers take it to far. When a better way is found to do something, that way should be used even if it breaks backwards compatibility. Failure or refusal to let go of backwards compatibility often leads to the much worse sin of code bloat, ie the ever increasing size of software without improvement of expansion of features. At Vinland Solutions, we support the concept of the Preferred-Deprecated-Removed model as an acceptable way to move to new and better ways of doing things without sudden, unexpected breaks in backwards compatibility. In other words, initially a practice is the preferred way of doing something. Once a better practice is implemented, the original is deprecated, but not removed. After allowing a reasonable amount of time for transition from the old to the new practice, the deprecated practices are removed

# 04 - Traditions Have Their Place

A large part of the programming community is bogged down in traditions held over from the days when things such as file names and extensions had limits on their length, and in general most computers could not do what a watch does today. At the most basic level this leads to code that is cryptic to anyone that doesn't already know the ins and outs of the software and its outdated naming conventions. This isn't a problem to those that were around when the rules were created or those that learned them from some professor. However, all others are left staring at things that might as well be written in Greek. In this modern age of programming, code should be as descriptive as possible and any tradition that stands in the way of clarity should be discarded.

That is not to say that traditions don't have their place. If something has been done a certain way for decades, then there is most likely a good reason for following suit. However, no tradition should be followed blindly, that is the way of the cargo cult and unfitting of a well versed developer. In all development, Vinland Solutions will endeavor to strike a logical balance between the upholding of useful traditions and the abandoning of outdated practices.

# 05 - Compartmentalization Is Your Friend

I know, twenty characters is a large word, but the basic meaning is that its better to have many small objects working together then it is to have one large object doing everything. This is the opposite of the All-In-One approach, and any software, library or application, that promises to do everything will ultimately fulfil the promise of doing everything poorly and not doing anything as well as a dedicated piece of software. For this reason, Vinland Solutions will always focus on software the serves a core purpose and does so as well as possible.

# 06 - Clarity Beats Brevity

Notice how the title of this item tells you about the contents of the text under it, suggesting that the text will explain why Clarity is more important then Brevity. What if the title was 'CBB', what would that tell you? Well, it would tell you nothing, nothing at all. That is why it is more important to be clear then it is to be brief. Whenever possible, we follow this goal in the code, interface, and documentation of our libraries, applications, and games.

# 07 - Software Is A Product Not A Service

Digital Rights Management is unethical and unnecessary. The United States and other governments around the world have enacted Copyright and Trademark laws which provide adequate protection for holders. However, many in the software industry try to impose extra restrictions upon their customers use of their products. Would you buy a car if you could only drive it a specific number of times? What if your dvd player wouldn't work if you had a tv made by a different company turned on? What if a toaster required you to be connected to the internet before it would toast bread? Those are the things included in software by some companies, limited number of installations, checking if non related programs are running, and requiring an active internet connection for non-internet features.

These methods are generally promoted as a means to stop piracy, but this brings me to the point of this philosophy. Software is not a service, it is a product, and once sold to the customer the producer has no control over it other then that given by the appropriate Copyright and related laws. Once you purchase a product, software or otherwise, you have the right to do with it what you wish within the laws of the land, this includes use, trading, and resale. What it doesn't include is reproduction for sale or any other form of use that provides you with commercial benefit.

Vinland Solutions respects the rights of its customers and pledges to never punish our customers for the perceived threat caused by pirates. Our products will not include any form of DRM or other code that is not necessary to the operation of the product in question.

# 08 - The Goal Is Programs Not Profit

The goal of developers should be the production of a product, not the making of profit off of that product. Good software is created by those that want to create it more than they want to make money off of it. I won't namE Any names, but to many companies think buying a successful franchise and throwing programmers at it will produce a good game. However, they treat the process like assembly line production instead of what it actually is, the creation of art.

Software, and games in particular, are not machines that one can pump out like one would a light bulb. The process is more akin to the creation of a statue or painting than it is a car or circuit board. It takes thought and skill, but more importantly it takes creativity and inspiration, two things that can not be produced on a schedule.

This was one of the driving reasons behind the creation of the Vinland Solutions Organization. Software should be created by talented and motivated individuals and groups, not by greedy, profit driven corporations.

# 09 - The Cloud Doesn't Really Exist

The cloud is very popular these days, but the simple fact is that 'the cloud' is a myth. What is today called a cloud was in previous times more properly termed 'some random server you don't control'. Putting something into the cloud is arcane wizardry that magically transports data and files between one computer an another, it is uploading data to a third-party server from one device and downloading it onto another device, just as has always been the case. Unfortunately, fancy marketing has done its best to dope the uninitiated by obscuring this fact and instilling a false sense of security when transferring personal and often private data around the web.

At Vinland Solutions, we find this underhanded behavior deplorable. As a result, we summarily and fully reject 'the cloud' and all association with it. This does not mean that our software will forgo any connection to the web, networks, or the internet as a whole, but it does mean that any interaction with a computer other than the hosting machine will be labelled clearly, no stealth or unnecessary network connections will ever be made, and fancy marketing jargon will never be used to handwave away important actions as some kind of benevolent magic.

# 10 - Don't Be Evil

Google has forgotten, but we haven't.

No company with a shred of ethics should ever be afraid of declaring that they won't be evil. We have more than just a shred of ethics in our bones, so we openly and proudly declare that we will not be evil.