Project Peach
Upcycle your Existing Code?
##STATICWHYTEXT##
Upcycle your Existing Code?
15/12/2016
Upcycle your Existing Code?
So you're starting your next generation IT project. It needs a browser UX, but you've a legacy windows application that's installed on user's desktops. Are you going to throw away all that tried and tested code? What about upcycling?
Throwing Away that Tried & Tested Source Code?
There's literally billions of lines of tried & tested c/c++ native code out there. Both in LINUX and Microsoft Windows applications. You know that you want a modern browser user experience BUT without a complete rewrite into the web world, usually HTML/CSS/JavaScript. But how do you do it? Lot's have simply retired off their native code and opted for a next generation rewrite. It's simply not that easy to port your c++ code to work in a browser, it can be done but tends to be very browser specific, for example "NaCl - Google Chrome's Native Client". Imagine the investment in terms of power, human energy, time and of course money that's going to be written off. This legacy code perhaps falls into two camps, installable desktop apps for specific operating systems OR tiered business layer services designed to run on a server. We can upcycle both types of code base logic into our cloud hosted live webapps. Imagine the savings to be made.
What is This C++ Thing? What's it Mean?
Ok, you're not a programmer. Let's try to explain before we go any furthur down the road as simply as we can. It's simply a popular programming language used to write software. You'd be surprised to know that you use it every day. Your iPhone iOS is based around it. Your iPhone apps are coded in a version of it. Your word processor is probably written using it. Historically, professional programmers writing commercial products, used it to write the fastest & most effiecient code possible. Remember that Microsoft Windows and LINUX, both operating systems are written in this language. So you've never heard of it but it's extremely popular. So the programmer writes the c++ code, then there's a process to turn it into instructions that the CPU directly understands which in turn produces a program that does something, hopefully useful. It's called 'Native Code' since the CPU uses it as is. It's the quickest and most efficient way. Write c++ code, build & run.
Why Concentrate on C/C++?
There's other even higher level languages, why bother with c++? Primarily for energy savings, speed and portability. Let's deal with these things one at a time. The other higher level languages tend to be managed in some way via interpreters. The code is created on-the-fly as the program runs, easier on the programmer but slower on the computer. As you can imagine the cost for this is energy primarily build once, execute many Vs build many, execute many. We can glean other energy savings by being closer down to the machine in the way we physically write the code itself (this is beyond the scope of this overview article). We also gain massive performance from the direct machine code and direct access to the underlying memory. The other big, big attribute is portability. We wanted our webapps to run on ALL OS (operating systems) in the cloud, primarily LINUX and Microsoft Windows, however we can PORT (that means translate) it over to any OS with a c++ compiler (builder). That's literally anything past or anything to come in the future. If there's no c++ compiler then we will write one to do the job, remember it's only a program. So, energy, speed, efficiency and portability matter to us.
Your Live WebApp is 'Native Code' C++ too
You now know why we choose c++. Our entire architecture, the core framework that your live webapp stands on is written exclusively in C++. Remember that we are taking about the actual 'webapp' that lives in the cloud and not the browser UX (User Experience). So how do we reuse your existing code? Simple. We speak the same language so we can talk natively, either with editing and rebuilding your existing code base on top of our framework OR calling your built code via your existing API (Application Programming Interface - a way for programs to talk to each other). It simply depends on your existing coding design and perhaps how well it's been designed and written. Rest assured we can recycle it in a way that's best suited to your project.
What about the UX (User Experience)
The whole point of upcycling your existing project code base is to revamp your user interface into a modern visual style. We can't use your existing UX components, like windows, forms or controls since they will be OS dependent. In our live webapp toolkit we have our own, OS independent versions, of common UI elements like combo boxes, list controls, text controls, image pickers, etc as well as windows and forms. These are web based and live in a modern browser using HTML/CSS/JavaScript technology stack. We replace your UX by simply creating new versions of your forms that run in a browser. Since a browser can run across most devices, like mobiles, tablets and desktop and most operating systems like LINUX, Windows, iOS, andriod and mac then we are platform independent at the client side. Just one solution for all requirements. Your existing c++ code has a shiny new life in the cloud with a beautiful browser user experience.
How Does All this Fit Together and Work?
So you've got a browser UX. You've a cloud hosted webapp. How do they communicate? We've built a concept called smart connections. It's a two way communication stream between the code in the cloud and the data displayed in the browser. User actions in the browser run tasks in the webapp in the cloud and data is returned. It's actually much bigger than this. Running code in the code can PUSH data updates to the browser UX to create the vision of live or realtime changes without the need for refresh or fake long polling (constantly asking the server if anything has changed). Just one running cloud hosted webapp talking to ALL connected browsers. So your upcycled c++ code has a new modern skin and has also become your mobile and tablet solution in the process. Your Microsoft Windows installable app has now been ported to LINUX. It's simply better isn't it?
No Installation or Updates required
Your old 'native code' application came with all the historic installation, updating and distribution headaches associated with this model. It still exists in so called modern devices like the iPhone, android phone with their constant updating and app store distribution. Your new webapp has zero user installation, it's hosted in the cloud and only WE update in only one place. Your users simply click a link to access your webapp. All UX updates and cloud webapp updates are controlled by our architecture and are not visible to the end user. We've a whole set of realtime tools to help us control your webapp in the cloud. Imagine the savings here in time, energy and human resource. How easy is this model for lightning fast bug fixing? It's an all around better way of doing things.
What About Other Languages?
So, we've talked up c++. What if you have existing code written in other langauges like JAVA, .Net/c# or another? We can write you a bridge from our world to yours. Talk to us about what you have and we can best advise you on reuse of your code. We want your source code reused.
##BLOGWRITTENBY##
John Ince
Comments