Home Blog A Short History of Explorer++
A Short History of Explorer++
Friday, 03 April 2009 16:00

Rewinding the clock back a few years,  I was in high school and like so many other teenagers, I didn't really have a strong idea of what I wanted to do with myself yet. Writing had always appealed to me (and still does), but it wasn't something I felt I wanted to do 24/7.

In year 10, every student had to undertake a week of work experience. I had wanted to work at a computer company, but ended up at a place that did asbestos removal (it's a long story).

During one of my days there, I had some spare time, and was free to surf the net for a bit. Although I don't remember exactly how I found it, I ended up downloading and installing a program called Game Maker.

After trying it out for a few hours and installing it at home, I was blown away by how much fun it was to make even the simplest "games" (just been able to move a character using the arrow keys seemed amazing to me back then).

Over the next few weeks, I delved more and more into the coding opportunities that Game Maker offered, and found it immensely enjoyable (at one stage I even considered making a Super Mario type game; unfortunately, the idea never really got off the ground). It was at this point I decided I wanted to find a "real" compiler and actually start learning how to program. The language I chose to learn was C and the compiler I ended up with was lcc-Win32, which I used for the next two or so years, and is the compiler against which all early versions of Explorer++ were built.

During those two years (which were also my final two years of high school), I found I had almost no spare time, and even less time for programming. By the time I finished year 12, I knew the basics of programming, but I was no expert, by any means. I made a decision shortly after I finished high school that I would try to learn as much as I could about programming in the three months before I started university.

I read websites that gave general hints on software development, I followed tutorials on coding for Windows and I played around with as much sample code as I could get my hands on. One of the short tutorials I read in this time explained how to enumerate files and place them in a list view[1]. Although I didn't know it then, this tutorial signalled the birth of Explorer++.

After working through and completing the enumeration tutorial, I thought, well that was interesting, maybe I can expand on it a bit. Nothing too fancy, just showing how many items were selected and their sizes, for example. From here, it all snowballed. I added one feature, and I immediately wanted to add another.

Explorer++ (although, for some strange reason, I called it "Windows" then - I think because it ran on the Windows platform, and it was composed of windows [as you can tell, I don't have much of an imagination when it comes to naming!]) was always meant to be a temporary stepping stone to something bigger. I had always thought that at some point (after I had learned "enough"), I would leave it behind and start work on something new. Thankfully, that never happened, and I put more time and effort into Explorer++.

The first two or so years were actually quite difficult. Since I hadn't been a windows programmer for long (or indeed, a programmer at all), I still didn't have that sense of intuition that I believe every good programmer should have, and accomplishing anything meant a few days of hard research or experimentation.

Slowly I became better and better and got more used to the idea of programming on Windows. I started been able to complete small features in a few hours, rather than a few days; I started to spot bugs easier, and I had a better idea of how Windows itself actually worked. Although I can recall moments of utter frustration when something wouldn't work the way it should (and I had spent all week trying to get it to work), it was always deeply satisfying when I finally figured the problem out.

Development continued on this way until the start of 2007, at which point Explorer++ underwent a major internal upgrade and partial redesign[2]. This was also the point at which Explorer++ became multi-tabbed.

Around the start of 2008, I started to consider the idea of making Explorer++ publically available on the web. Of course, I had been the only one using it for the last three years, and I had no idea how stable it would actually be in the real world (unfortunately, a one-man testing team isn't much of a team). I spent the next few months cleaning up the code, fixing bugs, adding new features[3] and generally ensuring it was presentable. I finally released it onto the web as version Alpha 1 on the 1st of June 2008.

The rest, as they say, is history. Nowadays, Explorer++ is compiled in 32-bit and 64-bit, it supports multiple languages, it can save to an xml configuration file, it has a relatively advanced bookmarking system and supports an application toolbar, but much of the stuff that was there 2, 3, 4 years ago is still there today. If someone had told me at the start of 2005 that the small enumeration tutorial I followed back then would have lead to the project I still work on today, I never would have believed them.

All in all, I think I've been extremely lucky to find something I honestly love doing. I've more than enjoyed working on Explorer++ over the last four years, and I can only hope that the next four years will continue to be as challenging and as fun as the last four.

 

Something extra

For those who are interested in how Explorer++ has changed over the years, below is a series of screenshots showing how it has evolved. Some of the shots look very similar, but include many changes that aren't seen directly. The colour of the display window and position of each child window is the default for that build. The approximate date or build version is included underneath each screenshot.

 

Explorer++ Mid 2006

Mid 2006

 

What really surprised me when I dug up this old build (one of the oldest I have - I don't seem to have any code from 2005, unfortunately) is that it actually works quite well. You can browse through folders; you can go back, forward, and up; you can delete, rename and view file properties; the status bar correctly shows the number of items selected, and, to top it all off, you get a nice pie chart that shows exactly how much free space you have left on your drive! Back then it was modelled on XP's explorer, and featured the display window (although it wasn't called the display window at that point) oriented vertically, rather than horizontally.

 

 Explorer++ Mid 2007

Mid 2007

 

This build contains a few major points of difference from the 2006 version - multiple tabs are supported; a tree view has been introduced, and the display window is oriented horizontally. Also worth noting here is that this version of Explorer++ only supported real folders (My Computer was handled simply by enumerating the drives in the system)

 

Explorer++ Alpha 1

Version Alpha 1 - The first version to be released publically

 

Explorer++ Alpha 2

Version Alpha 2 - Came almost a month after Alpha 1 and continued to be updated for about 3 months (individual build/version numbers were not given to the Alpha revisions)

 

Explorer++ 0.9.0.0

Version 0.9.0.0 - Released roughly 4 months after the last Alpha 2 build

 

Explorer++ 0.9.3.2

Version 0.9.3.2 (the most up to date version as of writing this)

 


 

[1] I had wanted to link to the tutorial in this article, but can't seem to locate it anymore. If anyone knows of the tutorial I am talking about, or where it can be found, please This e-mail address is being protected from spambots. You need JavaScript enabled to view it .

[2] You can see the effects of these changes by comparing the 2006 and 2007 screenshots.

[3] Interesting to note is that almost right up until it was first publically released, Explorer++ only supported real folders.

 
Copyright © 2010 explorerplusplus.com. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.