Showing posts with label Language. Show all posts
Showing posts with label Language. Show all posts

Saturday, January 15, 2011

Choose the Right Programming Language For Your Custom Software

You know it's essential to choose the right platform and tools for an IT project if you want the resulting system to be successful. Let's take a closer look at some factors to consider when choosing the programming language you will use to write source code for your software.

[b]Android Programming[/b]

Languages are Not All the Same

If you are multilingual, which of these languages would you choose to write an opera: French, German, Italian or Dutch? How about a love poem? Chances are that for each of those questions, one or two of the options stood out as suitable and one or two stood out as terribly unsuited.

As you plan what your software will do, some programming languages will be obvious misfits. Others will be appealing possibilities. You just need to decide among the ones that are appealing. Make a list of the answers to these questions:

Will the software perform predictable sequences of activity, or unpredictable sequences? Must the software squeeze as much performance as it can out of the computer? Are specialized interfaces needed between the software and hardware devices (such as device drivers), or between the software and operating system (special hooks to operating system internals) or other applications (such as database engines)? Is the software a small, medium, large or very large application? Is it complex? What hardware platforms must the software be able to run on? What operating systems must the software be able to run on? Is availability of expertise an issue?

These are enough factors to evaluate for most projects. There may be more factors you want to include for your specific project. Next, see which languages fit your needs best.

Strengths versus Weaknesses

To the right of your list, add a column for each language under consideration. Go down the list of factors one at a time and apply a checkmark for each language that is well suited in regard to that factor. Get help about any language where you don't personally know about its strengths and weaknesses. Your spreadsheet needs to be filled with factual information, not fads or personal feelings.

Language differences should jump out at you from the completed evaluation chart. Here are some examples:

Languages that must be compiled and linked to generate an executable program, such as COBOL, C, or C++, make much faster-running software than interpretive languages such as the original BASIC or Java. These languages have to be recompiled and relinked for every target operating system. Interpretive languages such as Java or BASIC execute relatively slowly. Software written in these languages can be taken from one operating system to another with little effort. For predictable sequences of work, procedural languages make fast-running, compact programs with low overhead. For unpredictable sequences of work such as responding to human users in a windowed user interface, they are cumbersome. Object oriented programs are intended for unpredictable sequences of work. They take more overhead than procedural languages, so object oriented code tends not to run as fast as procedural software. High level languages are more easily read by people, simpler to debug, easier to maintain, and reduce the chance of such errors as memory leaks. These are languages such as COBOL, FORTRAN or PL/1. They are less flexible than low level languages such as C. High level languages cannot readily manipulate bits or directly manage hardware. Low level languages like procedural C or object oriented C++ can perform almost as "close to the machine" as a computer's native assembly language. You can do nearly anything with low level languages. However, these languages are cryptic and do not include safeguards that are built into high level languages. That makes it easy for programmers to make such mistakes as memory leaks, and it makes software in these languages hard to maintain. The bigger and more complicated your software is, the more a high level language will save you from long term maintenance headaches.

Ultimate Decision

After you finish filling in your chart, some languages will have more checkmarks than others. The ones with the most checkmarks, or with checkmarks by the most important factors, are your finalists. You might even be lucky enough to find all the finalists are similarly capable for your project. In that case, any language among your finalists will do, and you can pick the one among them that you find most comfortable.

Choose the Right Programming Language For Your Custom Software

Know Oracle SQL

Tuesday, December 7, 2010

Body Language + Facial Expression + Voice Recognition

What happens with Artificial Intelligence, Voice Recognition and Humanlike Robotic Android Technologies call come together?

[b]Android Programming[/b]

Currently, there are robotic android projects in the works in Japan and in the US; facial expression or mirroring, is very popular. The goal is for the human that interfaces with the system to create an emotional bond with the machine. Voice Recognition systems that also read body language and facial expression can also be used for threat assessment at lets say airports, border crossings and replace human workers at those locations or choke points.

If you smile at a robotic android and it smiles back at you, while you are having a conversation, this ups the emotional value of the conversation to the human. Perhaps the system might start complimenting you. If you are persnickety to the system, maybe it will mirror those responses or reciprocate an angry response or work to diffuse the situation, of course it all depends on its programming, but you can see the advances, potential applications and the trends going forward.

If you will recall Hal the famous science fiction computer, it said:


I sense hostility in your voice Dave

Perhaps since this was once in a science fiction work, human scientists today are trying to make it so. Right now, we are there, with have this technology, CRM Voice Recognition Software can sense emotion, hesitation, aggression, hostility, anger, etc. So, within five years we will see these features in more and more applications.

Haptics is another field of science, which lends itself well to the merging of Voice Recognition and Facial Feature emotional recognition. Perhaps robots of the future will look like humans and mimic their characteristics. A robot that feels a strong handshake and firm grip along with a self-confident voice of an individual with an earned ego might elevate the trust factor a notch or two.

Sizing up the confidence in the individuals ability to perform - will voice recognition software combined with these other technologies replace corporate Human Resource Directions, Project Managers, Middle Managers and CEOs too? Folks are already thinking here; 10-15 years out, but not without ruffling a few feathers. Being replaced by a computer, robot or system has caused many a conflict in the past, so the plot thickens and more barriers are foreseen. Think on this the future is coming faster than you might imagine.

Body Language + Facial Expression + Voice Recognition

Android Development Tutorial

Monday, December 6, 2010

Learning Java Programming Coding Language

There are many programming languages available and each of them is suitable for another program or application. There are people who have learnt only a few programming languages and who use these because that is what they know, bust most of the times software programmers will use the programming language that is required by the application they are creating. Java is one of the most frequently used programming language and writing in this language is somehow different from the usual Pascal or any C/C++ version but that does not mean that learning the java code is harder than learning Pascal or C++. Nowadays there are numerous applications written in Java and its terminology it may seem a bit harder in the beginning but anyone can write in this programming language, that's for sure.

[b]Android Programming[/b]

When looking into a new programming language, most people would like to know if it is easy to learn and work in. If you compare it to C or C++, you may discover that indeed, using it can be more straight forward. This is due to the fact that Java has far fewer surprises compared to C versions. C and C++ make use of a lot of peculiarities so learning and mastering them all can be a daunting task (for example, temporary variables hang around long after the function that created them has terminated). Being more straight forward, Java is a bit easier to learn and to work with. Java eliminates explicit pointer dereferences and memory allocation/reclamation, for example, two of the most complicated sources of bugs for C and C++ programmers. Out of range subscripts are easy to find, as Java is able to do add array bounds checking. Others may argue that it seems easier to work with because there are very few examples of extremely complicated projects done using it, but the general accepted idea is that it is somehow easier to master than C or C++.

Learning Java programming is not very difficult, especially if you are familiar with other, more basic, programming languages and you know for sure what you want to create using it and it has a series of benefits compared to C and C++. First of all, code written in this programming language is portable. Code written in C and C++ is not and this makes Java more practical (for example, in C and C++, each implementation decides the precision and storage requirements for basic data types.

When you want to move from one system to another, this is a source of problems because changes in numeric precision can affect calculations). On the other hand, Java defines the size of basic types for all implementations (for example, an "int" on one system is the same size and it represents the same range of values as on every other given system). Find out more at http://www.whatiscomputerprogramming.com

The cases of programs that make use of floating point arithmetic requires a special attention: a program that uses floating point calculations can produce different answers on different systems (in this case, the degree of difference increases with the number of calculations a particular value goes through). But this is a thing specific to all floating point code, not only Java code which is also more portable then C or C++ in its object code. It compiles to an object code for a theoretical machine - in other words, the interpreter emulates that machine. This translates to the fact that code compiled on one computer will run on other computer machines that has a Java interpreter, but more on this subject you will find out while learning Java programming.

Learning Java Programming Coding Language