Archive for October, 2009

Why I love C#

Monday, October 26th, 2009

BASIC was my first love. Notice the all caps -- that was how it was written back in the 80s. I discovered BASIC via a GW-BASIC manual I had found in my grandfather's boarding house, where a former tenant left it after graduation. From that lost book I was introduced to programming, and I moved from GW to QBASIC then to Visual Basic 4, jumping to VB 6 and finally, VB.NET. Visual Basic was my first foray into .NET, and with my skills back then, it was really, really good.

Along the way I met a bunch of other languages, though. In highschool we were also taught a data-oriented language called Clipper, and a weird semicolon-laden language called Pascal. It was the first time I saw line-terminators in a programming language. In college I finally got to meet C. Quite different a beast from BASIC, I nonetheless got the hang of C very quickly. It was terse, requiring fewer keystrokes to write in (there was no Intellisense back then) and I immediately kept all the keywords I needed in my head. It was great, but I didn't get to use it at once when I started working.

In the early years of .NET I was ambivalent between the choice of languages. I learned both Visual Basic and C# and said to myself -- what's the big deal between the two? Nothing much. So I just studied and learned and switched from one language to another, until one day I got introduced to object-oriented programming. OOP was a difficult, disciplined programming concept -- much harder to internalize than structured programming was. But that's where I saw what C# was good at: it was naturally geared towards OOP. I compared writing applications in both languages, and noticed that if I was doing OOP, it would be much faster if I wrote it in C#.

I had one last foray using VB.NET on a full-blown object-oriented designed application, and it just convinced me further that C# was the way to go. What nailed it further for me was when .NET 2.0, and then .NET 3.5 arrived. It was much easier to use and write generics, I could use anonymous methods (which wasn't possible in VB early on), LINQ was without hassles of unsightly underscores, and lambda expressions were just much more intuitively beautiful in C#. Likewise, with the ability to introduce unmanaged code, developers could also introduce more advanced tweaks that are impossible to include with VB.

C# empowers a .NET developer to realize the full potential of the .NET framework, aside from the language. This power becomes even bigger with the introduction of the dynamic keyword in C# 4.0, giving it the best of both worlds between static-typed and dynamic-typed languages. It is this power that convinced me that C# is the way to go.

So, why do you love C#? Why don't you like/love it? I'd love to hear your thoughts too. :)

Introduction to Test Driven Development Slides and Code

Sunday, October 25th, 2009

I did a talk introducing students to Test Driven Development last Saturday, October 17, 2009. This is basically same as the TDD Revisited slides, refined slightly taking into account the student audience.

Last Saturday's talk was part of the IT Probe 2009 event held at Adamson University in Manila, by the Junior Philippine Computer Society.

An Introduction to Test Driven Development

Here's some pics from the event:

I'd like to thank the officers and members of the Junior Philippine Computer Society of Adamson University for inviting me over.

Twitter, Facebook and other Social Network APIs on ASP.NET at UST

Monday, October 19th, 2009

I reduxed my talk on Social Network APIs for UST students last August 29. Just wanna share the pics on this one:

There were over a hundred (something like 130) students that attended this talk. Hopefully I didn't bore all of them to sleep :P

Thanks to the UST ICS Dept. Section A of the College of Engineering for inviting me. :)

Postponement Typhoon

Friday, October 2nd, 2009

Last Saturday I was supposed to talk at Pamantasan ng Lungsod ng Muntinlupa about N-Tier Architecture and Object-Oriented Programming.

I was on my way to the event when Typhoon Ketsana ("Ondoy" in the Philippines) came crashing in. With the talk canceled I edged my way home, first through really bad traffic, and then finally through floods. I had it go through some water deeper than the hood of my dad's Mazda B2200 -- and learned to appreciate the value of analog carburetors and diesel engines -- and they're 15 years old at that.

Tomorrow I'm supposed to talk about Test-Driven Development to students at Adamson University, but the event is again, postponed, due to class suspensions and the potential trouble that can be caused by Typhoon Parma ("Pepeng" locally).

I'll post slides after these talks, when they finally push through.