There are so options available to me. I could choose to learn and use any of the many languages out there. I could work on whichever framework made me feel fuzzy inside (trust me, there are some).
But this is to be an informed decision, a planned and joyous journey. Not one born of impulses. To reach a decision I have thought of the pros and cons and argued with myself,
- Objective-C for Apple’s Cocoa API
Pros: My machine’s native language, a beautiful one too. It’s a language that’s growing in popularity, especially with iPhones being the talk of the town. Influenced by Smalltalk and C, mothers of many languages.
Cons: There would be a steep learning curve since I have only dabbled into it for a bit before. Available resources for learning, debugging and troubleshooting are only adequate, to put it lightly.
- PHP on the Yii Framework
Pros: PHP is a giant when it comes to web-based applications. The resources are abundant to learn and apply PHP. As for the Yii Framework, it’s growing, vast, versatile and dynamic, as far as I understand, it’ be a great platform to work on.
Cons: I am relatively new with PHP, except for a few forms and files, I have done little. The learning curve would be steep, especially if I work with the Yii Framework. Even though I have worked on MVC based frameworks, I can imagine Yii being somewhat different (or maybe I am just scared of it, for some unexplained reason. I guess I have to think this through).
- Ruby with the Ruby on Rails Framework
Pros: Ruby is fast becoming the language of the web and agile softwares. It would be great to learn especially since this is quite different from languages I have used before.
Cons: The learning curve would be so steep, it would probably be a straight line. I am not sure of what literature I can refer to and where I could get help. And moreover I would be at loss of a project to implement.
- C# on the .Net Framework
Pros: There would not be a very steep learning curve since I have worked (and working) on few projects using C# and the .Net Framework. There would be a great amount of help available from my current team members and also the online community. The library I frequent also has a sufficient amount of resources on this subject. I enjoy working with the framework because of its numerous features and ease of use.
Cons: I fail to see the elegance of the language. Maybe I have not been exposed to it enough but I find it unattractive at times. I would have to work in a virtual environment which would reduce the efficiency of the workflow. Furthermore I would be at loss of a project to work on.
I have yet to decide but I will try my best to choose one that would be greatly enjoyable but I will be choosing soon. Even though I claimed to be thinking this all through, I would most likely be impulsive and choose one that entices me most.