A r t i c l e s
Navigation

Note: This site is
a bit older, personal views
may have changed.

M a i n P a g e

D i r e c t o r y

What Brought Me To Pascal


I have a flashback memory of what brought me to Pascal. Unlike many Pascal programmers, I do not come from a turbo Pascal background. I learned to program later. I learned to program after I learned a few HTML tricks. Most people in Pascal seemed to have come from Turbo Pascal, but I came from HTML and PHP.

The first real language I started farting around with was PHP.

I thought programming was horrible. The first thing I came across was this:

  if (! assigned(ed)) {
    print '....' 
  }
What in the hell was that. Why am I checking if an edit box is assigned and then displaying an HTML page based on whether or not an edit box is assigned? Shouldn't the form make a post event, or a post notification? What horrible scripts. Programming must be horrible.

Well, lucky for me, that was someone else's code. It wasn't my organization. But understand that it wasn't a beginners code. A lot of PHP programmers still program in that ugly way, instead of making simple easy to read form_posted or FormPosted wrappers.

I was looking for a programming language that looked more like this:

  if FormPosted do ShowPage
That's all I asked for! A simple syntax that made simplest sense. Is the damn form posted or not? That's really what a programmer should be asking - not whether an edit box is assigned or not. I don't give a rat whether something is assigned.. what the hell has that got to do with the simple question - IS THE FORM posted or not!

Then I discovered that strings could magically be integers in PHP - without anyone really caring. What? Don't you care about whether a shopping cart is adding a t-shirt with a 5 dollar bill? Aren't those different things? I wanted to learn what data structures elite PHP programmers were using, but it was no where mentioned in the code. When someone converted a string to an integer, or when someone created a dynamic array, or when someone created an associative array - I didn't know it was being done, because they didn't have things called types. How do I create my own types, if there are no types to be specified?

How do I enforce standards if there are no type standards? This was the thing I was thinking as a beginner, when I knew nothing about programming. These were the questions I was asking. Without this structure, I saw PHP as a messy unmade bed. It looked worse than my bed on a Monday morning. I always was under the impression that programming was something "professional" people did who were "clean" and "perfectionist". PHP made me think the opposite. I couldn't beleive that all these websites I was visiting were done by a bunch of sloppy slackers. But then again, all those PHP errors that I had come across made sense now.

Then I said to hell with web development - it's too hard. Maybe programming desktop software is easier, I thought. Well, there is visual basic, Delphi, visual c.. those sound nice and easy. Then I realize that well, it's not just something visual I'm looking for - it has to be good for systems stuff too... Delphi wasn't really all that low level, but it sure was lower level than Visual Basic - Visual Basic also had the reputation of being for beginners, and I didn't want to use a language with a bad reputation.

So I find this language that looks like friggin' English - Delphi - and I am thinking - what the hell were PHP developers thinking? Why can't they just do this:

if formposted then
  showpage;

if not formposted then
  showform;
It is so obvious, isn't it?

But there was no web development kit for Pascal.. oh well, I'll just forget about web development and start using Delphi.. and maybe even freepascal some time. I'll place my bets on application development - I'll try to develop desktop apps and hope for a better web programming language to pop up some day - because it sure as hell wasn't PHP.

Then, after a few basic programming concepts came to me (i.e. beginner becomes intermediate) I realized that it wasn't PHP that was the problem... it was the people using (abusing) PHP that were the problem. PHP programmers could have just as well implemented something like:

if (form_posted) 
  show_page;

if !(form_posted) {
  show_form;
}
But something was insanely wrong with PHP programmers.. they WANTED to be cryptic. Maybe it was to get hired and stay hired. If you can get hired and write cryptic non-obvious code, then maybe you won't get fired - because no one else understands your code up in management.

Now I realize that the type of language you choose to learn and love when you first start programming really shapes the way you build future frameworks - either the frameworks are obvious, or they are cryptic. If you start programming in Perl or PHP and enjoy doing so - you will definitely enjoy being cryptic. In fact, you know, I would rather program in C than in Perl or PHP - even though when I started programming I thought C was the stupidest language one could possibly learn for application development (systems programming maybe it was okay - I hadn't gotten there yet and didn't care).

So an ego trip.. Now that I have matured a bit, and now that I do systems programming, and now that I have written my own compiler, and now that I've written a bloody huge Wiki from scratch, and now that I've written my own text editor, and now that I don't need PHP, and now that I've done all this stuff - I'm still the same guy. I still believe the same things. I was right, back when I was stupid and knew nothing about PHP. I was a stupid non-programmer, but I was right. That "if !assigned" crap was stupid. Even as a systems programmer/app programmer/web programmer/server administrator/more advanced programmer/ I still think !assigned(ed) is stupid. That's a horrible framework - it lacks a framework.

I still think that the very first interaction I had with programming shaped my habits. I said NO WAY to PHP, and I thank goodness that it happened. I said NO WAY to programming - I thought my programming career was done (before it even started). Persistence lead me to another language - which I fell in love with - which lead me to figure out that any language could be coded cleanly - but for some reason certain language attracted different crowds.. cryptic crowds versus obvious crowds.

ASP.NET attracts obvious crowds.
PERL attracts cryptic crowds.
Delphi attracts obvious crowds
PHP attracts cryptic crowds
Python attracts obvious crowds
C++ attracts cryptic crowds
C attracts obvious but more often cryptic crowds
I see that the first language you learn really affects everything down the road. My first language I tried to learn was PHP - which I failed at. Sure I can write good PHP code now - now that I learned all the basics of programming, and now that I've become what I consider past an intermediate. But I don't want to be in a crowd of people who enjoy making things cryptic.

For crying out loud, now that I go over and look at LISP I see a lot more common sense in that language than PHP and Perl. Yeah, Lisp was that bizarre language that I was never ever going to learn - it looked clean with those () brackets but it looked bizarre. But at least LISP looked clean! It wasn't really ugly - it had nice style to it. It was a little repetitive with a lot of () everywhere - but at least it didn't look like a steaming pile of shit that PHP and Perl did. I just didn't understand Lisp, so to heck with it as a beginner. Now I find Lisp easy to understand because I have the experience, but that's besides the point. A programming language should at least LOOK appealing. Whether you are an advanced programmer or a beginner, a programming language has to look appealing ! It doesn't matter whether or not you have 20 years of experience - the language has to look good, or you will feel bad!

Look good, feel good. Look bad, feel bad. Simple as that. If PHP looks badder than Lisp, you can bet there is more of a chance I'm going to learn Lisp! If Pascal looks gooder than PHP, you can bet I'm going to learn Pascal! I'm not taking a risk and learning a language where people are ATTRACTED to CRYPTICS. The DEVELOPER community must want to LOOK GOOD, or I ain't joining ship.

Let's use a controversial analogy here - ugly people generally prefer neat homes to ugly homes. Yeah, I know the whole story about "it doesn't matter if she is ugly, you can still marry her" scam. But it's false. Look - an ugly person will still take a beautiful house any day! An ugly person will still prefer to have a neat closet if someone were to clean it for them! Looks do matter! Programming language looks do matter! You are born with your looks - you can't easily change them. Programming is different. You can choose to be neat. I could be the ugliest guy on earth (I'm not) and I'd still choose a neat language - get the drift?

Point being: don't take to heart an ugly language as your first language, because even when you eventually become a systems low level hacker, or a high level application developer, or a web developer - that ugly language is eventually going to have a long term affect on you. The language you learn sets up some roots into your blood. You will either regret them, or be thankful for them. You may learn a few ugly languages - but don't take them to heart. Don't embed them in your blood.

A clean first language makes one a good framework maker. If you learn a clean language, you can write clean frameworks in the most ugliest languages.

If you learn a cryptic language as your first programming language, you can write ugly frameworks in the most ugliest languages (or in PHP's case, lots of folks just skip writing frameworks and use the built in ugliness, which is even uglier than an ugly framework).

If you've learned an ugly language as your first language, you can undo it by taking to heart and bowing to a clean language. The damage can be undone. If you must go back to using the ugly language because you have a career in it, or you have old scripts to maintain - at least the damage has been undone and you can start writing clean frameworks in your ugly language.

About
This site is about programming and other things.
_ _ _