Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This post reminded me of some discussions I've had with a friend about open source. He always says that open source software is written by geeks for geeks.

His point was that the software might be free but there was too high a cost struggling with difficult installs and ugly user interfaces. You can stand out if you bridge that gap.

Did you catch what Matt Mullenweeg said yesterday at Startup School why WordPress succeeded in the early days? He said it was because WP had the quickest and easiest install of any blog software.

Bringing tech we use every day to a wider audience is a viable business model.



His point was that the software might be free but there was too high a cost struggling with...

Well, that's where the common misunderstanding is: free software is not about the cost. When you factor in the cost of having access to the code and of having the rights to redistribute the programs and of being able to make derivative works, the equation, IMHO, is usually in favour of free software.

Remember: free as in freedom, not as in beer.

Having said that, I agree with what you are saying - I often use proprietary software because it fits my needs better or is in some other way superior and I don't require the source code or freedom which the free software alternatives would give me. If I did, however, then the free software would, indeed, be cheaper, even factoring in the hidden costs.


I have been thinking along similar lines, in the context of my latest open source interest, Node.js and the multitude of packages available through NPM.

My main goal right now, aside from building a Node.js hosting service, is to create a platform for content and data management built on Node.JS, CoffeeScript, and NPM, with a plugin and component architecture. I dream about killing WordPress.


If your dream is to kill the competition instead of building a better product, well... you're doing it wrong. Buzzwords and fancy tech don't mean crap to the end user.


Most of the technologies I dream about killing are the ones that I feel are suboptimal and downright frustrating but I am forced to use for lack of a better solution or due to economic forces. I want to kill them because I want them to disappear by being replaced by something better.

For example, I hate most of the Microsoft Office suite, but there really isn't anything that's better for the average user to author documents. I dream of making something that's so good that people will switch and I won't have to deal with Office ever again.


First of all, I do not use any of these terms in a non-specific non-technical 'buzz' fashion. I am actively working on implementing this system and the technology choices I made are not simply following trends, there are real advantages to working with things like Node.JS, NPM and CoffeeScript.

And just because I didn't get into detail in regards to the advantages doesn't mean that wasn't the an important part of the motivation.

For a platform like this, there are two sets of users: the non-technical users and the software developers building plugins and components for the system (not buzzwords).

Let me explain exactly what each of these words means technically in this context so that they cannot be mistaken for buzzwords. I will admit that 'plugins' and 'components' can often mean different things to different people, but I don't believe there are better words to describe what I am building.

Plugins are extensions to the system which are easily added, integrated and configured. This is a feature which is missing from a number of sophisticated web frameworks, but not missing from WordPress. The biggest problem with WordPress is the language it is built on (PHP) and the architecture of the system.

I think that many web developers would welcome a system with something like the types of plugins offered by WordPress, but built on a much cleaner language like CoffeeScript, Node.JS, BDD (not a buzzword, I mean specifically developing starting with Vows and Jasmine, those are actual specific libraries for BDD as per examples such as here http://vowsjs.org/) and a component architecture (I will explain exactly what I mean by that).

Components are reusable, interact on the basis of known interfaces, cohesive but decoupled, and substitutable pieces of software, which often, as in this case, present graphical user interfaces. I intended to use them primarily (but not exclusively) to compose the user interface screens and to provide easy configuration and integration for different aspects of the system.

Building the screens from drag-and-drop, composed components with on-screen configuration rather than using mixed PHP, HTML and CSS code provides a major advantage (obviously) for end users and also (perhaps less obviously for many, unfortunately) developers.

Having reusable, easily configurable components available with built-in UIs could make plugin and application development much more efficient for developers than it is with just (for example) libraries of modules.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: