Why we don't do Java/.Net
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, but no web apps.
We are developers, we are not web masters. Those are two different jobs, nice jobs, but different.
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 have 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.
More technically, a native app is 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 as 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 a heavy slow envelope instead of having something optimized down to the processor that is light and swift?
It's like buying a Volvo truck just because you need the cigarette lighter in its dashboard. Why no just buy a cigarette lighter alone?
Java and .Net are resource hogs and are not designed for efficiency.
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.