A lot of people ask us why we don't deploy web "apps".
First, let's make it clear, to us, there is no such thing as a web "app". There are web interfaces, web pages, web services, web portals but no web apps.
We are developers, we are not web masters. Those are two different jobs, difficult jobs, but different.
Just as a cardiologist is not an ophthalmologist. They're both physicians, but in different fields.
Developpers and webmasters are both computer guys, but in different fields.
To us, an app offers the following characteristics:
- It's a standalone application that runs on your computer or device, requiring nothing more that data files or a database, should they be a mix of local and/or remote resources.
- You can use it offline with local resources, you don't rely on internet connections.
- You own your application, it's on your hard disk.
- We charge you once for every major upgrade, say, from version 5.x to 6.x when the product evolves in a big step. Besides this, all updates are free.
We don't charge you every month or every year.
We don't charge you on how much you use the application.
We don't lease the software or its resources. Again, you own it.
- You own your data, they're on your disk, in a file, or in a local (embedded) database. You can decide to store them into a remote database, but it's your choice, not ours.
- We don't use your data, we don't analyze them, we don't access them, we don't resell them.
- You decide whether you want to upgrade your application to the latest version, this is not imposed on you remotely when you wake up one morning with a different environment.
- Should you update the application and you're not pleased with the latest version, you can revert back to what you are used to. You like version 3.4 but hate version 4.0? You can go back to 3.4, you have the choice.
- You live in a remote place with poor internet connections? You can install/distribute your app from a file, you don't need to download it several times from the Internet.
- An app is optimized, it is fast. It is not something deported to another server where resources are shared with others.
- When the different screens are shown, they display everything immediately and they won't change while you process your work, it's not like the web where screens render bits by bits, depending on some loading elements here and there. When you click on a field, it won't suddenly jump to another position because some other missing screen elements or formatting styles eventually loaded in the meantime. Our menus are always available and won't cover important screen elements when hovering the mouse on them. They drop down or pop up only when YOU decide to display them.
- On a trip abroad? Our applications won't change their language when you drive through Germany, and again when you fly to Italy or Taiwan. You keep your environment no matter where you are. You can switch the user interface language at will, but again, it's your choice, it's not imposed on you.
- Need to connect a device to operate with your application, it's directly possible, not with the web without tinkering poor substitutes. You won't have an acquisition or processing board over the Internet that is efficient.
More technically, a native app is optimized and compiled down to the processor.
It's not recompiled at launch time into another code that has not been optimized the way we want, like Java and .Net do. You run the code we, developers, have optimized, not a final code over which we have no control on, produced by a third party actor. We want to have our hands on our code.
All this benefits you directly.
Don't mistake us, Java, PHP, .Net are fine but they should be used for what they have been designed to, not for everything. Java evangelists will tell you that you can have standalone Java apps embedded in RCP Eclipse behaving as a real desktop application, which is "even better since Java is universal, it works on any platform".
That's misleading. First, RCP Eclipse embedded apps are not efficient, they're memory and CPU hogs. Why would you wrap an app into an heavy slow envelope instead of having the real thing optimized down to the processor that is lean and swift?
It's like buying a Volvo truck just because you need the dashboard clock. Why no just buy a wristwatch instead, that fits the need?
Java and .Net are resource hogs and are not designed for efficiency.
So-called web apps, cover the basics: presenting information, filling forms. When they try to be as good as the desktop clients, it's tinkering. Why not go to the real thing instead of a subset of it. No Office365 via the web is not as powerful as a desktop app. It's a subset. It may cover most of the basic needs for most of the people, but again, it's a complement, not an application.
That's why, we, at TiltSoft, are dedicated to what we call quality software.
Did you get that? Quality and Software.
No sluggish performances. No web interfaces. Just software.