In 2005 ben ik een maand bezig geweest met Caché van Intersystems. Aangezien ik nu bezig ben met Hadoop/Big Data dacht ik weer terug aan Caché die zichzelf adverteert als Postrelational database. De truuk van Caché is dat het een Tree is, waarvan de nodes ergens anders opgeslagen kunnen worden. Komt in de buurt van Hadoop. Vandaar dat Caché zichzelf ook wel een Big Data oplossing noemt.
Maar wacht!
Caché zit zo slecht in elkaar dat het de "Gateway to hell" genoemd wordt door ontwikkelaars.
In dit bericht op het internet beschrijft een ontwikkelaar Caché en een zelfde ervaring heb ik ook gehad. Gelukkig hoefde ik uiteindelijk niet professioneel met Caché aan de gang.
Overigens heeft het bedrijf dat Caché gebruikte als z'n ontwikkeltool voor een advertentie-systeem het niet gehaald.
Misschien is Caché tegenwoordig beter, maar het zou me niet verbazen als dat niet zo is. Hieronder herhaal ik een gedeelte van deze post uit 2006:
My absolutly biggest beef with Caché is that all code is stored in the database. All code. Let it sink in for a while... Yes, that's right, you have to use a special application to edit your code. This means no easy backups (you have to either backup the whole database or make an 'export' of your project to XML), no version management system (CVS, Subversion), no auto documentation tools, no analysis tools, no nothing... I can't really tell you how much this sucks. The IDE, Intersystems Studio, is pretty much just a texteditor which highlights syntax errors in red. Thats it. When I complained about Studio a sales representant told me that "we're not a tools company, we're a database company" and then, in the next sentence as an answer to my question about the possibility to use other tools: "no". Go figure.
The programming language has been slightly redesigned in later versions to something called 'Caché Objectscript'. This is a lame attempt to add OO concepts to a basically dead language. It's not enough to add something called 'class' and then be done. No exception handling, no encapsulation, no typing, and so on. Worst part is that the class is 'compiled' into something which is basically Mumps-based. Yes, thats right. You write in one language which compiles into more or less the same language. Smells like a macro-language if you ask me.
Problem is that if a runtime programming error occurs the error refer to the compiled code (!) and usually with a message like: "Error 8002 on line 142 in procedure WTFISGOINGON.inc" (or something to this effect). But it's not line 142 in your code! This is like coding in Java and having the VM point you to the bytecode when something goes wrong... With the error message "it's wrong".
And it doesn't stop there. Remember how popular it was in the end of the 90's to embedd programming languages in HTML-pages? ASP, PHP, and so on? Ofcourse Caché must have its own version, Caché Objectscript Pages or CSP. These are actually stored as regular files, probably because Intersystems use a mod for Apache to handle them. On execution these are compiled to Caché Objectscript classes... Yes, that's right, to something which in turn is compiled to yet another form. Where do you think errors refer?
Ohh, yes... Did I tell you that the documentation absolutely sucks? They have some documentation available similar to javadoc, but where the JDK tells you what you need (and usually more) their version is amazingly sparse. Once I tried to call a static method in a class and got errors however I did it. Turned out that that particular class wasn't converted to the new OO system and that you needed to use the old calling method, but this information was nowhere to be found (it didn't differ one bit from other classes I used).
I could go on here...
Geen opmerkingen:
Een reactie posten