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

A lot of good points, just a couple I thought of: Software is written to control hardware. In the end that's all a user can use. Computers are a new category of machine, they are super complex, easily reconfigurable general purpose machines. So writing softare doesn't really compare with other trades. In some sense it's like a design, but since the machine is already constructed the building of the particular machine that is the app in practice is trivial (usually, click install). If you compare to building a house,let's say the program is like the complete design. One could design a house that was reused over and over. In some degree this happens (prefab houses). But since the construction costs are high relative to the design, there is usually some room and incentive to customize, just a bit.

For a software app, if it's well written, the end product builds itself. The cost of this last step is virtually nothing. Since the design can be used repeatedly, the software development costs can be spread over a lot of end users. For example, take Excel. A "spreadsheet machine" is pretty useful, it's complicated. You could compare "spreadsheet machine" to a house (or maybe something like a tractor). Aside from tweaking, the software is done, the actual machine (a PC) is a commodity. It's a done deal, anyone who wants a "spreadsheet machine" can get one relatively cheaply. But now, since the machines are out there, along with a huge amount of cheaply distributed software (the OS,languages, compilers) everyone is tempted to make something new. How about a multimedia playback machine? Brand new things that haven't even been made before. Even though there are a bunch of general purpose tools available, it is the "newness" of the app that makes it hard to predict how long it will take to code. New problems don't have existing solutions, so no one can predict how long it will take to find them.

Also, since the actual machine is super complex, which is necessary for such a general purpose device, there is looseness in the designs, leading to many different ways of doing the same thing and inevitable bugs. There are bugs in the OS, so you are going to have bugs in your app. Think about how much more complex a PC Playing back a DVD is compared to a DVD player.



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

Search: