Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Friday, November 5, 2010

The Lego Principle: How building from blocks, sets and platforms applies to software

Do you remember playing with Legos when you were a kid? I was thinking about my surplus of Legos the other day, and it got me thinking about software…

When I was a kid, I literally had tens-of-thousands of Lego blocks. It didn't start this way. I grew my collection from the first few space sets I could afford into a massive armada of ships and bases. With each set I added something new to the foundation of what I could already create with my current Lego supply.

Software developers do much the same thing, starting out with a few basic pieces. By learning and accumulating more interesting bits of code overtime, more designs and possibilities begin to emerge. Eventually developers collect a whole range of different building blocks that they can use and the number of possibilities skyrocket, which we refer to as exponential growth.

This phenomenon also occurs on a more local level at NCH Software. Our products are based upon blocks which can be built into a powerful conglomeration of tools. With so many software products, we often use blocks of code, or functions, from our library in multiple products and stack them together to add to the features.

One of the more banal examples of using these building blocks is in our dialog windows. Using the same code ensures that our software products will have a similar look and feel throughout. You wouldn’t want to build a castle with a mixture of Legos and Lincoln logs, would you? A more interesting example is our sound effect library, which is available in WavePad, VideoPad, and MixPad. Think of each of those applications as an already-constructed Lego spaceship, and the sound library is a fancy laser gun we’ve added to all three to make them that much more effective at what they do.

Yet another example is the weblet. In some programs, the weblet is where you go to run your business when you are away from home. In others, it’s where you configure the settings for your phone system, or where you test the video streams you are going to put on your website. The weblet is a foundation we lay down and build on top of to suit the needs of the individual program.

Lego has the right ideas – expandable and always interoperable. At NCH Software, we have the same ideas so that all of our products fit our users' needs. By making core features in our library, we gain a lot of dynamic power to make future products more robust, making our entire development team more powerful. And you can never have too much power.

Friday, August 6, 2010

Do You Know What Open-Source Software Is?

At the end of July, WavePad Sound Editor was highlighted as the Download of the Day by the good people over at Think Digit. We are always thrilled when WavePad gets recognized, and they did a great job of highlighting the amazing features in their review while recommending you download and try the audio editor. But one of the things they said made me pause. The intro says, "There are a few very good reasons why we love WavePad – it’s simple, it's free, it's fast and it’s open-source." This is an absolutely wonderful quote except for one thing: WavePad isn't open-source. There is a lite version of WavePad that is available for free for non-commercial use in addition to the Master's edition, and I can't help but wonder if people equate free software with open-source, especially when there are technology writers out there who are falling into this trap?

What is Open-Source?
learn more about open source software The most basic definition of open-source is that the source code of an application is made freely available. This allows outside computer developers to make improvements or customizations to that source code and create new versions of the software. There are additional requirements for software to truly be open-source, and if you are interested in the topic a good place to learn more would be at the Open Source Initiative. So you can see that because NCH Software doesn't make any of the underlying code of our programs available, even though we have several free software applications, we don't meet the criteria of being open-source software.

So while it is true that we aren't open-source, we are still very proud of our WavePad audio editing software and we are open to suggestions if you have any ideas you want share with our development team. And in the mean time maybe today is a good day to download WavePad and find some of your own reasons to love this wonderful little audio editor.