|
|
Viewing posts for category: Business
| iPad vs the World |
|
The iPad tablet defines the consumer tablet market, but is it the best option for business applications. If you are writing consumer oriented applications, then the iPad, iPhone and Android are where you should be. But for business applications, will Apple carry the day? Let's look at some options.
iPad – One manufacturer. Apple is trying to create a walled garden. This is great for consumer appliances, but in business applications, you want to be able to provide quick new functionality, without having to go through an approval process. For mass market appeal, the cost and effort of the approval process is spread over the millions of users who hopefully will use your application. For business, often you are the only business that wants a specific solution, and the cost is spread only over your employees, or over your employees and customers.
Android –Android 2.3 (Gingerbread) is a cell phone operating systems and 3.2 (Honeycomb) is a Tablet operating system. The upcoming 4.0 (Ice Cream Sandwich, Gotta love those names.) is designed for both phones and tablets. All are offered by many manufacturers. Android devices command 48% of the cell phone market and 27% of the tablet market. Avoid tablets running 2.3, as you will find them limiting. Because there are many manufacturers, you can find choices in pricing and features. This is an area to watch.
QNX, RIM Playbook. This is a late entrant to the game, and only offered by one manufacturer. If you like RIM's security model and have already standardized on Blackberry's, then this is worth considering. Since the business market is the main focus of RIM's sales, expect them to improve in making it business friendly, but for now, it is just not mature.
WebOS, HP. Another OS offered by a single manufacturer. HP has effectively killed this platform but have left the option open to re-enter the marketplace. Given their lack of focus, it has a high risk of not going anywhere.
Amazon Kindle Fire. This one has the potential to give Apple a run for the money in the consumer market place. The pricing is very attractive for consumers. It is a single manufacturer product whose main purpose is to drive traffic to Amazon's online revenue stream. I would not expect this to be a great platform for business solutions.
Microsoft Windows 8. This one looks promising. There will be many manufacturers for this platform. I would look at this again in 2 or 3 years, once it has been out for a while and stabilized. I suspect Microsoft will keep its dominant position in both Operating systems and office software for a long time. This is due more to inertia than to innovation.
HTML. What is this doing in the list. The rest are all operating system. The new standards with HTML are coming out very strong as a true application development platform for real business applications. Standards for playing back video are still being worked out, but that will get sorted out soon enough. Custom interfaces may need to be worked out for Drag and Drop, and for accessing the camera, microphone, scanners and PBX integration. This is much easier than creating the entire application for a single platform, only to have the underlying specs for the platform change. As a bonus, your application will also work on desktop systems. Combine these with online office applications (Microsoft 365 or Google Apps) and you have your whole office, anywhere you go.
If I were to buy a tablet for personal use at home, I would consider the iPad, Kindle Fire or either of the Icona Tab A100 or the Toshiba Thrive. If I were to buy a bunch of tablets for business, I would choose the Icona Tab A100 or the Toshiba Thrive (or if my business had already standardized on Blackberry's, possibly the RIM Playbook). I would also focus my customization efforts on web based applications, and bypass the App Stores completely.
|
|
Posted:
November 3, 2011 at 09:45 AM
By:
Gord Gray
|
|
| Categories:
Technology
|
| Desktop battles increase, but the war is irrelevant. |
|
Have any of you been paying attention to the developments in Linux lately? I work mostly in a Windows environment, since that is where most of my user base is. They want windows applications, I'll give them windows applications. But looking forward to the power in HTML 5, I think I will soon be able to give them those solutions completely inside a browser. What does this have to do with Linux? The latest server versions of Linux can be completely upgraded without requiring a reboot. Imagine going from XP to Windows 7, without rebooting. You can't completely do that yet (The operating system may not need to be rebooted, but to upgrade the windowing environment you would need to restart your window manager, which to a user would almost look like a reboot) but, the direction is there.
People have been predicting that "This is the year of Linux!" for over a decade now. This is not the year of Linux. The direction that Linux is taking, combined with the power of HTML 5 (If they ever get final agreement) is the start of a new way of doing things. Throw in the added competition from Google's Chrome OS, and Apple ' s iPad, and the landscape starts looking a bit different. I am not planning on giving up support for Microsoft Office any time soon, but I am planning on adding tighter integration with Google Docs and Open Office. I am definitely working on eliminating my reliance on any specific operating system.
The desktop battlefield has been drawn, but the war is becoming irrelevant. The applications will completely bypass the operating systems and will be written for the browsers. Once that happens, operating systems will be selected for the features people want in an operating system, not for the applications that they support. I suspect that 24 months from now, we will actually have a choice of operating systems for the desktop. |
|
Posted:
May 21, 2010 at 06:48 AM
By:
Gord Gray
|
|
| Categories:
Programming
Technology
|
| The power of HTML 5 |
|
Have any of you been paying attention to the developments in Linux lately? I work mostly in a Windows environment, since that is where most of my user base is. They want windows applications, I'll give them windows applications. But looking forward to the power in HTML 5, I think I will soon be able to give them those solutions completely inside a browser. What does this have to do with Linux? The latest server versions of Linux can be completely upgraded without requiring a reboot. Imagine going from XP to Windows 7, without rebooting. You can't completely do that yet (The operating system may not need to be rebooted, but to upgrade the windowing environment you would need to restart your window manager, which to a user would almost look like a reboot). But the direction is there. People have been predicting that "This is the year of Linux!" for over a decade now. This is not the year of Linux. But the direction that Linux is taking, combined with the power of HTML 5 (If they ever get it finished) is the start of a new way of doing things. Throw in the added competition from Google's Chrome OS, and Apples iPad, and the landscape starts looking a bit different. I am not planning on giving up support for Microsoft Office any time soon, but I am planning on adding tighter integration with Google Docs and Open Office. I am definitely working on eliminating my reliance on any specific operating system. The desktop battlefield has been drawn, but the war is becoming irrelevant. The applications will completely bypass the operating systems and will be written for the browsers. Once that happens, operating systems will be selected for the features people want in an operating system, not for the applications that they support. I suspect that 24 months from now, we will actually have a choice of operating systems for the desktop. |
|
Posted:
April 9, 2010 at 10:30 AM
By:
Gord Gray
|
|
| Categories:
Programming
Technology
|
| Program Generators |
|
Why is it that so many program generators generate code that is virtually unreadable. Granted, one of the main advantages of a program generator is that you don't often need to read the generated code, just execute it. But is really that hard to generate code that maintains indentation and some semblance of a coding standard and naming convention? Actually, I already know the answer. I have written code generators, and you can have them create code that can be maintained outside the generator. Most generators can only get you to 80- or 90% of the way to the final solution (many, no even that far). Since the generated code is un-maintainable, you end up designing the solution around the tools at hand. Frequently, this is good enough, and well worth the productivity gains. You only need one or two people who really understand the tool to design the solution, and then a bunch of people who understand the language involved well enough the write the code snippets at all the exit points that the designer pointed out. When the user requirements change, or it is discovered that a key business concept was misinterpreted, you simply toss out that section of the design, re-design it and introduce new code snippets. Most people aren't even aware that they are using a code generator, and often the organizations that create the tools purposely make the generated code un-maintainable without their tools. Again, if the life expectancy of your application is a few years, then no problem. This is a great approach. If you expect your application to be in service for many years or decades, then this lock-in poses a problem. The tool needs to be at least a year ahead of the technology, so that you can spend that year adjusting your application to the upcoming technology. If the tools needs to be a year ahead, and it takes them a year to revamp the tool, then they need to know the future technology 2 years before it is required. Do you know the API's and the platforms that will be in demand 2 years from now? What you end up with is an application that is always a year or two out of date.
Sometimes the problem at hand is one that cannot be resolved with the tools as published. The tools can get you very close to the solution, but then you want to abandon the tool and work with the generated code to finish up. Yes, this means that you can no longer leverage the tool for maintenance. This is why it is critical that the tool generate maintainable code. Too often I have been burned by using an application framework with no source code available to me. Then some great new technology comes out, and there is demand for my application to leverage the technology. The tool was written before the technology was known about, so it did not consider this. Now I'm stuck. How do I get my generated application designed for the blackberry to leverage the Android or iPhone? How do I leverage some of the features coming in HTML 5 when my generator didn't have this in mind. My solution is to pick an open framework, where I can see the source and stray from the tools if I want or need to. When the tools catch up, I can then go back into the fold and pick up the productivity gains. I'm happy and my user base is happy. |
|
Posted:
March 29, 2010 at 02:57 PM
By:
Gord Gray
|
|
| Categories:
Programming
Technology
|
| The art of Programming |
|
I am an engineer. I have about 35 years of experience programming. I have read thousands of programs, designed, written or maintained hundreds. In all that time, with all that experience, I have come to the conclusion that good software is not a science. It is an art.
You certainly do need a good foundation in math, and you need to be able think in a structured manner. You also need to know the strengths and weaknesses of the languages you are using and the paradigms you will be leveraging (Objects, structures, layers, hierarchy, relational or any other abstraction of reality you will be bringing to bear on your problem). You also need to ability to think in the abstract, and often multiple layers of abstraction. but more than that, you need to be able see the beauty and the balance of the code you have created.
Well written code is a joy to maintain. You can navigate it easily, find your way to bits that need attention, and then do what needs to be done. A consistent programming standard and a naming convention that makes sense makes but easier to find and fix, and new features easier to seamlessly integrate. Just standing back and looking at the code, the shape of the indentations, can often point to potential problem areas where the code is not balanced and the shape isn't quite right. A consistent method allows you to zoom straight into the meat and bypass all the fluff.
It is easy to find programmers who have all the right technical skills. They can show countless examples of software they have written and that is in production somewhere or other. But if you scratch past the surface, you will find that the software has bugs (all software has bugs), and that the systems they have written are scheduled to be replaced within a few years of being introduced. Or that the cost of maintaining these systems rises exponentially with age, as various fixes and patches clutter the code into an unrecognizable mess of spaghetti. With a bit of searching, you can find people who have a love of the art of programming, but their productivity is so low that you can go bankrupt before the benefits of their art can be realized. To be sure, you do need to spend a significant amount of effort designing before programming, and then program with a great deal attention paid to the details, but there is a balance. Part of the art is being able to arrive at a workable solution in a timely manner. Perhaps not the perfect, or ultimate solution, but a solution that will resolve the issue at hand, and still be a work of art.
The truely hard part is finding the programmer that has that dream-like combination of passion for the art, the technical skills and the ability to follow a solution to completion in a timely manner. Is it just me, or does anyone else have the same problem with finding good talent? |
|
Posted:
March 24, 2010 at 09:21 AM
By:
Gord Gray
|
|
|
|