In the pre-app era the word "application" had been applied to websites that provided advanced user interactions and capabilities previously available through native software. Examples of search apps are Webmail, Google maps, Google Docs, news sites etc...
In the era where the demand of mobile telephony is on the ascendancy, be it a smart phone or a tablet, there has been an increase in the number of mobile applications on the market in every platform and domain. But the power of the web cannot not be underestimated.
Mobile device sales rose in 2011, with smartphones showing the strongest growth. Nokia remains the number one handset manufacturer, but Samsung is the leading smartphone hardware vendor with android being the top smartphone operating system. Android now powers more than 250 million devices, with a user base increasing by 700,000 subscribers per day. This goes to show the increase in mobile users globally.
Each of these types of apps has their own pros and cons. Here is a summary...
Working offline. A mobile app is best if your app must work when there is no internet connectivity. Though HTML 5 supports caching, it is still limited comparatively.
Speed. Native apps win the speed race. The speed of web apps depends on a persons internet connectivity.
Maintenance. Maintaining a native mobile app can be complicated both for users and developers (dealing with multiple versions of the same information on different platforms). New versions of mobile apps will have to be packaged and placed in the app store. On the hand, maintaining a web app is simple as maintaining a web page and changes can be done frequently as needed.
Platform independence. While different browsers may support different versions of HTML 5, if platform independence is important, you definitely have a better chance of achieving it with web apps than with mobile apps.
Installation. Installing web app is a hassle for users: They need to be really motivated to justify the effort. “Installing” a web app involves creating a bookmark on the home screen; this process, while arguably simpler than downloading a new app from an app store, is less familiar to users, as people don’t use bookmarks that much on mobile.
In a nutshell mobile apps and web apps are all ways to cater for the mobile user. There is no unique best solution, each has its strength and weakness. The choice remains with what you want to achieve, target group and the developers preference.
Translate
Friday, 22 November 2013
Tuesday, 27 August 2013
Why NoSQL?
A NoSQL database provides a way for storage and retrieval that uses loosely consistency models than traditional relational database.
NoSQL is a whole new way of thinking about databases. Relational database may not be the best solution to all scenarios. NoSQL does not observe the traditional relational database structure. It is not built on tables and does not need SQL to manipulate data.
Interactive applications have changed greatly over the last 15 years and, so have data management needs. Currently three interrelated trends Big Data, Big Users, and Cloud Computing are driving the idea of NoSQL.
Currently new applications are being hosted in the cloud and are available over the internet where they must support global users everyday. Over 2.5 billion people are connected to the internet worldwide and the amount of time each spends online is steadily growing. Supporting large number of users simultaneously is important but tracking the usage of applications is difficult to determine so its necessary to support rapid growing numbers of concurrent users. Maintaining the performance users demand is nearly impossible and developers are moving away from relational technologies to a more scalable database technology which NoSQL provides.
Third parties such as Twitter, Facebook and others have made data capture and retrieval a lot easier than it used to be. Personal user information, machine logging data and an array of ever-expanding data are being captured. The use of data is increasingly changing and the nature of its usage. Applications that do not find ways to balance it quickly fall behind. NoSQL provides a data model that maps better to the application’s organization of data and simplifies the interaction between the application and the database, resulting in less code to write, debug, and maintain.
There are some great NoSQL databases such as
NoSQL is a whole new way of thinking about databases. Relational database may not be the best solution to all scenarios. NoSQL does not observe the traditional relational database structure. It is not built on tables and does not need SQL to manipulate data.
Interactive applications have changed greatly over the last 15 years and, so have data management needs. Currently three interrelated trends Big Data, Big Users, and Cloud Computing are driving the idea of NoSQL.
Currently new applications are being hosted in the cloud and are available over the internet where they must support global users everyday. Over 2.5 billion people are connected to the internet worldwide and the amount of time each spends online is steadily growing. Supporting large number of users simultaneously is important but tracking the usage of applications is difficult to determine so its necessary to support rapid growing numbers of concurrent users. Maintaining the performance users demand is nearly impossible and developers are moving away from relational technologies to a more scalable database technology which NoSQL provides.
Third parties such as Twitter, Facebook and others have made data capture and retrieval a lot easier than it used to be. Personal user information, machine logging data and an array of ever-expanding data are being captured. The use of data is increasingly changing and the nature of its usage. Applications that do not find ways to balance it quickly fall behind. NoSQL provides a data model that maps better to the application’s organization of data and simplifies the interaction between the application and the database, resulting in less code to write, debug, and maintain.
MongoDB,
RethinkDB,
Elasticsearch,
Couchbase Server
amongst others which can be of great usage.
NoSQL databases meets new challenges for three main reasons:
- Better application development productivity through more flexible data model
- Great ability to scale dynamically to support more users and data
- Improved performance for highly responsive applications and to allow more complex processing of data.
Thursday, 22 August 2013
Why All These Scripting Languages
Over the last fifteen years, there has been a fundamental change in the way people write computer programs. The transition from system programming languages like C or C++ to scripting languages like Perl or PHP has risen up because of the use of the internet as a communication tool.
The main characteristics of a scripting language is its ease of usage and they are usually interpreted from source code unlike system programming languages.
Scripting programming languages such as Python, Rexx, Unix shells, Perl and Tcl represent a very unique style of programming than system programming languages. These languages are intended for writing programs from scratch and fixing components together.
There are a lot of scripting languages in the system and here are some of the popular ones;
Perl (Practical Extraction and Report Language). This is a popular string processing language for writing small scripts for system administrators and web site maintainers. Much web development is now done using Perl.
JavaScript, perhaps the most publicised and well-known scripting language was initially developed by Netscape as LiveScript to allow more functionality and enhancement to web page authoring that raw HTML could not accommodate.
VBScript, a cut-down version of Visual Basic, used to enhance the features of web pages in Internet Explorer.
Python is a widely used general purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C. The language provides constructs intended to enable clear programs on both a small and large scale.
PHP is a server-side scripting language designed for web development but also used as a general purpose programming language. PHP code is interpreted by a web server with a PHP processor module which generates the resulting web page: PHP commands can be embedded directly into an HTML source document rather than calling an external file to process data. It has also evolved to include a command line interface capability and can be used in standalone graphical application.
The main characteristics of a scripting language is its ease of usage and they are usually interpreted from source code unlike system programming languages.
Scripting programming languages such as Python, Rexx, Unix shells, Perl and Tcl represent a very unique style of programming than system programming languages. These languages are intended for writing programs from scratch and fixing components together.
There are a lot of scripting languages in the system and here are some of the popular ones;
Perl (Practical Extraction and Report Language). This is a popular string processing language for writing small scripts for system administrators and web site maintainers. Much web development is now done using Perl.
JavaScript, perhaps the most publicised and well-known scripting language was initially developed by Netscape as LiveScript to allow more functionality and enhancement to web page authoring that raw HTML could not accommodate.
VBScript, a cut-down version of Visual Basic, used to enhance the features of web pages in Internet Explorer.
Python is a widely used general purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C. The language provides constructs intended to enable clear programs on both a small and large scale.
PHP is a server-side scripting language designed for web development but also used as a general purpose programming language. PHP code is interpreted by a web server with a PHP processor module which generates the resulting web page: PHP commands can be embedded directly into an HTML source document rather than calling an external file to process data. It has also evolved to include a command line interface capability and can be used in standalone graphical application.
New languages often learn from existing languages and add, remove and combine features in a new way. There is a few different paradigms like object oriented and functional and many modern languages try to mix features from them both.
For the same reason there are hammers, screwdrivers, handsaws, bandsaws, jackhammers, crowbars, and a host of other tools: not every language is perfect for every task. Some languages are targeted at specific problem domains
Also, for the same reason that shirts come in different colors: some people just like the "style" of one language over another.
And, of course, a lot of programmers find it fun to invent a new language, just to see what happens, or perhaps because they have some knowledge about languages and want to scratch an itch, or try out some ideas.
Friday, 16 August 2013
The Open Source Ideology
In the development of software, open source signifies that a product includes permission to use its source code, design documents, or contents.
There has been conflicting definitions and differences between the free software movement and the open source movement.
The term “open source” software is used by some people to mean more or less the same category as free software. It is not exactly the same class of software: they accept some licenses that we consider too restrictive, and there are free software licenses they have not accepted. However, the differences in extension of the category are small: nearly all free software is open source, and nearly all open source software is free.
-- Free Software foundation http://www.gnu.org/philosophy/categories.html
Though the market for open source software is on the high, there is still a school of thought against it.
There are many reasons projects should go open source, a few are:
By uploading your codes to sites like GitHub, it makes your code available to people with similar ideas to yours. People can help improve your project and probably make suggestions to to guide you.
Writing a complete software is an arduous task. Lets face it, our ideas can't always be the best. By allowing others access to our software, we can get have the knowledge and expertise of our contributors. Going open source leads your software to be of a better quality.
Going open source doesn't make your project free, you can keep some parts of your code as private as you want it. People have the notion that making their codes available would give their competitors the upper hand. But consider that you have a lot of contributors to your project which will far outweigh what your competitor can get.
I hope these few tips has changed your perception about going open source. You can go around and explore some open source software or start making your project open.
There has been conflicting definitions and differences between the free software movement and the open source movement.
The term “open source” software is used by some people to mean more or less the same category as free software. It is not exactly the same class of software: they accept some licenses that we consider too restrictive, and there are free software licenses they have not accepted. However, the differences in extension of the category are small: nearly all free software is open source, and nearly all open source software is free.
-- Free Software foundation http://www.gnu.org/philosophy/categories.html
Though the market for open source software is on the high, there is still a school of thought against it.
There are many reasons projects should go open source, a few are:
By uploading your codes to sites like GitHub, it makes your code available to people with similar ideas to yours. People can help improve your project and probably make suggestions to to guide you.
Writing a complete software is an arduous task. Lets face it, our ideas can't always be the best. By allowing others access to our software, we can get have the knowledge and expertise of our contributors. Going open source leads your software to be of a better quality.
Going open source doesn't make your project free, you can keep some parts of your code as private as you want it. People have the notion that making their codes available would give their competitors the upper hand. But consider that you have a lot of contributors to your project which will far outweigh what your competitor can get.
I hope these few tips has changed your perception about going open source. You can go around and explore some open source software or start making your project open.
Monday, 12 August 2013
Role of software testers
Though they are often underrated, software testers play a huge role in software development. Right from the requirement gathering stage to when the software is completed.
How many people will take the risk of taking in untested drug? Or drive a car which is not tested? Not many people I suppose. In the same way software put on the market has to be tested. The Microsofts and apples of this world all go through testing processes with all their software before they become commercial. That is not to say they are without faults.
Developers are problem solvers, the can rack up prototypes of any system in weeks or even days but testers come from a different angle. They show weaknesses in the system. They come out with test cases to show the program breaks, which will in turn lead to corrections by the developer.
Developers are problem solvers, the can rack up prototypes of any system in weeks or even days but testers come from a different angle. They show weaknesses in the system. They come out with test cases to show the program breaks, which will in turn lead to corrections by the developer.
Many developing companies and freelancers in Africa do not value testing. They basically do not get why an independent body would have to verify his work. But with the gradual growth of software development in Africa of late a few are beginning to wrap their heads around the idea of testing.
It may be sometime before software testing is fully embraced in this part of the world.
Subscribe to:
Posts (Atom)