You are hereBlogs / Slim's blog / Better Developer: Choosing a platform and framework

Better Developer: Choosing a platform and framework


By Slim - Posted on 05 October 2008

In my quest to become a better developer. I started to really examine my basic tools that I am working with to do my development work. My aim is to be a better all around developer, and use tools to get my job done easier. One of my new montras at this time is: the "do the easy way, and not the pedantic way." Might not make sense to many people, but hits home for me. I am a person who can make things harder for myself, because instead of doing the quick and often non-efficient way. I spend and waste a lot of time dreaming of the perfect solution. Not just the perfect solution, but the pedantically perfect solutions. In other words to be pedantically perfect is to explain the process in great detail in order to have a philosophical discussion. Like if everything I do or produce will be scrunitize for accuracy by a professional or academia people specializing in that field. I am working towards gathering tools and building an enviroment that I can be very productive ion putting together applications for current projects and beyond.

My current projects consist of web development projects for myself, my power soccer team, and a few other prospective clients. Using the tools I feel most comfortable with. I am going to use PHP + MYSQL to develop my websites and to be the main platform of my development business in the near future. I have been using those technologies in some form since 2001, and I feel confident in producing and debugging problems quickly with those two core technologies. Even though those are my core technologies / languages to drive my work enviroment. The buzz worthy Python language and the .NET platform has been creeping up on me in tools I like to use. So they will be point of emphasis for me as well to add to my platform, but I have a large learning curve for those two technologies.

Since building websites from scratch using a custom framework of code modules is not only time consuming, but impractical. At least in the since of producing something that you can use quickly to give all the bells and whistles a potential customer may want on their website. For me even the typical web application framework like Zend or CakePHP which are great frameworks, and ultimately something I would use very much in building custom web applications in PHP. To really get my developing of websites off the ground very quickly, and the fact I find the underlying code so easy to understand and customize to my needs I chose to use Drupal.

Drupal is a content management / web application framework built using PHP. It uses a variety of databases to store and retrieve information. Most noteably, MySQL and PostgreSQL. I chose MySQL, because it's the most popular of the two, and it comes with out of the box development bundles like XAMPP and MAMP which is good for developing web based applications off-line.  Not that PostgreSQL cannot be set up for off line work as well, but taking the easy and less pedantic way MySQL was the logical choice to stick to a basic platform to concentrate my expertise. The applications produced is the most important not the diversity of my programming knowledge.

As you can see by this site, I'm well on my way in using my platform and framework to produce descent web applications. Not much so far, but Drupal with a lot of useable plug-in modules and themes has been beneficial to the process. Among other things that I have been working on besides choosing my core platform and web application framework is my development enviroment. My development enviroment is the group of programs and tools that I use to manipulate and develop pieces of my framework to turn them into custom websites and custom web applications for my customers. Just like having a good working enviroment is crucial to the sucess of any person working long hours. The workstation, the lighting, and the workspace in general all effects the performance and productivity of the baker. So to the development enviroment has a large effect on the programmer. This is especially true for a programmer like me who relies on a routine in his daily life. Something I never put much stock into before, because the pedantic view is that the knowledge of how you do things is all that matters, and what you use to achieve the goal don't matter much. The sentiment of "real programmers use basic text editors to get the job done" bravado, and looking down upon enviroments to help get the job done faster will only hurt the programmer. Sure a lot of the early and pioneering code was written with simple tools, because it was all that was available. It doesn't mean using shortcuts and dedicated programming enviroments will make you more or less a geek. I had to learn that the hard way. Now that I am over my self imposed geek righteousness. I am looking to build a good development enviroment.

I will explain my needs out of a good development enviroment later in another post.