TECHNOLOGY INSIGHT

MultiLingual Dev

I'm determined to write a solid reference on being a multi-lingual developer. The easy part is that there are lots of commonalities in languages and tools. The hard part is that sometimes they are so close that it becomes difficult to remember the difference. That is where this series comes into play - it should become a single source of information to help developers remain multi-lingual.

What this series covers:

This series will cover the following languages, frameworks and tools ...

  • C# using the .NET 4 Framework and Microsoft Visual Studio
  • Java and the Eclipse IDE
  • Objective C using the CoCoa libraries and XCode on Mac OS
  • C# using the open source IDE MonoDevelop by Xamarin - This works in all three major environments Windows, MAC and Linux! (I'll explain how as we go on)

The above list already introduces a lot of concepts that need some sort of logical breakdown in order to keep track of it all. We have already introduced the concepts of language, frameworks or libraries, and development tools. (Typically refered to as IDE's (Integrated Development Environment)

Language (C#, Java and Objective C)

Technically languages can stand on their own. In its simplest form a language defines the syntaxed used to create a text file of instructions that a compiler can turn into execuatable code. So if you were so inclined you could use a simple text editor to write a program, and then from a command line turn it into an application that will execute. There are several good tutorials on the manuy languages out there that demonstrate this capability - I'm not going into it any further.

One thing that is important to point out out this point regarding the languages I'm covering is that the compiler is designed to create an executable for its target machine. As you can imagine there are a LOT of differences between the various machines and operating systems, so making a program useful in various environments is difficult. The following are various major considerations that make up the many combinations of environments:

  • Operating System - Various versions of Windows, Mac OS, iOS and various distributions of Linux.
  • Processors - Primarily there are only two major flavors - 16 and 32 bit, unless you consider the mobile systems.
  • Environments - Desktop applications, Web Applications that run in various browsers, and services applictions.
  • Cloud Environments - the cloud introduces a whole new set of environments you may need your application to run in.
  • Video Resolution - The size and shape of the screen you are targeting can have an impact on your application.
  • Input methods - The type of user input your program may need to respond to like mouse, keyboard, touch, multi-touch or even motion.

That is not an exhaustive list, but you get the idea. Two of the languages I mentioned above have a distict advantage in that they are designed to operate on a virtual computer, which eliminates much of the compatibility issues. These are Jave and C#. Objective C doesn't really have a huge issue to deal with because in the MAC world there is only one OS and Hardware source (Namely Apple) so there are a lot less issues to deal with to make sure your application runs where you desire for it to run.

Recommendations

“Randy is very detail-oriented and pationate about his work. The products he has produced for my company have been second to none.” -Jason Biggs

 

“As a developer that constantly interacts with web services, Randy is an absolute dream to work with. He is the kind of guy that know the importance of each role and strives to work in a way that always benefits other members of the team. I would recommend Randy to anyone looking for an experienced .NET developer.”
Jacob Williams

 

“Randy Krueger, founder of Emmaus Road Productions, has always been and will continue to be HIWAAY's number one recommendation for companies that are looking for web site development, database applications and template site work. When I refer my clients to Randy, I can rest assured they are being handled in the utmost professional manner. Over the years, HIWAAY's customers have had nothing but glowing testimonials of the web site development and work flow process of Mr. Krueger and Emmaus Road Productions. I would not hesitate to send any business, small or large, to Randy and Emmaus.”
Ches Allen

 

“Randy is a very knowledgeable and effective developer and consultant, and I highly recommend his services. The icing on the cake is that he's also just a nice guy to be around. For me integrity and trust are the deciding factors for whom I choose to do business with. Randy has both of those covered.” -Shane Ellis

 

“I have worked with Randy in numerous web and software design applications. He is currently working on two projects with us now. (3/08) He brings tremendous knowledge and creativity to the table. Randy is one of the most reliable and easy to work with people in the field. He will stay after and issue until resolved and not just quick fix it. He is honest enough to tell you like it is, diligent enough to work through your project to help you know exactly what you need and want and then make it happen.”
Ken Headley