Nimble Coder

Adventures in Nimble Coding
posts - 77, comments - 56, trackbacks - 1

Programming Crutch, Litmus Test, or Silver Bullet?

Lately I've been reading more about Ruby on Rails -- actually it has been rather entertaining, colorful, testy, and somewhat enlightening. One important aspect of programming is the ability to analyze, understand, and adapt. I have been using more Python lately in work as well as JavaScript and it has been enjoyable although I still like and prefer C#.

Sometimes I wonder how many programmers get fixated on specific language features that in turn becomes a "must have" or requirement for any language he or she uses. That isn't to say the feature is not important but rather usually the task can be accomplished in multiple ways albeit with more creativity (or even hacks) than otherwise necessary.

The examples can be found in any language or product comparison from C++/C#/Python/Ruby/Java to Oracle/SQL Server/MySQL and so on. I recently had to write a stored procedure on Oracle that manipulated data in a table and exported the data. I struggled for several hours as I am not intimately familiar with Oracle before deciding I could accomplish the same task in SQL Server in ten minutes. Sure enough, I used a linked server connection and a temporary table in SQL Server and had the issue solved in practically no time. The issue for me wasn't that Oracle could not accomplish the task, but that I was more familiar with SQL Server and the programming options I could use with it. Oracle does indeed have advantages over SQL Server and vice versa, but it seems IMHO that temporary tables are indeed easier to use in SQL Server and can be contained much easier (I initially tried local temporary tables in Oracle and then global temporary tables and then objects and tables of objects before going back to SQL Server). Ultimately, it was personal preference and familiarity though and not inability of the database. But we as programmers usually fall back on the same techniques that we are familiar with at times, rather than objectively using the best language or technique. It is somewhat like a sore spot that every time you rub against it becomes sorer (even when you shouldn't or don't need to touch that spot). On the other hand, we should be careful were preference out weighs objectivity.

When I read comments about one language being better than another, I always take the comments with a grain of salt. I like to think of programming language differences very similar to spoken and written language differences: the main point can almost always be expressed in another language although it may be longer or more verbose or less "natural" and may not convey the subtleties.

Finally, about Twitter having to write a small portion of code in C -- all of my projects have tight schedules and I would not be happy if I was the developer of the application. Even if it only took 300 lines of C and 2 hours to write, how much more time was spent analyzing, debugging, and getting to that point? And of course, it was solved by the authors of the platform who know it better than anyone else -- so it takes someone who wrote the system or at least very intimately familiar with the system to solve -- it seems to be a very small resource pool, which IMHO is a big problem. It is usually is easier to solve when you wrote the software and know where to look.

Print | posted on Tuesday, October 23, 2007 3:58 PM | Filed Under [ C# Python Ruby ]

Feedback

Gravatar

# online casinon

This is a write-up shows the gentle where we could comply with all the fact. This is certainly pretty wonderful you in addition to provides in-depth guidelines. With thanks much with this great write-up.
online casinon
10/5/2011 2:26 AM | online casinon

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 7 and 6 and type the answer here:

Powered by: