Domain: paulgraham.com
Stories and comments across the archive that link to paulgraham.com.
Comments · 1,105
-
Re:Which PR firm generated this story?
Parent's high-modded comment takes its insightful thoughts from Paul Graham's essay The Submarine, which was recently discussed here on Slashdot.
-
Re:Which PR firm generated this story?
Thanks for that Paul Graham
"If you really want to be a critical reader, it turns out you have to step back one step further, and ask not just whether the author is telling the truth, but why he's writing about this subject at all."
(I guess it's not plagarism if you re-write it. Must be an english major) -
Re:Slashdot articles ambiguous, rice says.
According to this article, we should be shocked at the amount of news articles which are actually just press releases from PR firms:
http://www.paulgraham.com/submarine.html -
MBAs and techMBAs admire people like Steve Jobs or Bill Gates (and probably have neutral opinions of Gosling/Torvalds) because they have "achieved" things that MBAs strive for.
If you work your way down the Forbes 400 making an x next to the name of each person with an MBA, you'll learn something important about business school. You don't even hit an MBA till number 22, Phil Knight, the CEO of Nike. There are only four MBAs in the top 50. What you notice in the Forbes 400 are a lot of people with technical backgrounds. Bill Gates, Steve Jobs, Larry Ellison, Michael Dell, Jeff Bezos, Gordon Moore. The rulers of the technology business tend to come from technology, not business. So if you want to invest two years in something that will help you succeed in business, the evidence suggests you'd do better to learn how to hack than get an MBA.
(Shamelessly borrowed from Paul Graham)
-
Re:I like GOTO!
No, C++ does not support functional programming. Functions are not first-class concepts of C or C++. If they were, it would be possible for you to pass functions as arguments and return functions as output.
You mean like this?
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/lambda/lambda.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main(int argc, char* argv[])
{
function< int (int& a, int b) > f = lambda::_1 += lambda::_2;
int a = 0;
function< int (int b) > g = bind(f, ref(a), _1);
function< int () > h = bind(g, 3);
cout << "h() == " << h() << endl;
cout << "g(17) == " << g(17) << endl;
cout << "h() == " << h() << endl;
cout << "a == " << a << endl; // a == 23
return 0;
}
Slashcode stuffs up the indentation of course, but there's only one level of indent so it's still fairly readable.
Anyway, bind is a function, it takes a function f (defined as an anonymous function and assigned to f at runtime) as a parameter and returns a function (assigned to g at runtime). Same with g and h. I guess it's up to you to decide whether you'll accept that g and h are defined at runtime - the functional structures (of f, g, h) are defined at compile-time, but the parameters they close over (a, 3) are supplied to them at runtime (and they're certainly assigned at runtime).
And yes, this does seem to be almost a solution to the task that Paul Graham said probably couldn't be done in C++ (see appendix A at the bottom) - with a bit of handwaving over the types issue. Note that you can change the above so that it closes over the value of a but doesn't change a - simply by replacing ref(a) with a.
Just to be clear, I'm really not claiming that C++ can match languages like Common Lisp or Scheme for this sort of programming. It just can't. But it does a bloody good job of covering enough that it can reasonably be considered a language that supports functional programming (and supports it quite well, at that).
Which is pretty impressive given the limitations of standard C++.
-
Re:And this money goes where?
Slashdot really ought to include a permanent link to that recent Paul Graham article on the front page. Just for, y'know, context.
-
No one ever pays attention
Didn't we just read about how PR begets bullshit news stories? Case in point: TFA. Really, there's nothing but crap in that article. Taking a step back, it looks like it has a lot to do with Rojo's launch and a bit to do with NewsGator. Of course, we all know the best aggregator is going to be Gmail...once it trickles down. For now, Bloglines will suffice. And no, reading/subscribing to hundreds of feeds does not take more time than actually visiting all the sites. What the hell?
-
Re:Uh oh... Business Week
Original Posting:
hackajar writes ""It's time for a frank talk. And no, it can't wait. We know, we know: Most of you are sick to death of blogs. Don't even want to hear about these millions of online journals that link together into a vast network." So says BusinessWeek after Paul Graham sounded off yesterday about PR in the press. In the format of a "blog" it appears BusinessWeek is trying to turn-off the public to blogs, obviously. -
somewhat ironic of BusinessWeekIt's somewhat ironic that BusinessWeek is rolling out a blogging service after Paul Graham's new article originally claimed that BusinessWeek ran an article on http://del.icio.us/ due to PR money gotten from a VC. Therefore Bloggers for that, among other reasons, are superior to traditional media, according to Paul Graham.
(Of course, Paul Graham retracted this claim when BusinessWeek informed him today the article was sponteneous, uninfluenced by a PR firm; but I'm sure BusinessWeek had his article foremost in their thoughts when they announced their new blogging site.)
-
Re:Crappy Tech Policies
A public school, like any bureaucracy, has its financial incentives backwards: the more they fail, the better their chances of arguing for a bigger budget next year.
In my home town it happens the same every year. The school board screams that if they don't get more money, they'll need to cancel <favorite program X>. Then they hand out pink slips to the teachers -- it's all a big show. Then they use the funds to hire their friends and family.
I've learned enough about our education system to know I don't want my kids in the typical public school. -
Re:Why I like Paul Graham
So, why do you think he wrote an essay about PR at all?
Possible answers:
- as a lesson for the startups he's funding
- to help convince more people to start startups, which he things "would probably be a good thing"
- as a vehicle to help discredit the "suits are back" meme
- >your own here< -
good read about how PR spead informationIt is timely that Paul Graham has just written an article (The Submarine) about PR companies doing precisly this. One of the standout lines is
...- ...
If anyone is dishonest, it's the reporters. The main reason PR firms exist is that reporters are lazy. Or, to put it more nicely, overworked.
... [Paul Graham, The Submarine, APR2005].
-
good read about how PR spead informationIt is timely that Paul Graham has just written an article (The Submarine) about PR companies doing precisly this. One of the standout lines is
...- ...
If anyone is dishonest, it's the reporters. The main reason PR firms exist is that reporters are lazy. Or, to put it more nicely, overworked.
... [Paul Graham, The Submarine, APR2005].
-
good read about how PR spead informationIt is timely that Paul Graham has just written an article (The Submarine) about PR companies doing precisly this. One of the standout lines is
...- ...
If anyone is dishonest, it's the reporters. The main reason PR firms exist is that reporters are lazy. Or, to put it more nicely, overworked.
... [Paul Graham, The Submarine, APR2005].
-
Re:Noggonnawork
We don't have open campus lunches. We're not even allowed to leave the cafeteria during lunch.
High School is really a lot more like prison than an educational experience, but I suppose going through it does teach you a lot about real life. Paul Graham wrote the best essay I've ever read about what High School is really there for and how you can get through it and actually learn a thing or two: "What You'll Wish You'd Known". -
Re:Increase quality and compete...
"Slashdot has one of the best moderating systems out there"? Can I have some of what you're smoking? To paraphrase Paul Graham, "A bored undergraduate could write a better one on his soggy beer napkin."
-
Re:Proven in technology companies
Needing less money makes courting the Venture Capital that much easier. Instead of asking for several millions, you ask for just one or two. Which is easier?
I don't know about asking, but I would bet that it is easier to get twenty million than it is to get 1 million. Most VCs don't care about companies with a valuation of 2-6 million, it isn't worth their time. See this http://www.paulgraham.com/venturecapital.html from Paul Graham (creator of Yahoo stores). Since they have to manage each deal, venture capitalists want big deals, not small deals. -
Re:A quick check on Dice.com
It is a cute scripting language. No more and no less.
The idea of a "scripting language" is a holdover from the bad old days when you had to choose between a painfully low level system language and a painfully slow but powerful language.
Today hardware is fast enough that you can do away with the low level languages entirely, for the vast majority of applications.
A language is a way of thinking, and most people are not willing to change their way of thinking once they're comfortable. Dynamic typing, for example, fills the typical C++ or Java programmer with fear. But in practice it provides far more benefit than cost. If you don't believe me, you'll just have to try it. I can't prove it to someone who's use to thinking in Java.
Also, check this out:
http://www.paulgraham.com/pypar.html -
Re:Here is what the site says
the Smalltalk programming language- the first fully OO language
As has been pointed out, nobody agrees on exactly what set of features constitutes "object-oriented". "OO zealots will choose some subset of this menu by whim and then use it to try to convince you that you are a loser."
Even Peter Norvig (author of a couple great Lisp books) says "Depending on your definition, CLOS [Common Lisp Object System] is or is not object-oriented".
Personally, I'd argue that Lisp was there first. But a Lisp/Smalltalk argument wouldn't be productive for anybody.
It runs on oodles of platforms ...
Sure, as long as you don't care about it looking like a normal app. It doesn't use Gtk+ or Qt on Linux, or Windows widgets on Windows, or Aqua widgets on the Mac. Stuff you write in Squeak feels even less native than Javascript on a webpage, and that takes some doing.
So yeah, it's great if you're doing CS research and don't care how ugly or hard to use it is (I never could figure out what all the million different window-title-bar-buttons do). If you want to actually write an app to do something for people, it sucks.
Yay, the Smalltalk people have a language that's 20 years ahead of us. Why is their user interface system not worth a bucket of warm spit? Or rather, since it can't be used to write normal apps, why are so many Squeak advocates trying to convince me that I'm a loser for not using Squeak?
I think GNOME/KDE are to Squeak what Apple was to PARC. It's great that you've got an interesting platform to play with, but you need somebody who cares about shipping a product. -
Re:Troll here often?
I administered Novell and NT both back in the days you're talking about.
I think you're not qualified to discuss it, then. Seriously. If you knew enough to administer Netware, then you'd been working with it long enough you couldn't see its flaws. (That's OK, it happens to the best of us.) Case in point: it doesn't seem odd to you to say "I administered Novell". Novell was so complex you *needed* an administrator! (I can't say "I administered my mom's iMac" with a straight face.)
Another way to look at it is how Paul Graham says it: the low end always eats the high end. Novell may have been faster or more reliable for high-end stuff. Windows was (while not as simple as a Mac) far simpler to set up for a small office. Point, click. Small offices outnumber huge offices. The number of NT installations naturally grew.
Paying the high-end customers to switch may have helped make its adoption go faster, but it probably would have happened anyway. (If everybody really thought Netware was so much better, why'd anybody ever switch? Is there any businessman in the world who'd run his business on systems he knew were crap, for any price?)
In the time since then, NT has gotten much more stable. Netware, last I saw (version 6), has not gotten any easier to "administer" -- you still need a guy whose job is Netware, who's been through the training and certifications.
not even the most incompetent admin would have ever made the claim you just did with a straight face
Ah, yes. You're living in the very tiny world consisting of "Netware admins". Out here in the real world, people want to get stuff done, and even rebooting an NT server now and then isn't so bad, compared to having to go through hours of training to do the simplest thing on Netware. -
Re:Somewhat Offtopic
Isn't that essentially what Bayesian filtering is?
-
Apple is rolling
Apple is the new Sony. Their iPod is this generation's walkman, and Apple is smart enough to leverage that success into other products. Apple has always been good at design. The unix-core of the Tiger OS extends that nice design into the innards.
More food for thought: Paul Graham's essay on Japan vs US design, which gives a nod to Apple as one of the few US companies that get it.
-
US High Schools are Holding Pens
The key problem with US high schools IMO is that they exist more as holding pens than centers of education. High school exists largely so that both parents can head off to their jobs and know that their dear teenager isn't doing anything untoward for half of the day. (Which really isn't true if they knew half of what goes on in the shadowey corners of your average public high school, but eh...) Paul Graham has an interesting take on that in his essay on why nerds aren't popular in high school. Me, I was lucky enough to have accelerated programs available which I was able to tap into. I had English teachers who made me write, and write in a grammatically and orthographically correct manner. I had a Calculus teacher who stated at the beginning of the year that students who couldn't keep up would get help, but if they didn't apply themselves, they would likely fail the class and that she wasn't going to shed any tears for them. I had a Chemistry/Physics teacher who loved his work so much that his infectious glee made all the dull terms much more exciting. (The fact that half of his experiments exploded or did something else similarly spectacular didn't hurt either) *shrug* But for most people, high school is indeed pretty useless. The bright kids are bored throughout it. The not-so-bright can make it through without trying because there's always a lower-denominator class and teachers aren't apt to fail a student because that path leads to bad performance reviews and parent lawsuits. Still, every child has an opportunity to receive an education unlike some of the higher test score countries where only the cream of the crop get to stay through high school and therefore be included in the exams.
-
Re:As long as the project isn't java based
You don't have to wonder what he thinks about Java. He dedicated an essay to it called Java's Cover.
-
I feel sorry for Paul GrahamHis devotion to work above everything else borders on an obsessive/compulsive disorder. In How to Start a Startup he documents how he "used to work till 2:00 or 3:00 AM every night, seven days a week". And the there's this:
"During this time you'll do little but work, because when you're not working, your competitors will be. My only leisure activities were running, which I needed to do to keep working anyway, and about fifteen minutes of reading a night. I had a girlfriend for a total of two months during that three year period. Every couple weeks I would take a few hours off to visit a used bookshop or go to a friend's house for dinner. I went to visit my family twice. Otherwise I just worked"
All this for what? The Yahoo fucking store? Look, it's his life and his choice as to how he wants to live it. But I simply don't believe you have to have no life in order to succeed. Look at Richard Branson. He works hard sure, but he hasn't forgotten to have fun along the way.
It's been over 10 years since I was at college and I certainly don't regret that I slacked off and partied a lot of the time. There's a certain freedom at that age that's hard to come by once you get older. You can work hard at any age. Live a little.
-
Re:Math
Paul Graham is famous for (among other things) writing the seminal work on practical Bayesian spam filtering. But his Bayesian filter isn't Bayesian at all and makes no sense from a probability perspective.
It does work pretty well, but was improved quite a bit by the application of some mathematics by Gary Robinson. -
As long as the project isn't java basedI read Paul Graham's book, Hackers & Painters. It was very enlightening, however, it is obvious he has a grudge against java, and he never really explains why.
One of the few not-very-detailed reasons he gives is that a hello world program written in java is longer than a hello world program in python. He calls the entire language "hype" and has repeatedly taken stabs at java, and derides it without explicitly calling it "bad" (although he has dropped enough hints in his essays that we *know* his opinion about it). It seems that if it ain't an interpreted language, it ain't any good.
What's his deal?
-
Re:Mod me down if you must, but I prefer Visual Ba
> VB is not any better then any other language. It is crippled, it supports inconsistent coding, it is slow. You can build applications quickly in any language assuming you are knowledgable of that language.
Trivial apps can be built quickly in any language. Big apps take time in any language. Some languages are more productive than others.
> Other languages are faster, java also avoids buffer overflows, and other languages don't limit you nearly as much as VB does. Yes I've coded in VB and "grew up" on it, hell didnt we all? But it wasn't until I started coding in C/C++/Java that I realized how limited VB left you.
There are quite a lot of languages which avoid buffer overflows.
> Pointers, btw, are a wonderful thing and you are acting like they are bad.
They are. They make optimizing code harder. The absolutely retarded string libraries which come with C don't help either....
Pointers are fun. They're not, in any way, necessary as something exposed to the programmer by the language.
> Anyway... in a VB coders head, they usually aren't able to think of anything that they can't do with it so my arguments may not make sense.
http://www.paulgraham.com/avg.html
> Regardless, its been shown that the thoughts people think are constrained by their language(i.e. you can't think something you can't express in words, more or less).
Sapir-Wharf hypothesis; discredited.
> After spending the time doing significant amounts of coding in the other languages, I wouldn't use VB if you put a gun to my head. Yes other languages have higher learning curves, but its definitly worth it.
Using any language well comes with a high learning curve. The basics of several are accessible rather quickly.
Check out smalltalk sometime; the initial learning curve is annoyingly high, but some of the environments, like visualworks, are -really- amazing, especially with their debugging and refactoring tools. -
Yes
Do we still hate Java or what?
Yes. -
Re:Artist?Not particularly.
Science and art, when properly done, both seek the same end goal: finding an elegant solution to a problem. If the problem is "how do I represent the beauty of the human form" the problem is deemed art. If the problem is "how do I find the similarities between two bit streams" the problem is deemed computer science. I'm thinking of an essay by Paul Graham:
"Taste for Makers"This may be why Prof. Knuth's series is called "The Art of Computer Programming"
-
What the Bubble Got Right
Paul Graham's essay on the legacy of the dotcom boom/bust is a great read. It tries to tease out what worked and didn't work during the boom and how to carry through the positive elements of the tech explosion into the future: What the Bubble Got Right
-
What the Bubble Got Right
Paul Graham has an interesting essay on "What the Bubble Got Right". It's worth remembering that some of the companies that lost 90% of their value are still worth billions today - e.g. Yahoo.
Looks like the server's smoking already - you can at least get the text from Google's cache. -
Re:stupid formatting
Seems people ask this so much he made it a FAQ.
I find his essays 10x more readable than just about any other web page. No stupid banner ads or flashy sidebars or huge graphics or any other crap. (Slashdot could learn a thing or two.) -
Too bad
Too bad he doesnt have any tips for designing a vapour language.
-
Startups, venture capital, (and viet cong?)
On another page ( http://www.paulgraham.com/icad.html), Graham writes:
If you start a startup, don't design your product to please VCs or potential acquirers. Design your product to please the users. If you win the users, everything else will follow. And if you don't, no one will care how comfortingly orthodox your technology choices were.
I think a lot of people want to make more of this article than he made of it. It's just saying that business is pretty simple: figure out what you can do, figure out who wants it, do it. Many posters have worried about the VCs; some have sagely advised that VCs are best avoided; none have noted that if you're willing to eat a bit of risk yourself you can factor out a lot of the capital. You don't have to pay yourself until profits come in; it all depends on what you're trying to do.
Now, whether the article needed to be as long as it is to make that point is open to debate. -
Yeah, that too... ;-)
Of course we know that Lisp is the only language worth coding in!
;-)
"A guy on Slashdot" even made it to Paul Graham's collection of Lisp quotes:
"I have heard more than one LISP advocate state such subjective comments as, "LISP is the most powerful and elegant programming language in the world" and expect such comments to be taken as objective truth. I have never heard a Java, C++, C, Perl, or Python advocate make the same claim about their own language of choice."
- A guy on Slashdot. What theory fits this data?
-
Rails outside of Ruby? How about Aesthetics...
The way you answer reflects a rigid top-down mindset. After reading some of Paul Graham's essays, I began to question that way of thinking and asked myself if Rails could be built easily outside of Ruby, or alternatively, whether the types of problems that Rails addresses are more efficiently handled by your top-down list of components. Rails is more than a UI framework; it's being grown from the language up towards web app solutions. If you read some of Graham's essays in the light of Ruby on Rails, you might reconsider.
Graham suggests new languages may be trending towards LISP, perhaps because LISP was initially a theoretical exercise by McCarthy, a gedankenexperiment not really designed to be shoehorned into 1958 computational constraints, but rather discovered "when you try to axiomatize computation." (See Graham's full postscript paper The Roots of Lisp
.) FORTRAN and C, on the other hand, took a lot of cues from the hardware; they had to be fast. Over time, the lower-level languages have been relegated to handle algorithmically-simple, computationally-needy problems, while the scripting languages - PERL, PHP, Python, Ruby - have been getting fast and moving from simple glue to more complex processing tasks.Two decades have passed since I looked at LISP code, and I'm wondering if I like Ruby because it's as powerful as that language in my distant memory, yet more aesthetically pleasing syntax-wise since I'd been coding in C, C++, and PHP. It's refreshing to be using a true object-oriented (message-based) language that has strong (as in "walks like a duck") typing, closures, and seemingly dynamic everything (types, open classes). Although I'm relatively new to Ruby and Rails, I can see this is a language I'm going to enjoy using and figuring out.
Graham talks about bottom-up design , changing the language to suit the problem. It suggests one reason why Rails looks so good compared to other web frameworks: Rails looks like souped-up Ruby and not just a bunch of classes, procedure calls, and bolted-on code.
"In Lisp, you don't just write your program down toward the language, you also build the language up toward your program," Graham wrote. "Language and program evolve together... In the end your program will look as if the language had been designed for it. And when language and program fit one another well, you end up with code which is clear, small, and efficient." That's a pretty good description from 1993 on Rails development and points to a not-so-subtle difference between the web frameworks.
Just as standard Ruby lets you use "attr_writer
:some_attribute", Rails provides a formalism for defining data relationships like "has_many :data_thing". The Ruby Way seems to run deep. It'll be interesting to see if Rails manages to adhere to that philosophy as it expands.When answering the question "Could Rails be built without Ruby?", I think you have to address not only the functionality but the aesthetics as well. It's more than the simple lines-of-code metric. It's whether you've built a language up towards a Rails language that solves problems common in web development. As Graham points out, you could build Rails out of any language that's Turing-equivalent; the real question is in your quest to duplicate the aesthetics, whether you'd wind up doing a back-door implementation of a Ruby interpreter in the process. For Python users, the port might not be incredibly difficult. For C users, it might be easier to build a Ruby interpreter.
One of the knocks against Zope 2, a leading Python app and backend server framework, was how un-Pythonic the framework appeared to some developers
-
Rails outside of Ruby? How about Aesthetics...
The way you answer reflects a rigid top-down mindset. After reading some of Paul Graham's essays, I began to question that way of thinking and asked myself if Rails could be built easily outside of Ruby, or alternatively, whether the types of problems that Rails addresses are more efficiently handled by your top-down list of components. Rails is more than a UI framework; it's being grown from the language up towards web app solutions. If you read some of Graham's essays in the light of Ruby on Rails, you might reconsider.
Graham suggests new languages may be trending towards LISP, perhaps because LISP was initially a theoretical exercise by McCarthy, a gedankenexperiment not really designed to be shoehorned into 1958 computational constraints, but rather discovered "when you try to axiomatize computation." (See Graham's full postscript paper The Roots of Lisp
.) FORTRAN and C, on the other hand, took a lot of cues from the hardware; they had to be fast. Over time, the lower-level languages have been relegated to handle algorithmically-simple, computationally-needy problems, while the scripting languages - PERL, PHP, Python, Ruby - have been getting fast and moving from simple glue to more complex processing tasks.Two decades have passed since I looked at LISP code, and I'm wondering if I like Ruby because it's as powerful as that language in my distant memory, yet more aesthetically pleasing syntax-wise since I'd been coding in C, C++, and PHP. It's refreshing to be using a true object-oriented (message-based) language that has strong (as in "walks like a duck") typing, closures, and seemingly dynamic everything (types, open classes). Although I'm relatively new to Ruby and Rails, I can see this is a language I'm going to enjoy using and figuring out.
Graham talks about bottom-up design , changing the language to suit the problem. It suggests one reason why Rails looks so good compared to other web frameworks: Rails looks like souped-up Ruby and not just a bunch of classes, procedure calls, and bolted-on code.
"In Lisp, you don't just write your program down toward the language, you also build the language up toward your program," Graham wrote. "Language and program evolve together... In the end your program will look as if the language had been designed for it. And when language and program fit one another well, you end up with code which is clear, small, and efficient." That's a pretty good description from 1993 on Rails development and points to a not-so-subtle difference between the web frameworks.
Just as standard Ruby lets you use "attr_writer
:some_attribute", Rails provides a formalism for defining data relationships like "has_many :data_thing". The Ruby Way seems to run deep. It'll be interesting to see if Rails manages to adhere to that philosophy as it expands.When answering the question "Could Rails be built without Ruby?", I think you have to address not only the functionality but the aesthetics as well. It's more than the simple lines-of-code metric. It's whether you've built a language up towards a Rails language that solves problems common in web development. As Graham points out, you could build Rails out of any language that's Turing-equivalent; the real question is in your quest to duplicate the aesthetics, whether you'd wind up doing a back-door implementation of a Ruby interpreter in the process. For Python users, the port might not be incredibly difficult. For C users, it might be easier to build a Ruby interpreter.
One of the knocks against Zope 2, a leading Python app and backend server framework, was how un-Pythonic the framework appeared to some developers
-
Rails outside of Ruby? How about Aesthetics...
The way you answer reflects a rigid top-down mindset. After reading some of Paul Graham's essays, I began to question that way of thinking and asked myself if Rails could be built easily outside of Ruby, or alternatively, whether the types of problems that Rails addresses are more efficiently handled by your top-down list of components. Rails is more than a UI framework; it's being grown from the language up towards web app solutions. If you read some of Graham's essays in the light of Ruby on Rails, you might reconsider.
Graham suggests new languages may be trending towards LISP, perhaps because LISP was initially a theoretical exercise by McCarthy, a gedankenexperiment not really designed to be shoehorned into 1958 computational constraints, but rather discovered "when you try to axiomatize computation." (See Graham's full postscript paper The Roots of Lisp
.) FORTRAN and C, on the other hand, took a lot of cues from the hardware; they had to be fast. Over time, the lower-level languages have been relegated to handle algorithmically-simple, computationally-needy problems, while the scripting languages - PERL, PHP, Python, Ruby - have been getting fast and moving from simple glue to more complex processing tasks.Two decades have passed since I looked at LISP code, and I'm wondering if I like Ruby because it's as powerful as that language in my distant memory, yet more aesthetically pleasing syntax-wise since I'd been coding in C, C++, and PHP. It's refreshing to be using a true object-oriented (message-based) language that has strong (as in "walks like a duck") typing, closures, and seemingly dynamic everything (types, open classes). Although I'm relatively new to Ruby and Rails, I can see this is a language I'm going to enjoy using and figuring out.
Graham talks about bottom-up design , changing the language to suit the problem. It suggests one reason why Rails looks so good compared to other web frameworks: Rails looks like souped-up Ruby and not just a bunch of classes, procedure calls, and bolted-on code.
"In Lisp, you don't just write your program down toward the language, you also build the language up toward your program," Graham wrote. "Language and program evolve together... In the end your program will look as if the language had been designed for it. And when language and program fit one another well, you end up with code which is clear, small, and efficient." That's a pretty good description from 1993 on Rails development and points to a not-so-subtle difference between the web frameworks.
Just as standard Ruby lets you use "attr_writer
:some_attribute", Rails provides a formalism for defining data relationships like "has_many :data_thing". The Ruby Way seems to run deep. It'll be interesting to see if Rails manages to adhere to that philosophy as it expands.When answering the question "Could Rails be built without Ruby?", I think you have to address not only the functionality but the aesthetics as well. It's more than the simple lines-of-code metric. It's whether you've built a language up towards a Rails language that solves problems common in web development. As Graham points out, you could build Rails out of any language that's Turing-equivalent; the real question is in your quest to duplicate the aesthetics, whether you'd wind up doing a back-door implementation of a Ruby interpreter in the process. For Python users, the port might not be incredibly difficult. For C users, it might be easier to build a Ruby interpreter.
One of the knocks against Zope 2, a leading Python app and backend server framework, was how un-Pythonic the framework appeared to some developers
-
Isn't this a restatement of ...
Beating the Averages? Looks like Mr. Graham had the right idea 10 years ago
... even the most forward-looking Microsofties are a decade behind the curve. -
Re:What is the purpose of an education system?
I recently saw this article on the American education system and its fallacies. It's very interesting and I think everyone should take a look at it, it's long so stick with it. I completely agree with it:
http://paulgraham.com/nerds.html -
Re:This is an old ideaLike a lot of old problems with no good solution, education reform comes along perenially like a comet. People have been pointing out the various problems with the educational system for years -- but the real question is what to do about it. As another poster pointed out, Bill Gates is really just formulating the ideas brought up by ASPEN, a group of rich people who want to reform the system. I don't know how long they've been around, but I suspect they get some of their ideas from the early 60s. The Student as Nigger (don't be put off by the title), was published in 1969, and contains some criticisms similar to what Gates has to say. Hell, even Paul Graham talked about high school in a recently posted article, and although he doesn't say high schools are mess that's one of the points underlying his thesis.
There are, of course, a variety of indicators of the malaise of the system; one of the more interesting I've seen recently is this commentary on how textbooks used in schools actually get produced.
Actually, I think Joel of Joel on Software has a parallel example of part of the problem with schools, which is that good teaching doesn't scale -- and neither does good programming. Chances are, most slashdot readers can remember a few really great teachers (I can) and can't remember a slew of mediocre or indifferent ones. That's because really good teachers can't be produced by an assembly line, and there is no good system for figuring out who the good teachers are; instead, we have a system today in which teachers willing to put in the time are kept in regardless of whether or not they're actually good (Insert political comment here regarding unions, depending on one's alignment).
We have two big problems: the system as a whole and the quality of particular teachers. The real question becomes how one solves the riddle; I don't know, but I suspect the solution is deeper than "throw money at it."
-
Re:public schoolsThese comments on the abyssmal state of High School remind me of the Paul Graham essay, Why Nerds Are Unpopular . He explains (public school in genereal and) High School are an artifice--a daycare or prison to corral children while their parents are off working (among other points). Very interesting reading as I recall.
Then there is his more recent article that was noted here on
/. a little while back, What You'll Wish You'd Known . An approach to dealing with and actually succeeding in life even if High School might be basically useless to you.Funny, I didn't realize that both of these essays were by the same individual until I looked them up for the links. They fit together so well, it makes perfect sense.
-
Re:public schoolsThese comments on the abyssmal state of High School remind me of the Paul Graham essay, Why Nerds Are Unpopular . He explains (public school in genereal and) High School are an artifice--a daycare or prison to corral children while their parents are off working (among other points). Very interesting reading as I recall.
Then there is his more recent article that was noted here on
/. a little while back, What You'll Wish You'd Known . An approach to dealing with and actually succeeding in life even if High School might be basically useless to you.Funny, I didn't realize that both of these essays were by the same individual until I looked them up for the links. They fit together so well, it makes perfect sense.
-
Related essay by Paul Graham
I can't more highly recommend this essay by Paul Graham as an explanation of why public schooling is so poor. Don't be misled by the title of the essay: that's just the perspective he takes on a more extensive problem.
Unfortunately, Gates doesn't see the real problems: he's right in that public schools don't tailor their education to what students actually need, but he doesn't for instance address the problem of overcredentialling, which is a result of the perception (and, unfortunately, the reality to a large extend) that a degree is necessary to be successful, combined with the fact that most colleges sell degrees, *not* educations. That's somewhat ironic, considering Gates himself has earned no degrees.
Additionally, follow Gates' suggestion to make high school universally more preparatory for college, and you'll see college become as pointless and as irrelevant to success as high school, because more people will go to college without any reason better than "I need a degree in order to get a good job," which will water down the meaning of a college degree as most of those people will spend an additional four years drinking and delaying adulthood instead of learning something useful through a more efficient means (e.g., apprenticeship) that will enable them to get a good job.
You can already see this process happening to a certain extent, as masters' degrees and professional certifications are required to get certain jobs simply so recruiters can cut down the number of resumes they need to sift through, despite the fact that the smartest ones aren't necessarily the most credentialled.
Personally, I'm sick and tired of the education racket: high school should be sufficient for 90% of people to get jobs, but it isn't; so most of these people go to college. Unfortunately, college doesn't prepare kids for jobs either, but instead provides a place for them to socialize while forcing them to take numerous courses unrelated to their eventual job in order to get a liberal arts degree that costs a lot but signifies absolutely nothing except, "I went to college and that other guy didn't, so give me the job instead of him."
I paid $130,000 to get my undergrad degree. I had a great time in college, but how much of that crap do I use today? I certainly didn't learn software engineering in college courses, despite being a computer science major: most of my software engineering skills were honed doing my own projects, in HS, college, grad school, and in my job. If it weren't for the education racket, I might have been able to save myself $130,000 and get a real paying job four or five years earlier. Think of the productivity that's being wasted. -
Premature optimizationsThere's optimization, and there's premature optimization. I'm no Paul Graham zealot, but he's got it right here; until you find out exactly which part of your program is the bottleneck, you're likely wasting your time.
Instruction-by-instruction optimization by hand is only productive for guys like John Carmack, where each nanosecond really does count. If you're really worried about this, why not just write it in assembly?
Hamster
-
Re:Stop being a crusty slashbot.
People make names which they feel are the best for something. They rely on something's ability to be good at it to spread the love, so to speak. If it's good, people will remember it. If it's not good, it goes away and it's no issue.
No, names have a real impact. I know a lot of geeks don't care about this (Who cares if this library is called huc2r15xy.lib? It works great!), but normal people do.
To make an extreme example, if Burger King called their burgers Shitters instead of Whoppers, they wouldn't have sold very well. I know a lot of slashdotties would have gone to buy "Shitters" because of the name, but normal people will avoid your product if they have to ask for a "Shitter" for lunch.
Do you really like how people went to ultrageneric names and domain speculation on the Internet? Pets.com? Mail.com? News.com?
No, those are bad names, too. There *are* good names on the internet, like Google, Napster, Monster.com, or even Slashdot. The idea is *not* "generic = good".
The difference is that: (a) Websites are *all about* branding. People don't bookmark much, so using a name with "career" in the URL for a job webpage is doomed to failure. "Monster.com" is easy to remember, so people keep going back there. Programs are different: it's on my computer, it's right there. I don't really need branding for a music player (I can pick it out of the list). And: (b) I don't even know how to pronounce some of this crap. "Muine"? Moo-ine? Mweene? Muh-wine? Mweeney? If nobody can figure out how to pronounce your name, it sucks, full stop.
Naming is a magic game. Just because you don't like how others play it, does not mean they are playing it wrong. This whole "incorrect naming" meme is stupid and pointless.
I've heard exactly the same thing about user interfaces and design from geeks for years. Geeks like to put everything in terms of equations and big-O and C code, and anything that doesn't fit falls into the "magic" category, where "you like what you like and nothing is better than anything else". But that's simply not true. -
Re:Resume Puzzle
I suggest you read 'Why Nerds are Unpopular' by Paul Graham. His point is basically the same as yours, that nerds just aren't that bothered to be popular. I like his excuse for it though: "It takes a lot of work to be popular. Nerds would rather spend that time doing more interesting things, like mathematics, hacking, coding, etc."
-
Re:Resume Puzzle
I suggest you read 'Why Nerds are Unpopular' by Paul Graham. His point is basically the same as yours, that nerds just aren't that bothered to be popular. I like his excuse for it though: "It takes a lot of work to be popular. Nerds would rather spend that time doing more interesting things, like mathematics, hacking, coding, etc."
-
The language is very important
- C++ is more readable than assembler
- C# and Java are more readable than C++ ...
- At the end of this list are functional programming languages.
If you can read source more easily, then maintainability will be better.
This article will tell you why you should be interested in functional programming languages. If you're smart and open minded, you will be convinced.
The best functional languages are Haskell and Erlang (click "next" at the bottom of the page).
For example, with Java you prevent bugs by static typing variables, example:
int numberOfTries = 3;
If you later try to fill "numberOfTries" with a string, the compiler will warn you of a bug and you'll have prevented it.
With Haskell, you don't have to type int. Haskell will figure out the type for you, you get the benefit of preventing bugs with the convenience of not having to type variables.
The reason I chose Erlang is because with functional purely functional programming languages like Erlang, you can automatically multitask your program over several CPU's (or this will take minimal effort). Nice feature to have in the future because every CPU manufacturere is going multi-core chip now. Also, you can easily make a server that never goes down with Erlang because your server is automatically clustered. Just plonk down a couple networked PC's and if one dies, the server cluster will just keep on going (a bit slower) until you replaced the power supply of the broken PC.
There are tons of other advantages but, as I said, the above links will convince you if you're smart. Haskell is a bit more academic in nature, they're figuring out the best possible language and Erlang is more polished and ready to go. It was invented by Ericsson to create ultra reliable realtime servers.