Fundamentally I think my objection is to elevating a slightly odd-ball programmer to messianic status based on a mildly creepy fandom that manifests primarily as people vastly over-stating the contributions of this one guy in HN comments.
Fundamentally I think my objection is to elevating a slightly odd-ball programmer to messianic status based on a mildly creepy fandom that manifests primarily as people vastly over-stating the contributions of this one guy in HN comments.
The problem is that most of our industry is not ready to accept this news. There was no so important economic process like IT in the past where creativity and art had the same impact as it is happening with programming. Check the software and the sites you are enjoying every day: are they made by great scientists? The big majority are not.
But at the same time, the reverse is true. If you have good scientists you can create any complex program or system without problems. Look at all the PHDs at google, the result is a wonderful piece of technology, from the search engine itself to the cluster and other stuff they are running. But this is an engineering problem indeed, so it is a perfect fit for them.
But not everything is like that in our field. This is why for instance a big company like Google is not having a big impact in programming itself. If you see the reality most of their products for the masses are not working well, Ruby on Rails was not produced there, and so forth. It's not that I've something against Google but it is the perfect example of "company of scientists".
Accordingly, programming is not _currently_ a science. However, I think that is a much better position to aspire to than self-aggrandizement and glorifying a skill that is really no different than any other skill that any suitably motivated 12 year can acquire with a couple library books and an internet connection.
With a science of programming, we can aspire to a position where programmers can at least claim to be engineers, and at least have good odds of most programming projects resulting in software of reasonable quality. Face it, there's good art and bad art, and it's subjective which is which. Programs have objective measures we can apply, depending on what the code is used for - developer time, performance, correctness... and a million others. We can argue about which measures are the right ones to use, but at least these measures exist. We can (with current technology) empirically evaluate a piece of code in many different ways. Actually starting to apply this kind of empirical evaluation is the first step towards programming being a science.
[Edit: OK, so the parent to this was heavily edited after I posted this, but I can't be bothered rewriting this accordingly, so please excuse any incongruence between this reply and the post it is replying to]
This is not a good aspiration I think. Engineers can be replaced with not huge efforts, while you can't easily replace artists.
Also this vision will lead to more bad programmers coming out from universities (if programming is an art), as the process of learning programming is totally different if you think it's a science or art. If it's a science, do CS courses. If it is an art, put them into craftsman shops to learn how to code.
Putting together a large piece of software, or optimizing a particular path in a large codebase, or putting together a creative solution to a class of problems, requires a much higher level of thinking. You need to bring together far more concepts at different levels of the abstraction stack, and have enough of them in your mind to arrange them without them interacting poorly at one level when you're coordinating them at a different level.
Programming is more like building a whole new kind of house, without a plan, or altering an existing house, without it all falling down around your ears.
As to subjectivity: you're wrong that software quality can be measured objectively, because of two simple facts: software isn't static - it must be modified over time - and humans are limited in their capacity for complexity. The abstraction which yields most readily to the changes that matter, such that those abstractions mesh well with those people doing the modifications, are subjectively good - their worth is dependent on the observer.
Sure, putting together a large piece of software is hard, but then again, putting together the electrical system for a nuclear plant or something on that order of complexity is just as hard, if not harder (no 'undo' switch on that one).
There has to be a way to see that programming is really not that hard 'in principle'. It is hard in practice, and this goes for a large number of other activities as well.
To argue on a programming forum that programming in principle is a simple thing is probably an unpopular point of view, but really, we're not half-gods or somehow special, we're just bricklayers and watchmakers. And if you've never built a brick wall I challenge you to go and do it and afterwards we'll talk about how easy it was 'in principle'.
But for the most part I think that a very large amount of it is very comparable to bricklaying. Especially in the part where most people in the IT world make their money, such as software for the financial and the business world.
Rarely does it elevate itself to the level of watchmaking and even rarer do you find art. It does happen though, but not often.
I'm sure that programming is conceptually different from bricklaying in a sense that we are solving puzzles, sometimes. But everybody that got in to it for that reason knows that the only time you really need that skill is when you've messed up and you are facing a very tough bug.
Once you get better at programming it is more like knitting or weaving than puzzling.
Of course there are different styles of programming, and there are only so many kinds of brick. But programming for the most part is hard because we have chosen to make it hard. If bricklayers had to create each and every brick from clay and bits of stone then you'd be much closer to what programmers do for a living than what bricklayers do.
Bricklaying has been 'industrialized', and one day programming will be too. It will probably still be marginally harder than bricklaying, even after that has happened. But if you can explain what you want done and in which order then you are essentially programming.
People often say they would like to learn how to program but they are not smart enough for it. And plenty of programmers just love that because it makes them appear special.
But I think anybody can program, the difference is not some binary switch in your head 'programmer/non-programmer'. The difference is in how complex an arrangement you can create, and that's a continuum.
Some programmers are better at this than others and can solve more complex problems.
Let's face it, with programming, we're inventing entirely new domains with their own special rules that we create. It can be an artistic process or a scientific process. As an artistic process, it's very hard to judge the outcome from the start. As a scientific process, the result is much easier to judge prior to completion. Until the processes and methods are understood to a sufficient level, programming will be very much like an art. Once they're understood, it's a science, apply the rules and out pops a software.
I have several relatives that are plumbers, electricians, carpenters and architects. Once there's a common set of tools, language (as in, for communication between people) and understanding, programming is no different than any other craft.
The 'art' part in programming is exactly that part where it is not yet a science.
This prediction has been made for decades now. I suppose if people keep predicting this indefinitely, someday it will become true.
In the meantime, new programming tasks are invented faster than the old tasks are industrialized.
"Once you get better at programming it is more like knitting or weaving than puzzling."
This is up to you. Was building Google, Amazon, Linux, Firefox, iPhone OS, etc. etc. etc. more like knitting or weaving than puzzling? Maybe what you are saying is that most programmers aren't good enough to build those kinds of products, or would just rather stick to their knitting and weaving. That I would agree with.
"Some programmers are better at this than others and can solve more complex problems."
This is trivially true of any cognitive task.
One day is on purpose very vague, I haven't a clue on what timescale we're talking. But I'm fairly sure what will be the sign that we've reached it, it's when we will remove the term programming from language and use 'teaching' instead.
> This is up to you. Was building Google, Amazon, Linux, Firefox, iPhone OS, etc. etc. etc. more like knitting or weaving than puzzling? Maybe what you are saying is that most programmers aren't good enough to build those kinds of products, or would just rather stick to their knitting and weaving. That I would agree with.
Most of those were huge projects, but if you break them up in to little pieces some of them were artwork, most of them were bricks. The architecture of each of those was likely artwork.
> This is trivially true of any cognitive task.
Yes, but many programmers seem to think there is something 'magical' about the ability to program, as if there is some kind of essential element that differentiates those that can program from those that can not.
And I think that is not the case.
You should read this, and maybe the linked academic paper, too: http://www.codinghorror.com/blog/2006/07/separating-programm...
Maybe they won't be the next Donald Knuth, but they'll be able to hold down a job and make a living. I guarantee it.
You ship 'm I'll teach 'm, no matter how much time it takes I'll do it. The only pre-requirements are a willingness to learn and a willingness to spend the time, as well as an iq of 80 or more.
Anybody can do it, not equally fast, not equally good, some may hate it and some may love it.
That test is so biased it's not even funny, I've linked the script below, it assumes that people will clue in to the different meaning of the '=' sign in programming (assignment) as opposed to what it means in the rest of math (equality). I note that some programmers that are very well seasoned have been caught to mess up '==' and '='.
I always thought that the '=' sign for assignment was a huge mistake and that '<=' would have been far better.
But it's a little late for that now. What galls me even more about that test is that instead of providing a warm up with a bunch of assignment samples and 'print' statements afterwards would have given the really interested parties a shot at figuring out how it works, to test their assumptions.
The problem with programming is an educational one, not some kind of genetic pre-disposition to being able to program.
Just as there are people that are better and not-so-good at arithmetic there are people that are better and not-so-good at programming.
It's a skill thing, and if you work at it hard enough you can get better. The ten thousand hour rule definitely applies. If that's not the case then how come there are a thousand and one books that will teach you how to become a (better) programmer. It is teachable, it is a skill, there is no magic component, in spite of what this so-called study says.
Here is the test script:
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/test(week-0)...
Have read, and see what you think, try to pretend that you have no programming knowledge and that all you know is arithmetic, it basically tests a single question in different forms over and over again.
In my opinion, a much better way to grade people to find out who will be the 'good' programmers is to find who is good at solving puzzles.
There are many people for who this is not true when it comes to programming, and this is why they will never become a programmer (good or otherwise).
The problem comes from the complex interactions between those elements. You can learn how the body works in high school biology, but that doesn't prepare you to operate on it. Similarly, you can learn how software is constructed ("make sure the right lines of code are used, follow each other, and are debugged properly") from Hacker News, but that doesn't prepare you to actually put those lines of code together.
One of the unfortunate effects of Internet forums is that it seems to have shifted attention from the nitty-gritty details of how to do something to the high-level overview of how to do something. So we have a bunch of programming forums where we talk about programming, but never actually program anything. It's not just programming (just look at reddit.com/r/economics), but programming seems to have been one of the most affected disciplines. But I'm afraid that this is giving a skewed perception of the field to newcomers, such that they look at the code they see on blogs or Hacker News and think that's all there is to programming. The #1 reason people fail Google interviews is because they don't have enough depth: they can recite code snippets they found on the web and maybe even put them together, but they can't analyze the performance of their programs or suggest how they might adapt them if requirements change.
Able to produce by tying together endless snippets of googled code, it is the professional equivalent of the script kiddie.
The vision you seem to be espousing is someone tells the programmer exactly what to do, and the programmer does it exactly to that specification. Wiring a house and balancing a budget are solved problems. So you seem to be saying that programming is also a solved problem.
Which is so out of touch with reality I feel that, surely, I must be misunderstanding you. A computer program can do pretty much anything. Depending how you feel about the equivalence of Turing machines and human brains, you can argue that a computer program can potentially do anything a person can do.
With the geometric increase of computing capacity available to us, how is it even conceivable that "programming" is equivalent to balancing a budget or wiring a house? You seem to suffer from an incredible lack of imagination.
"However, I think that is a much better position to aspire to than self-aggrandizement and glorifying a skill that is really no different than any other skill that any suitably motivated 12 year can acquire with a couple library books and an internet connection."
That is the same as saying a 12 year old can write or play a musical instrument. Sure, they can spell words and make sentences, or know the correct fingering for certain notes. But the potential for improvement in those endeavors is also unbounded. The same is true of programming, in my opinion.
This is the absolute, most common, frequently found, frequently followed process for developing software. There is more "wiggle room" at each step, but it's the same exact process, whether it's one guy doing it and dreaming up the requirements or a team of thousands of developers.
For instance, the people that write papers on new datastructures, computer vision and other state-of-the-art developments. They're not working with 'requirements' other than 'it would be nice if you found a way to solve 'X', come back in three years'. (well, not quite like that, but closely).
That's basic research and a definite amount of artistry is involved at that level.
But after the paper is written up it has solidified and it becomes applicable science, and for the person calling the API that embodies the concept it has become 'mere' bricklaying.
I completely disagree.
The art for the person calling the API is often found in "building something people want." Think of the people who frequent this website. Many of them are writing lines of code to make something people want. Surely there is some art to that. There needs to be an idea, building something to show customers, and iteration on that idea taking customer response into account. The customers have input, but the programmer decides what to write.
Just as wealthy people once commissioned portraits and told the artist what to draw, programmers can be employed someplace where the question of what to program is decided by someone else. But there is nothing inherent in art prohibiting painters from deciding what to paint, or in programming prohibiting programmers deciding what to program.
Yes it is, it is just that in information processing, the problem domains are often ill-specified and ill-behaved. The system analyst's job is to pull the pin on a wish list grenade, fling it at the engineers, and run away before they realize what has been done to them. The engineers are then forced to pile crap together, reverse-engineer a problem definition, and see if anybody wants to pay for solving it.
I think that PG in one of his essays said that CS is confusing because it's got a of people under its umbrella: some do mostly math, some are closer to artists, and some are somewhere else (I can't remember his distinctions). So the field has a lot of people saying "this is what it means," all of whom are at least somewhat correct.
What is CS or programming or whatever you want to call this thing that involves making computers do stuff? On some level, the answer drifts towards "whatever you want it to be." But the flame wars are less satisfying that way.
Where is the magical divide between "art" and "science" in the field? Do the adherents of either side even know what they're defending?
If I know what a finite state machine is and how to apply it, does that make me "scientific"?
If I hack together a web application in Scheme, instead of some Mathemagical, Dijkstra-approved language, does that make me an "artist"?
Why can't people just accept that you need some of both to be a good programmer?
As soon as something is idiomatic I think it ceases to be art, but that does not diminish the artistry of the person or people that first came up with that.
Preferably a book without any surprising twists. Or homicides. But extra chunky bacon.
Dijkstra would not have liked this.
Was it Dijkstra that advocated writing everything in assembly, or am I thinking of someone else? I know he was big on formally verifying the correctness of programs, but I thought I remember him saying that for implementation purposes, he advocated assembly. Or was that more of a "if you can't write it in assembly, you don't understand all the parts" deal? It seems he hated FORTRAN, APL, BASIC, and PL/1, and only later did he like LISP.
I wonder what he would have thought of Haskell. Standardization started in the 80's, so he would have been alive when it was being ironed out. A search in the EWD archives didn't reveal anything though.
EDIT:
http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD12x...
It appears that he liked functional languages...
>The clarity and economy of expression that the language of functional programming permits is often very impressive, and, but for human inertia, functional programming can be expected to have a brilliant future, the more so because today's computers admit quite efficient implementations of functional programming languages.
but...
>In particular, evaluating a functional program with pen and paper is a pain in the neck!
So he spends the rest of the paper talking about the predicate calculus and relation calculus.
We need to revive the word "artisan" which has connotations both of technical ability and artistic sensibility. Look at it like that, and programmers are no different from thousands of generations of craftsmen from here to the pyramids. It's just that the tools of our trade are usually far more complex than theirs. (Although I still have no idea how to build a pyramid.)
I think this is why some people like to compare programming to painting or writing or whatever their other life's endeavour is. I don't think there is a direct correlation between programming and those other things, but you start using the same parts of the brain for parts of both activities, so it feels as though it's roughly the same.
So here's my comparison between programming and writing: every word must be relevant, there is no redundancy, no unnecessary repetition. Good code and good writing must be tight, clean and comprehensible. I mentioned this to a co-worker once and he said "I'd never thought about it like that. I think it's more to do with mathematics." Which it also is.
Wikipedia defines art as "the product of deliberately arranging elements in a way to affect the senses or emotions", and science as "the systematic enterprise of gathering knowledge about the world and organizing and condensing that knowledge into testable laws and theories." Why do these two things have to be mutually exclusive? Through creation and exploring, such as in _why's projects, we are further "gathering knowledge" about the limits computers can be used. And at the same time, we are creating art as these programs have had a clear impact on at least the Ruby community.
And, bringing up a more "sciencey" example, if the fact that my handheld calculator can solve complicated algebra and calculus equations in less than a second doesn't "affect [your] senses or emotions", then you need a reality check on just how impressive technology has come in such a short time.
I personally believe that programming is one of the rawest forms of creation imaginable, and therefore must be of some artistic worth. Simply calling it science and moving on does a disservice to those who slaved for so many hours working on their piece of computer science history.
But I don't think that fundamentally you can separate the act of expressing programs from the act of coming up with interesting things for them to do. The materials of the medium constrain what is possible or easy to express, and it's quite hard to produce anything good if you try to artificially separate them into levels of specification vs. implementation.
Basically, you have defined programming as a form of dictation. That definition makes your arguments true. But it does not follow the common usage of this term, especially as a site like this.
I've never understood _why's fan base; he seems to be no more than somebody who popped up, wrote a few low-quality libraries for an obscure language, and then vanished.
"programming is rather thankless. you see your works become replaced by superior works in a year. unable to run at all in a few more."
"if you program and want any longevity to your work, make a game. all else recycles, but people rewrite architectures to keep games alive."
"an ascending homage to fish bones. culminating in a delicate canopy of mouse furs."
... Okay, maybe not that last one. Anyway. He was obviously contemplating all of the stuff we've created around software, and was pretty bummed out by it.
Not that anyone will know _exactly_ why he disappeared, but still.
Anyway, first, to re-iterate: nobody really knows shoes, err, why _why disappeared. This is just conjecture.
Basically, those tweets are all talking about the social constructs we've put up around programming. There are large fads, things come and go, old projects are abandoned, new projects and forks of old ones spring up. The quote about games seems to be really about hpricot; from some reports, _why was kind of upset about Nokogiri, and everyone's shift to it. If people didn't like hpricot, why not contribute, rather than make the same project over again?
The first one is something I'd also expect to hear out of someone who's getting burned out. _why did a _lot_ of things. And, since _why was an artist, he put a chunk of himself in every project he did. It's unmistakeable, all of his endeavors undoubtably have his signature attached to them. And when you put yourself out there like that, and people reject it, it's hard. It's easy to get frustrated when you invest yourself in something, and other people simply reject it out of hand. There's a dead comment at the bottom of this thread that talks about people 'giving him shit' on the shoes mailing list, which I wasn't subscribed to at the time, but with anyone as prolific as _why, I can't imagine there wasn't a fair body of naysayers. Just look at this thread, and the people that want to remove all artistry and craftsmanship from programming. Hence what starkfirst was talking about.
The naysayers won. _why got burned out. He decided his sun had set, so he burned his guitar.
np, no hurry :)
> Anyway, first, to re-iterate: nobody really knows shoes, err, why _why disappeared. This is just conjecture.
Ok. I figured as much, which is one of the reasons I asked. I thought that someone might be able to finally provide some hard info on this, but it seems not.
> Basically, those tweets are all talking about the social constructs we've put up around programming. There are large fads, things come and go, old projects are abandoned, new projects and forks of old ones spring up. The quote about games seems to be really about hpricot; from some reports, _why was kind of upset about Nokogiri, and everyone's shift to it. If people didn't like hpricot, why not contribute, rather than make the same project over again?
Because they can. That's the downside of giving stuff out, you lose control. If you want control then you can go corporate, but as soon as you release stuff in to the wild, if it is at a level where plenty of others could 'fork' it they probably will (or they'll start some me-too project).
This is one of the bigger downsides of open-source, there is a lot of fragmentation and not all of it is good.
> The first one is something I'd also expect to hear out of someone who's getting burned out. _why did a _lot_ of things.
Yes, I noticed that. But then again, _why is definitely not unique in that. In the Ruby scene he is, but outside of it there have been over the years more people in that vein. I've known one personally here in NL but it was before the 'dawn of the web', so none (or at least, almost none) of it is documented.
Burnout is typically a symptom of taking on more than you can deliver and then to keep on throwing more of yourself on it until there is nothing left to give. I've had it and it took me years to recover. Not quite 'didn't touch a keyboard' but very close.
> And, since _why was an artist, he put a chunk of himself in every project he did.
Everybody does that. Really, people put a piece of themselves in to their work all the time. Any creative profession has this, whether it is a designer, a programmer or a person that restores old vehicles. Work created becomes like a child.
> And when you put yourself out there like that, and people reject it, it's hard.
That's the downside of putting your work out like that.
What bothers me a bit about the _why saga is that the ending of it left a pretty bitter taste in my mouth, it's fine if you no longer want to play, but active destruction of what you've created points to mental problems a little deeper than just a burn-out.
> There's a dead comment at the bottom of this thread that talks about people 'giving him shit' on the shoes mailing list, which I wasn't subscribed to at the time, but with anyone as prolific as _why, I can't imagine there wasn't a fair body of naysayers.
Happens to all of us. I have my share of those and I'm a public 'nobody'.
> Just look at this thread, and the people that want to remove all artistry and craftsmanship from programming.
Not all. I'll be writing a long piece about that any day now, and in part it was prompted by this thread. But there is a lot more to it than 'all code is art' or 'no code is art'.
> The naysayers won. _why got burned out. He decided his sun had set, so he burned his guitar.
Any fool can destroy, but the naysayers did not burn out _why, he did that for the most part to himself. By taking on more than he could sustain-ably deliver he set himself up for a fall, and by not keeping enough distance from the trolls he allowed them to get under his skin. If you are in the public eye by accident that's one thing, but if you choose to be in the public eye by your own choice you really have to have a thick skin.
Look at all the flak that Linus, RMS and Guido van Rossum get, none of it is deserved and they just keep on giving.
One of my first exposures to contributing open source was an extremely negative one (I wrote a clone of zmodem and got crucified publicly by none other than the great Paul Vixie himself for 'copyright violation' when in fact all that happened was that a few lines of an old include file made it in to the spec for the new code, and so eventually in to the distribution. He neglected to mention that this was perfectly ok in a non-spec'd protocol and that Chuck Forsberg, the original author of zmodem was his buddy).
After that I vowed to never release code again.
I can't imagine what would have happened if I had gone through with my idea of an open source micro kernel based operating system released to the public. Probably I would have burned out a lot worse than I did on the webcam project.
Naysayers are like trolls. Ignore them, don't feed them.
As an educator (and that's how I primarily see _why) he had an exemplary role, and I think he failed in showing the people he was teaching how a mature person bows out when they realize it is no longer worth it.
It's rough being out there, but you're absolutely right. You have to grow a thick skin. But that doesn't mean that everyone is able to do so.
Oh, and you were going to write a µkernel? That's awesome, I help out two of my friends with an exokernel. It's been two years of hard work, and like you conjectured, we've had a lot of naysayers. But it's coming along really nicely, I'd say...
It's lots of work getting something like that built and built properly. I can vividly recall the day when it first booted and then a few months later when it became self hosted was really amazing.
I've dumped some source for you here: http://ww.com/task.cc http://ww.com/task.h , it's the kernel itself and the main header file for the process structure. It's 'hard real time', something I wished linux would get on to in the standard releases, and switched on by default.
Maybe there are some ideas in there that are useful to your friends. If you guys get something working let me know please, I'm always interested in stuff like that.
It's funny when I look through that old code, how simple it all looks, blood sweat and tears to get it right though. That was definitely pre-burn-out code :) Since then I've done only much simpler stuff, with the occasional venture in to something a bit more ambitious.
greetings & thanks for the exchange btw.
An HTML parser requires fast and efficient code to successfully and quickly read the document. Furthermore, the programmer needs to take into account common variations in HTML code as well as handling nested tags and attributes. And taking it a step further, the HTML parser is used to output the trillions of websites that are currently out there in a visible form for a majority of the developed world. In this way, the designers have added something great and unique to the world which many people enjoy and use every day. This is art.
Then again, I am one of those weird people who likes modern art, so I could be a vocal minority.
"Programming with libxml2 is like the thrilling embrace of an exotic stranger." Mark Pilgrim
That sort of excitement is not just an engineering one.
And, of course, some artists choose not to even write HTML parsers, but to do things more strange, more beautiful with their code. And that is where things really change, and really get exciting.
Maybe this comes down to the difference between something constructed purely for artistic purposes and something constructed in an artistic way to fulfill a broader purpose. Or maybe it's just a matter of personal taste, the way some people will spend hours arguing about whether a soup can is modern art or just pretentious trash. Personally, I'd say that if people are moved and/or inspired by it, than you can make the case that it is art.
You are right to be cynical but this time I think you missed the mark.
The author gives numerous examples of work "Why" produced. Their merit cannot be taken away. Just as important is the effect "Why" had on the Ruby community and other programmers who I imagine are just as or even bigger cynics. There's John Resig, Zed Shaw and Fábio Akita. I've read their blogs, looked at some of their code. They don't appear sycophantic in their ideas or writing. But I don't know any of these people.
But I do know @DrNic ~ http://www.flickr.com/photos/bootload/tags/drnic I met him last year at a talk he did on "Scriptable tools" ~ http://www.flickr.com/photos/bootload/3409666921/ Nic is the most cynical begger I've met - talking and interrupting the talk after his, ripping into a greeny with a largely sympathetic audience. Questions and comments both insightful and rudely cynical at the same time. I didn't sense the audience resenting this. It pushed the speaker to clarify his ideas.
So I artfully disagree. "Why" had a tangible positive effect in the core Ruby developer community who by nature are as skeptical as you can be - and then some.
Sarcasm aside, _why's influence was felt beyond the Ruby community.
How?
Honest question from a python programmer who never heard about him before the "he disappeared" craze a few months back.
_why was drawn to Ruby because of its own artfulness, and playfulness; you would be hard-pressed to come at programming from the same perspective in Python, not because Python isn't a nice language (it is) but because the diktat "there is only one way to do it" necessarily discourages experimental styles of coding, though not of API or visual design. If your medium is code, then it helps to work with a malleable programming language, and Ruby is nothing if not that. Scheme is malleable, but I'd not call it playful. Perl comes closer, but most languages, which are are written by Serious People with Important Goals, do not.
Anything that inspires people to stretch their skills and try new ideas out helps grow teams and developers, though preferably not when working with production code.
As for his strange charisma, I would say _why is to programming as Ramanujan was to mathematics. There were western mathematicians who were so fascinated by Ramanujan, that even when he was wrong, they suggested that perhaps he was "right" in some higher plane of reasoning.
There's this cute paper some guy once wrote, it's called "The Art of the Interpreter ...", geez I guess he'll have to change it to "The science of the Interpreter ..." - good thing you fixed that for him.
As the article says, what you can take from _why is to bring a sense of aesthetic to _any_ thing you approach, be it a boring powerpoint presentation or a blog or whatever. Didn't your Mommy ever tell you, "If you ain't got something nice to say, maybe you should bite that tongue of yours".
I like _why too, but but by telling gdp shut up because he's not a "fan," you're actually making it much easier for him to make his point.
_why has done absolutely nothing for me either, I cannot stand Ruby, and its community, I don't understand why all the reverence for this single man. Yes, I know of _why's work, and yes seeing other people use his old nickname makes me feel sad since they won't ever really appreciate the ideas, and projects he put out into the world, but why are we still writing about him?
There are many other people that have contributed greatly to advancing of computer science as a whole that contributed to more than just one programming language that have changed the field of computer science as it was once known. Those people are the people we should be writing about, not someone who like a coward decided to up and quit.
_why reminds me of my younger brother, and even partly of myself back when I was a kid, if monopoly or some other board game was not going my way, the board would go flying and so would all the pieces, and it would no longer exists. _why removing all of his content, not passing it along to the next group of people, not even leaving a backup in place thereby causing others to scramble to find the latest up-to-date versions from local disks is very much like that game of monopoly where I am losing, and it is a cowards move.
What I'm getting here from _why's detractors is that your animosity towards _why is bound up with your animosity towards Ruby. I have never understood language wars. Each language brings something different to the party. I learn different languages just for the fun of it. We can be competitive and cheerlead our own corner but it's tedious when people start spewing bile.
I don't think you can project your childhood emotions onto _why's pulling of his online presence. We can only guess at why he did what he did. He disappearance and removing of the code and so forth that he was in control of does pose interesting questions in this age where source-code is shared and diaries are public. If it's important enough people will have copies and keep a hold of the bits they like. I can see how it would annoy somebody to feel like something of worth could be removed from the world so easily but maybe we'll have to get used to that. You could argue that _why had a social responsibility to not do what he did but surely we must allow him some personal autonomy as well.
For my part I'll try to understand your perspective but could you also try to appreciate mine? Thanks!
> _why's influence isn't only in code, but in thinking. And if you look around, for example on github, you will see a lot of people hacking away for fun, trying out new stuff and just doing something they love to do. Did _why start this trend? He didn't, but he was a big advocate of it.
Yes, that's right, this person appears to be seriously suggesting that _why could have been responsible for people hacking for fun (in the "I'm not saying that...", right after saying it kinda way).
> I'd argue his unique way of thinking has also pushed the boundaries of programming as a science in the way that calculus changed people's ways of thinking about math and physics.
As influential on programming as calculus was on maths and physics? Really? _why is on equal footing with Newton and Leibniz now?
> As for his strange charisma, I would say _why is to programming as Ramanujan was to mathematics.
This one suggests that _why is to programming as a Fellow of the Royal Society was to mathematics! Awesome!
> I always thought he was one of the most creative people currently working in any medium,
Yep. That one pretty much speaks for itself.
I mean, the _title_ of the article is "A Tale Of A Post-Modern Genius".
Need I go on? I believe my use of the word "sycophantic" was justified and I stand by it. Genuine praise for someone's achievements is completely justified and should be given freely. This is not genuine praise. It appears to be a pissing contest between different people trying to find the most absurd hyperbole with which to describe the effect that _why had on them, the Ruby community, the programming world and the entire universe and all matter contained within it.
Most of it is really over the top, and you have to wonder how the non-ruby programmers get by, without access to _why's genius or his contribution to thinking in general.
_why was just some guy, he had a nice run at it, decided that it wasn't for him in the long term and proceeded to try to hit the 'undo' button. In a way it is good that most of the stuff got saved, if not we'd have an even larger problem, which is that the scope of his actual contributions would have become the stuff of legend. At least that keeps things a little bit grounded in reality.
Credit where credit is due, but let's keep some scope here _why was an ok guy while it lasted, but he certainly was no Newton, Leibniz or Ramanujan, and he did not put the 'fun' in programming except for the relatively small number of people that learned about programming through him. And for that last we should be grateful, and we should do more of it, and we should NOT destroy what we give to others to use as a base.
Especially for someone that wrote open source libraries his actions were totally unconscionable and they negate a lot of the positive feelings I would have had to his person otherwise.
INTJs : programming as science, maybe a little art
INTPs : programming as equal parts science and art
this comes from the fundamental difference between left-brain and right-brain conception. namely, the right-brain folks can handle the tiny little details directly and simultaneously and account for them statistically. because of this, they can often rule out or rule in entire chains of reasoning in vast swaths and hone in on the critical parts quickly. this is what makes artists seem magical: out of countless possibilities, they can select the good onesthe left-brain folks cannot handle the little details directly. they rely on subconscious abstractions. for left-brain folks, the engineering aspect of coding is perhaps necessary to keep track of the little details. on the other hand, left-brain folks have a knack for certain kinds of structure (abstract logic for example) that right-brain folks do not have naturally
Incidentally, I also consider engineering to be art, only with more constraints.
Funny, that's exactly the kind of thing I'd expect _why to say if he were to take up a new pseudonym and participate in discussions on Hacker News. I'm sure he'd just be trying to convince us that he wasn't actually all that great.
The move to 'quit while ahead' is genius, forever his legacy will be treasured and the myth of his genius will only expand with time.
That doesn't mean that his contribution wasn't great, I'm sure the Ruby world would look different without him, but for every _Why there are 10 others, maybe not as good at marketing themselves but at least as influential.
We really have come to the crossroads of popular culture and programming if we get programmers with 'cult' status comparable to minor movie stars. But I'd rather see some credit go to those that are less capable self promotors.
Watch for _Why's spectacular comeback in a couple of years.
Mark my words.
And that in fact made _Why a stronger brand.
Have a look at the band 'The Cure' and Netochka Nezvanova.
Both of them were amazing marketeers, and _Why worked very much in that spirit.
In the beginning I thought it might be the same group.
nobody wants to challenge me on this?
Maybe rather than saying 'wow' and laughing, you should consider why the things that you say cause others to want to exclude you from the conversation, rather than reply.