Would you rather take the blue pill or the red pill?
Published by admin on Tuesday, July 6, 2010 - 01:00:03 - Filed under General, News, Development
Recently on Servoy’s forum someone linked to a blog where he started putting his impressions about FileMaker (described as ‘the comfort zone’) and Servoy (with its ‘learning curve’).
Nice subject, I thought, you can write tons of stuff about that’s for sure!
Somehow his dilemma kinda reminded me of that scene in The Matrix where Neo is offered a choice between the blue pill (a nice little dream) and the red pill (the shocking reality). When comparing FileMaker to Servoy in terms of software engineering, the choice is strikingly simlilar to the one offered there.
The blue pill:
- everyone can, without much effort, build enterprise software
- no need to learn about computer stuff… that’s for geeks only
- Object Oriented Programming? Come on, do we really need that?
- transactions, who the hell is using this anyway?
- programming languages are not necessary, you can do it all with wizards nowadays
- no need to know SQL to query a database intelligently, the program will do everything for you
- naming conventions? that’s so eighties!
- who needs a DB schema today? normalization? who cares, just put everything in a flat table, the program will sort everything out for you.
- etc. etc.
The red pill:
- building enterprise level software is a craft, and it takes long years of experience and learning to be able to write good software
- you will need to understand how things work to build things right
- if you want to build sustainable code, there’s no way out of OOP
- care about transactions in multi-users/multi-threads/multi-threads/multi-nodes is essential to your data safety
- no wizard of any sort will be capable of building an entire software of enterprise quality for you, you will have to do it yourself
- creating/querying database without a good understanding of SQL is going straight into a wall
- you need to organize your code/methods/forms/objets right from the very beginning, otherwise you will end up with an unmanageable mess, that you will have no time to rewrite later, and regret deeply
- undestanding database schema, entity-relationships, constrains is something you can’t do without if you are serious about software programming,
- etc. etc.
The problem is that FileMaker, just like Access and some other (you name it) all-in-one/do-it-all ‘development’ environment, is based on such a twisted reality as the promising little blue pill. They really are selling you a nice little dream and they will lure you into the false belief that building software is so easy nowadays, that all you have to do is click next > next in the installer, and there you are: you’ve been suddenly transformed into a developer, and your skills have been enhanced to such a level that you will achieve enterprise level software in no time, no learning involved! Pure magic thinking.
That’s just plain wrong, if you ask me, and when I see the kind of crappy software built with FileMaker (my company is FileMaker Platinum partner if you want to know, and as such we are very often called by unhappy clients who want us to patch their unpatchable piece of buggy software, and the least I can say is that I’m not happy about it), I’m not surprised to see the results.
Recently for example, we’ve been asked to boost the performances of a contact manager system for a company that badly needed help. They had their system build by a so-called ‘FileMaker consultant’ (I will not disclosed his name although what he did was plainly criminal).
What we found in it is in itself an example of what not to do:
Imagine a software build out of one table with more than 3000 fields (I’m not talking records here, I’m talking about fields!), among them, there were address1, address2, address3, address4, address5, because the guy who ‘wrote’ this had no idea that there existed such things as relationship, and build everything as he went along… Oh! You need another address? - no worries, I will add an address6 field!
I just plainly refused to put my hands on such a mess. Better rewrite the whole stuff from scratch.
Although this example might be considered extreme, I cannot tell you how much bad practices I have witnessed in a few years of (reticent) contacts with FileMaker and FileMaker ‘developers’, but it’s kind of normal when I think of it, considering the blue pill that these people have so eagerly swallowed. Field names with accents or spaces, that are such a pain to escape in SQL, no use of transactions ever - most FileMaker developers have no idea of what this means anyway -, data corruption of all sorts, dealt with some ’search-replace’ on production servers, and don’t forget to do a periodic repair of your database, because you’ll never know…
We have one big solution made out of FM, and FM pushed to its limits: more than 35 users and the server started to collapse, it took a whole year of painful patching, network tweaking and debugging to get to a reasonable state of ‘reliablility’ and only because every week, one guy has to manually optimize the databases. This is the painful reality hidden behind the blue pill.
And incidentally, this is also why most IT departments will cringe when they hear you saying that your solution will be build on FileMaker, or Access, or … (put your favorite ‘easy-to-use’ 4GL here) - and rightly so IMHO.
The truth is that software engineering is hard, it takes time to master an environment, to understand all the subtelties involved you will need dedication and work and time, and be prepared to learn about SQL, transactions, OOP, threading, and all sorts of ‘advanced’ stuff if you want to do it right.
Anyone telling you otherwise is just a liar and is trying to make you swallow the blue pill.
If you think that it’s unfair, go ahead and take it, but mind that one day or the other, reality will hit you back and it will hit you hard.
Servoy being a red pill of its kind, is not hiding too much that you will need to master your craft before building robust software, the IDE is helping you along the way, and that’s fine, but it will not build a software for you, and that’s for the best because it would just be incapable of doing it right.
The time is not near when softwares will be able to replicate using some sort of AI magic. Right now this is science-fiction.
The good news is that performant, efficient, scalable, maintainable enterprise software is possible with Servoy, the bad news is that you will also need to learn being an experienced developer to achieve such level of quality.
So it’s up to you in the end, personaly I will always prefer the red pill, and keep my eyes wide opened.
