Essay hard it keep secret - reflective paper topics


 

Manage



 
 

Search

 
 
 

News

 

Comments

essay hard it keep secret

essay hard it keep secretEssay hard it keep secret -If they didn't know what language our software was written in, or didn't care, I wanted to keep it that way.[2]The people who understood our technology best were the customers.For years it had annoyed me to hear Lisp described that way. In business, there is nothing more valuable than a technical advantage your competitors don't understand.They didn't care what language Viaweb was written in either, but they noticed that it worked really well.If other companies didn't want to use Lisp, so much the better.It's one of the more profitable pieces of Yahoo, and the stores built with it are the foundation of Yahoo Shopping.He suggests starting with Python and Java, because they are easy to learn.And the reason everyone doesn't use it is that programming languages are not merely technologies, but habits of mind as well, and nothing changes slower. I'll begin with a shockingly controversial statement: programming languages vary in power.How can you get anything done in them, I think, without macros? The designers of Lisp didn't put all those parentheses in the language just to be different. Lisp code, after it's read by the parser, is made of data structures that you can traverse. The source code of the Viaweb editor was probably about 20-25% macros.It is not the most powerful language, but it is more powerful than Cobol or machine language. And as for Cobol, he doesn't know how anyone can get anything done with it.The serious hacker will also want to learn C, in order to hack Unix, and Perl for system administration and cgi scripts.Blub is good enough for him, because he thinks in Blub. By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. The five languages that Eric Raymond recommends to hackers fall at various points on the power continuum.Instead, you should program in a high-level language, and have a compiler translate it into machine language for you.The only thing we were good at was writing software. Any advantage we could get in the software department, we would take.I left Yahoo in 1999, so I don't know exactly how many users they have now, but the last I heard there were about 20,000. And if Lisp is so great, why doesn't everyone use it?And because Lisp was so high-level, we wouldn't need a big development team, so our costs would be lower. We eventually had many competitors, on the order of twenty to thirty of them, but none of their software could compete with ours. Sometimes, in desperation, competitors would try to introduce features that we didn't have.But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well.Lisp is so great not because of some magic quality visible only to devotees, but because it is simply the most powerful language available.So if you're running a startup, you had better be doing something odd. Back in 1995, we knew something that I don't think our competitors understood, and few understand even now: when you're writing software that only has to run on your own servers, you can use any language you want.[1]The Secret Weapon Eric Raymond has written an essay called "How to Become a Hacker," and in it, among other things, he tells would-be hackers what languages they should learn.It might give us a technological edge, and we needed all the help we could get.essay hard it keep secretWhen I was about nine I happened to get hold of a copy of The Day of the Jackal, by Frederick Forsyth.And if you're writing a short, throwaway program, you may be better off just using whatever language has the best library functions for the task.We knew Lisp was a really good language for writing software quickly, and server-based applications magnify the effect of rapid development, because you can release software the minute it's done.We were a tiny startup, programming as hard as we could in order to put technical barriers between us and our competitors.Companies that try to pretend nothing has changed risk finding that their competitors do not. We were all starting from scratch, so a company that could get new features done before its competitors would have a big advantage.This idea is even built into the hardware now: since the 1980s, instruction sets have been designed for compilers rather than human programmers.And so, I'm a little embarrassed to say, I never said anything publicly about Lisp while we were working on Viaweb.So if you're running a big company and you do everything the way the average big company does it, you can expect to do as well as the average big company-- that is, to grow about ten percent a year.We didn't know anything about marketing, or hiring people, or raising money, or getting customers.The problem here is, average performance means that you'll go out of business.And so, by word of mouth mostly, we got more and more users. Today, as Yahoo Store, this software continues to dominate its market.Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub.These sound like rhetorical questions, but actually they have straightforward answers.Languages fall along a continuum [4] of abstractness, from the most powerful all the way down to machine languages, which themselves vary in power. Cobol is a high-level language, in the sense that it gets compiled into machine language.When you choose technology, you have to ignore what other people are doing, and consider only what will work the best. In a big company, you can do what all the other big companies are doing.A suspicious person might begin to wonder if there was some correlation here.Would anyone seriously argue that Cobol is equivalent in power to, say, Python?The assassin has to get past the police to get up to an apartment that overlooks the president's route.Blub falls right in the middle of the abstractness continuum.When you're writing desktop software, there's a strong bias toward writing applications in the same language as the operating system. essay hard it keep secret But a startup can't do what all the other startups do.If a painter were offered a brush that would make him a better painter, it seems to me that he would want to use it in all his paintings, wouldn't he? But there is a contradiction in the conventional wisdom: Lisp will make you a better programmer, and yet you won't use it. And when you're starting a startup, you feel this very keenly. Robert and I both knew Lisp well, and we couldn't see any reason not to trust our instincts and go with Lisp. April 2003(This article is derived from a talk given at the 2001 Franz Developer Symposium.) In the summer of 1995, my friend Robert Morris and I started a startup called Viaweb.Most programmers today would agree that you do not, ordinarily, want to program in machine language.It was one of the first big end-user applications to be written in Lisp, which up till then had been used mostly in universities and research labs.If you do everything the way the average startup does it, you should expect average performance.We weren't writing this code for our own amusement.You write programs in the parse trees that get generated within the compiler when other languages are parsed. So every macro in that code is there because it has to be.But in general, for application software, you want to be using the most powerful (reasonably efficient) language you can get, and using anything else is a mistake, of exactly the same kind, though possibly in a lesser degree, as programming in machine language.And it follows inexorably that, except in special cases, you ought to use the most powerful you can get.But once you've admitted that, you've admitted that one high level language can be more powerful than another.We knew that everyone else was writing their software in C or Perl. If you chose technology that way, you'd be running Windows.If you understand how compilers work, what's really going on is not so much that Lisp has a strange syntax as that Lisp has no syntax. Macros are harder to write than ordinary Lisp functions, and it's considered to be bad style to use them when they're not necessary.There's no dividing line with machine languages on one side and all the high-level languages on the other.You can see that machine language is very low level.When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs. Where they fall relative to one another is a sensitive topic. It would be convenient here if I could give an example of a powerful macro, and say there! But if I did, it would just look like gibberish to someone who didn't know Lisp; there isn't room here to explain everything you'd need to know to understand what it meant.If you're writing a program that only has to do something very simple, like number crunching or bit manipulation, you may as well use a less abstract language, especially since it may be slightly faster.What was novel about this software, at the time, was that it ran on our server, using ordinary Web pages as the interface.The same thing will happen if you're running a startup, of course.However skeptical the Blub programmer might be about my claims for the mysterious powers of Lisp, this ought to make him curious. essay hard it keep secret Finally, the truly serious hacker should consider learning Lisp: Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.And in fact, our hypothetical Blub programmer wouldn't use either of them. It doesn't even have x (Blub feature of your choice).If this were so, we could offer a better product for less money, and still make a profit. We had a wysiwyg online store builder that ran on the server and yet felt like a desktop application. But with Lisp our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release.Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to.A lot of people could have been having this idea at the same time, of course, but as far as I know, Viaweb was the first Web-based application.The average big company grows at about ten percent a year.And to support this claim I'll tell you about one of the things I find missing when I look at the other four languages. And believe it or not, what they do is related to the parentheses. They are the outward evidence of a fundamental difference between Lisp and other languages. And not in the trivial sense that the source files contain characters, and strings are one of the data types supported by the language. But I think I can give a kind of argument that might be convincing.He walks right by them, dressed up as an old man on crutches, and they never suspect him. We wrote our software in a weird AI language, with a bizarre syntax full of parentheses.Whatever language people happen to be used to, they tend to consider just good enough.The survival rate for startups is way less than fifty percent.The main character is an assassin who is hired to kill the president of France.It won't get you a job, except perhaps as a classics professor, but it will improve your mind, and make you a better writer in languages you do want to use, like English. So if Lisp makes you a better programmer, like he says, why wouldn't you want to use it? What he says about Lisp is pretty much the conventional wisdom. If Lisp really does yield better programs, you should use it. A company that gets software written faster and better will, all other things being equal, put its competitors out of business. In a startup, if you bet on the wrong technology, your competitors will crush you.This is the same argument you tend to hear for learning Latin. The reason Latin won't get you a job is that no one speaks it. But Lisp is a computer language, and computers speak whatever language you, the programmer, tell them to. Software is a very competitive business, prone to natural monopolies.We would end up getting all the users, and our competitors would get none, and eventually go out of business. By the time journalists covering the press release got round to calling us, we would have the new feature too.Ten years ago, writing applications meant writing applications in C.Our hypothesis was that if we wrote our software in Lisp, we'd be able to get features done faster than our competitors, and also to do things in our software that they couldn't do.It must have seemed to our competitors that we had some kind of secret weapon-- that we were decoding their Enigma traffic or something.It seemed such a novel idea to us that we named the company after it: Viaweb, because our software worked via the Web, instead of running on your desktop computer.Most Perl hackers would agree that Perl 5 is more powerful than Perl 4.It let them build great looking online stores literally in minutes. Six months later, when Yahoo bought us, we had 1070 users. essay hard it keep secret They didn't care what language Viaweb was written in either, but they noticed that it worked really well. essay hard it keep secret




Status: FreeWare
OS: Windows|Mac OS
Autors 2456
Update: 26-Nov-2017 18:06
Cat: Home »