Smart Pascal dialect
Ever since I posted the “Smart Pascal now an official dialect” post, I have gotten a fair share of negative comments on the subject.
First, I am open to the choice of words perhaps being “off” the mark. It was written at the spur of the moment as just a quick message to those that read my blog. So I didn’t exactly sit down and meditate of 2 days beforehand, trying to find the exact right words to use – nor is English my native language, so unless I focus a bit – my style of writing will always have a Norwegian flavor to it.
What does official mean
For some odd reason people have reacted to the word “official”, as if that requires some form of consortium or establishment behind it. It’s a word open for translation perhaps, but for me it simply means:
Publicly available, publicly accessible – and ultimately: publicly open for scrutiny.
I mean, when BattleField III and IV was announced it was done via a public announcement which is often termed “official”. When you google websites which has a lot of fans, it’s often required to add the word “official” to the query – just to filter out all the fan-sites from the actual site (especially for movies and bands). So how people can react to the word “official”, like I have somehow mis-represented Smart Mobile Studio and whatever articles have been written about it online; well, it could not be further from the truth.
And when it comes to the term “dialect” and Smart Pascal now being an “official dialect” of object pascal, consider this: On paper American English and British English can be tough to distinguish, yet everyone in the world recognizes the difference between British, American, Irish and Scottish. There is very little linguistic difference in the vocabulary between, say, an Irishman and someone born and raised in London with a purely “brit” accent. But the moment you get a chance to hear how they pronounce and use words — you will recognize that one is from Ireland and the other from London. You should also have no problems telling a man from Texas USA apart from a Scottish Highlander based on their dialect.
A dialect simply means that:
- There is enough in common to recognize it belongs to a group (English)
- There is enough differences to recognize that it stands apart (Scottish, British, American, Australian, Irish and so on)
Looking at how other programming languages deal with this very problem: is Blitz Basic something completely new or is it regarded as a dialect of Basic? And why is it recognized as a dialect as opposed to a whole new language?
It is recognized as a dialect because, naturally, there are key elements in the syntax which follows the “basic language” style. The same can be said of Wacom C in context with Borland or Gnu C. They are all recognized as C compilers, implementing a variation of the C language. In fact most vendors are quite proud when they finally support the official, latest C language specification. But this is also where things become paradoxical.
If a dialect is supposed to strictly follow a defined standard, then we would have no American English, no Irish English, no British Columbia, no South African English and absolutely no Scottish English. We would only have British. Forever and ever and under no circumstances would the language expand or evolve to absorb new elements and realities without a group meeting? Thats not gonna work.
The problem? The problem is that the pascal specification (ISO 7185) is bloody ancient! It was first envisioned back in 1977 (!) And I would feel deeply sorry for the entire IT community if the extent of our technological reach begins and ends with a paper. That would to a large extent invalidate most of the changes added by Embarcadero since it bought Delphi and C++ builder, and indeed any changes after Anders Hejlsberg left Borland (because he defined the standard for object pascal). It would also utterly condemn Remobjects for creating Oxygene — and freepascal would never exist in the first place.
So to make it crystal clear: modern pascal has no group or controlling entity (legal or otherwise) which is in charge of “pascal” and what that means. C/C++ on the other hand has a vibrant and very much active group of thinkers and specification thumpers, led by the author of C++Bjarne Stroustrup (which I guess we should regard as an lawless rebel because he dared invent something not yet defined by a standard); A group which keeps on knocking out standards for the C++ language. But it’s up to each compiler author and/or company to implement and follow these standards. The key here is choice and what lingo is better suited for a particular task. And this has nothing to do with academia, that’s not their job.
So once again for pascal, there is no such organ. People have somewhat fallen into line automatically behind Embarcadero as “the trend setter” for object pascal, but in reality it has no more authority on the subject than Remobjects or myself. The sad reality is that object pascal sort or died when Anders Hejlsberg jumped ship and defected to Microsoft. It is a very sad story, but it’s none-the-less true. And in his absence the pascal community has had to make due. And after many years of loom and doom Delphi, FreePascal, Smart Pascal and Oxygene Pascal is standing on their own feet, evolving without the guiding hand of the grandfather of object pascal: Anders Hejlsberg.
And it should also be mentioned that Anders produced object pascal in his room, living with his parents back in Denmark– utterly violating the existing pascal specification. Something which was a necessity in order to create something new. A rule of life: the old must be destroyed for something new to be created (there is a limited amount of particles in the universe after all).
Tools of the trade?
Let’s face facts: There is no board, organ or philosophical entity in the world from which developer’s must seek a blessing in order for something to be official, although Apple is sure as hell playing the role of emperor without clothes pretty well. RemObjects Oxygene for instance, does that need the approval of Embarcadero to be an official dialect of pascal? I sure consider it an official dialect, nor was there ever a time when it was not official except for the incubation period. The moment Oxygene went from beta to public release, it was an official dialect.
The exact same thing can be said about Smart Pascal.
The tools of the trade in this case is probably university type mentality meets reality. People with a higher degree of education tends to pick up concepts along the way which quite often goes against the reality of nature and the mother of necessity. Things are created and built out of personal need, adapting to a situation or technology. Nature doesn’t write a paper on it, subject it to a panel of peers for review, until it finally jumps into gear and builds it. Nope, if you can envision it, built it and drag that idea from the realm of thought to our human, factual plane — nature will back you up and provide momentum. That is the law of the jungle, and bitching about it is not gonna help.
And it’s been like that for thousands of years. It amuses me to some degree how few of our human practical inventions that we enjoy were created in a funded, managed environment. The wast majority were in fact incubated and forged in personal “hobby” type labs by people of passion. Apple and Google started out in a garage for pete sake.
I have higher education myself, but I also recognize that inspiration and motivation can just as easily be murdered by academics as it can be polished and perfected.
So what makes something official? Well it depends on who you ask perhaps. My observation is that languages can die out just as quickly as they appear, but those that “make it” into history are typically those with a book or two dedicated to them. There is also a high level of persistence involved (or required) for the inventors and initiative-takers. But there is never a guarantee that one idea will win over the other. If VHS vs. BETAMAX taught us anything, it was that (or Windows vs. OS/2 for that matter).