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
Verry interesting articel I agree on everything except mysql there is a lot of tools out ther for ex phpmyadmin.
peter
RE: Mysql
Just what I needed...
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...
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
You must me logged in to write a comment.