Dan Curran : Web Developer : Ruby Python PHP Java

Technologies I Have Used

This is a really long page as I have had a lot of experience with a lot of different technologies. I have been very lucky in the places that I have worked for that they have all allowed me to experiment with different technologies for different purposes. This has given me a pretty good overview of what is out there and lets me make smarter choices when it comes to deciding what to use for the current task.

Programming Languages

ActionScript
Experience: 2 years (2005)
ActionScript is an EMCAScript based language much like JavaScript. It is used by Flash as its core scripting language. I use ActionScript whenever I have to do Flash development, it is what makes things move around in Flash so the results of the code are always cool to see.
C/C++
Experience: 1 year total?
Unfortunately I have not had a lot of oportunity to use this language. Most of my use of C or C++ has been acedemic in nature, or required to get an open source application to correctly compile due to bugs. C is definately a language I would like to use more of but when doing web development there is never the need.
CSS
Experience: 9 years (1999)
Back in 1999 using CSS was a revelation to me, I could change the colors of the paragraphs on ever page of the application by just modifying one line of code. Little did I know how powerful and popular CSS would become. Everything design wise for webpages is now done with CSS.
HTML
Experience: 13 years (1995)
HTML was the language I first started with. This is the language that I could not live without. Since all of my work is web based everything comes back to writting HTML code. The HTML that I currently write is much simpler than when I started. HTML is now simple the page structure while CSS does all of the heavy lifting.
Java
Experience: 7 years (2001)
I started using Java at college for class assignments and went on to use it in the development of the Student Affairs website. From that point forward I have found myself using Java in one form or another. I have developed GUI application in Swing, used it a great deal for server side processing, and have even used it to create command line tools. My current position at RealNet requires consistant use of Java for development of the web application.
JavaScript
Experience: 12 years (1997)
The recent popularity of this language was another surprise to me. When I started using this language it was used for doing image based mouseover effects and for creating new windows. Now it is being used in its Object Orriented form for driving whole web application. The new AJAX trend can be seen as a driving force of Web 2.0. In any application I create I will find myself writing a lot of JavaScript for cool client side effects or just to improve the user experience. With Libraries such as Dojo or Prototype writing JavaScript has become easier and make creating really dynamic websites a snap.
Perl
Experience: 3 years (1997-2000)
I have not found a need to use a lot of Perl code in a number of years. Back when I was first starting web development the only choices available were Perl and C, I went with Perl because that is what the free webhost Tripod.com would let you use. Over the years I have found a use for Perl now and again but PHP, Python or Ruby have really made Perl obsolete to me. I can stil pick it up and quickly write up or debug someone elses program (depending upon how obfuscated the wrote it), but given the choice I would use a different language.
PHP
Experience: 7 years (2001)
For many year PHP was the main language that I would use for server side coding. It made writing web sites much easier than writing CGI scripts in Perl. Recently I have found myself using much more hefty frameworks such as Cocoon or Ruby on Rails and PHP is not being used as much. However, when a simple brochure-ware site is needed PHP is a great choice to get something together really fast.
PL/SQL
Experience: 3 years (2005)
Work on the RealNet 7 project required that I write a lot of PL/SQL. This application has over 400 stored procedures storing a large chunk of our applications business logic. I will often find myself writing more PL/SQL code on a given day than code in any other language.
Python
Experience: 4 years (2004)
The majority of my work with Python has been for creating small command line utilities for file manipulation or for web site parsing and inspection. Recently I have found myself switching from Python to Ruby for my scripting needs.
Ruby
Experience: 1.5 years (2006)
In 2006 I got into Ruby on Rails and have been finding myself using it for a number of small projects within the Ruby on Rails framework. More recently I have found myself replacing my use of Python with Ruby for small scripting tasks. The Asset Tool is a project of note where a lot of Ruby code was used.
SQL
Experience: 7 years (2001)
My first experiences with SQL were very simple, store a couple of numbers in a field, and pull them back later. I do not find myself writing much vanilla SQL anymore. When using Ruby on Rails a lot of SQL is hidden behind Ruby code using ActiveRecord, and when working with Oracle most of the code would be categorized as PL/SQL. SQL can not be forgotten because every so often you will need to churn out a query or two to increase performance, or to do do some maintenance work on existing codebases.
XML
Experience: 5 years (2003)
XML is the data exchance standard. The Cocoon framework that RealNet 7 is developed on makes use of XML for nearly everything. The X in AJAX stands for XML causing XML and JavaScript to be tightly integrated. You will also find that XML is the language used for all Java based configuration file. The basics of XML are really easy and you can levelage it for a number of different tasks. The danger is that people try to use it for everything when often you will find that a different language will do a better job.
XSL
Experience: 3.5 years (2004)
An XML dialect for converting XML documents from one format to another. Prior to my work on the RealNet 7 project I used XSL sparingly, now I use it nealy every day.

Web Development Frameworks

Cocoon
Cocoon is the framework that RealNet 7 is developed in. It is a component based framework that utilizes an XML bus.
CakePHP
This is a PHP based Ruby on Rails copy. It gives a good framework for Object Oriented PHP development. When doing a larger site in PHP I would definately use Cake. I believe that Ruby is a much better language to use in general but for the times when PHP is all that available Cake makes things much easier.
Dojo
This is a mamoth JavaScript framework, it has a number of different libraries, parsing engines and widgets. This library has a lot of functionality but using it forces you to do things the Dojo way which can be either good or bad. I would rather use a simpler library such as Prototype or JQuery.
Grails
This is pretty much a Ruby on Rails clone written using Java/Groovy. As far as Java frameworks go this is in my opinion pretty good when it comes to fast development cycles.
JQuery
A very interesting JavaScript framework. I have not used this framework as much as I have used Prototype. Its main difference is the way that it allows you to chain calls. It can make your code easy to write and easy to understand. This is a very useful library that I feel deserves a lot of respect.
Prototype
A javascript framework that adds a number of utilities to the JavaScript language. This is one of my favorite frameworks to use for developing JavaScript code because it makes things easier and does not get in your way.
Ruby on Rails
Easily my favorite framework. Ruby on Rails just got a lot of stuff right. This framework allows for fast and complete development. I would estimate that it could cut development time in half allowing more time for testing and features.
Tapestry
This is a page based framework. It gives a number of advantages over using JSPs but I have not yet found anything that makes it really stand out.

Tools

Ant
Makes building your Java web application a snap
Blender 3D
An open source 3D graphics program. It has a really steap learning curve but once you get it you can do things really fast
CVS
Version control. It is now being replaced by subversion, but you will still find projects using it.
Eclipse
A Java Development Envioronment with rich plugin support. This framework also had the RadRails plugin developed for it which made Ruby on Rails deveolpment a bit easier.
Fireworks
Macromedias web graphics software development suite. It makes creating simple web graphics pretty simple. I find myself using this a lot for one-off graphics or icons.
Flash
Making things move on the Web. I do not find myself using Flash as much with the advent of rich application development with JavaScript but it is still useful if you want a really complex widget.
Gimp
Open source photo editting software. When you do not have a license for Photoshop Gimp is the way to go.
PhotoShop
Arguably the best imaging editting tool. I have not found myself using photoshop in a number of years, but in the past it was the standard piece of software I would use for creating web graphics.
Resin
A servlet container that was used for the Student Affairs web site. At the time it was an inexpensive option for a stable servlet container, at that time Tomcat did not fit the bill.
Subversion
A version control system that is quickly replacing CVS. You will find this used by Google Code. I could not do my work nearly as well without subversion.
Tomcat
Apache's Servlet Container. A tool that gets the job done.
Weblogic
BEA's servlet container. A number of companies have standardized on Weblogic as for a period of time it was more stable than Tomcat.