Domain: paulgraham.com
Stories and comments across the archive that link to paulgraham.com.
Comments · 1,105
-
Work for your sense of self
Money is great, but all it represents is the investment of your time. It is a limitless commodity. Your time, unfortunately, is not.
I watched Groundhog Day recently. It's nice that Bill Murray learned to love and to play the piano, but I probably would've spent the first million years in the public library. If they'd had the internet then, maybe the first billion years.
Anyway, I digress. You don't have a billion years, you have three score and ten, plus or minus two score. For a huge chunk of that time, say forty hours a week for several decades, you're at work.
Think about what kind of life you want to have. If it's a life filled with a lot of stuff, maybe you belong at a job where you can buy it all. If it's a life where you do what you want after age 40 or 50, maybe you belong at a job where you can save up the millions of dollars necessary. But if it's a life where you do meaningful work, maybe you need to leave.
The meaning of work is intertwined with the meaning of life. I can't tell you what the meaning of your life is. Even if I knew, you wouldn't listen; at some level, you have to discover it for yourself. 40 hours a week is more than a third of your waking life, so figure out if you need your work to mean anything to you.
Also consider that your work is reshaping your personality. I got back to graduate CS after several years of work that was often drudgery, managed by someone else, with my work time accountable to the nearest six minutes. Experiences like that wear away at you; the thousand tasks you do will recreate your mind. Figure out if they're changing you in a direction you like.
Paul Graham wrote a good essay about work recently. -
Re:You're not the first one....
Some literature (well, anecdote) on why you should use lisp: http://www.paulgraham.com/avg.html
Indeed, it is just an anecdote. And as it is just one anecdote and it is the single example brought up again and again, I would not take it as generally useful. -
Re:You're not the first one....
Some literature (well, anecdote) on why you should use lisp: http://www.paulgraham.com/avg.html
-
Leave them to rot
While you are still energetic enough for these sort of things to genuinely bother you, you should quit and join a start-up.
-
Big mistake
You made a common mistake. You made the mistake of correlating popularity to quality.
Java has been hyped enough that people have been forced to use it by their bosses. This necessitated the creation of many different libraries for different purposes.
"I want our cellphones to use Java, I've heard Java is good." says the PHB.
Face it, if quality was the only deciding factor in programming language support then Lisp would already have dominated and wiped out other languages long ago. Java was hyped into star-dom. End of story. -
Lisp not accessible?
Lisp isn't accessible? Is that because of the parens or some other reason? If it's the parens, then obviously people are too superficial to look past the syntax (which is minimalistic to say the least). I've coded (and continue to code) in PHP, which has C-like syntax. When I first saw Lisp it was a bit different, but that's all it was: different. In fact, because there is so little syntax to worry about it makes the language even MORE accessible than C-like languages.
I've been reading Practical Common Lisp, and I have to say I love Lisp so far. I'm down to the practical examples and continue to enjoy the experience of reading, learning and coding lisp. It's certainly an excellent book and it shows, since it is a finalist in the Jolt awards.
Paul Graham is a big advocate of Lisp. He made big bucks selling is 3 year-old company to Yahoo, a company that was built off of software coded in Lisp.
Of course, one can't forgot the quote from Eric Raymond's 'How To Become A Hacker': LISP is worth learning for a different reason -- 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. I especially like these quotes from the blurbs section of the PCL website:
"This book shows the power of Lisp not only in the areas that it has traditionally been noted for--such as developing a complete unit test framework in only 26 lines of code--but also in new areas such as parsing binary MP3 files, building a web application for browsing a collection of songs, and streaming audio over the web. Many readers will be surprised that Lisp allows you to do all this with conciseness similar to scripting languages such as Python, efficiency similar to C++, and unparalleled flexibility in designing your own language extensions." --Peter Norvig, Director of Search Quality, Google Inc; author of Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
"Please don't assume Common Lisp is only useful for Databases, Unit Test Frameworks, Spam Filters, ID3 Parsers, Web Programming, Shoutcast Servers, HTML Generation Interpreters, and HTML Generation Compilers just because these are the only things happened to be implemented in the book Practical Common Lisp.--Tobias C. Rittweiler, Lisp Programmer
Lisp was once in the same position C, C++ and now Java were/is in. It was one of those languages you had to know if you were going to get a job in programming. The only reason why it isn't still in that position is because it was ahead of its time. It was once thought to be slow, but Lisp compilers can compile to machine code and run as fast or even faster than C/C++. Lisp gives you the flexibility to code quickly to get features working and it also allows you to go back and optimize your code to perform at C levels.
So don't make the mistake of thinking Lisp is simply a worthless, academic language. Just check out Practical Common Lisp and see for yourself! -
Programming languages 100 years from now
In a somewhat related essay, Paul Graham is writing about what he thinks programming languages will be like in 100 years.
-
Re:Dynamic typing
If the topic of this book interests you, it is also quite worth reading some of Paul Graham's essays.
For the dynamic versus static typing debate, in particular read http://paulgraham.com/hundred.html
I've done both styles quite a lot, and I can say that static typing really is overrated. It sacrifices too much language power for what is really too little benifit (the benifit is often perceived to be much greater than emperical studies of real-world coding errors seem to confirm). The main problem that many static-typing fans seem to have is a lack of exposure to the other way of doing things--and enough experience to allow themselves the freedom to break old habits/patterns to actually see the power of dynamic typing. -
Similar SituationI'm currently in a similar situation. I've got more years and experience on you, but over the past year I worked two positions when they fired the IT Manager. When they decided to fill the position, I wasn't considered. Obviously I wasn't qualified to do the job I had been doing for the past 10 months.
Use jobs sites, lots of them. Set up agents on Monster, Dice, CareerBuilder, etc. Each night when you get home, spend some time checking those agents and applying for jobs.
Use a recruiter that does not charge you a fee. Most recruiting companies today make their money from the hiring company. Call recruiters during your lunch break and ask up front how they are paid. If they want a fee from you or (worst I've ever heard) half of your first year's salary at the new job, then leave. If they want your business, they'll do something about it.
Before serving as the TI Manager, I regularly worked 10 hours days. I'm one of those people that believe hard work will get you somewhere, and if you do a good job, surely someone will notice and reward you. UTTER BS, at least at this company. I'm not to the point of refusing projects when my plate is already full, but I do not let anything other than emergencies keep me from leaving by 6:30 every evening. Because I'm in infrastructure, evenings and weekend work are par for the course, but often that's planned and I can work my personal life around it.
I too want something better. After reading http://www.paulgraham.com/love.html , I did a bit of soul searching. I'm definitely not happy in IT after 22 years. Computers used to be fun to me. Now even tinkering with mine at home feels like work. I have a need to help people, and I think I'm supposed to be some kind of healer. I know I'd be happy if I knew my work helped someone else. I haven't taken action yet, but I know of opportunities for massage therapy and possibly chiropractic care. In order to have time to work on this, I'll need a less demanding job....
My interview is next Wednesday. Wish me luck.
I think others have summed it up well here: take care of yourself, say "no" when warranted, and make the time to make a change.
-
Re:Learn to say NOYou are absolutely right! I've worked 12+ hour days and 6-7 day weeks (both simultaneously and separately), and it's not sustainable for more than a couple of weeks. Your mental and physical health will degrade too quickly to recover. A work-free (or low-work) day on the weekend is absolutely vital. Any employer who doesn't recognize this is taking advantage of you, regardless of whether you're "Exempt" or not.
If you can't refuse some of the overtime or extra work, there are problems. Talking to your boss can hardly hurt, especially if you're planning to find a different job anyway. What's the worst that can happen? He sends you off to look full-time. There's always the chance that he'll be understanding and lighten your workload. Obviously I don't know him, but even real jerks are people too, and will sometimes even understand other peoples' problems. Plus, as per the cliche, the squeaky wheel gets the grease. You don't say anything about your problems, nobody's going to do anything about it.
As others have suggested, talk to other people who you know. Friends and family often have friends of their own, and can get the word out, especially when they see that it's a real problem for you. Get your resume posted on Monster.com, dice.com and other job hunting websites, and then update them every few days. Employers seem to only look at the newest resumes posted, so besides looking through the listings yourself, your best odds are to just tweak a few lines in your resume and re-upload it. It only takes a couple minutes, and it could be worth a new job.
As for interviewing, most hiring managers prefer to interview during the day, though some will be more understanding than others. The options here are obvious: Work out another time, or find a way to take off from work, be it vacation, sick time, or a personal day. Of course there's always the just-disappear-for-the-afternoon option, but that might not be a good idea, even if the interview is a sure thing.
Oh, and read this... http://www.paulgraham.com/love.html (How to do what you love)
I wish you the best of luck. Nobody should be stuck in a painful job.
-
Re-assessI'll first direct you to a previous article's link: http://www.paulgraham.com/love.html
After you've read that, ask yourself, "Do I really enjoy what I do?"
If the answer is "No," by all means, look for another career and best of luck to you. Granted wherever you go and whatever you do, there's a 97% chance you'll be working with a computer on some level. Furthermore, because you are IT experienced, anyone and everyone that finds that out will be asking you for help, so it won't be as if you're leaving the IT career, you'll just have another, probably more satisfying career on the side while you continue to do IT support.
If you answer "Yes," all I can say is knuckle down.
Welcome to the pits, the grind, the bottom rung. Regardless of your title or experience in IT, executives consider you just as important as the janitor. I've been working in IT professionally for 22 years now. I'm a system administrator for a small company, and every day I leave feeling as if I accomplished absolutely nothing. Even when I perform small miracles (served as SysAdmin AND IT Manger for one year), I receive no recognition, no thanks and definitely no financial reward or time off. "It's expected."
As for the training, the company definitely owes you that training if they expect you to fill the role. However, it is up to the discretion of the company leaders. We've got a network admin who's in the same situation as you. They moved him from desktop support to network admin, changed him from hourly to salary and told him to get MCSE certified on his own time. The company will foot the bill for the tests. I know, whoopity do.
I was fortunate in my training that the company was doing well and for the nine months I had been here to that point, I had no training at all. I was able to financially justify the cost of a MCSE bootcamp. It was the most intense two weeks I've ever experienced yet, but it was worth it. I'm a husband and father of two kids. That's part of the reason I chose the bootcamp: to avoid household distractions and stress. I honestly cannot suggest anything to help you as a wife, homemaker and breadwinner except to get your husband to share your plan of training and pitch in more than he does now. If he can just be self-sufficient, that would probably help you out considerably. I know I don't generally contribute enough at home, but if my wife wanted to commit to something like training (or college or an evening job), I'd step up to it.
You might talk to HR or your manager and see if you could schedule an hour or two a week at work for study time, or even better, a half day off each week dedicated to studying. It's a long shot, but worth the time to ask. I'm guessing like many of us you work 45, 50 or more hours per week. If you're salary and still get your work done, there should be little issue. See if they'll agree to a trial run.
Personally, I've been re-evaluating my career over the past two years. It's not worth it. I enjoy technology and I enjoy solving problems, but what a company makes me do for work is completely unsatisfying. I'm working on making a career change myself.
-
Re:With $500 M to $1.4 B, why keep working???
-
Good article, but Graham is biased
Graham's point seems to be that in the hard sciences there are definite answers for questions, a clear "right" and "wrong", whereas in subjects like literature there are not (except in the trivial sense of a grade-school-style quiz that simply tests whether or not you actually read the book).
The main point of the article is to do what you love. When Graham compares those who write "dreary" papers to naturally curious mathematicians who do math simply for the love of it, he strongly implies no one loves thinking about language, identity, gender, and I would add, media, art, music, etc.
If Graham truly believes the study of literature cannot be loved because it does not yield exact answers (which I don't think he does), then he may as well write off all artists, writers, and musicians (and those who love their works) a people who don't love what they do. My guess is that Graham is prejudiced against the humanities in general and English/Literature folks in particular. I'm further guessing (betting, even) that Graham's prejudice is the effect of bad personal encounters with someone who loves literature.
What follows is an email I wrote to Graham about his article on doing what one loves:
Dear Mr. Graham,
I really enjoyed the essay you have here
http://www.paulgraham.com/love.html
You say many insightful and, might I say, wise things about how to identify what one loves and how to rout out the truth of those who claim to love their work but in fact do not. I come into contact with hundreds of (college) students a day and it is all too plain there are many who don't know what a love of work means.
That said, I was very surprised to read
Math would happen without math departments, but it is the
That sentence overlooks the obvious fact that there are many people who believe precisely the opposite. Having a strong mathematics background as well as a strong background in literature, I will tell you that you are wrong on this point.
existence of English majors, and therefore jobs teaching
them, that calls into being all those thousands of dreary
papers about gender and identity in the novels of Conrad. No
one does that kind of thing for fun.
There are people who love writing about literature (not writing literature) so much that they would risk life and limb to do so. One of those people was Mikhail Bakhtin who was persecuted by the Russian government for his ideas regarding literature. Bakhtin did not write novels or poems, but what we today identify as literary and cultural criticism. Bakhtin's example is just one of, I'm sure, dozens of others.
So, again, thank you for [your] insightful article. You might, however, want to rout out any moments of blind prejudice as they do not harmonize well in so well-written an essay.
Sincerely,
[mistersquid] -
Re:Blah.
Graham certainly doesn't think luck doesn't have a large component in success. In another recent article, he writes about Bill Gates this way:
There is a large random factor in the success of any company. So the guys you end up reading about in the papers are the ones who are very smart, totally dedicated, and win the lottery. Certainly Bill is smart and dedicated, but Microsoft also happens to have been the beneficiary of one of the most spectacular blunders in the history of business: the licensing deal for DOS.
He's explaining what he sees as necessary conditions, but nowhere in any of his articles does he ever claim that his advice provides a sufficient condition for success.
-
Kuhn's theories on language, anomaly, genius
Exactly. Kuhn's ideas about how scientists who are creating paradigm shifts are reacting to breakdowns in the normal order of things are decades old but much more insightful. Here is a thumbnail sketch of one such idea.
Kuhn saw scientists in a given specialization as members of a particular linguistic community. Genius revisionings of whole specializations or even whole sciences happen when the normal language of that science, like dynamics or chemistry, starts to prove inadequate to the task of describing what the scientist sees. Strange anomalies begin to appear that have no place in the old language.
A new language is proposed by a young scientist or someone new to the field, and a debate over the old vision and the new vision begins. It is beset by communication problems ranging from the ambiguity of words used differently in the two contexts, to the structure of reality itself in the two languages. The old vision and the new vision don't translate. But the genius is so convincing, or so elegant, or provides such surprising and shocking evidence, that the new language wins out eventually. Or, alternatively, the old language is sufficient and the new one fails to provide the evidence it should.
Incidentally, this provides a very interesting context in which to view the evolution vs. intelligent design cultural debate. Intelligent design isn't really giving scientists a new framework to work within, no new language from which to view the world, a language that resolves outstanding problems with evolution and yet is fertile enough to lead to new problems suitable for science.
But it also provides an interesting way to think about what post-evolution biological science might look like. From my layman's (CS scientist's) viewpoint, one big change might involve the causes of life and death. They are a little fuzzy for edge cases, like the origin of the proto-cellular organism, or the status of a dormant virus, or the possibility of extending human life beyond the hundred-year range. Some new language exploding these fuzzy terms, life and death, might arise that puts evolution in a larger context, if such a thing is possible.
Great science is made out of just such analogical visions, a great idea applied out of place. The linked article mentioned Darwin's geology book; Darwin applied concepts about rocks changing over time to biology and the rest is history.
In any case, the approbation of a group of scientists is key to extending the life of a scientific paradigm; these are the professional problem solvers who recognize the salience of the problems the new paradigm solves and the power of the language the new paradigm provides. They also work within the boundaries of the paradigms, hunting vigorously for anomalies, guided by a sense that they are making generalizations concrete, and yet at any moment ready to make an observation to turn the universe on its head.
One scientist alone is like a voice in the wilderness, speaking a private language. But geniuses are nurtured in good company, by a challenging community. Richard Hamming said as much in a great talk about doing great scientific work. If you want to read about genius, read that.
"The essence of science is cumulative. By changing a problem slightly you can often do great work rather than merely good work. Instead of attacking isolated problems, I made the resolution that I would never again solve an isolated problem except as characteristic of a class." -
Misleading
The summary is fairly misleading. (gasp!) All the article says is that geniuses who accomplish great things tend to work closely with other geniuses. The summary implies that you are only a genius if you accomplish great things. There are probably a fair number of geniuses in the world that spend too much time on the small stuff to do great things.
-
Paul Graham
I thought that Paul Graham and some other folks, solved this problem with Bayesian filtering.
Paul Graham has a famous essay, A Plan For Spam: http://www.paulgraham.com/spam.html -
A Plan for Spam
I scoff at Bill Gates' "efforts" to reduce spam. What has he done precisely?
Probably just deferred the responsibility to one of his underlings. Aside from that, he talks about crazy methods such as deciding how much money the sender has to pay you before you open the e-mail.
Gates has plenty of articles which detail how much he hates spam. Anyone can sit down and write this, but Gates gets the high exposure interviews with the Wall Street Journal and the AP.
Gates is all talk. If you want to read some articles from some very interesting people, check out A Plan for Spam by Paul Graham. It talks about simple ways to write Bayesian spam filters and does a very good job at describing how they work. Another valuable member of the anti-spam community is Jonathon Zdziarski who has written many books about how to actually get rid of spam. You can also read the Slashdot interview with him. -
Re:Ask a question if you don't mind
One of my favorite pictures of all time:
Jobs and Wozniak with a Blue Box
http://www.paulgraham.com/bluebox.html
-
Paul Graham
Paul Graham's take on Web 2.0 is a good read.
-
Re:Doomed to failure?
Exactly. The correct solution to this problem is to make the economic situation in France such that people are more likely to try to create wealth, because they'll be able to keep more of it.
The reason they think they need the government to do this is because nobody would start a Google in France today, and not because the French aren't smart, but because the economy in France is not the economy in San Francisco.
Of course, when all you have is a hammer, everything looks like a nail, so the government only knows "let's budget quantity of money X to solving this problem", and nobody bothers to think about why the problem exists in the first place. So in this case even their own thumbs look like nails. -
Paul Graham on the importance of tools
Hotmail's suckiness is a management problem, not a technology problem. The technology is there, but [...]
Paul Graham argues convincingly, that a tool can make all the difference (he advocates Lisp).He submits, of course, that any program can be written in any reasonable language -- for they all are, after all Turing machine's equivalents. But the quality of the tools can make a difference between a feature being added next week and not at all.
If Hotmail's admins are back to command line and scripting anyway, maybe, they should've stuck with FreeBSD.
Look at how quickly Google is rolling new things out -- their platform allows them to.
-
Re:The other white meatFirst of all, you use the term "taboo" in your proposed definition of taboo. That never makes for a helpful definition.
Not at all, s/he does not attempt to define it, merely to place an extra condition on something defined elsewhere.
Paul Graham has a slightly better elucidation of a similar idea.
-
Re:Yeah, well... but...The Guardian does do some nice work... like this blog/column on the sad state of science journalism in Britain.
;)Eg, Microbiologists raising doubts? It must be a cover-up
There are times when it's just great to be alive: you're running through the archives, the wind's in your hair, suddenly you stumble on a gem from last year's Sunday Mirror and it just makes you bless the day you decided to become a sarcastic and hateful campaigning science journalist.
How many microbiologists does it take to change a tabloid story?
The Economist is also worth noting. It not infrequently gets things wrong, but it's less of a joke than most of the U.S. media.
Guardian, Independent, Times.
And Google News.Regardless of overall quality, non-US press can be a useful supplement for US readers, as their set of unsayable/unshowable things is different than that of the US press. Eg, avoiding the "breakfast rule" for photos (can't have appetite-disturbing photos... even of war), or the Independent's story today
Lobbying is Washington's grubby secret. Some say lobbying is part of the democratic process. Others claim it is legalised bribery, even corruption. But love it or loathe it, it is the way Washington works.
Not something I would expect in the NYTimes. ... The trade-off is simple. Corporate and other donors provide cash in a bid to secure the legislation they want.The blog First Draft by Tim Porter is an insider's exploration of the press' problems.
The grandparent's experience is one I've seen a lot. You notice a direct correlation between how much you know about a domain, and how badly the press are bungling it. When one experiences this in several diverse domains... well, the temptation is to generalize.
Paul Graham's recent The Submarine discusses one source of intentional bogosity.
-
continuing off-topic...
Reminds me of a Paul Graham article.
-
Re:Journalism
More about this phenomenon: http://www.paulgraham.com/submarine.html
-
Re:Already second story?
Some great PR work!?
Reminds me of Paul Graham's piece from early last year The Submarine. -
Re:MS has to test very extensivelyThis is the kind of article that drives me nuts. I'm not criticizing you for linking to it - the core idea is an interesting subject, but the article itself is totally unresearched, and the only person quoted is "MSRC program manager Stephen Toulouse". It's a great example of The Submarine.
If memory serves, this article came out in the middle of a big Microsoft push to improve its image on security, so you can bet that Mr. Toulouse and his flak (PR dude) were working hard to get stories placed in papers about Microsoft's improvements in security processes. If you look at what is contained in the article, it quite evidently relays what a Microsoft PR dude told the reporter, plus the MS contacts the flak told the reporter to call (provided that all the quotes from Toulouse didn't come from a press release).
It also includes a number of unchecked "Microsoft says" statements. For example:Researchers have complained in the past that Microsoft routinely ignores threat warnings, which contributes to the underlying distrust, but Toulouse said the company's mission is to improve its relationship and "create a community" with grey hat hackers.
How hard would it be for a tech news reporter to call 3 or 4 security researchers and ask them their opinion of this statement? Even if they never called back the article could then have said "Bruce Schneier did return our calls".
Or:Once the patches are shipped, the MSRC goes into "watch mode" to monitor the way researchers release their own alerts. In most cases, those alerts are accompanied by proof-of-concept code, a practice that researchers favor but Microsoft frowns on.
Again, a few quotes from security researchers regarding proof-of-concepts and quality of patches would balance Microsoft's assertions, and would make this piece into something more than transmission of choice quotes from Microsoft. Anyway, that's enough of that rant - just wanted to point out an egregious example of story-seeding. -
Dinosaurs can't live like mice
The money is in editorial branding... It's so freaking obvious, yet none of the majors seem to get it.
It's not necessarily that they don't get it. I suspect they understand their impending extinction perfectly well. But that doesn't mean they can do anything about it.
Imagine the average head of a major label. He's probably a forty or fifty year old man with thinning hair. He's not a music critic -- he's a businessman, who built his career by negotiating contracts, pushing product onto radio playlists, and moving physical CDs. He might not have any musical taste -- and even if he does, what 15-year-old is going to be caught dead taking editorial advice from an old man? There's a reason why major-label producers pay 18-year-olds like Britney to front for them.
In the immortal words of Paul Graham: "When I say business can learn from open source, I don't mean any specific business can. I mean business can learn about new conditions the same way a gene pool does. I'm not claiming companies can get smarter, just that dumb ones will die." -
Re:Lots of Bad Workers
Rails is a web framework. Ruby is a solid choice for scripting, with less of a wonky syntax than Perl.
I haven't done much desktop GUI work to say much of worth in that area, but Tk is included with the main Ruby distribution, and there are other bindings available. In any case, Ruby is bound to be far more productive than C.
So basically, in your position it would boil down to the engineers I could attract. How about you just try posting an ad on Craigslist for an engineer with Ruby (and GUI experience specifically), and see if you are more satisfied with the responses? Check out Paul Graham's essays The Python Paradox and Revenge of the Nerds. Do tell me how your experiment goes if you decide to try it :) -
Re:Lots of Bad Workers
Rails is a web framework. Ruby is a solid choice for scripting, with less of a wonky syntax than Perl.
I haven't done much desktop GUI work to say much of worth in that area, but Tk is included with the main Ruby distribution, and there are other bindings available. In any case, Ruby is bound to be far more productive than C.
So basically, in your position it would boil down to the engineers I could attract. How about you just try posting an ad on Craigslist for an engineer with Ruby (and GUI experience specifically), and see if you are more satisfied with the responses? Check out Paul Graham's essays The Python Paradox and Revenge of the Nerds. Do tell me how your experiment goes if you decide to try it :) -
Re:Please come forward
What You Can't Say by Paul Graham.
-
Re:Purpose of being verbose
Bullshit. Managers like Java because it helps their team achieve their business objectives better than the other languages you describe.
Hmmm, this attitude sounds somewhat familiar. Oh yeah, Paul Graham has written about it at length in this essay:
The pointy-haired boss miraculously combines two qualities that are common by themselves, but rarely seen together: (a) he knows nothing whatsoever about technology, and (b) he has very strong opinions about it.
Suppose, for example, you need to write a piece of software. The pointy-haired boss has no idea how this software has to work, and can't tell one programming language from another, and yet he knows what language you should write it in. Exactly. He thinks you should write it in Java.
Why does he think this? Let's take a look inside the brain of the pointy-haired boss. What he's thinking is something like this. Java is a standard. I know it must be, because I read about it in the press all the time. Since it is a standard, I won't get in trouble for using it. And that also means there will always be lots of Java programmers, so if the programmers working for me now quit, as programmers working for me mysteriously always do, I can easily replace them.
On your own dime, go jump in leaf piles, run through a field of flowers, play with Python, Ruby or whatever is good for your spiritual wellbeing, but when you're working to pull a paycheck, you don't get to put your own flights of fancy before things which make your team (not you as an individual performer, but your team as a whole) more effective in achieving business objectives.
Horseshit. Python and Ruby and Lisp are real-world workhorses that don't need tens of millions of dollars in hype to be successful. For instance I have tens of thousands of lines of Python code out on the field doing real work, 24 hours a day, seven days a week for really demanding clients, including governments and advertising agencies. In one case, I finished a project in a third of the time it took three Java programmers - and mine was smaller, faster and more maintainable for the guys who took it over. Time is money and succinctness is power in software development and Java doesn't make the cut on either. Oh sure, it's a great tool to allow development by the lowest common denominator (money quote from James Gosling) but the really smart teams I know despise it for the ugly hack it really is. When I expressed this opinion in a column for a local computing mag, I was assailed with all kinds of outraged squeals from the local Java gurus. But none of them could answer my points honestly.
If readers disagree, answer honestly with words rather than modpoints. I've tried Java. I really have. I found it ugly, slow, anal and seriously limiting to work with. And I don't seem to be allowed to fix flaws in it either. That's not good. -
zerg
The article links to Hamming's "You and Your Research". The submitter clearly fails for not including it in the writeup, since it's much more interesting.
Hamming's article mentions that the people w/ the open doors get more done then the people w/ the closed doors, yet isn't Graham's point that interruptions prevent serious work? Doesn't that disprove Graham's claim? -
Re:What I need to know
An extra server costs what, the same as hiring a programmer for a single month?
Exactly... I was hashing out this very thing this morning for a project I'm working on. At some point I realized I'd be stupid to not use the quickest development method (in this case RoR) since the cost of a new server is roughly equivalent to half a week worth of my time (I'll be using cheaper homebuilt Linux boxes). If I can get the project done a month sooner (maybe a bit conservative for this project) then that's ~ 8 more servers I could afford to throw at it. I can guarantee that RoR isn't enough slower to demand that much more hardware.
However, don't take my word for it. Paul Graham (et al) suceeded in his startup because of this very thing. He thinks (and I tend to agree) that programmer time is worth more than computer time. -
Re:What I need to know
I really don't believe it will. Ruby is a wonderful language I agree, but actual language coding is not a major part of any project. Design, testing and debugging are. In these areas, in my opinion, there is little difference between the language (in fact, Java has a wider range of high-quality IDEs and debugging tools).
I must disagree here. I can think of several commercial Java web-based projects that I know could have been done in at least the third the time in Ruby on Rails. And the programmer and author Paul Graham holds his startup's use of Lisp as the major factor in their resulting success. In my experience, the choice of language is far more significant than you make it out to be.
-
Re:OO is overrated.
I think the original submitter of the story and you both need to read a few Paul Graham essays and perhaps learn lisp:
http://www.paulgraham.com/articles.html
Even if you don't use it (though one can with a bit of investigating the possibilities) because it's such an eye opening experience. He also seems to dislike OO (I do too, but he explains his position better), but basically any paradigm in programming, such as the one you suggest Transport Oriented, is good in one situation but not another - it's not a fix all band-aid.
Lisp, otoh, can be built up via macros, to fit the problem. It's a functional language, but it has a good optional OO system (CLOS) if that is what one desires. And it can be easily adapted to fit the other models without feeling like a kludge (like Cplusplus)
Disclaimer: Former C and C++ programmer who looked at Java/C# to only see more of the same in a slightly different language. Currently learning lisp and impressed with the differences. -
Re:If only they had listened to SlashdotSpamhaus, on the other hand, lists only those IP addresses which originate spam [...]
-
LISPHey, there's a lot of good advice in the comments here, but if you are working purely for fun, I recommend playing with / learning LISP. ANSI Common Lisp has a great manual by Paul Graham, and there is a great set of books on Scheme (closely related) in dialogue format (forget the titles, go on amazon, Little Schemer I think?)
These are great languages, truly beautiful in a really deep conceptual manner. They are also very flexible. You are beyond the OMG I can create a dialog box like a real program stage, and LISP really lets you do tricks very easily. I wrote a genetic algorithm evolver in LISP -- something I couldn't have come close to doing in C without a huge amount of ugly hack.
The community surrounding LISP is very, very smart, and helpful as well. You won't be drowning in crap as you would if you wanted to get involved in the Perl community (great language, but it's a metropolis now.)
Good luck, and congrats on wanting to get your hands dirty again. By the way, if you do pick up LISP, it will make you a better programmer; I speak from experience. I'll stop evangelizing now, but Graham has his own website where he does it for me. Best quote:"Greenspun's Tenth Rule of Programming: any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp."
-
Re:Why Hype 2.0 Doesn't Matter
*clap* *clap*
I stopped reading when I hit 'Feng Shui'.
http://www.paulgraham.com/paulgraham/web20.html
was at least useful. -
Paul Graham on Web 2.0
Paul Graham has a new essay on this:
Does "Web 2.0" mean anything? Till recently I thought it didn't, but the truth turns out to be more complicated. Originally, yes, it was meaningless. Now it seems to have acquired a meaning.
He's resistant to buzzwords, so I found this interesting. -
Re:Paul Graham
Fixed link: http://www.paulgraham.com/web20.html
-
Paul Graham
has a better 'Web 2.0' summary that I prefer. http://www.paulgraham.com/web20.html/ -
Re:What is this guy selling?
Right, good eye. Don't ever forget The Submarine.
The referenced article says he's with 'Cyber-Ark'. By sheerest coincidence, the Cyber-Ark company produces computer security products that deal with internal management of administrative passwords.
Most of the 'Perspectives' stuff on news.com is just like this, and the smaller cyber-zines like this one are probably filled with nothing but PR firm essays.
-
Re:lol no this is not a virus
This is resolved using Bayesian filtering. look at http://www.paulgraham.com/spam.html
-
Re:Not just taken from Bloggers
They also pointed me to their press release on the subject. Lo and behold if their press release was not taken word for word and put on the BBC and tagged with a different author. When I brought this to the attention of the BBC reporter he started ignoring me.
That was most likely not plagarism. The company that made that press release most likely paid that reporter to pass it off as legitimate journalism. -
Hmmm...
Reading that article, methinks I smell a submarine. Anyone else?
-
Re:OK, so we'll open Java
Oh yes... Something good can come of it...
Feeling now empowered with a sense of ownership, code gurus everywhere (but mostly at fortune 500 companies) will actually improve the code, make java smaller, faster, and more easily deployable. Then they will really recommend it instead of pointing to http://www.gnu.org/philosophy/java-trap.html, and the adoption rate will increase even more.
Then, of course, the Sun version will become obsolete (too slow, too buggy, etc) and everybody will use GNUJava and the world will be a Much Happier Place.
Of course, at that point, a plethora of existing software will start getting into the language. Java will support XML-RPC, REST, and SOAP out-of-the-box. It will support a whole bunch of things that now Sun won't put in.
But best of all, the bugs will be cleaned out. Slava Pestov, the lead developer on jEdit (http://www.jedit.org/, which I use daily as my primary editor), will be able to write applications without feeling like this: http://www.jroller.com/page/slava?entry=java_1_5_w indow_focus.
You don't have to take my word for it. Just find out what real java programmers are saying. Also, take a look at http://www.oreilly.com/catalog/beyondjava/.
Sun is not currently able to maintain the level of language development to compete against python, ruby, smalltalk and a veritable army of smaller, nimbler tools. Java is fast becoming the COBOL of the internet age: yes, lots of companies use it for mission critical stuff, but newer technologies have gobbled up the geeks. It's only a matter of time before it's obsolete. See http://paulgraham.com/pypar.html.
I am not against Java. I am against Java staying the way it is today. I want java to grow. The hacker community at large will do a better job than Sun Microsystems. Period. Besides, Sun is going down. Larger companies have completely disappeared. I just went to their web site, priced a workstation, and priced an equivalent workstation at hp.com for $1K less. You tell me. They will probably remain at about 1/3 of their size today as a provider of high-end hardware. Like Cray. -
Re:Question for all the coders out there..
> If you don't understand C++, you are only liable to reinvent it. Badly.
Isn't the saying that you will reinvent Lisp, badly? Greenspun's Rule/Law? ;-)
This example is of an accumulator generator snagged from Paul Graham's website: http://www.paulgraham.com/accgen.html. Tailored to a problem that functional languages can solve more easily, but it is still interesting.
I would also recommend: For a Java/C++vs. Lisp comparison.
And for another programmers take on it where he tries the same thing: C++ hackers take
Also see another PG article: Succinctness is Power If you google for succinctness PGs article is the first result amusingly enough.
And here is a pretty famous study done on Erlang: Erlang Study
I hope we can at least agree that not all languages are created equal. I am honestly not interested in cloning or working in a langauge like C++. I am much more interested in languages like Lisp. I also freely admit that my OO experience leans heavily on Java, Lisp, and Ruby coding. And that I have little real C++ experience. I have done *basic* OO in my C++ programs. I used the STL for a couple of REALLY simple things in one of my later C++ programs but that is really about it. I try to use C++ in its more modern and usable context when I use it, but it is quite a time investment and I am really only after performance if I am using C++ so I keep it as lean and mean as possible and end up with C using objects with new and delete and a smattering of STL when it saves me time and I can easily do it without adversely affect the outcome of my program. So I base a lot of these assumptions on: a lot of C programming, a lot of OO programming, and a little C++ programming.
You might be onto something about the semantics of OO programming compared to the syntax of the language. It is relatively unimportant as long as the Syntax does not get in the way.
As for specific types of programs: Web development, simple and relatively complicated desktop applications. Pretty much anything that is not processor bound. I am being vague because I really do believe it in a very general sense. I do a lot of web development.. so in my world I am a little IO bound by network latency. You have to work around big warts like HTTP being stateless and generally you really want to maintain state. I also develop the occasional desktop application (Windows stuff ...Sigh). For Windows programs you really do need to use as little memory as you want, but you can still get away with using .NET which runs in a VM and is GCd. I really do focus on web development and network programming, though. I have written all sorts of programs such as search and data indexing stuff. It is still fast enough with hundreds of megabytes of data and it isn't C++.
So in my IO bound world I use the most productive and powerful languages I can convince my team to use without secretly wanting to murder me. There is a bigger learning curve for C++. And to be honest I am not concerned about average programmers. I only want people working for/with me that can wrap their head around any programming language even assembly. So ideally I only want to work with people that can use C++ and be good at it. Only I don't want to use C++ because I think the learning curve is not needed. That said is there REALLY a reason for every programmer to understand pointers? Is it really required. We are coming to an age where entire generations of programmers are raised on Java and GCd languages. I wasn't, but I know quite a few programmers who were/are. Do you really have to know assembly on up? Is that important for every programmer to know? You can't even talk to modern x86 processors directly these -
Re:Question for all the coders out there..
> If you don't understand C++, you are only liable to reinvent it. Badly.
Isn't the saying that you will reinvent Lisp, badly? Greenspun's Rule/Law? ;-)
This example is of an accumulator generator snagged from Paul Graham's website: http://www.paulgraham.com/accgen.html. Tailored to a problem that functional languages can solve more easily, but it is still interesting.
I would also recommend: For a Java/C++vs. Lisp comparison.
And for another programmers take on it where he tries the same thing: C++ hackers take
Also see another PG article: Succinctness is Power If you google for succinctness PGs article is the first result amusingly enough.
And here is a pretty famous study done on Erlang: Erlang Study
I hope we can at least agree that not all languages are created equal. I am honestly not interested in cloning or working in a langauge like C++. I am much more interested in languages like Lisp. I also freely admit that my OO experience leans heavily on Java, Lisp, and Ruby coding. And that I have little real C++ experience. I have done *basic* OO in my C++ programs. I used the STL for a couple of REALLY simple things in one of my later C++ programs but that is really about it. I try to use C++ in its more modern and usable context when I use it, but it is quite a time investment and I am really only after performance if I am using C++ so I keep it as lean and mean as possible and end up with C using objects with new and delete and a smattering of STL when it saves me time and I can easily do it without adversely affect the outcome of my program. So I base a lot of these assumptions on: a lot of C programming, a lot of OO programming, and a little C++ programming.
You might be onto something about the semantics of OO programming compared to the syntax of the language. It is relatively unimportant as long as the Syntax does not get in the way.
As for specific types of programs: Web development, simple and relatively complicated desktop applications. Pretty much anything that is not processor bound. I am being vague because I really do believe it in a very general sense. I do a lot of web development.. so in my world I am a little IO bound by network latency. You have to work around big warts like HTTP being stateless and generally you really want to maintain state. I also develop the occasional desktop application (Windows stuff ...Sigh). For Windows programs you really do need to use as little memory as you want, but you can still get away with using .NET which runs in a VM and is GCd. I really do focus on web development and network programming, though. I have written all sorts of programs such as search and data indexing stuff. It is still fast enough with hundreds of megabytes of data and it isn't C++.
So in my IO bound world I use the most productive and powerful languages I can convince my team to use without secretly wanting to murder me. There is a bigger learning curve for C++. And to be honest I am not concerned about average programmers. I only want people working for/with me that can wrap their head around any programming language even assembly. So ideally I only want to work with people that can use C++ and be good at it. Only I don't want to use C++ because I think the learning curve is not needed. That said is there REALLY a reason for every programmer to understand pointers? Is it really required. We are coming to an age where entire generations of programmers are raised on Java and GCd languages. I wasn't, but I know quite a few programmers who were/are. Do you really have to know assembly on up? Is that important for every programmer to know? You can't even talk to modern x86 processors directly these