Archive for the ‘Entrepreneurship’ tag
Ruby on Rails rocks; PHP not so much
I’ve spent the last year writing an enormous amount of PHP code for Dontbuyjunk and Turf. Before we started the project, I would have labelled myself as a server engineer. Even though I had worked on extremely large-scale web applications at my former employer, Ariba, I was on the server team and rarely dealt with any code components that were client-facing. I would have labelled myself also as an advanced Perl programmer. Perl was the only scripting language I had exposure to, so when I jumped into PHP for this project, I immediately loved it. It was leaps and bounds more convenient to code web apps with PHP over Perl. Many of the functions one would need were already there and the developer community, while not as mature as Perl, was certainly rich with depth.
Fast forward a year and my view of PHP has changed quite a bit. I still think its a very convenient way to code web apps that are very view-centric (or page-centric, whatever), such as WordPress where you have the main page, the post page, the archive page, etc. However, for building more complex web applications where there are several components, PHP just doesn’t feel well-suited for the job. Even though it is quite full-featured from a language perspective, it sometimes feels clooged together. Like, for example, the object-oriented support, which again, while being decently feature rich, it feels kind of forced when I’m writing OO code in PHP. It’s like yeah I can write decent OO code but I’m only doing it to follow my own coding convention, PHP doesn’t really give a crap and moreover other programmers working on the project will do their own thing and soon enough you start to get a mess.
This is really where Java shines. It’s a pure, from-the-ground-up object-oriented language and everything from how code is physically organized to the linking to the VM to the language itself is sensical, refined and heck even fascinating sometimes. I sometimes look back to some of the Java projects I’ve worked on, even the gigantic messy Ariba ones, and smile. For me, programming is not just about writing code sufficient to meet the task, it’s about designing elegant, efficient code that you enjoy re-reading – like a good book – can’t wait to have your peers look at. (Granted, there are plenty of times when I’m working on an insignficant task where I do just need something that works.)
I spent the past couple of days learning about and playing around with Ruby on Rails. I’m not going to go into detail about the background of RoR as there are plenty of other sites which describe it better than I can. Basically though, Ruby is an object-oriented programming language created by Yukihiro Matsumoto. One of the design philosophies of Ruby is the “principle of least surprise”:
I believe people want to express themselves when they program. They don’t want to fight with the language. Programming languages must feel natural to programmers. I tried to make people enjoy programming and concentrate on the fun and creative part of programming when they use Ruby.
Sounds good to me. And if you start poking around with Ruby I think you’ll generally agree. What really has brought Ruby into the limelight is the Rails MVC (Model-View-Controller) framework which was created by David Heinemeier Hansson (founder of 37Signals). I’ve played around with MVC frameworks, namely Struts, before and to be honest I never quite felt comfortable with them. That could also be because before when I experimented with MVC concepts, I hadn’t done much full-circle application development. Like I said, I was mainly just a server/back-end guy. But now that I’ve worked on all aspects of application development for the web, I have learned how development does sort of gravitate towards the MVC model. For Revunity, even though we never planned it, we ended up with controllers, models, and views, except that it’s somewhat of a mess. =) As I dug deeper, I was thoroughly impressed with Rails. RoR doesn’t, of course, do anything that you could not do with other languages/frameworks. But, so far, what it does seem to do is make me as a developer more efficient. Much of the tedious stuff is taken care of. I can focus on the meat of the application.

I had a couple conversations with friends about RoR and the question came up about scalability. I started to wonder the same thing and did a lot of digging. It seems like RoR apps do compare well in terms of performance with other platforms. However, I came across this post by David Hansson himself, It’s boring to scale with Ruby on Rails that re-focused my perspective on RoR. Particularly this quote:
The point is that the cost per request is plummeting, but the cost of programming is not. Thus, we have to find ways to trade efficiency in the runtime for efficiency in the “thought time” in order to make the development of applications cheaper. I believed we’ve long since entered an age where simplicity of development and maintenance is where the real value lies.
I very much agree with this. CPU cycles, storage, bandwidth, etc. are all commodities which are getting cheaper by the day. The cost of developers, and I’m talking about the passionate engineers/innovators not just dime-a-dozen coders, remains a very expensive and scarce resource. So, if RoR makes developers more efficient and happy about building applications, then it’s value is truly gargantuous.
I’m looking forward to getting involved in a project, whether for serious or for fun, where RoR will be the right tool for the job. I’m curious to see what issues (other than the obvious ones like relatively limited developer community) I will find with RoR and whether my feelings toward it will change once I have some real experience with it.
“It’s cool…but I wouldn’t pay for it.”
These days, I hear this phrase all the time in reaction to the launch of a new Web-based company. In fact, as a result of this attitude most users have, the vast majority of Web companies that recently launched have no intention of charging their users. They know their users won’t pay, so there’s no point in stunting market adoption by even trying. Such businesses, those that don’t involve a transaction from which they can take a cut (eBay, PayPal), are built to generate cash flow through advertising revenue – at least for the forseeable future until a better revenue model is stumbled upon (or better yet flip the company to GYM before you need to deal with the revenue issue).
Why is it that many people have this attitude towards Web-based services? I think a big part of it comes from the fact that the Web is advancing at such a fast pace. No matter what the product category, barriers to entry are being broken down at an ever-faster pace. This means that whatever the product is, there is likely to be significant competition. And, in the rare case, that the product is the first of its kind, you can expect a couple formidable competitors to be right around the corner. Competitors will often try to gain an edge by charging users less for the service or offer it for no-charge at all.
This phenomenon is now very familiar to most Internet users. When I see a service that sounds useful but costs money, I’m either thinking:
a) Let me try to find a similar service that’s free, even if it’s not quite as good OR
b) I’ll just wait a little while for a competitor to launch the same service and give it to me for free.
Further contributing to this trend is the “lets launch it and see if it sticks” attitude of many Web businesses, especially in the now “Web 2.0″ culture of building simple, user-centric applications. Such applications are generally cheap to develop, launch, and operate. This allows for revenue generation to take a back seat to market share growth. This is reminiscent of the dot-com bubble except that now the cost of failure isn’t that high.
The good news in all this is that people are still more than happy to be profitted off of through advertising. We tolerate long commercial breaks in our TV programming, full-page ads in magazines and newspapers, and chunks of webpages dedicated to text and banner ads. Even though there is the AdBlock extension for Firefox, which effectively blocks most ads, I notice that most people don’t download and use it. But can you really build a big business on the Web that relies solely on ad revenue? From what I can tell, the answer is generally no unless you have tremendous scale (Google) or your service is closely tied to a transaction (Shopping.com).
What’s going to happen is that because, most products aren’t going to “stick”, competition in any one market will shrink significantly. Either of two cases will happen. The first case is that because competition will shrink down to just a couple players, all players will start charging and consumers will be forced into paying. The companies that do survive will have a kick-ass product that you won’t mind paying for (or willing to pay for “premium” service). The second case is that the product will continue to be offered for free by YGM with the intent that they will upsell one of their other premium services to you.
Side Note: An interesting trend that is sprouting up is sites such as Squidoo that will let you earn advertising revenue off of the content that you contribute to the site. As far as I can tell, the site isn’t blowing up with users or content. Contributing content involves me spending time. The amount of money I expect to earn must be significantly greater than the time-value I will invest. A big problem is that most people don’t really understand online advertising and are unlikely to see much dollar value potential in a couple AdSense text ads next to their content.
“How to Make Wealth” by Paul Graham
Out of all the RSS feeds that i subscribe to, Paul Graham’s Essays is my favorite. When I see a new item on his feed, I usually pause what I’m doing and read it. His latest essay this month is titled “How to Make Wealth” and it discusses the difference between money and wealth and how understanding this difference is fundamental to understanding entrepreneurship. Some of my favorite quotes:
Someone graduating from college thinks, and is told, that he needs to get a job, as if the important thing were becoming a member of an institution. A more direct way to put it would be: you need to start doing something people want. You don’t need to join a company to do that. All a company is is a group of people working together to do something people want. It’s doing something people want that matters, not joining the group.
To get rich you need to get yourself in a situation with two things, measurement and leverage. You need to be in a position where your performance can be measured, or there is no way to get paid more by doing more. And you have to have leverage, in the sense that the decisions you make have a big effect.
The problem with working slowly is not just that technical innovation happens slowly. It’s that it tends not to happen at all. It’s only when you’re deliberately looking for hard problems, as a way to use speed to the greatest advantage, that you take on this kind of project. Developing new technology is a pain in the ass.
This is a good plan for life in general. If you have two choices, choose the harder. If you’re trying to decide whether to go out running or sit home and watch TV, go running. Probably the reason this trick works so well is that when you have two choices and one is harder, the only reason you’re even considering the other is laziness. You know in the back of your mind what’s the right thing to do, and this trick merely forces you to acknowledge it.
Roc-A-Tech?
Shawn “Jay-Z” Carter, Sean “Diddy” Combs, Russell Simmons, Damon Dash.
What do these four men have in common? They are all African-American, self-made business moguls who each have a net worth of well over $200MM (almost $500MM in Russell Simmons’ case). Each has used the fame and money they made in the world of hip-hop and parlayed it into huge business empires that include record labels, clothing companies, restaurants, film subsidiaries, beverage brands, and magazines to name a few.
As a result of their success, they each have tremendous influence in the hip-hop community and, as a result, tremendous influence over a large percentage of America’s youth, especially African-American youth. Because of the image that is portrayed by the music, music videos, and other media in the hip-hop world, a lot of kids might conclude that the two best ways to become rich and successful is by becoming either a sports star or a recording artist.
How cool would it be if Jay-Z announced that he was going to use his money to start investing in technology. Let’s say for starters, a fund called Roc-A-Tech that focused on investments in consumer-oriented technology ventures started by young African-American engineers. How cool would that be? The reason why I said “consumer-oriented” is because these ventures would leverage the fame of Jay-Z and friends in the company’s marketing efforts. That’s a huge advantage in itself. If done right, it would be a win for everyone. The fund would further add to Jay-Z’s wealth. But more importantly, he would send a powerful message to the hip-hop community: Science is cool. Entrepreneurship is cool. Use it to get where I am.
I can’t think of any group of four individuals who, through their personal image and business-activities, have more influence on such a large, diverse chunk of America’s youth. They certainly have the money and pull to do it. And they definitely have demonstrated the entrepreneurial spirit to do it as well. Besides, how many Sand Hill venture capitalists can say that they went from being a struggling drug dealer in NYC housing projects to having a net worth of $320MM in less than 15 years?
Ideas for Startups
I find it both funny and annoying when I hear people say stuff like:
1) I really want to start a company, I’m just waiting for an awesome idea!
2) We’re not telling anyone what we’re doing. If someone finds out, they’ll steal our idea and we’ll be screwed.
3) Every time I think of a cool idea, I find other companies already doing the same thing so I give up.
4) Yeah it’s a problem, but I’m sure Google or Yahoo! is already planning to do it so there’s no point in pursuing it myself.
Paul Graham (among other achievements, founded and sold ViaWeb to Yahoo! and is founder of an early stage VC, Y-Combinator) shares his thoughts on ideas for startups. As is typical with his writings, I found this essay enjoyable to read and filled with real, actionable advice.
If you find yourself making statements like the ones above, you should read it. It might change your attitude.

