Wednesday, 31 October 2012

CHOOSING THE BEST PROGRAMMING LANGUAGE


Sometimes, there are arguments about which programming language is best, based on lines of code (LoC) needed to write specific example programs, the speed of compiling those programs, how fast they run, and how small their memory footprints are. These are mostly useless comparisons because the programs are typically too small to be meaningfully useful, and they don't account for ease of use or programmer friendliness.

For example, something might require only one LoC to accomplish what would require 10 LoC in another language. But which one runs faster? Does everyone know that one line to write? How complex are those 10 lines, do they make sense? These kinds of questions make deciding the "best" programming language next to impossible because the question is too vague.

To be more precise I’m going to take a look at it here based on an individual’s perspective.

1.         WHAT'S THE BEST PROGRAMMING LANGUAGE FOR A
BEGINNER?
It depends somewhat, on what the beginner is trying to accomplish. Java is among the most popular languages overall, and one of the most popular languages for beginners to learn. However, Python is generally highly regarded, but not terribly popular.

Both are good choices. Java is great because it's so popular. If you really know your stuff, there's plenty of work as a Java developer. If I were starting over again from scratch, I'd want to learn Python first. Python is one of the most elegantly designed languages. It's easy to learn, fast to program in (generally), and is object-oriented (so is Java).

2.         WHAT'S THE BEST LANGUAGE FOR WEB DEVELOPMENT?
This is like asking what the best religion is! Everyone has their favorites, and they're all good choices with their own strengths and weaknesses. If your target is web programming, here are some of the most popular choices.

PHP - Not necessarily a language, PHP is a parser that outputs an HTML page in a dynamic way. It's extremely popular; Wikipedia, Facebook, Digg, Wordpress, and millions of other sites are built on it. It's used on the server side of things, so it's not really designed to be interactive.

Javascript - If you're going to do web programming, this is probably the best language to learn. It is used for client-side interactions, Ajax, and plug-in development. All the most popular browsers have support for it, and if you intend to write plug-ins or extensions, this is the language you'll need.

Ruby (on Rails) - If you want to start programming for the Web quickly and easily, Ruby on Rails is probably the best programming language to learn. It makes a lot of things simple and easy to implement. But once you need more functionality or flexibility, once things get complicated, it can become difficult to use. It's still very popular, and there's no shortage of work for good Ruby programmers.

PERL - PERL is the duct tape that holds the Internet together. It's the Swiss Army chainsaw of programming languages. These are common things said about PERL. It's best to learn for more advanced web programming, but not when starting out because it's awesome for very specific things, but not for everything.

3.         WHAT'S THE BEST LANGUAGE FOR GAME DEVELOPMENT?
This is an impossible question to ask because most platforms have specific language requirement! The best language for game development is simply whatever works best on the target platform.

If you're want to develop iPhone, iPod, iPad games? You're going to want to use Objective-C. That's the language Steve Jobs brought with him from NextStep when he came back to Apple. It's the language for development on all things Apple, so if you want to write Apple apps, you're going to want to learn Objective-C.

For anything Microsoft, your best bet is going to be C#; the language Microsoft invented that's based on the best of the Java and C programming languages. It's what's used for Xbox, Windows Phone 7, and of course, Windows. Although you can work with other languages on all of these platforms, Microsoft has really gone out of their way to make things easier on you if you use the tools they provide.

Android devices are easiest to program with Java, as that's the underlying technology. If you're going to do Android game programming, you're going to need to learn Java. Which is fine, since it's a very popular language and considered one of the better languages to learn when starting out.

For Windows PC games, C or C++ are undoubtedly the most popular choices. Other languages are possible, but nowhere near as popular.

For 3D, you're going to need to learn a graphics programming language like Direct3D (for Microsoft platforms) or OpenGL (for all other platforms).

Game programming is extremely complex, and you're not likely to start completely from scratch. There are so many different tools for every platform, that it'd be a monster task to write about them all. You're going to need level design, graphic design, sound, etc... There's a lot more to game programming than simply choosing a language to learn!

3.                  WHAT'S THE BEST PROGRAMMING LANGUAGE FOR MAKING MONEY?
This is a very popular question. Some languages are a bit crowded because they're so popular. Java, for instance. Yes, you can get a job, and yes, you can make a great living with Java, but you'll have to compete against a lot of other developers.

Right now, there is a huge demand for Objective C. What's that? It's the language iPhone and iPad apps are written in! And also Mac apps, but they aren't as popular. It doesn't look like the iPhone is getting any less popular, and there are always new apps being developed. There aren't nearly enough programmers who know Objective C, so you can easily make a very good living with it.

Other languages that are great to learn to make money are Javascript and C#. Javascript is the language that runs the web. If you want to be a web developer, it's the best language to learn. C# is a language developed by Microsoft for use on Windows and Windows Phones. If you want to develop on Windows or Windows Phone 7, you're going to need to learn C#. There's simply too much demand for it to ignore.

Friday, 26 October 2012

UNDERSTANDING NEAR FIELD COMMUNICATION IN SMARTPHONES

Near Field Communication (NFC) technology is promising because it presents the next evolution of convenient payment with an added layer of security. Some credit cards have NFC chips embedded in them and can be tapped against NFC payment terminals instead of swiped, which eliminates the possibility that someone could skim your data via the magnetic strip. This same system works with cellular phones, too: read up on how cellular electronic payments work to dig into the technology.
 
Google is one company pushing NFC payments with Google Wallet. The application stores credit card information under multiple layers of security and allows for quick tap payments at NFC terminals. That means the technology's usefulness is limited by the number of NFC payment terminals available in retail locations and the number of phones that support the technology -- at launch, meanwhile Google Wallet only works with the Android Nexus S smart phone.

WHAT EXACTLY IS NFC
NFC is a set of standards for smartphones and similar devices to establish radio communication with each other by touching them together or bringing them into close proximity, usually no more than a few centimetres. Present and anticipated applications include contactless transactions, data exchange, and simplified setup of more complex communications such as Wi-Fi. Communication is also possible between an NFC device and an unpowered NFC chip, called a "tag".

How NFC Works

Bluetooth and Wi-Fi seem similar to near field communication on the surface. All three allow wireless communication and data exchange between digital devices like smartphones. Yet near field communication utilizes electromagnetic radio fields while technologies such as Bluetooth and Wi-Fi focus on radio transmissions instead.

Devices using NFC may be active or passive. A passive device, such as an NFC tag, contains information that other devices can read but does not read any information itself. Think of a passive device as a sign on a wall. Others can read the information, but the sign itself does nothing except transmit the info to authorized devices.

Active devices can read information and send it. An active NFC device, like a smartphone, would not only be able to collect information from NFC tags, but it would also be able to exchange information with other compatible phones or devices and could even alter the information on the NFC tag if authorized to make such changes.

USEFULNESS OF NFC
A lot of the press you see about NFC tags will be about mobile payments. It's the same technology but whereas we are talking here about using NFC to transfer a web address or simple data, NFC payments are a lot more complicated and involve a Google Wallet on your phone and all sorts of other things. While the momentum behind NFC is likely to be driven by mobile payments, the technology is capable of much more.

NFC devices can be used in contactless payment systems, similar to those currently used in credit cards and electronic ticket smartcards, and allow mobile payment to replace or supplement these systems. For example, Google Wallet allows consumers to store credit card and store loyalty card information in a virtual wallet and then use an NFC-enabled device at terminals that also accept MasterCard PayPass transactions. Germany, Austria, Finland, New Zealand, and Italy have trialed NFC ticketing systems for public transport, while China has brought it into service on buses across the country. India is implementing NFC based transactions in box offices for ticketing purposes. At present, the possibility of the technology being implemented in Nigeria cannot be ascertain due to the fact that the number of people carrying NFC enabled device are quite few.

Follow this link to see a list of NFC phones that you can buy today.

Wednesday, 24 October 2012

WHAT REALLY IS RETINA DISPLAY IN iPHONE 5?


Late Steve Jobs mentioned an all-new "Retina Display" for the iPhone 4. But what exactly is a "Retina Display?" Apart from a marketing buzzword, it's essentially a high-end screen with four times as many pixels in the same screen real estate.
 
This is what Apple say in one of it advertorials about the Retina Display capability in the newly released iphone 5: “This isn’t just a larger display. It’s a larger Retina display. At 326 pixels per inch, it has a pixel density so high your eye can’t distinguish individual pixels. And as stunning as the Retina display is on the iPhone 4S, this one gives you 18 percent more pixels for an impressive 1136-by-640 resolution. Colors get a boost, too, with color saturation that’s 44 percent greater than before. So with iPhone 5, the games you play, the words you read, the images you see, and the apps you love look and feel incredibly vivid and lifelike. For big-time entertainment, iPhone 5 lets you watch widescreen HD video in all its glory — without letterboxing.”

...It's a screen...
A fancy screen, with a 326dpi resolution. Jobs said "there's a magic number around 300dpi, if you hold something about 10-12 inches away from your eye, it's the limit of the human retina to distinguish pixels".

All the breakthrough technology in iPhone 4 was situated between two glossy panels of alumino-silicate glass - the same type of glass used in the windshields of helicopters and high-speed trains. Chemically strengthened to be 20 times stiffer and 30 times harder than plastic, the glass is ultra durable and more scratch resistant than ever.

.. DPI, Retina and Resolution..
Digital content creators are abuzz about “high DPI” and “Retina” displays in terms of how they are changing the nature of the web and complicating the design process. Before telling you how to develop images for these new devices, it makes sense to understand the basics of the technology: what is high DPI, and why is it significant?

Very simply, “high DPI” (dots per inch) and “Retina” mean the same thing, that is: a device with a high pixel density. “Pixel density” is the number of pixels a display can fit into a fixed distance. This is different from “resolution”, which is a simple count of the number of pixels across the entire width and height of a device.

For example, the resolution of an iPhone 4 is 640 x 960 pixels. All of these pixels – a pixel being the smallest dot of color that is possible to show on a screen – are crammed into a display that is two inches across. 

If we compare that to an old VGA desktop monitor, the monitor will have a similar resolution, but a much larger physical size, and thus a significantly lower pixel density

If we divide the physical width of the display by the number of pixels displayed horizontally, the result is the number of pixels per inch (ppi, also commonly referred to as dpi). 

Most current desktop monitors display around 96 to 110 DPI, with laptops coming in slightly higher. “High DPI” is generally acknowledged to be any device with a display density of 200 pixels per inch or greater. 

...and it's close to the iPad's display quality...
The iphone 5 got 78 per cent of the pixels of the iPad with about 326 pixels per inch, but in a far smaller screen-size. That should mean colors will pop, and video, browsing, app-playing—whatever else you do with your iPhone—will be clearer than ever. This will be especially beneficial with fonts, whether they be in emails or when reading in the browser.

...but it's better than your iPhone 3GS' screen...
An 800:1 contrast ratio doesn't say much—you know how misleading contrast ratios can be—but it sounds fantastic for a phone. It boils down to just how they measure it, but we do know that it's 4x better than the 3GS' contrast ratio.

In reality, “Retina” displays are not as far as the technology can be taken: to paraphrase physicist Richard Feynman, there’s still room at the top for further improvement, although it is likely that subsequent advances will be more incremental in nature. It should also be noted that there is a similarly revolutionary leap in color range that is waiting in the wings. 
Once you understand pixel density, the issue is how to optimize your images for the new displays. For bitmap images, the most important point in this new web development process is one that I’ve continually emphasized here – always retain the very highest resolution version of your images.