Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Thu, 10 Jul 2003
Yukihiro Matsumoto: "The Power and Philosophy of Ruby"
Matz, the author of Ruby talked about the philosophy that he used to design Ruby He told us he was inspired by Samuel R. Delany's babel-17, which described an artificial language that was so powerful that it could brainwash its users.
Some of his key ideas:
[16:50] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
- Choosing good names
If you give a good name for a concept 80% of design is done already. We have to care about every name we name (progs, files, mods, vars...) - Understanding humanity
Man is not a machine. If you are a machine you can just talk to the machine directly (imagine modem carrier negotioation sounds). The history of languages is the history of abusing (machine) power. Build a stress graph of languages. Total stress (area under the curve) is important, but maximum stress at any given point is important too. When you see repeated errors, you have to do something. Consistency helps to form common sense. Creativity is hindered by arbitrary restriction Simplicity is NOT a goal: Things too simple are difficult and Things too complex are difficult Principle of succinctness: Fred Brooks - people can generate the same number of lines of code per day, regardless of language - Embedding Hidden Messages
There's more than one way to do it, but language can encourage one by making it more comfortable than others. Examples from Ruby:- Ruby supports mixins not multiple inheritance, hidden message: multiple inheritance is bad.
- Ruby has global variables but you must prefix them with $. Code with too many $'s is ugly, indicating a problem with your code.
- Dangerous methods have ! in name, because of side effects. This forces you to recognize that you are doing something side-effecting.
OSCON: Mitchell Kapor "Open Source on the Mainstream Desktop"
Kapor's (pronounced Kay-poor) keynote was about a study that OSAF commissioned to study the prospects for Linux on the Desktop. The base conculusion of that study is that Linux will gain non-trivial market share of the deskstop, but that it will take a while to do it. This will be driven by the public sector, and by countries outside the US. He also announced some things that OSAF is going to try to do to accelerate this process.
[16:26] |
[computers/open_source/osaf] |
# |
TB |
F |
G |
0 Comments |
OSCON: Grab Bag
I'm going to do the rest of the talks and activities in this post because I'm tired and it's late.
Alex Martelli: "The Template Method Design Pattern in Python"
I got to this talk late because I had a long break talk with Danese Cooper from Sun and Daniel Steinberg from O'Reilly regarding java.net. There are some people at Sun who get open source and Danese is definitely one of them. More on this later after I have a chance to think about it. The discussion also include James Duncan Davidson, and I stuck around just to say hi and find out more about his move to Portland. The net effect was that I missed the first 2/3 of Martelli's talk which was a bummer because I've been very impressed by his posts in comp.lang.python. By the time I got there, he was talking about using introspection in the abstract base class of the template method pattern to selectively execute methods in the subclasses. Jason Hunter: "What the X is XQuery"
I was a query language specialist as a graduate student, so this was an easy talk. I wanted to see what Jason's been up to, and I got to see some of what the latest XQuery draft looks like. There's some nice stuff in there now, I can see why the Microsofties are excited about this. Other useful info: Jason is recommending the Cerisent XQuery implementation. The coolest hidden XQuery implementation: Apple's Sherlock BOF: Dynamic Languages Support in the Microsoft CLR and ECMA/ISL CLI
This BOF was run by some folks from the MS CLR team. They appear genuinely interested in getting feedback from the Perl/Python/Ruby developers on what they can do to improve support for dynamic languages in the CLR. Hey Sun, WAKE UP!!!! BOF: "Geeks doing Good"
This was an interesting BOF in the heels of the Geek Volunteerism Summit that was held here during the tutorial days. There were two classes of volunteerism that we discussed. 1) helping non-profits and schools in the US 2) putting people on airplanes to countries like Ghana. This is a really good idea, and open source has a great fit for both classes. A few groups told anecdotes about what they've done. Good stuff.
[01:59] |
[computers/open_source] |
# |
TB |
F |
G |
2 Comments |
I got to this talk late because I had a long break talk with Danese Cooper from Sun and Daniel Steinberg from O'Reilly regarding java.net. There are some people at Sun who get open source and Danese is definitely one of them. More on this later after I have a chance to think about it. The discussion also include James Duncan Davidson, and I stuck around just to say hi and find out more about his move to Portland. The net effect was that I missed the first 2/3 of Martelli's talk which was a bummer because I've been very impressed by his posts in comp.lang.python. By the time I got there, he was talking about using introspection in the abstract base class of the template method pattern to selectively execute methods in the subclasses. Jason Hunter: "What the X is XQuery"
I was a query language specialist as a graduate student, so this was an easy talk. I wanted to see what Jason's been up to, and I got to see some of what the latest XQuery draft looks like. There's some nice stuff in there now, I can see why the Microsofties are excited about this. Other useful info: Jason is recommending the Cerisent XQuery implementation. The coolest hidden XQuery implementation: Apple's Sherlock BOF: Dynamic Languages Support in the Microsoft CLR and ECMA/ISL CLI
This BOF was run by some folks from the MS CLR team. They appear genuinely interested in getting feedback from the Perl/Python/Ruby developers on what they can do to improve support for dynamic languages in the CLR. Hey Sun, WAKE UP!!!! BOF: "Geeks doing Good"
This was an interesting BOF in the heels of the Geek Volunteerism Summit that was held here during the tutorial days. There were two classes of volunteerism that we discussed. 1) helping non-profits and schools in the US 2) putting people on airplanes to countries like Ghana. This is a really good idea, and open source has a great fit for both classes. A few groups told anecdotes about what they've done. Good stuff.
OSCON: Panel "Open Development and Commercial Business Models"
Panelists: Matt Asay (Novel), Robert Lefkowitz (On Vacation), Jason Matusow
(Microsoft), Tim O'Reilly, David Stutz (On Vacation)
Unfortunately this panel never quite made it off the ground for me.
There was a lot of sniping at Microsoft, which didn't help get to the
main topic. David Stutz tried a few times to get the discussion back on
track. Here are some highlight quotes:
[01:30] |
[computers/open_source] |
# |
TB |
F |
G |
1 Comments |
- Matusow: we have to differentiate between base and extended functionality"
- O'Reilly: Is the power balance between users and vendors fair?
- Stutz: open science is a good model for open source
- Lefkowitz: look at how data is licensed to get ideas for code: per eyeball, per sheet of glass.
OSCON: Robert Lefkowitz "Protecting the Innovation Premium"
This was by far the best talk of the day.
He pointed out that today we all believe in the notion of an
innovation premium, that is, if we've invested resources in the
creation of something, we are entitled to get something (not
necessarily money) in return. This idea started in the 1400's with
the advent of compilations of works. Lefkowitz notes that even GNU
people believe in the innovation premium because they insist that you
call their system GNU. They value being credited as the means of
return.
Along the way he stopped in Ecclesiates 2:18-21
18 Yea, I hated all my labour which I had taken under the sun: because I
should leave it unto the man that shall be after me.
19 And who knoweth whether he shall be a wise man or a fool? yet shall he have rule over all my labour wherein I have laboured, and wherein I have shewed myself wise under the sun. This is also vanity.
20 Therefore I went about to cause my heart to despair of all the labour which I took under the sun.
21 For there is a man whose labour is in wisdom, and in knowledge, and in equity; yet to a man that hath not laboured therein shall he leave it for his portion. This also is vanity and a great evil. He pointed out that v.21 is about venture capitalists. He also reminded us that the context of the passage is "we're all gonna die and we can't take it with us" There was a detour for 3 technical definitions for freedom, if you want this, e-mail and I'll post, but I'm behind in blogging my notes. He then flew through some business models:
[01:16] |
[computers/open_source] |
# |
TB |
F |
G |
1 Comments |
19 And who knoweth whether he shall be a wise man or a fool? yet shall he have rule over all my labour wherein I have laboured, and wherein I have shewed myself wise under the sun. This is also vanity.
20 Therefore I went about to cause my heart to despair of all the labour which I took under the sun.
21 For there is a man whose labour is in wisdom, and in knowledge, and in equity; yet to a man that hath not laboured therein shall he leave it for his portion. This also is vanity and a great evil. He pointed out that v.21 is about venture capitalists. He also reminded us that the context of the passage is "we're all gonna die and we can't take it with us" There was a detour for 3 technical definitions for freedom, if you want this, e-mail and I'll post, but I'm behind in blogging my notes. He then flew through some business models:
- Creating accounting / Sharia-compliant mortgages.
If you are trying to sell something that you are not allowed to sell, pretend that it is something you are allowed to sell. In Islam, it is forbidden to lend money and collect interest. But under Sharia law, there are ways to buy a house that involve interest-free mortgages and various kinds of fees. Turns out that interest-free with fees == interest at some rate. This is a way of satisfying a religious aversion to interest. The relation to open source: software is free, so you can't sell it. But you can sell "subscriptions". He put up the 10-Q's for Borland and RedHat and showed how the numbers tell us that license revenue and subscription revenue, respectively, are the same when related appropriately. - Turn "open" software into proprietary software
- Liability Insurance / Warranty
If you believe that your software is less defective than your competitors, ask the goverment to require warranties and then initiate product liabilty lawsuits when they fail. -
Recycling
Legislate no end of life for software - eventually companies will get tired and open source the old versions. You can charge to maintain the older versions - Craft Guilds
Lefkowitz tells story about his broken refrigerator. He opens it up and there's a wiring diagram inside. Being an EE by education, he can fix that. The fine print says "for license repair personnel only" The wiring diagram is open source. So require licensing / certification of programmers and stil charge for the software.
Lefkowitz wants a new GPL that says "you can change, modify, distribute, etc if and only if you are a licensed programer". - Manufacturing Process
Buy an open source web server via IBM or Oracle - Education / Patronage
The sophists did some teaching in public, but witheld information to be taught only in secret and for a fee. This is JBoss.