- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Bob?
Admin
Well, I guess it's a step above MUMPS!
Admin
We have something disturbingly like this at my company. It's an XML-based language that gets converted into Java objects/functions during the server's start-up sequence. (That's right, it's not compiled into bytecode, the parser goes through and generates Function and ReturnValue and Token objects.)
I can sorta see the justification: we're getting the speed of Java, and the flexibility of a scripting language; there's no need to recompile the server every time somebody changes a report. Apparently, at least one of our (rather large) customers was worried that an actual scripting language would be too slow, and we caved. The drawback, of course, is that it's an in-house language. I'm never going to use this anywhere else.
It has a number of quirks, like not being able to create a floating-point variable. In all honesty, I've never actually needed a floating-point variable in the work I've done on this thing, and the floating-point type exists and can be created by native Java functions and passed down to this XML-script layer, but it still scares me. And, of course, since it's an in-house language, I still run into obscure bugs from time to time, and the way any given function behaves when it fails is usually poorly documented. (i.e., does it simply not execute its child XML nodes, or does it throw an exception? It could be either.)
Admin
If all you have is a hammer to solve problems with, every problem begins to look like a nail.
Admin
You're so profound. Did you come up with that yourself?
Admin
I've spent years helping companies pry systems like BobX out of their lives. These "tools" are sold to them by inexperienced developers or overpaid consultants as wunderprograms that solve all problems.
It usually takes years of programmers quitting and telling them how screwed up these systems are and how badly they got ripped off before they admit defeat. Its only then, when they see the price they have to pay people like me to dig them out of the hole they bought into do they ever realize the gravity of their mistakes.
Everything we do makes the world better or worse. I'm glad to be on the good side of that equation.
Admin
Admin
Yes but at the end of the day, it's just as opaque a solution to the business. You're just another guy who comes along spouting crap, telling them everything needs changing, etc. What many of you fail to realize is the 'if it ain't broke, don't fix it' attitude that rightly pervades businesses who don't want to spend money unnecessarily.
Unless it's core the the companies business, it really doesn't matter if some reports are a little bit painful to create / modify.
The real solution is to go with standards, and reinforce the fact that anyone will be able to come in and break their system, instead of first having to learn the obscure language first.
Admin
Admin
I did exactly that... it was called HTAG and was written in in Delphi. But this was so long ago, that if I had stuck with it, I could have beat coldfusion at it's own game. Cf took several years to catch up with HTAG. HTAG still operates a business today. The source code for HTAG has long since been lost... I am ashamed.
Admin
That is one smart programmer. That's called leverage man. He did his job, the people love him and he gets his large check every month.
Admin
Oh yeah? Well! We use OpenBobX! http://github.com/henriwatson/OpenBobX
Admin
I'm surprised noone has mentioned XAML yet.
TypeConverters really make it possible to work with XAML while staying sane.
Admin
I second that. HA!
Admin
Well, at least we now know what happened to Little Bobby Tables when he grew up.
Admin
May I suggest psychotherapy for your narcissism? BTW- You might want to substitute "VB" for "BobX" in my original post to get a clue.
Admin
Yo dawg, I heard you like parsers...
Admin
Admin
If a Company is dumb enough to get into a situation where a single bus can take destroy its critical business infrastructure (via the death of Bob) then I'd wager it's not Bob's fault at all.
Dontcha just love nepotism? (the usual source of Bob's)
Admin
Oh yeah? Well! We use OpenBobX!
Admin
Nepotism ? what's that ?
Admin
I have been told several times that Comic Sans is more readable on screen than many other fonts, and is notably better for those with dyslexia or learning difficulties.
Indeed, the British Dyslexia Association states in its guidelines: "Use a plain, evenly spaced sans serif font such as Arial and Comic Sans. Alternatives include Verdana, Tahoma, Century Gothic, Trebuchet."
So, pause before pouring scorn on those who use Comic Sans - they may be doing so with good intentions...
Admin
Admin
The really scary thing is everyone chipping in with "We have something similar at my work where XML is &magic to &real_languange...
XML is an ugly abomination on its own, it should not be sodomised into a programming script/language. But still, the retards persevere, all over the place.
Admin
Haha, that's funny. A BobX loyalist with his feathers ruffled. So BobX is just like C# eh? What happens, pray tell, when Bob gets sick? I'm sure it's just as stable, has just as solid a developer community improving and documenting and supporting it, just as many third party applications, can just as easily be ported to other systems if need be, has had just as much optimization done. This is a perfect example of a developer holding a company hostage. The management doesn't understand IT. They like having someone who's half-competent tell them "don't worry, I have things under control" and not have to look at the big picture themselves. The problem is, the other half is missing...
Admin
Damn. Now I want to write my own language. And become a shadowy recluse.
Admin
I prefer PBP: Personal Bob Page (or, as they've renamed it, PBP: Hyperbob Bob-Processor).
Admin
Well done, Captain Obvious!
Admin
"I find all you BobX haters so frusterating. I mean, it's just a tool like Java, PHP, or C#. The real value is in getting the job done. And if I can do it using BobX, well screw you and good for me."
I find all you Aramaic haters so frusterating. I mean, it's just a language like English, Spanish, or French. The real value is in getting the job done. And if I can do it using Aramaic, well screw you and good for me.
Admin
Shit we've got XaviScript in honour to one guy named Xavi !!
Admin
Re-read the story, but replace BobX with Smarty.
Admin
BobX was also written by Bob's friend Neil. It was Neil and Bob who worked perilously long hours locked away in a small, let's say 'closet' sized, room. They spent days pounding code into one another's box while never coming out of that closet. Working that closely in such tight quarters presented Neil and Bob many challenges like how to reach around each other's box to give one another praise and accolades for such a job well done. Here's to Neil and Bob!!
Admin
in that he takes hostages and holds them for ransom.
Admin
This 'Bob' dude sure looks shady enough to inspire distrust. Looks like he got a juicy business in convincing unsuspecting clients to not use PHP and use his obscure script written in... PHP. I can tell that and I'm not even anything near code-savvy.
By the way, googling BobX returns almost no relevant info (the first result is this: "The absolute HOTTEST women on this planet, Hot Women :: , Hot Asian Women , AV Idols and Japanese Girls" etc.). Only one in the lower results returns a "bobx computers, servers & networks" in New Zealand. The title is set in Comic Sans MS.
Admin
It sounds like trying to build the Hubble Space Telescope with a caveman's stone tools (or maybe more appropriately, writing everything in assembly.)
Admin
Why dont you use Brainfuck ? It's turing complete, afterall...
Admin
I used bobx to hide the guilty or rather the clueless. It has an x in it and those who ever forced to use it, will cry out in pain and out of sympathy for sure. Our national postal service is using it as well in some rather large applications and there are a few other large things running with it, among them some rather important bits of a town. I don't go there anymore.
My guess is the spiel about it being enterprisy and "you just do the coding, we take care of the rest" has a large appeal to many companies, especially small ones. Once they are trapped, they are trapped for good. It will take a decade for them to dig themselves out of that hole. And I have a feeling in a decade there still will be pages where behind the scenes we will have a bobx tag somewhere doing god knows what. Or better "bob knows what, but he wont tell".
Admin
Admin
I can meet you halfway the argument that getting the job done is what matters with the caveat that the cost (in time and effort) for using whatever tool is mandated resides there, on the tool, and not on the programmer (assuming the programmer is sufficiently competent.)
I think you need a little bit of perspective here.
I had to work with a system just like this, which I'll call Xlang (the actual name omitted to protect the not-so-innocent.) What would take a few hours in any modern system (say, change the order of pages just as in the story) would actually take days. And that was the experience of every single programmer that encountered that bastard technology, be it a novice or a seasoned developer.
There were these things called "Xlang services" (the almost equivalent of "assistants" in this story), which were supposed to be the wow thing of it.
Thing is, just as in the story, you couldn't concatenate strings on the fly (much less compute fields). You had to create services for them. So you had a string concatenation service, an integer addition service, a date function service...
... and these weren't just function calls. The language was expressed in XML (as XBob was expressed with a PHP interpreter), so to call one of these services, it would parse the xml, take the arguments and marshall them off the xml into specific Xlang data structures which would then be unmarshalled into their java counterparts, the actual class that implemented the service had to be searched in a lookup table, instantiated, called with the arguments and the results marshalled back into Xlang data structures...
all that just to firstName+lastName. And if you wanted to develop a "service" A that would call "service" B, you couldn't just call service B in java as you would call a function. You had to mimic the same marshalling/unmarshalling that takes place in XLang.
There were if statements that always evaluated to true, no means to define procedures or functions in XLang. Wanted to reuse some existing code, write yet another new service (see the overhead of this in the previous paragraph.)
To be fair, all tools had their shitty moments. And that was all dandy if all that mattered was to get the job done.
[color]But that was not[/color].
The inventor (someone who like Bob had a lot of pull in the company) actually expected people to program with this shit and deliver bug-free results faster than one would with a more robust, less-buggy and more modular solutions like the many we have out there.
People who couldn't keep up with this were deemed incompetent and fired within 6 months (and not without a lot of insults and threats.) The inventor never had to do any large scale system with his invention. After crapping that deformed fetus on the company's unfortunate developers, he simply moved into "managing" the development teams.
And this story (and the "Xbob" story) are NOT that rare. Some people implement their languages; other implement their own web frameworks or OR mappers. Sometimes they do well, but more often than not, they do a horrendous job that ends up increasing the cost of development.
The invention of square wheels is greased by their developers' egos. It is almost never their inventions' fault, but the developers who aren't bright enough to wield their wonderful pet-projects.
There are quite a few nutjobs out there who have never taken the fundamentals of software engineering or process management (much less taken a compiler and language design course) who actually think they can design a language or framework. And it's not that people shouldn't invent their own things, but that they should know what they are doing and they should understand the cost/benefit of using their inventions.
And that's what is usually missing whenever you run into a XBob or Xlang shop: an understanding of the cost. And with that it comes the assumption that if a developer cannot get something to run with their bug-ridden, over-complicated system, then it is his fault. No matter if a thousand developers fail to meet the expectation, no matter the cost, it is always their fault. It is never a fault in their baby, pet-project inventions.
There is a time and place to say, yes, getting the job is what matters.
There is also a time where you actually have the right to hate the Xbox and the Xlang of the world. And that's the time to walk away.
And here is where Christian (the character of the story) fouled up. He was hired to do work with Xbob, and he accepted the job.
So his obligation was to get it to work with Xbob, not hack it with PHP (even if the solution was more elegant and workable.)
If he couldn't get Xbob to work (or if he couldn't do the Xbob deliverables within the expected timeframes), then he should simply had said "I'm sorry, I cannot do it, I can't keep up with Bob. Thank you for the opportunity of working with you, but I'm not the right man for this job. I wish your company good luck and thank you for having me."
He should have walked away and hated it rather than taking the paycheck and hack the job in a way he wasn't being paid for.
Admin
You're a regular poster, so I'll give you the benefit of a serious response. This post was a riff of the predictable diatribe one hears whenever a technology (especially VB) is accused of being inferior. That's all.
I was hoping the intentional misspelling of "frusterating" (taken from the article text) and the whole "well screw you and good for me" would be good enough indicators that I wasn't serious. Based on the shear volume of responses, I was wrong.
Admin
This is one of those times when I wonder who bob is and what the terms of his getting paid are. It almost smells like fraud with the boss actually being Bob.
Admin
haha: "frits" is an anagram for "first"
i agree though, BOBX FOR LIFE
Admin
go away bob
Admin
Oh my god, I hope I never come accross this BobX :D How can you call a php tool a "tool like java or C#" xD
Admin
Yeah - that's what I need -- a tool that makes my job harder...
Admin
I think we got multiple BobX in our compny too. 2 in PHP and one in Java. I Could never understand why sometimes a developer need to feel he has built some in-house Language or Custom Framework to do exactely the same thing slower. Screw you all BobX creators, to lead developers in a dead end development career by making them working on some piece of shit you call Language or Framework.
Admin
Sounds a lot like XSLT.
Admin
It's clearly xBob not BobX. People really need to get their marketing right.
Admin
Haahahahahahahahahaa! That's right soldier. Don't listen to them!
Admin
I died a little inside after reading that article.