I figure that since proprietary software developers use copyright to stop us from sharing, we cooperators can use copyright to give other cooperators an advantage of their own: they can use our code.
Lisp isn't a language, it's a building material.
Another trick in software is to avoid rewriting the software by using a piece that's already been written, so called component approach which the latest term for this in the most advanced form is what's called Object Oriented Programming.
The standard library saves programmers from having to reinvent the wheel.
There's only one trick in software, and that is using a piece of software that's already been written.
Ruby inherited the Perl philosophy of having more than one way to do the same thing. I inherited that philosophy from Larry Wall, who is my hero actually. I want to make Ruby users free. I want to give them the freedom to choose.
Our ultimate goal is extensible programming (EP). By this, we mean the construction of hierarchies of modules, each module adding new functionality to the system.
I won't sit here and say an Open Source project will do things faster than a closed source, but one of the reasons why is that it sits on a whole lot of things that came before it.
Adding functionality is not just a matter of adding code.
All programming is maintenance programming, because you are rarely writing original code.
All of our code is open source, so it can be used for other projects.
No matter what, the way to learn to program is to write code and rewrite it and see it used and rewrite again. Reading other people's code is invaluable as well.
Copying all or parts of a program is as natural to a programmer as breathing, and as productive. It ought to be as free.
Good programmers know what to write. Great ones know what to rewrite (and reuse)
Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a trivially different way.
Portability is for people who cannot write new programs.
So Chuck and I looked at that and we hacked on em for a while, and eventually we ripped the stuff out of em and put some of it into what was then called en, which was really ed with some em features.
The mark of a mature programmer is willingness to throw out code you spent time on when you realize it's pointless.