I couldn't think of a better way to end this year than by congratulating our newest Member of the Month winner, Hall of Famer. Hall of Famer has been leaving his mark in our forums for a few months now and in that brief time he has caught the attention of the staff for his thought provoking questions and his contributions at helping others.

Please join me in congratulating Hall of Famer and the opportunity he allowed me to have to divulge a little more about him through the following interview.

cpradio:
Let me start off with the million dollar question, were you surprised and how do you feel?

Hall of Famer:
To be honest I am surprised, I believe there are other posters more worthy of this title but I am honored that it came to be me in the end. I am glad I can contribute something to this amazing community.

cpradio:
More worthy posters eh? Did we choose wrongly? Who might these individuals be that seem to have earned your respect here on these forums? Seriously, don't answer that! I see you've been around these forums for a fairly short amount of time, what brought you to Sitepoint, what made you stay?

Hall of Famer:
Initially I was attracted here after hearing about the event 'Talk Object-oriented PHP with the Experts(Lorna Mitchell)'. I was late unfortunately, it was already a month over when I registered at SitePoint. Since then I decided to hang around at SitePoint, there are several reasons to keep me stay as opposed to a random lurker. The posters on this forum are generally friendly and open for discussions of advanced topics. On SitePoint you can get answers for not only newbie questions, but also trickier and tougher problems. Come to think about it, in my web application I had a glitch with Ajax Tabs that I wasn't able to find a solution until I asked on SitePoint.

cpradio:
Well we're glad you joined and stuck around. Your username is very intriguing, is there a good story (or any story ) behind the name?

Hall of Famer:
'Hall of Fame' is part of the name of a fanmade video game I used to work on, I went by the username Hall of Famer since I was the leader of that project. Although the game is no longer under active development, I've used this username for a long time and pretty much all my internet pals refer to me by Hall of Famer or HOF. Nowadays I use it on pretty much every forum I am active on. I know it's by no means a 'good story', but hey it's at least a story isn't it?

cpradio:
Definitely, in fact, I'd still argue it is a good story (one not too far from my own). Your profile indicates you are a graduate student, which school, what field are you pursuing, and if someone were to follow your footsteps, what advice would you give them?

Hall of Famer:
I am a graduate student at Cornell University (does the location Ithaca imply any of this?). My major is actually chemical/petroleum engineering, but nowadays I am quite into computer science so I'd love to find a full-time job at computer science industry too if I get a chance. If there's one advice I can give to anyone following a similar path as I've taken, I'd say 'Let Your Interests Guide You To the Career of Your Dreams'(quoted from Laura Day's book title). As a non-computer scientist to begin with, I learned programming primarily through interest and enthusiasm(thanks to the web application I work on). When there's a will, there's a way.

cpradio:
Wow, that was definitely unexpected. Majoring in Chemical/Petroleum Engineering sounds, well... boring (at least to me ). Do you have any other interests outside of web programming?

Hall of Famer:
I am also interested in video gaming, game development, watching sports/movies, and parties that everyone loves.

cpradio:
What games are you currently working through and who are amongst your favorite teams?

Hall of Famer:
I mostly play RPG and Sports/Racing games, recently played Growlanser 4 on PSP and it was great. Sports games like FIFA, NBA2K, Need For Speed are games that I play every now and then. They are a bit different from RPG as there's no such thing called Game Over and you can play online with your friends anytime you want. I am no longer developing fan-made games nowadays, it was a great experience a few years ago when most people were developing 2D Games, now that the demand for 3D games grows it becomes a serious problem for those who are not artists or 3D designers.

I follow many sports, Football, Baseball, Basketball, Ice Hockey, Tennis and Soccer, they are always fun to watch and I normally don't pick a side nowadays. I used to root for some teams a long time ago, but since I tend to get way too emotionally involved (mood heavily affected when my teams lost, sometimes even hard to sleep at night) my parents and friends advised me to enjoy the games just for fun instead.

cpradio:
I'm a RTS person myself and have had a lot of fun with Starcraft and its sequels/continuations and have never really followed sports (I don't mind watching them, just never got interested in following any of them). You seem to have a great passion for PHP, what drives you to PHP, what has intrigued you to ask some of the thought provoking questions as of late?

Hall of Famer:
I was driven to PHP after taking over a web application/software from someone who no longer had time and passion to develop it. It was written in PHP and already had about 20 client users actively following its update, so I decided to stick with PHP as rewriting it in other languages would be difficult and time-consuming. You meant those questions I randomly came out with about OOP, MVC and ORM?

cpradio:
Yep, those are the ones! They have really been refreshing to see in the PHP forum as of late, I really enjoy some higher level discussions that you may typically find in a speaking forum or panel.

Hall of Famer:
Guess that's just the way I am? After all you are talking to someone whose mind is always filled with weird ideas like how we can make antimatter weapons, or transfer electric fish gene into human. XD Seriously, I read advanced PHP articles from sites like PlanetPHP and DevShed, there are times when I partially grasp a concept but still seem to be confused a little bit, especially when it comes down to how to actually implement a beautifully looking idea in actual coding practice. This is why I raise such questions on SitePoint, in fact most of the time I am already very close to getting the point before I ask. I am always a curious person, I know curiosity kills the cat but I just cant help it. On the other hand, don't you think the forum is better off with more intermediate to advanced level problems than beginners syntax questions?

cpradio:
In the development world, curiosity is rarely a bad thing (from beginner question to the intermediate/professional ones). What can really get you into trouble is being overly creative, but I digress, that's a discussion for another day. On a similar note, you seem to really be vetted into OOP practices, how did you get there and are there any interesting aspects to your studies, job, projects, whatever it may be that lead you to this point?

Hall of Famer:
Good question, it is indeed somehow related to the software I am working on. As I briefly mentioned earlier, it was originally owned by someone else, but the old code was spaghetti procedural code. The very first few months when I took it over, I did not decide to refactor the code but instead simply worked on new features by extending the application. As the application grew, it became progressively harder to keep adding new stuff. I eventually decided to refactor the script step by step using object oriented practices, it did not start well at first but the code did became much neater nowadays. During this refactoring process I was able to learn advanced OO programming and instantly fell in love with it. Some experts say that once the concept of OOP clicks it will be difficult to ever let go, they are absolutely right. Right now I am overhauling it again with MVC/ORM architecture, I hope it will be another worthwhile experience for me and my software.

cpradio:
Yes, OOP is definitely addicting once you get into and you've seen what it can do (that's actually how I got hooked on .NET). What other languages do you like to get into and what drove you to those languages?

Hall of Famer:
There are four other languages I'd like to get into. The first one is C#, I believe it has the nicest syntax for someone so used the C-family/style syntax like me, it also has powerful support for OOP, almost a pure object oriented language. The second one is Objective-C, its not a user-friendly language but don't you think mobile programming is the way of future? The third is Scala, people on Reddit's PHP section claimed that it would be the go to language for future web programming, so I'd be curious at learning this language and seeing if it will indeed live up to this hype. The last one is C, I definitely don't like procedural languages but learning C can lead me into modify PHP's native code that I've always been striving for, maybe someday I can even create my own interpreted language if I know how to program in C. I know it sounds crazy and beyond my skills at the moment, but hey you never know what will happen 10 years from now do you?

cpradio:
If the past 10 years are any kind of guide, I imagine we'll continue to see big shifts in how our languages are interacted with, but I definitely have no idea what that may be. Knowing C# will help you dive down into C++ and C, for anyone new to those languages, I like to think going from C# down to C++/C is more beneficial. C# is more forgiving than C++/C, so you can learn the basics there and slowly convert your programs to C++/C to learn the more unforgivable components (memory management and dynamic pointers, for example). One last advantage is you can mix C++/C with .NET, so you can actually write the same examples/programs in both languages in the same solution and compare them.

Seeing how other languages are also an interest to you, which language would you pick as your "go to" language and why (come on, deep down you know we all have a "go to" language)?

Hall of Famer:
This is a hard question to answer actually. My first and primary programming language is PHP, but I won't consider PHP a 'go to' language since it has many problems. At this point I'd say C# is the 'go to' as it has one of the most elegant syntax for a programmers comfortable with C-family languages, and its support for object oriented features is quite powerful and complete. In the future, Scala may be a very good candidate for 'go to' language, I heard that it's considered the future for web programming and after taking a brief look at Scala examples I am already starting to like it. If PHP's poor support of many object oriented features gets resolved in future it may become a 'go to' language, there are many possibilities.

cpradio:
I too use C# a lot when I want to do a proof of concept (especially on a Windows machine), if I'm at home, I typically utilize Bash as it is usually quick enough for me to write a test in. Are there features you'd like to see implemented from one language to another (example: return types from C# into PHP to improve the use of Interfaces)?

Hall of Famer:
Of course there are quite a lot I can think of, especially considering PHP is my primarily programming language to use and the fact that PHP is lacking so many needed OO features. C# definitely is a much more complete object oriented language, it will be nice if PHP can implement features such as autoboxing, property accessors/mutators syntax, return type hinting, inner/nested classes and operator overloading. I hope to see metaprogramming and multithreading in PHP too, as well as some changes made to namespaces ('cause you have to admit it, PHP's namespace implementation is ugly and incomplete). Good news is that most of them are possible with PECL and patches from PHP RFC, but if you are developing freeware/open-source software with most of your users/customers on LAMP servers, you are stuck with the default PHP so there's not much you can do. It's only achievable if someday I start my own hosting service with a heavily modified PHP, but hey does it still even look like PHP at all if it's so extensively patched? Maybe I call it P# instead.

cpradio:
Very interesting. I not sure we'd ever see those sort of changes in PHP since the target for PHP is entirely different than that of C#, but who knows. Thanks for taking the time to for this interview, we've now come to the point where you have your chance at blatant self promotion. Is there anything that you would like to promote?

Hall of Famer:
Oh sure, I appreciate that. As you may have already know, I am developing a piece of software right now, the name is called Mysidia Adoptables. The current version is in fact not that good, but the new version will be overhauled with more object oriented design/code, and in fact I am even writing my own framework to support its architecture. It would be nice for non-programmers/beginners to take a look since it's very easy to install/use, while advanced coders are always welcomed to participate as they can be helpful making addons/plugins for the script. Also I sometimes contribute classes to PHPclasses.org, under the name Ordland. For those who use/download scripts from PHPclasses.org, take a look at my packages if you don't mind.

cpradio:
I want to thank you again for taking the time to be a part of this interview, it was great getting to know more about yourself. So let's give it up one more time for Hall of Famer, December 2013's Member of the Month!