QCObjects

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
QCObjects
Designed byJean Machuca
DeveloperQuickCorp, Jean Machuca
Stable release
2.1.230 / December 23, 2019; 30 days ago (2019-12-23)
Implementation languageJavaScript
LicenseLGPL-v3
Filename extensions
  • .js
  • .tpl.html[1]
Websitehttps://qcobjects.dev
Influenced by
Adobe Flex SDK, C++, Java Spring, Django, Flash

QCObjects, often abbreviated as QCO, is high-level, just-in-time compiled, n-tier architecture based framework that is based in JavaScript. QCObjects is an Open-source framework that empowers full-stack developers to make microservices and microfrontends together into an N-Tier layered architecture. It is cross-platform, cross-frame, cross-browser and it is meant for building large scale applications using concepts. Progressive Web Apps and Accelerated Mobile Pages are also into the built-in features of its CLI Tool. QCObjects has a HTTP2 Built-In Server to simplify the back-end development under the same scope.

History[edit]

Beginnings at QuickCorp[edit]

Before 2015 QuickCorp has been doing custom software development projects for its customers. Most of them were on the web and mobile scope. But something was needed to unify the core of the software as a service into a centralised cloud platform to organise better the internal tools of the company. Also the customers of QuickCorp had been developing a variety of projects since Games and Human Interactive Tools to ERP and Business Intelligence and Metrics Software, so Jean Machuca was working in person to make "the next thing" to unify the basic concepts of software development into an only one programming framework.

In 2015, Jean Machuca published the source code of the first version of QCObjects in a GitHub repository.

In 2018, QCObjects was introduced to some local companies of Chile asking for technical opinion and features suggestions.

In 2019, Jean Machuca was introducing QCObjects to the world-wide market in the RISEConf Hong Kong 2019, to an audience of almost 20.000 developers from different tech companies around the world.

In the same year, the extensions for QCObjects into the Atom and VSCODE Editors were released.


QCObjects HTTP2 Built-In Server[edit]

In May 22 of 2019, the first code of an experimental web server based in Node.JS was released by QuickCorp to the CLI Tool of QCObjects. It was small script with a few lines of code to implement a new feature of Node.JS in its 10th version, to handle the HTTP2 requests. Because of the increasing amount of developers interested in using the framework for production mode, Jean Machuca was working on some new features to make the new Built-In server a more professional tool. In the latest version of QCObjects, the HTTP2 Built-In server has a dynamic settings feature that allows to set environment values in runtime, a openssl self signed certificate generator and a backend routes handler.


Adoption by the Cloud Marketplaces[edit]

In Aug 30 of 2019, the first version of the QCObjects Hosting on DigitalOcean was released. Jean Machuca announced

After that, in Oct 16, a release of a Marketplace AMI and PIB products of the Amazon Web Services was published.

Features[edit]

QCObjects has the following features.

Built-In Class based UI Effects[edit]

The QCObjects SDK has a set of built-in effects to fade, rotate, move and resize objects.

Route directed back-end packages (Micro-services)[edit]

In the back-end side it is possible to define packages (a feature that isn't currently native in JavaScript), and call it from a route redirection setting.

Front-End and Back-End into the same project scope.[edit]

You can use the same single project to make a front-end SPA (Single Page Application) and a Backend set of micro-services.

Syntax[edit]

Simple examples[edit]

The following example shows a custom defined class MyClassName extending a InheritClass brought from QCObjects.

 1 Class('MyClassName',InheritClass,{
 2   propertyName1:0, // just to declare purpose
 3   propertyName2:'some value',
 4   classMethod1: function (){
 5     // some code here
 6     // note you can use "this" object
 7     return this.propertyName1;
 8   },
 9   classMethod2: function () {
10     // some code here
11     return this.propertyName2;
12   }
13 });
14 
15 var newObject = New(MyClassName,{
16     propertyName1:1, // this initializes the value in 1
17     propertyName2:"some value"
18 });
19 console.log(newObject.classMethod1()); // this will show number 1
20 console.log(newObject.classMethod2()); // this will show "some value"

Related languages and technologies[edit]

  • JSON, or JavaScript Object Notation, is a general-purpose data interchange format that is defined as a subset of JavaScript's object literal syntax.
  • jQuery is a JavaScript library designed to simplify DOM-oriented client-side HTML scripting along with offering cross-browser compatibility because various browsers respond differently to certain vanilla JavaScript code.
  • Underscore.js is a utility JavaScript library for data manipulation that is used in both client-side and server-side network applications.
  • Angular and AngularJS are web application frameworks to use for developing single-page applications and also cross-platform mobile apps.
  • React is an open source JavaScript library providing views that are rendered using components specified as custom HTML tags.
  • Vue.js is an open source JavaScript framework that features an incrementally adoptable architecture focusing on declarative rendering and component composition.
  • Mozilla browsers currently support LiveConnect, a feature that allows JavaScript and Java to intercommunicate on the Web. However, Mozilla-specific support for LiveConnect was scheduled to be phased out in the future in favor of passing on the LiveConnect handling via NPAPI to the Java 1.6+ plug-in (not yet supported on the Mac as of March 2010).[2] Most browser inspection tools, such as Firebug in Firefox, include JavaScript interpreters that can act on the visible page's DOM.
  • asm.js is a subset of JavaScript that can be run in any JavaScript engine or run faster in an ahead-of-time (AOT) compiling engine.[3]
  • JSFuck is an esoteric programming language. Programs are written using only six different characters, but are still valid JavaScript code.
  • p5.js[4] is an object oriented JavaScript library designed for artists and designers. It is based on the ideas of the Processing project but is for the web.
  • jsben.ch[5] is an online JavaScript benchmarking tool, where different code snippets can be tested against each other.

See also[edit]

References[edit]

  1. ^ "nodejs/node-eps". GitHub.
  2. ^ Release Notes for the Next-Generation Java™ Plug-In Technology (introduced in Java SE 6 update 10). Java.sun.com. Retrieved on 2013-06-13.
  3. ^ "frequently asked questions". asm.js. Retrieved 2014-04-13.
  4. ^ "Home". p5.js. 2017-01-21. Retrieved 2017-02-24.
  5. ^ JSBEN.CH. "JSBEN.CH Performance Benchmarking Playground for JavaScript". jsben.ch.

Further reading[edit]

External links[edit]