Tags related to tag rant
Tuesday, January 15. 2008
Cruise Control and Ant: OMG, XML DSLs... WTF?
I've been playing with Cruise Control and Ant, trying to get a reasonable Continuous Integration server up and running. For those that don't know, a Cruise Control is a server that takes your source code, and tries to build it until you hit the big red stop button, or the heat death of the universe. Ant is a piece of software that performs the actual building of other software.
And by the time the heat death of the universe arrives, I think I may have it all working, and in a semi intuitive way.
To set up Cruise Control, and Ant for that matter, you need to use XML. XML is an alright, if not exceedingly and outrageously verbose method for describing in excruciating detail data, as well as meta-data—which is to say—data about data. (Whew!) The thing with XML, is that it is a flaming shit sack of metric fail when it comes to describing processes. Processes like the building complex bases of source code, executing them on very finicky server software stacks, launching automated functional tests against them, with each process (build, execute, test) running in its own separate virtual machine are a royal pain in the ass to describe in XML. Again with the flaming sack of fail.
I find it very fitting that in the top 10 search results for fail, Ant documentation comes up.
Ant was built to fulfill a very specific need, which is, to help the process of compiling and bundling Java software together. It does an alright job at this, not stellar mind you, but alright. If you happen to be doing exactly what most other Java programmers are doing, deploying roughly what they are deploying, then you could do a lot worse then Ant. But the second you add any kind of complexity into the pile, it starts to show its warts. It's like playing with a plastic lightsaber; it looks great when you are just waving it around in the dark, but once you actually hit something, sparks don't fly, it just goes snap and it ceases to be any fun. Now you just have broken plastic.
The problem with Ant, Cruise Control and building software in general, is that the process is not linear. While it may be useful to have a descriptive language like XML to describe dependencies between Java files, it is absolutely horrific if you need to do things like conditions (if the build failed, then send a nasty gram to the developer and a 50K volt shock to his chair) or do complicated actions (munge this file to make it actually XML).
A lot of its complexity lies in its dependence on XML as a Domain Specific Language. To make a human languages analogy, it's like learning to speak Esperanto in order to practice Zen Buddhism—one perhaps feels that if they just took up Japanese instead, they might have gotten the job done a lot quicker, with less mucking about.
What strikes me as absolutely insane about Ant, is that when you have a reasonably hard job of working some behavior into your build script, solutions like "run XSL transformations on your Ant Script to give it behavior" are floated about, all with seemingly a straight face.
All in all these are good tools if you want to look like you are working, and enjoy tinkering around with XML, but if you are working towards the goal of building rock-solid, stable, testable software that in any way deviates from the norm, with the intent of releasing a maintainable, easily understood system in a reasonable amount of time, well, that tool isn't built yet (to my knowledge). Rake, being a ruby build tool written in ruby, might be close though.
A good Build Tool would be one that looks similar to, or is just an extension of the language you happen to work in, thus making the entire concept of a separate integration server redundant. Instead of having to bundle the build tool with the integration server, you end up allowing the user to write (in relatively few lines of easily abstracted code) the loop which is the crux of the Continuous Integration server inside of the build tool.
I bet it's built in Scheme.
And by the time the heat death of the universe arrives, I think I may have it all working, and in a semi intuitive way.
To set up Cruise Control, and Ant for that matter, you need to use XML. XML is an alright, if not exceedingly and outrageously verbose method for describing in excruciating detail data, as well as meta-data—which is to say—data about data. (Whew!) The thing with XML, is that it is a flaming shit sack of metric fail when it comes to describing processes. Processes like the building complex bases of source code, executing them on very finicky server software stacks, launching automated functional tests against them, with each process (build, execute, test) running in its own separate virtual machine are a royal pain in the ass to describe in XML. Again with the flaming sack of fail.
I find it very fitting that in the top 10 search results for fail, Ant documentation comes up.
Ant was built to fulfill a very specific need, which is, to help the process of compiling and bundling Java software together. It does an alright job at this, not stellar mind you, but alright. If you happen to be doing exactly what most other Java programmers are doing, deploying roughly what they are deploying, then you could do a lot worse then Ant. But the second you add any kind of complexity into the pile, it starts to show its warts. It's like playing with a plastic lightsaber; it looks great when you are just waving it around in the dark, but once you actually hit something, sparks don't fly, it just goes snap and it ceases to be any fun. Now you just have broken plastic.
The problem with Ant, Cruise Control and building software in general, is that the process is not linear. While it may be useful to have a descriptive language like XML to describe dependencies between Java files, it is absolutely horrific if you need to do things like conditions (if the build failed, then send a nasty gram to the developer and a 50K volt shock to his chair) or do complicated actions (munge this file to make it actually XML).
A lot of its complexity lies in its dependence on XML as a Domain Specific Language. To make a human languages analogy, it's like learning to speak Esperanto in order to practice Zen Buddhism—one perhaps feels that if they just took up Japanese instead, they might have gotten the job done a lot quicker, with less mucking about.
What strikes me as absolutely insane about Ant, is that when you have a reasonably hard job of working some behavior into your build script, solutions like "run XSL transformations on your Ant Script to give it behavior" are floated about, all with seemingly a straight face.
All in all these are good tools if you want to look like you are working, and enjoy tinkering around with XML, but if you are working towards the goal of building rock-solid, stable, testable software that in any way deviates from the norm, with the intent of releasing a maintainable, easily understood system in a reasonable amount of time, well, that tool isn't built yet (to my knowledge). Rake, being a ruby build tool written in ruby, might be close though.
A good Build Tool would be one that looks similar to, or is just an extension of the language you happen to work in, thus making the entire concept of a separate integration server redundant. Instead of having to bundle the build tool with the integration server, you end up allowing the user to write (in relatively few lines of easily abstracted code) the loop which is the crux of the Continuous Integration server inside of the build tool.
I bet it's built in Scheme.
Wednesday, February 28. 2007
Apocalypse Ray: Giant German Babys, Ass Whippin Preacher Men, and The Steps to Destory A Sandworm.
So first of all, this entry is more of a stream of consciousness entry, rather then some of the more crafted entries that I usually write.
I've been on-and-off following Ze Frank for quite a long time now, I wasn't exactly ground floor, but I was pretty early into it. The thing with Ze, is that as the show--the story even--progressed, he invited more and more contributions. A wiki, an earth sandwich, show intros, power moves... but the culmination is when Ze himself appears to have been affected by a song sung by a Preacher to his daughter, titled "I'm about to whip somebodys ass".
This song spawned countless numbers of remixes. A video was created. Okay .. get this, a video was story boarded by a member of the "audience", then another member (or the same one?) offered portrait skeches to anyone who would help fill in the video. The video was made, and suddenly, this Ray, this unsuspecting hyper-intelligent preacher now finds the trajectory of his life shifted, as he is inundated with countless versions of his song, in audio and even video format.
But people's lives are forever changed because of this song as well. If life, work, or whatever is just stressful...
Hum it to yourself.
You know the words.
Which leads me to say... over and over again: it's just a video blog, right?
Look, there is no denying, judging by the traffic that hits ZeFrank.com/org that his work has changed people, but if you watch the show, you can see how people change his work. An intro, a question in the forum. Creativity and culture just building and building on itself.
This is culture.
This is our culture re-inventing itself. There is no discussion about copyright. Its as if the contributors, Ray, Ze, the Sports Racers are all too busy inventing culture to worry about that shit. I am too, so that is enough of THAT particular hobby horse.
So on todays Ze, he flies to St. Louis to present Ray with a bunch of materials that the Sports Racers--the watchers of the show, more on this a little later too--have built for Ray, as tokens of gratitude. As you watch the show, you learn all kinds of interesting things about Ray. He is an anthropologist, a psychologist, a healer. He has long views. Just go watch the show.
Okay, so everything comes full circle at this point right? Like, Ray changes the sports racers life with his song, they change his life. It actually kinda brings a tear to my eye, total strangers are doing really deeply positive things for eachother. When I think about the kind of world I want Harmony to grow up in, this is the kind of world I think of.
Now the thing about Ze, is that he is almost through. In march, the show is officially over. I don't know if the wiki will still be around, or if the archives will still be around. I am going to guess that they will, so if you joined the game late, well shit, don't worry, just pick a few shows, and dive in. I have a few favorites, go check em out.
The thing is, that what will be around is a bunch of people who are used to, and demand that their media is 2 way. It's not enough to passively sit back and consume a the show, but it is instead about contributing to it. StrongBad emails are funny because of the encouragement to send StrongBad an email, because it's the interaction that really makes it funny and gives it its spark.
It makes people passionate. When you're that involved in the remixes for Ray project, it shows through in what you do and what you create. Ze's passion comes out in his work, and it infects everyone.
And now, he's made a social networking site about awesomeness, projects, and connections.
So a Project like "Remixes for Ray" which is totally awesome can grow feet a little easier, and then take off.
Maybe we can find more Rays. And I think that is important right now.
Like I said. The show is ending. According to the mythology--yes, this show has a mythology--because a giant baby has been born, the apocalypse is coming soon. Not only that, but Ze's internments into the league of awesomeness is coming to a close--again according to the mythology. But heres the thing, the sports racers believe the mythology. They do, they believe in the apocalypse more then 90% of the Christians, Muslims, Atheists, or Buddhists believe in their token world(limiting)view. They know its absurd, and revel in the absurdity of it all and, like I said, use it as a spring board to create, and I mean really, seriously create Culture. It is a Culture I can get behind. And these fanatical Sports Racers, Racing their Sports, with their Power Moves can all get in contact with each-other.
This is powerful stuff I think. I think Ze has unleashed upon the internet an interesting phenomenon that starts to link together people on the internet. Not in the mid 90's computers-are-being-linked kind of way, not in the yet-another-social-networking-service way where it is just a big popularity contest. But in linking together people who create, because all create. He has created a monster, and he is ready to unleash his hordes across the universe.
I've been on-and-off following Ze Frank for quite a long time now, I wasn't exactly ground floor, but I was pretty early into it. The thing with Ze, is that as the show--the story even--progressed, he invited more and more contributions. A wiki, an earth sandwich, show intros, power moves... but the culmination is when Ze himself appears to have been affected by a song sung by a Preacher to his daughter, titled "I'm about to whip somebodys ass".
This song spawned countless numbers of remixes. A video was created. Okay .. get this, a video was story boarded by a member of the "audience", then another member (or the same one?) offered portrait skeches to anyone who would help fill in the video. The video was made, and suddenly, this Ray, this unsuspecting hyper-intelligent preacher now finds the trajectory of his life shifted, as he is inundated with countless versions of his song, in audio and even video format.
But people's lives are forever changed because of this song as well. If life, work, or whatever is just stressful...
Hum it to yourself.
You know the words.
Which leads me to say... over and over again: it's just a video blog, right?
Look, there is no denying, judging by the traffic that hits ZeFrank.com/org that his work has changed people, but if you watch the show, you can see how people change his work. An intro, a question in the forum. Creativity and culture just building and building on itself.
This is culture.
This is our culture re-inventing itself. There is no discussion about copyright. Its as if the contributors, Ray, Ze, the Sports Racers are all too busy inventing culture to worry about that shit. I am too, so that is enough of THAT particular hobby horse.
So on todays Ze, he flies to St. Louis to present Ray with a bunch of materials that the Sports Racers--the watchers of the show, more on this a little later too--have built for Ray, as tokens of gratitude. As you watch the show, you learn all kinds of interesting things about Ray. He is an anthropologist, a psychologist, a healer. He has long views. Just go watch the show.
Okay, so everything comes full circle at this point right? Like, Ray changes the sports racers life with his song, they change his life. It actually kinda brings a tear to my eye, total strangers are doing really deeply positive things for eachother. When I think about the kind of world I want Harmony to grow up in, this is the kind of world I think of.
Now the thing about Ze, is that he is almost through. In march, the show is officially over. I don't know if the wiki will still be around, or if the archives will still be around. I am going to guess that they will, so if you joined the game late, well shit, don't worry, just pick a few shows, and dive in. I have a few favorites, go check em out.
The thing is, that what will be around is a bunch of people who are used to, and demand that their media is 2 way. It's not enough to passively sit back and consume a the show, but it is instead about contributing to it. StrongBad emails are funny because of the encouragement to send StrongBad an email, because it's the interaction that really makes it funny and gives it its spark.
It makes people passionate. When you're that involved in the remixes for Ray project, it shows through in what you do and what you create. Ze's passion comes out in his work, and it infects everyone.
And now, he's made a social networking site about awesomeness, projects, and connections.
So a Project like "Remixes for Ray" which is totally awesome can grow feet a little easier, and then take off.
Maybe we can find more Rays. And I think that is important right now.
Like I said. The show is ending. According to the mythology--yes, this show has a mythology--because a giant baby has been born, the apocalypse is coming soon. Not only that, but Ze's internments into the league of awesomeness is coming to a close--again according to the mythology. But heres the thing, the sports racers believe the mythology. They do, they believe in the apocalypse more then 90% of the Christians, Muslims, Atheists, or Buddhists believe in their token world(limiting)view. They know its absurd, and revel in the absurdity of it all and, like I said, use it as a spring board to create, and I mean really, seriously create Culture. It is a Culture I can get behind. And these fanatical Sports Racers, Racing their Sports, with their Power Moves can all get in contact with each-other.
This is powerful stuff I think. I think Ze has unleashed upon the internet an interesting phenomenon that starts to link together people on the internet. Not in the mid 90's computers-are-being-linked kind of way, not in the yet-another-social-networking-service way where it is just a big popularity contest. But in linking together people who create, because all create. He has created a monster, and he is ready to unleash his hordes across the universe.
Monday, January 29. 2007
Inane Parenting: Andre Mayer Complaining about the Cool.
Over on the CBC there is an editorial on Hipster Parenting. It starts out with a description of A book about "Hipster Parenting" and quickly degenerates to "Kids these Days":
It seems that the main point of the is that in order for one to be a good parent, you have to be a passive little consumer doting on the center of your life. No, not only is it important that you devote your life to your little one, but now you must conform to societies norms as well. "Feel Pollack’s righteous anger, the way he scoffs at old-guard parents and their squareness, their addiction to Raffi, their misguided altruism.". I have news for you Andre, you old-guard parents are square. Your misguided altruism is worth scoff and scorn.
I think that this is highly illustrative of a stark cultural, and perhaps generational divide between Andre and myself. Andre asks: "In 'Notes from a Drunk Aunt,' Lisa Gabriele writes about the freedom of not having to be someone’s role model. What moral are we, as parents, supposed to glean from that?" And to me, there are plenty of moral lessons, like: why do you expect every adult to be a perfect role model? Is it really appropriate to talk down to children? Does my liberalism end when it relates to my daughter, and why should this be so?
So what is this cultural difference between Andre and I? Well it strikes me that Andre comes from the "What to expect in the first years" school of parenting. The style of parenting that claims your child is a beautiful individual special little snowflake that needs your constant care, attention and doting, but only within certain well-defined parameters. Andre complains about this era of "unfettered narcissism", and yet the parenting style that removes our children from the gritty realities of daily life, that encourages them to think they are special, that they really are the primary focus to mommy and daddy causes the unfettered narcissism.
Now don't get me wrong. I love my daughter. Lots. Lots and lots and lots. I don't go to as many all night rave-techno parties any more. I don't spend hours down in my studio,I spend time making castles and running in circles instead. But that doesn't mean I am no longer a musician. The way to raise a well balanced human being is to be a well balanced human being, and being a well balanced human being means maintaining something similar to the lifestyle that I currently live. Are there compromises? Of course! But when a child realizes that they are the center of their parents life, they realize that they can wrap them right around their little finger. I'd rather raise a child who can become an important part of her community based on her own merits, skills and abilities. Harmony is a part of my life, not my whole life.
Andres article ends off with complains about the babble.com website based on what can only be a quick scan of the photos and headlines. If you actually read the articles, Madeline is not complaining about her second, instead, she is expressing a fear that a lot of parents have, and pointing out that average isn't bad. Erin Cressida Wilson is giving a frank look at wanting a girl, but getting a boy, which if you are a perfect "What to Expect..." parent, should never happen. Frankly, it looks as if Babble.com's articles are truthful windows into what it's like to be parents, rather then the bullshit white-picket-fence-and-soccer-mom (pseudo) reality that Andres would have us all "grow up" into.
I'd like to finish off with this quote from babble.com:
People used to raise kids with a sort of quiet stoicism; the fact that humans have been reproducing for millions of years was enough to humble any new breeder. But in this era of unfettered narcissism, child rearing has become a spectacle. The tabloids stalk famous females in search of a “bump” to monopolize the news cycle; Tom Cruise buys his pregnant wife a $200,000 US ultrasound machine for home use; and Oprah exalts celebrity mothers as though having a child is as novel and courageous as space travel. And non-celebs? They bloviate in blogs.Oh Noes! Sneakers and hoodies? It's the end of civil society! This is all highly ironic as I post—bloviate one might say—in my blog whist wearing sneakers, and a hoodie, at work no less. But I digress.
It’s the age of full disclosure, but also the age of prolonged childhood. Due to societal changes — particularly greater permissiveness in the workplace — people are no longer obliged to grow up. They show up at the office in the sort of garb they wore in middle school: sneakers and a hoodie.
It seems that the main point of the is that in order for one to be a good parent, you have to be a passive little consumer doting on the center of your life. No, not only is it important that you devote your life to your little one, but now you must conform to societies norms as well. "Feel Pollack’s righteous anger, the way he scoffs at old-guard parents and their squareness, their addiction to Raffi, their misguided altruism.". I have news for you Andre, you old-guard parents are square. Your misguided altruism is worth scoff and scorn.
I think that this is highly illustrative of a stark cultural, and perhaps generational divide between Andre and myself. Andre asks: "In 'Notes from a Drunk Aunt,' Lisa Gabriele writes about the freedom of not having to be someone’s role model. What moral are we, as parents, supposed to glean from that?" And to me, there are plenty of moral lessons, like: why do you expect every adult to be a perfect role model? Is it really appropriate to talk down to children? Does my liberalism end when it relates to my daughter, and why should this be so?
So what is this cultural difference between Andre and I? Well it strikes me that Andre comes from the "What to expect in the first years" school of parenting. The style of parenting that claims your child is a beautiful individual special little snowflake that needs your constant care, attention and doting, but only within certain well-defined parameters. Andre complains about this era of "unfettered narcissism", and yet the parenting style that removes our children from the gritty realities of daily life, that encourages them to think they are special, that they really are the primary focus to mommy and daddy causes the unfettered narcissism.
Now don't get me wrong. I love my daughter. Lots. Lots and lots and lots. I don't go to as many all night rave-techno parties any more. I don't spend hours down in my studio,I spend time making castles and running in circles instead. But that doesn't mean I am no longer a musician. The way to raise a well balanced human being is to be a well balanced human being, and being a well balanced human being means maintaining something similar to the lifestyle that I currently live. Are there compromises? Of course! But when a child realizes that they are the center of their parents life, they realize that they can wrap them right around their little finger. I'd rather raise a child who can become an important part of her community based on her own merits, skills and abilities. Harmony is a part of my life, not my whole life.
Andres article ends off with complains about the babble.com website based on what can only be a quick scan of the photos and headlines. If you actually read the articles, Madeline is not complaining about her second, instead, she is expressing a fear that a lot of parents have, and pointing out that average isn't bad. Erin Cressida Wilson is giving a frank look at wanting a girl, but getting a boy, which if you are a perfect "What to Expect..." parent, should never happen. Frankly, it looks as if Babble.com's articles are truthful windows into what it's like to be parents, rather then the bullshit white-picket-fence-and-soccer-mom (pseudo) reality that Andres would have us all "grow up" into.
I'd like to finish off with this quote from babble.com:
What we're hoping to create with Babble is a forum for all the experiences that make having and raising kids in the city so fraught. But we also hope to channel the spirit of all those non-neurotic strangers on the street who greet new parents with nothing but the purest delight.Yea, sounds like a horrible site to me.
Friday, November 10. 2006
This word... simple... I dont think it means what you think it means.
I'm becoming a bit of a PHP gadfly these days. Seeing as how I am in the middle of building a web server with scheme, it is difficult not to snipe at what some other members in the PHP community are saying about PHP, simply by virtue of seeing things from a different perspective. Now I don't really have it in for PHP (okay, maybe just a little). It is an okay language, and you can really get things done with it. However (and you knew it was coming...)
PHP is not simple.
PHP's Type System is complex. Sure, dynamic typing is easy, but weak typing is weird. 5 + "10 little piggies" -> 15?
PHP's Object System is complex. It is Javas OO system grafted on top of a really basic system. Ironically, this is where PHPs type System gets so strong to be a real pain in the ass. Ever had to cast an object?
PHP configuration is complex. 3 words: php dot ini.
PHP has complex syntax.
There is also a vast volume of built in functions for php, and an even larger body of extensions. This is not bad (its very good in fact) but it hardly makes the language simple.
There are plenty of reasons to like PHP, but simplicity isn't one of them.
PHP has one major thing going for it - it's simple nature lets developers keep things simple, and simple is good.--PHP Developer
PHP is not simple.
PHP's Type System is complex. Sure, dynamic typing is easy, but weak typing is weird. 5 + "10 little piggies" -> 15?
PHP's Object System is complex. It is Javas OO system grafted on top of a really basic system. Ironically, this is where PHPs type System gets so strong to be a real pain in the ass. Ever had to cast an object?
PHP configuration is complex. 3 words: php dot ini.
PHP has complex syntax.
There is also a vast volume of built in functions for php, and an even larger body of extensions. This is not bad (its very good in fact) but it hardly makes the language simple.
There are plenty of reasons to like PHP, but simplicity isn't one of them.
Monday, April 10. 2006
The beauty of Rasmus's Unframework, and the ugliness of advocates
Rasmus wrote about the "No Framework PHP MVC Framework. And so many people missed the point, it becomes almost funny. First of all, there are a bunch of Ruby on Rails wonks who are obviously dismayed by the entire idea that using a framework, especially one with a central controller could actually be harmful. This is something that Avi and I talked about earlier, albeit in a slightly different content.
One of the things that bugs me about this comparison it is at the end of each subsection is a running tally of lines of code written, as if that is the be-all and end-all of programming. If it really had to do with how many lines of code we wrote, we'd all agree that a language like scheme is best, and we'd all program in one language.
But really, the biggest thing is this, I'll just quote the relevant authors, and let them speak for themselves:
The difference is obvious. Rasmus is talking about why using a monolithic controller might not be a good thing, and shows us how one can get round that using his language of choice. Jules is showing us that his language and framework of choice is so much better then ours because his framework writes all his code for him. Glossing over the fact that Rails itself has, just as a guess, several kilo-lines of code. So I guess that means that PHP is better, because it only took PHP a few hundred lines for what took rails thousands.
Now as I said, I don't have it in for Rails. I don't actually believe that a framework is better then a language for writing web applications. I think both have their place.
The problem is however, that the J2EE camp seem to be trying to sell us on using islands of XML instead. So there is a 3rd markup language that the web developers and the app developers have to learn. There is yet more layers of indirection. Indirection when used appropriately is important. Some indirection however is like too much makeup on a cheap whore.
Personally, I rather prefer the <?PHP ... ?> style (assuming that you are separating your display logic from your business logic). I mean, we are using the XML processing instruction for... are you ready for this? Document processing.Now, at work, I have to deal with a J2EE app. I am not sure if it is a representative sample or not, but let me tell you: if the J2EE/huge-framework method is the right way, then I'll throw my lot in with the bad-guys. Trying to change just one small aspect of this system becomes an exercise in pain. This droplet here, is it configured by the params and oparams in its XML? Or is it configured by its properties sheet? Or is it configured by some other XML configuration file somewhere else? In actual fact, I am also willing to explore the very real possibility that there was a very particular reason for the at-work system being laid out like it is, and I am going to try my very best to learn it as best as I can, without letting my prejudices getting in the way. It isn't going to be easy, but it will be well worthwhile.
Anyway, the central point here is that you can talk till you are blue in the face about how PHP is a perfectly valid language, about how it can be used appropriately, until you are blue in the face. 90% of them will not listen. They don't care. The C# guys spent a fuck-tonne of money becoming certified by Microsoft. They are firmly, and proudly locked in. If they have to admit to the possibility that there is another perfectly valid way of doing things, their house of cards comes crashing to the ground. The same can be said with the Java guys. They love their Bondage and Discipline language, and wear their love proudly. It is so much easier to sneer at a language that challenges what we think of as "good" then it is to actually learn from and learn about that language.
To those guys, I say "So what". Let them spend countless dollars on training and education on broken languages. Go learn Scheme, Haskell or something. Go see what the fuss is about continuations and web programming, so that the next time they start to sneer in your direction, you can retort with something like "Oh, I'm sure glad your language of choice solves every problem. Why aren't we all using Language X for everything? Quick tell the world!". Language advocates are annoying and dumb, and should be treated as such. Don't treat them as people to convince, but people to scorn.
Okay, sorry, this got a little ranty. But language advocates piss me off. There is a big difference between loving a language, and loving a language to the exclusion of all others. I'll finish off by pointing you to this great entry about Java by Steve, titled: Execution in the kingdom of nouns.
Railing on Rails
Probably the most annoying, asinine, and missing-the-point-entirely, is an entire blog post that claims to compare the no framework PHP version with Rails. Look, I am not about to rag on Rails. It is obvious that it does something right and good for a lot of people; in fact, installing and playing with rails is very high up on my todo list.One of the things that bugs me about this comparison it is at the end of each subsection is a running tally of lines of code written, as if that is the be-all and end-all of programming. If it really had to do with how many lines of code we wrote, we'd all agree that a language like scheme is best, and we'd all program in one language.
But really, the biggest thing is this, I'll just quote the relevant authors, and let them speak for themselves:
I don't have much of a problem with MVC itself. It's the framework baggage that usually comes along with it that I avoid. Parts of frameworks can be useful as long as you can separate the parts out that you need. As for MVC, if you use it carefully, it can be useful in a web application. Just make sure you avoid the temptation of creating a single monolithic controller. A web application by its very nature is a series of small discrete requests. If you send all of your requests through a single controller on a single machine you have just defeated this very important architecture. Discreteness gives you scalability and modularity. You can break large problems up into a series of very small and modular solutions and you can deploy these across as many servers as you like. You need to tie them together to some extent most likely through some backend datastore, but keep them as separate as possible. This means you want your views and controllers very close to each other and you want to keep your controllers as small as possible.--Rasmus
The controller handles the requests of the user. Every request goes through a controller first. The controller uses the model and view to create a response. In this application, one of the tasks of the controller is to load a list of products, using the model. The controller gives this list to the view, which turns it into HTML.--Jules
The difference is obvious. Rasmus is talking about why using a monolithic controller might not be a good thing, and shows us how one can get round that using his language of choice. Jules is showing us that his language and framework of choice is so much better then ours because his framework writes all his code for him. Glossing over the fact that Rails itself has, just as a guess, several kilo-lines of code. So I guess that means that PHP is better, because it only took PHP a few hundred lines for what took rails thousands.
Now as I said, I don't have it in for Rails. I don't actually believe that a framework is better then a language for writing web applications. I think both have their place.
Object Fascism
The other funny/annoying part of the comments to Rasmus's blog is the OO-Zealots, another great quote:I think you are doing a lot of damage with this posting. Do you realize what's going to happen if ONE of the 30 programmers in the building I work in find's your post? For years I have struggled convincing fellow programmer's that PHP is NOT a simple scripting language for the gamers and what not, that it actually CAN compete with J2EE and ASP.NET and C# if used where appropiate. To read this from the creator of the language....I'm still shocked--Jurgan
J2EE Tag Soup
One of the arguments against PHP is the "Islands of code" argument. The theory is that islands of code inside of your HTML files is bad, hard to maintain, and basically evil.The problem is however, that the J2EE camp seem to be trying to sell us on using islands of XML instead. So there is a 3rd markup language that the web developers and the app developers have to learn. There is yet more layers of indirection. Indirection when used appropriately is important. Some indirection however is like too much makeup on a cheap whore.
Personally, I rather prefer the <?PHP ... ?> style (assuming that you are separating your display logic from your business logic). I mean, we are using the XML processing instruction for... are you ready for this? Document processing.
Anyway, the central point here is that you can talk till you are blue in the face about how PHP is a perfectly valid language, about how it can be used appropriately, until you are blue in the face. 90% of them will not listen. They don't care. The C# guys spent a fuck-tonne of money becoming certified by Microsoft. They are firmly, and proudly locked in. If they have to admit to the possibility that there is another perfectly valid way of doing things, their house of cards comes crashing to the ground. The same can be said with the Java guys. They love their Bondage and Discipline language, and wear their love proudly. It is so much easier to sneer at a language that challenges what we think of as "good" then it is to actually learn from and learn about that language.
To those guys, I say "So what". Let them spend countless dollars on training and education on broken languages. Go learn Scheme, Haskell or something. Go see what the fuss is about continuations and web programming, so that the next time they start to sneer in your direction, you can retort with something like "Oh, I'm sure glad your language of choice solves every problem. Why aren't we all using Language X for everything? Quick tell the world!". Language advocates are annoying and dumb, and should be treated as such. Don't treat them as people to convince, but people to scorn.
Okay, sorry, this got a little ranty. But language advocates piss me off. There is a big difference between loving a language, and loving a language to the exclusion of all others. I'll finish off by pointing you to this great entry about Java by Steve, titled: Execution in the kingdom of nouns.
Wednesday, April 5. 2006
The problem with Wikis
Wikis are so thunderously cool. The potential for anyone to go ahead and edit a document on the web is outstanding, witness the joy that is Wikipedia. However there is a problem with wikis: no-one wants to edit and update a wiki page.
I don't know why this is. I have been thinking about it and the 2 problems that I see are:
The third problem is a little harder. The HomeStarRunner Wiki is a good place to go to get ideas on making your wiki friendlier for community fostering. This might also be solved via technology, by making a clearer division between the community of a wiki, and the content of a wiki, with threaded discussions, standard profiles, and perhaps even messaging. (I am not sold on site-wide messaging myself).
Ultimately I would like to see a REST wiki with all of these features. This means some PHP coding with meditation, and some Javascript. But where the hell am I going to find time for this? (Maybe I'll do 15 mins of coding on it a day?)
I don't know why this is. I have been thinking about it and the 2 problems that I see are:
- Editing wikipages is hard. While wikis try to stay as plain-text-as-possible, usually they turn into a soup of specialized characters with specialized meanings. The first piece of wiki software that has a good WYSIWYG editor, that is especially for wiki content will soon gain wide adoption.
- Wikis are hard to edit, because the user isn't encouraged to edit the wikipage. Usually they have to click on the edit link (if they can see it) and then read through a warning about how they should play well with others, and a list of about 50 documents to read just to fit in.
- and finally wikis are hard to edit because the potential editor feels that they might make a mistake, or their contributions will get stomped over.
The third problem is a little harder. The HomeStarRunner Wiki is a good place to go to get ideas on making your wiki friendlier for community fostering. This might also be solved via technology, by making a clearer division between the community of a wiki, and the content of a wiki, with threaded discussions, standard profiles, and perhaps even messaging. (I am not sold on site-wide messaging myself).
Ultimately I would like to see a REST wiki with all of these features. This means some PHP coding with meditation, and some Javascript. But where the hell am I going to find time for this? (Maybe I'll do 15 mins of coding on it a day?)
Tuesday, April 4. 2006
AOLspeak makse my eyes glaze over
I ran into another Yet Another Social Networking Software. In their front page, in all its second-level-headline-glory was this:
AOL speak is so lame.
Store 4 U, Send 2 Your FriendsI won't check it out. I've been soured and sullied from ever going to that site again. It might just be the killer web app, (but I doubt it, it seems like more web2.0 du jour) and I still won't go.
AOL speak is so lame.
(Page 1 of 4, totaling 23 entries)
» next page




