Choose The Right Programming Language

Many webdesigners have discovered that Dreamweaver now gives them the power to develop cool webapplications. In this way you can cross the border between graphical design and web application developers. We have seen a lot more basic starter questions in the Talkzones reflecting the will of many designers to explore these exciting possibilities. Questions like: "I want to build an E Commerce site for a client. Can anyone write a tutorial on how to get started with ASP and MS Access?"

Let's start with the real basic questions first. Like what programming language are you going to use? This is a major decision to make. When i got started developing as a former webdesigner a few years ago, it took me a long time to figure out.

So you want to become a developer. Where do you start?

With the birth of Dreamweaver MX as a webdesigner you suddenly got access to software that enables you to develop webapplications with server side code. And right you are. It levels your possibilities substantially. I noticed an increase of basic questions in the Dreamweaver fora in the category of "How do i start?". In this tutorial i will  try give you a brief rundown on one of the harder questions when starting to develop. What is the best server language? What do you basically need to become a good developer?
Be prepared for a long article because server side languages are very comprehensive stuff which can not be dealt with in a few lines. Sorry.

Got what it takes?

In the first place it is good to make one thing clear. You are going to enter a big adventure and it is not an easy route you are stepping on. It is my personal opinion that you should have certain talents to be sucecsfull. To give an example. If you hate typing, don't do it. Web developers are programmers and programmers do a lot of typing. Many of them work in the easiest and fastest development environment you can think of: Notepad. Or among programmers often lovingly referred to as "Visual Notepad". The one and only WYTIWYG-editor (What You Type Is What You Get) and the true mother of software. So in that regard it is not true that it is DMX that gave you the option to become a developer. It might have just rubbed it under your nose.

So you love typing. Or not? Doesn't DMX and it's server behaviours make typing obsolete? Up to a certain degree yes. That is, for the basic stuff it does. But you will soon notice that the moment you or your client wants something that is not standard, server behaviours are too limited. You will be able to postpone that dreadful moment of truth a little by buying some server behaviours with extended functionality. But without doubt, sooner or later the moment will come that DMX leaves you in the cold. You are on your own! And the horrible truth is that this is not only the moment you will have to start typing. It is also the point in your career that will decide your future. Because it is time to show what you are really worth. Everyone can click around some extensions. Hell, Microsoft invented wizards long ago. and didn't we all look down on the poor braindead zombies that used those stupid wizards. A real web designer wrote his own code. He was never going to trust somebody else's brain products. Well, lets face it. Dreamweaver extensions are just wizards. Nothing more. And because no wizard is wise enough to master all tricks, some day you will have to start develoing your own witchcraft and brow a magic potions of your own. It is very tempting to blast off using all the server behaviours you can lay your hands on and neglect the necessary study of programming techniques. In ASP you can even get very far by doing that. But your demands will grow and so will your customers whishes. And one day you have to leave that smooth highway. You find yourself driving on that slippery mountain road to the top. And suddenly you realise that you forgot to take driving lessons because you used an automatic car all the time. And that automatic gearbox is not going to get you to the top. It certainly makes for a bad moment to start your driving lessons.

So be prepared to start learning as soon as possible. Run to the bookstore and buy yourself a decent book on web development with the language of your choice. No wait! I have a better idea. As soon as you picked a language to develop in, buy as many books on the subject as you can afford. And make sure you read them more then once. Keep them always at hand when you are working. Have them next to your bed and read them even in the toilet. Make sure you become addicted to these sources of knowledge. Read them like hot porn. Because from now on you will be working and studying. And you will never be finished because new technologies and techniques will keep developing all the time. And there is more bad news. You won't get very far by knowing everything about ASP or ColdFusion. There are also databases to work with. You will have to choose a database system. You will have to know everything about the possibilities and limitations of that system. You will have to study database design, database optimization and let's not forget SQL. You will certainly have to become a wizard in SQL, the language you use to talk to your database. And while you are in the bookstore, check out the tray with books on XML too. XML may be (my personal opinion) a nowadays considerably over hyped language. It is definitely an often handy way of gluing data from various sources in various formats together. 

Got my point? If you are not the kind of person who likes to puzzle and sort things out himself, don't do it. If you hate studying or if you are lazy. Forget it.

Developing software has one very annoying thing. In contrast to HTML, where options are very limited, there is no such thing as "The Way To Do It" in writing software. Every developer has his own problems and finds his own solutions. That means that, even while there is an enormous stack of online help available, the chance that one of those solutions exactly fits your problem, is very limited. At best someone will be able to give you a hint that helps you a bit in the right direction when you are stuck. And you WILL get stuck. Take my word for that. If you don't have the kind of persistence to keep working and trying and failing for days, nights or even weeks, you won't get far as a webprogrammer. Life can suck big time behind you laptop. Frustration is always around the corner. 

So developing is basically bad news? No it is not. At least not for me. I love it. It has big rewards as well. In the first place the meat on your bread will be better and thicker. Good developers make more money then web designers. And the personal satisfaction is greater too. How often do you shout "Yes!!!!!" in ecstasy when you managed to create a html-table? Not often i dare to guess. Web design is basically boring stuff. Let's face it as it is. A table is a table and Arial is Arial. Once you mastered html, you are finished. That is as far as it technically goes. OK, i am overdoing this a little, but i want to trying to make a point here. As soon as you can program yourself, the sky is the limit. At first you will be ecstatic when you finished your first "Hello World"-application. Soon you will move on to more exiting stuff. and the good news is, that your imagination is your only limit.

The languages in DMX

Now comes the tricky part of this article. Every language has it's own dedicated circle of followers. It is almost a religious kind of thing, and before i know it, i will stand on peoples toes. I will make you a promise here. In this piece i will only boast some common knowledge based on the worst kind of general assumptions. But i promise it will make things a little clearer for you. 

DMX supports a handful of server side languages; ASP, ColdFusion, PHP, JSP and ASP.NET. They are all great languages. But we will find out that some are a little greater then others under certain circumstances. But the differences are small. In general they all do the same things. And their syntax may be a little different, but the general idea is mostly the same.  Choosing the right language is mainly a matter of personal taste and some practical considerations. It is a bit like cars. They all drive and they all fall apart after 200.000 km. Having said that, choosing the right car is still not easy.

Wait! There is someone in the back of the room calling me. What does he want? He is asking about Perl and CGI-scripts. Oh no! Not again! I don't want to spend my time on those. Take my word for it. Perl sucks! CGI-scripts are a nono!. Why? Simply put, for the same reason we don't cut our car wheels from granite rock anymore. Stone wheels were OK for the Flintstones, but for us, they are uncomfortable, slow and old-fashioned. We stick to the modern languages of the latest generation.

Choosing the right language for you is a major decision. And a very important one. If you invest all that time and study in it, you want to know it is the best match for you. Going all the way and then finding out after a year or two, that you took the wrong route is not funny.

ASP

The language of choice for millions of web developers. As we all know, millions can not be wrong, so ASP should be a good bet. Right? That depends. It depends on your clients, i would say. I mainly work in ASP because i did not get away with ColdFusion for my type of clients. I started with ColdFusion some years ago and that was great from my point of view. But not from the perspective of my corporate clients. I have to talk to marketing managers and board members who don't understand what it is technically about. These people know Microsoft because they see it on their desktop every day. They don't trust Microsoft more then any other software company. But what they do know is that all their competitors work with Microsoft too. And the guy from the IT department who walks in every day to press that "Any key" for them trusts Microsoft as well. So why would they take any risks? No one will ever sack them for choosing a Big Gates Solution. Even if you, as a developer, would fail them all together, their ass is still covered.

And there i came, telling them that ColdFusion was the cool thing to choose for. "Yep, sure Tjerk! You will hear from us and don't call us".
There just was no fusion with clients on this point, which left me in the cold. And because i do this stuff for a living, i switched to ASP. 
And, let's face it, ASP is not bad at all! It has a lot of advantages. The best thing is that it is easy to host for a low price because it is free and installed on every Windows server. It is relatively easy to learn and in a Dreamweaver environment it is extremely easy to use. In fact, there are so many good ASP extensions for DMX around, that chances are slim that you will do a lot of typing (At least for the first year or so). In that sense ASP is THE starter language in DMX. An easier take off as a developer is not possible.  ASP is also very powerful and enables you to build anything you like. ASP makes integrating databases very easy because you can benefit from the fact that you can use MS Access. Access is by far the most easy to use relational database system around. And once you move up higher on the scale, the switch to Microsoft's high end database system SQLServer is pretty smooth too. Because of the enormous stack of ASP developers there is certainly no language on the web with better support. That is both official and unofficial. The Microsoft website gives you access to almost all the knowledge available in the MS company. Yes, Microsoft is very very good to developers. And if that doesn't help you out, there are countless developer websites and web fora where people are waiting to help you or publish good tutorials. The web is also littered with sites where you can download ready to go ASP scripts and applications. 

But ASP has limitations too. In the first place, it is not the most elegant language around. That is, if you work in the most common ASP-language; VBScript. VBScript is a derivative of Visual Basic. I am personally not really in ecstasy about the syntax of VBScript. But that is a minor consideration. You can also work in Javascript. The most important drawback is the fact that it is an interpreted scripting language. Those are not the fastest on earth. ASP is not slow by any means, but it never hurts to have more speed when it is possible. The scalability of ASP applications leaves to whish for.

PHP

The open source cousin of ASP is PHP. Great language as well and the dialect of choice on Linux boxes. In some ways it is a bit better then ASP, in other ways it is a bit worse. PHP is free too and it runs also on Windows servers if your provider cared to install it. PHP seems to be slightly faster then ASP, but i doubt that this is really due to the language itself. PHP is also an interpreted scripting language and thus has the same limitations as ASP. My guess is that this slight speed advantage is down to the most commonly used database system. PHP is mostly used with MySQL. Great database system by the way. And it is (almost) free. MySQL is fast, because it is very lightweight. That means, it reads data very fast. Updating records is slower though. But that comes at a cost. MySQL is not up to par with high end database management systems like MS SQLServer, IBM DB2, Oracle or Sybase, when it comes to features. MySQL lacks several options that the big commercial ones do have. MySQL is also basic command line software. There is no standard easy to use graphical management tool available, allthough third party (commercial) software like ExtraSQL helps on that. MySQL is therefore not an easy bus to jump onto for the beginner. The Dreamweaver support for PHP is OK, but only a limited number of extensions is available, so be prepared for a lot of code typing.

ColdFusion MX

And now for something completely different! ColdFusion is not like any other server side language. You might even argue whether this can be called a programming language at all. ColdFusion is based on tags just like HTML. And it is Macromedia's own piece of gear. So DMX is very well integrated with ColdFusion. If fact DMX is THE authoring tool for Coldfusion.  Are you looking for something really easy to start with? Server side languages don't come easier than ColdFusion. CF consists of a predefined set of tags that do server side stuff for you. Those tags all start with CF and could not be easier to use. Getting stuff from the database? <cfquery> will do it for you. Writing it to the page? <cfoutput> is your helper. I always used to say that ColdFusion makes the easy things in web development very easy. But, because you work with a limited number of predefined tags CF can also make the hard things harder. I still shiver when i think of the often very complicated  way i had to nest conditional statements to get things done. But that might have improved by now, i don't know. The downside of ColdFusion is the fact that it does nothing as long as your provider has not installed the ColdFusion Server software. And that software is not exactly cheap. So only a relatively small number of hosting companies in the world work with ColdFusion and their prices are often higher than average. This makes CF-sites more difficult to get hosted and clients are not always happy with that. It was my main reason to switch away from CF, although i loved it's elegance. It was often too difficult to persuade clients to switch providers just because i liked to work in ColdFusion. And certainly difficult because it mostly also meant higher monthly hosting fees. But CF has advantages. The server is a bit faster than ASP and PHP and it is available for a lot of platforms like Windows, Linux, Irix and others. Database  connections are never a problem in ColdFusion. Scalability is excellent. Integration with server side Flash is second to none and the development of webservices is a snap. Many Dreamweaver extensions for Cf are available, allthough not as many as for ASP. But is that really an issue when i language is so easy?

JSP

Java Server Pages is not an easy way to start. I personally have not worked with it. The language has a rather steep learning curve and is not the first tool of choice for the beginner. But JSP is fast. Really fast! (By the way, if JSP is so fast, why is the JSP driven Macromedia site so slow?). A lot of the larger corporate sites today are build using JSP. Like ColdFusion it needs special server software to run. The most well known are Macromedia's JRun and IBM's WebSphere. Both are not exactly 'cheap'. In that sense JSP has the same disadvantages as ColdFusion. Commercial hosting is difficult and expensive. But if you are already a java programmer, this might be the solution for you. JSP Dreamweaver extensions are scarse, so get ready for heavy handcoding.

ASP.NET

If ColdFusion is different, ASP.NET is really some else. To be frank, i honestly don't know where to start. There is much to tell about DotNet. ASP.NET is actually not a language. It is the next generation of ASP and it is part of the DotNet Framework. The Framework is not a language either, but a new concept for application development both on the net and the Windows desktop. The DotNet Framework may be a revolution, but it is also so enormous and comprehensive that it is impossible to cover it here. I have about 6000 pages of books on DotNet in my study and those only cover ASP.NET and ADO.NET. And these two techniques are only a small part of the entire Framework. Let me try to explain that, while Java makes it possible to develop in one language for alle platforms, DotNet makes it possible to develop in any language. The limited VBScript in ASP is gone. ASP.Net uses the full VisualBasic.NET. VisualBasic.NET is not the limited lightweight language it used to be anymore. It is now arguably just as powerful and fast as C++ or the new C#. But if you whish you can also develop ASP-pages in C++, Pascal, JScript.Net. The Framework now supports 17 languages and even Java support is on the way. What is the use of that? Well, in very, very brief terms, Microsoft evaluated everything they had to see how things should change. They decided to start all over again, to try to develop the ideal system.Time will tell, but what i have seen up till now is exciting. ASP.NET pages are not interpreted scripting pages anymore. Your scripting is automatically compiled by the server (just like C++ programs are compiled) and stored in memory for the next visitor. This makes ASP.NET ultrafast! The JSP-boys do not like this, and some debating has been going on earlier this year. But since then independent benchmarking has shown that ASP.NET in fact sets new standards when it comes to speed. It is blazing! The entire Framework thing is fully object oriented and so are ASP.NET pages. Everything is an object that you can manipulate. The Framework hosts an enormous array of prebuild objects and classes to use in your applications. ASP.NET has a unique way of triggering code on the server from webpages in the client's webbrowser. MIcrosoft build the Framework on open standards like XML and DotNet makes developing Webservices thus easy. The DotNet Framework handles all those different languages, manages your code, handles databaseconnections, handles security, is highly customisable and expendable and does very intelligent caching of your pages. It even cleans up your (memory)garbage after you.

I would say that ASP.NET is the natural upgrade after ASP. One can argue that it is more logical nowadays to skip ASP altogether and start working in DotNet right away. Maybe true, but we have to consider some things. ASP.NET is not the easiest thing to learn. And i am not sure it is suitable for the webdesigner who wants to begin learning development for the web. The Dreamweaver implementation of Dot.Net is a bit disappointing. MM has choosen not to follow the normal way to work with DotNet and implemented some sort of model of themselves. This is not bad and might prove an advantage in the long run. But in this early stage of the DotNet Times, it is a bit confusing. A big problem is that DotNet-support in Dreamweaver is limited and buggy. THE central concept in ASP.NET is something called "webforms". DMX does not support this. The other central concept in DotNet is "CodeBehind". A great technique to separate code and presentation, thus enabling far easier reuse of code. DMX does not support it. If you use the server behaviours for DotNet in DMX, there is a very annoying bug. Similar to ASP, every DotNet page has a pagedelimiter line. This line is allowed only once in every page. DMX has no trouble littering great numbers of these lines through your code. I get a bit annoyed when i have to debug and switch to code view five times to manually locate and remove each of these redundant lines. Therefor i work mostly in VisualStudio.NET or WebMatrix (Free form Microsoft's ASP.net site). But having said that, we have to remember thar DMX is a really great editor for handcoding, even in DotNet. A big advantage of the DotNet thing is that it is free just like ASP and PHP. It won't be long before you find it on every Windows server. You may not want to start with it as language for your first webapplication. But if you are developing for the Windowsplatform, it is the road to take eventually. Microsoft is betting it's entire future and all 40 billion dollars they have in cash on DotNet. Gates has fully understood that the route to heaven leads through the backyard of all those individual developers in the world. While their support for developers has allways been setting the standard in the industry, Microsoft is now really pampering DotNet developers.

It's up to you

Like i said in the beginning. Choosing a development language is not easy. I hope i have given you a bit of an insight on the general pro's and con's of the five models. I whish you happy coding. Feel free to mail me with critics or questions.

 

 

 

 

 

 

 

 

 

 

 

Comments

Mysql

February 5, 2003 by Peter Tornquist

Verry interesting articel I agree on everything except mysql there is a lot of tools out ther for ex phpmyadmin.

 

peter

RE: Mysql

February 6, 2003 by Tjerk Heringa
Hi, you are absolutely right. I forgot about PHPMyAdmin completely. If you work with PHP, it is a good solution of course. Sorry.

Just what I needed...

February 20, 2003 by des masic

I am learning XML and Actioncript (flash MX) thingies these days, and was wondering, which language to use for the bigger stuff :D

OK now, do I have to have a programming background for learning Coldfusion, PHP and ASP, I am a beginner and it certainly does'nt make things easy, and I would so love to learn em all :)

RE: Just what I needed...

February 20, 2003 by Dennis van Galen

well, if you ask me. then i would say CF, just write your cfquery in a component with functions like getArticle, updateArticle, etc. Then you set access remote and continue work in flash, invoke using settings in a .as textfile that resides on the server. I am not much good at scripting though, i think that part of flash sucks. CF also gives you easy access to XML.

Dennis

See all 6 Comments

You must me logged in to write a comment.