SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
Hidden Gems of Web / Mobile Development from
Open-Source
techzulla.com/blog/hidden-gems-of-web-mobile-development-from-open-source/
Gaurav Dhiman
Hidden Gems of Web / Mobile Development from Open-Source 4.79/5 (95.83%) 24 votes
Internet is maturing fast, it’s becoming ubiquitous as now we can access internet anywhere anytime
through WiFi networks, telecom data networks. With this accessibility benefit most of the applications
are coming online and browser is their new home. If we go 15 years back, desktops were prominent,
web was just a small kid then, but it grew fast with guiding care takers like Google, Firefox and many
other such open-source supporters.
As internet evolved, web technologies like
JavaScript, HTML and CSS became super
powerful. In 2000 nobody would have thought that
JavaScript will become the key driver for internet.
At that time HTML was just some tag based no-
value scripting language which never got enough
attention from serious programmers. With 2006
coming in, iPhone was launched and our world got
introduced to mobile computing. There after things
changed fast, Google was everywhere, Facebook
was growing, Twitter was there, LinkedIn was new
buddy on block and all these web assets were
gathering, analyzing and making sense of data
from whole world. All these were having a unique
need of storing, analyzing and presenting the
global data anytime, anywhere (desktop, mobile,
tablets, smart TVs etc.), hence cloud computing
and scalable NoSQL Databases were born as a
backend infrastructure for scalable, highly-
available web / mobile properties. With so many
hot technologies boiling in a plate, few became so
big that they over powered others. Javascript was
already a king of browser world but soon it jumped
over to server world in the form of NodeJS making
PHP, Java look somewhat old. On client side too,
lot many frameworks (AngularJS, EmberJS,
BackboneJS, KnockoutJS, D3, HighCarts etc.)
were developed on Javascript which made it even
stronger as a strongest contender in web / mobile
space. HTML5 blew up the world with its video /
audio streaming, local storage, two-way socket
communication, canvas drawing and geo-location
capabilities. CSS3 brought media queries to make
the frontend developer’s life bit easy allowing them
to fit the same user interface responsively in different devices screens.
With this background and context, today I am going to share with you my learning of some of the
hidden gems of web / mobile development space. Do note, I am saying these are hidden as they are
not that well known as of now but they are still gems as they have high potential to be prominent if
marketed well to developers.
The Big Open Daddy – Wakanda
Wakanda is a complete suite to build end to end enterprise web and mobile applications. It includes
everything one needs to build a browser based app, including visual studio to design UI using drag-
drop components, Java based server (middleware) where business logic resides and the NoSQL
object database (to store huge enterprise data). Best part is that all these parts are well and tightly
stitched to make the whole programming experience fun and quick. The client side (web / mobile) can
be designed using Wakanda Studio, whereas the database design is done in its model designer which
again is a part of studio itself. You even design the database model in drag-drop manner making things
fast and intuitive. The client and server are automatically stitched by Wakanda and all communication
between client and server happens using standard REST / HTTP protocol. I covered wakanda in detail
in one of my last blog posts. You can check the post here along with the screencast. If you are trying
building enterprise app, consider using Wakanda, its open-source. Although it’s good to build
enterprise apps but frankly speaking it might not be suitable for cloud based scalable apps like Twitter
or Instagram etc.
Smart Chap – ArangoDB
ArangoDB is a NoSQL database that was originally built as an enterprise data store. Recently
somehow they realized that the developers community is not just happy with enterprise kind of apps.
Developers are thinking of global cloud based apps now. They want to build another Twitter, Facebook
or Google. For sure, Arango was not originally designed for such kind of apps that need a distributed
cluster based data store. Well Arango recently added sharding to its roadmap. Now they are on the
way to add seamless scaling-out feature where database can work over multiple commodity servers
working together as cluster. Arango will internally manage the optimum storage and retrieval of data on
that cluster of N nodes. This sharding feature is something which made me again interesting in Arango
(earlier I evaluate and left it as it was not capable to scale-out). Arango is a good piece of open-source
software as its multi-modal. Yes, it can act as document store, graph store or key-value store. Beauty
of Arango lies in its graph capabilities, so if you plan to develop graph based apps like social networks
(where one person/entity can be connected to N entities and those can further be related to other M
entities with cyclic relations in-between), you can try ArangoDB. Even in case of graphs, it performs
well, so traversing over graph (which actually a big problem in RDBMS world) is not big problem in
case of ArangoDB, same stands for OrientDB which is covered next. Another good feature is its FOXX
interface which acts as a middleware layer close to DB. It allows you to write your own Javascript
functions to write your app’s business logic and make calls to DB using javascript, so if you are building
a small or mid-level app, you can consider writing your app’s business logic in FOXX / Arango itself
rather than having NodeJS / Apache layer in between.
Big-O of NoSQL – OrientDB
OrientDB is another hidden gem from open-source NoSQL world. It’s very similar to ArangoDB in its
capabilities as they both bring the positives of RDBMS and NoSQL worlds together. Few differences
between them could be query language to perform CRUD operations (Arango uses AQL – similar to
SQL & OrientDB have a SQL interface), clustering / sharding (OrientDb was designed keeping
clustering in mind whereas Arango is now introducing it on developer’s demand). OrientDB has a nice
inbuilt user access control in DB. It has default users and roles which can be extended and customized
to meet the access control needs of ant application. Something which I liked about OrientDB is that it
also manages the access control at document level (row of table in RDBMS world) automatically if our
class is derived from some ORestricted abstract class. What actually it means is that although multiple
users can store documents (rows in RDBMS) in same class (table in RDBMS) but when they fetch the
documents they will only get the documents which they stored, not the documents of other users. You
can read here, how record level security works in OrientDB.
Although MongoDB, CouchDB, Neo4J are some of the popular NoSQL DBs, but if we get into details
and compare them I personally think OrientDB is much better. Against MongoDB which makes a good
case only for WORM (Write Once, Read Many) applications, OrientDB stand out. When we store
related data in MongoDB, either we embed the sub document in parent document (we make data de-
normalized, not good for updates or multiple writes) or we build relation between documents using
reference (which are resolved at run time and hits the read performance). On other hand OrientDB
handles it differently. As every record / document in OrientDB is an object (instance of a class) the
linking between objects / documents is not through references, its direct linking (saving pointer to
object. This this leads to quick retrieval of related data as compared to JOINS in RDBMS. So OrientDB
neither loose the benefits of normalization and nor it gets hit on read / query performance due to run
time cost of JOINS (there are no joins, it stored the direct pointers to other related documents). Other
than this difference another key difference is that MongoDB is not make for transactional applications
(it not ACID compliant), whereas OrientDB is made for transactional applications (its ACID compliant).
You can check the detailed post comparing MongoDB and OrientDB here.
Another good feature OrientDB comes with is Fetch Plan. Fetch Plan do the same thing which JOINS
do in RDBMS, it fetches the related documents / records while querying DB. It’s same as JOINS but
OrientDB makes it easy to use as compared to JOINS. We need not to write complex JOIN queries, we
just need to write simple Fetch Plan; for instance below query will fetch all (*:-1) the related records
from other classes (company, salary, projects etc.) up to infinite depth in one go.
“SELECT * FROM emp WHERE name=’Gaurav’ FETCHPLAN *:-1”
In above fetch plan * tells what related fields / attributes need to be fetched and -1 tells up to what
depth the search should go on. You can learn more about fetch plans here.
Sailing high in world of NodeJS – SailsJS
If you have ever worked in NodeJS or plan to, you must have not heard lot many great frameworks
except ExpressJS, which is one of the most popular in NodeJS world. SailsJS took ExpressJS to one
level further as it’s built upon ExpressJS. SailsJS brings MVC design methodology to NodeJS. You can
related and understand it very quickly if you have earlier worked in some MVC framework like
CodeIgniter or Zend etc. Clear distinction between Controller, Model and Views make much simple with
SailsJS, plus it does lot many default basic work which is expected in every web app, running web
server, taking request, parsing parameters, session management etc. if we do not use any framework
on NodeJS, doing these basic things itself take lot of time with NodeJS. Just visit SailsJS website to
know how easy it is to install and run any NodeJS app with it. You can get started in just 5 minutes.
Best part of SailsJS is its database adapters and websockets integration. SailsJS can talk to any
database with its waterline adapter layer. Waterline gives a standard interface to talk to any underlining
database, may it be MongoDB, MySQL, REST Webservices, Redis or any other database. To support
any database for SailsJS one need to write or use small adapter which knows how to talk to specific
database. For instance, I just wrote a Sailsjs adapter for OrientDB as I want to use both and there was
no exiting adapter for OrientDB in SailsJS. This shows the flexibility and the modular approach SailsJS
takes. Another great thing about SailsJS is its tight integration with SocketIO to build two way
communication
Here is nice introduction video about SailsJS from its founder:
Tiny atoms make the whole world – ATOMS
Till now I talked about DBs or backend infrastructure, but on web / mobile along with performance,
scalability everything needs to be beautiful else it will not get required attention. Till now making web /
mobile UIs was more of coding in HTML / CSS. People who know HTML / CSS can make beautiful
interfaces, but what about others, idea to build next big app can come to anyone, you, me or even a
school kid. To build that barrier of nice UI designing, few tools came up but either those where paid or
not that great. ATOMS is an attempt by France based startup to build a drag-drop web based IDE for
web / mobile UI development. It’s still in beta as of now at the time of writing this post and hopefully will
be released as open-source soon. Developer of ATOMS earlier made some nice CSS and Javascript
frameworks like LungoJS and QuoJS which I personally find these very useful for mobile interface
design as these frameworks are optimized performance on mobile.
ATOMS is still in beta. Below is its video. Although its not in English still it makes sense to look at how it
will work.
The shining star – Ionic Framework
There have been many effort to
build something great for hybrid
mobile app development; esp the
UI part. Many projects in open-
source space also started to
make robust, high performing,
responsive and clean mobile UI
framework. Sencha Touch,
JQuery Mobile, PhoneJS,
ChoclateChip UI, LungoJS,
KendoUI are some of the result of
that effort. Even Bootstrap re-
wrote its framework to make it
mobile first. One upcoming star in
this world of mobile UI
frameworks is Ionic Framework,
which actually has been designed
keeping mobile (low resource,
responsive, touch based) in mind
from the very beginning. It’s an
open-source project started by
Drift, company behind Cordiqa
project which was designed to
develop mobile app prototypes in
drag-drop manner. Although Ionic
is still in beta but its maturing fast
and it already have many live
apps to its credits. It’s a
promising framework to build
clean, mobile friendly user interfaces. Best part about Ionic is that it integrated with AngularJS and
PhoneGap which make whole mobile app development much easier. Angular brings the benefits of
two-way data binding (no more programmatic DOM manipulations, your view and model always remain
in sync) and PhoneGap bring the device capabilities (camera, geo-location, contact address book,
calling features etc) to your mobile app. Packaging your hybrid mobile app for different mobile
platforms is just few commands with Ionic. Drifty guys are soon coming with cloud based build service,
something similar to the one provided by Adobe for PhoneGap. They are also coming with drag-drop
mobile UI development IDE, somewhat similar to ATOMS discussed above. You can know more about
it here.
There might be lot many more hidden gems in heap of open-source, but these are few which I
personally explored during my evaluation to build FindSmartly.com and next version of TravelCRM. I
hope with this post you got to know some great framework that carry the potential to be super
frameworks of tomorrow. For any queries, doubts or consulting, feel free to contact me on my twitter
handle @gaurav_dhiman or drop me message on LinkedIn.

Weitere ähnliche Inhalte

Andere mochten auch

Wicket from Designer to Developer
Wicket from Designer to DeveloperWicket from Designer to Developer
Wicket from Designer to DeveloperMarcello Teodori
 
Apache Wicket: Web Applications With Just Java
Apache Wicket: Web Applications With Just JavaApache Wicket: Web Applications With Just Java
Apache Wicket: Web Applications With Just JavaMartijn Dashorst
 
Apache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeApache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeMartijn Dashorst
 
Reactive programming with Apache Wicket
Reactive programming with Apache WicketReactive programming with Apache Wicket
Reactive programming with Apache WicketRyuhei Ishibashi
 
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.ioLuigi Dell'Aquila
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App developmentLuca Garulli
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBLuca Garulli
 
Comparison of Java Web Application Frameworks
Comparison of Java Web Application FrameworksComparison of Java Web Application Frameworks
Comparison of Java Web Application FrameworksAngelin R
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesCurtis Mosters
 
Introduction to the graph technologies landscape
Introduction to the graph technologies landscapeIntroduction to the graph technologies landscape
Introduction to the graph technologies landscapeLinkurious
 
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and WicketComparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and WicketMatt Raible
 
Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Martijn Dashorst
 

Andere mochten auch (14)

Biodiversidade 2003
Biodiversidade 2003Biodiversidade 2003
Biodiversidade 2003
 
Wicket from Designer to Developer
Wicket from Designer to DeveloperWicket from Designer to Developer
Wicket from Designer to Developer
 
Apache Wicket: Web Applications With Just Java
Apache Wicket: Web Applications With Just JavaApache Wicket: Web Applications With Just Java
Apache Wicket: Web Applications With Just Java
 
Wicket 2010
Wicket 2010Wicket 2010
Wicket 2010
 
Apache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a treeApache Wicket and Java EE sitting in a tree
Apache Wicket and Java EE sitting in a tree
 
Reactive programming with Apache Wicket
Reactive programming with Apache WicketReactive programming with Apache Wicket
Reactive programming with Apache Wicket
 
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDB
 
Comparison of Java Web Application Frameworks
Comparison of Java Web Application FrameworksComparison of Java Web Application Frameworks
Comparison of Java Web Application Frameworks
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databases
 
Introduction to the graph technologies landscape
Introduction to the graph technologies landscapeIntroduction to the graph technologies landscape
Introduction to the graph technologies landscape
 
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and WicketComparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Comparing JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
 
Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Hidden gems of web and mobile development from open source

  • 1. Hidden Gems of Web / Mobile Development from Open-Source techzulla.com/blog/hidden-gems-of-web-mobile-development-from-open-source/ Gaurav Dhiman Hidden Gems of Web / Mobile Development from Open-Source 4.79/5 (95.83%) 24 votes Internet is maturing fast, it’s becoming ubiquitous as now we can access internet anywhere anytime through WiFi networks, telecom data networks. With this accessibility benefit most of the applications are coming online and browser is their new home. If we go 15 years back, desktops were prominent, web was just a small kid then, but it grew fast with guiding care takers like Google, Firefox and many other such open-source supporters. As internet evolved, web technologies like JavaScript, HTML and CSS became super powerful. In 2000 nobody would have thought that JavaScript will become the key driver for internet. At that time HTML was just some tag based no- value scripting language which never got enough attention from serious programmers. With 2006 coming in, iPhone was launched and our world got introduced to mobile computing. There after things changed fast, Google was everywhere, Facebook was growing, Twitter was there, LinkedIn was new buddy on block and all these web assets were gathering, analyzing and making sense of data from whole world. All these were having a unique need of storing, analyzing and presenting the global data anytime, anywhere (desktop, mobile, tablets, smart TVs etc.), hence cloud computing and scalable NoSQL Databases were born as a backend infrastructure for scalable, highly- available web / mobile properties. With so many hot technologies boiling in a plate, few became so big that they over powered others. Javascript was already a king of browser world but soon it jumped over to server world in the form of NodeJS making PHP, Java look somewhat old. On client side too, lot many frameworks (AngularJS, EmberJS, BackboneJS, KnockoutJS, D3, HighCarts etc.) were developed on Javascript which made it even stronger as a strongest contender in web / mobile space. HTML5 blew up the world with its video / audio streaming, local storage, two-way socket communication, canvas drawing and geo-location capabilities. CSS3 brought media queries to make the frontend developer’s life bit easy allowing them to fit the same user interface responsively in different devices screens. With this background and context, today I am going to share with you my learning of some of the
  • 2. hidden gems of web / mobile development space. Do note, I am saying these are hidden as they are not that well known as of now but they are still gems as they have high potential to be prominent if marketed well to developers. The Big Open Daddy – Wakanda Wakanda is a complete suite to build end to end enterprise web and mobile applications. It includes everything one needs to build a browser based app, including visual studio to design UI using drag- drop components, Java based server (middleware) where business logic resides and the NoSQL object database (to store huge enterprise data). Best part is that all these parts are well and tightly stitched to make the whole programming experience fun and quick. The client side (web / mobile) can be designed using Wakanda Studio, whereas the database design is done in its model designer which again is a part of studio itself. You even design the database model in drag-drop manner making things fast and intuitive. The client and server are automatically stitched by Wakanda and all communication between client and server happens using standard REST / HTTP protocol. I covered wakanda in detail in one of my last blog posts. You can check the post here along with the screencast. If you are trying building enterprise app, consider using Wakanda, its open-source. Although it’s good to build enterprise apps but frankly speaking it might not be suitable for cloud based scalable apps like Twitter or Instagram etc. Smart Chap – ArangoDB ArangoDB is a NoSQL database that was originally built as an enterprise data store. Recently somehow they realized that the developers community is not just happy with enterprise kind of apps. Developers are thinking of global cloud based apps now. They want to build another Twitter, Facebook or Google. For sure, Arango was not originally designed for such kind of apps that need a distributed cluster based data store. Well Arango recently added sharding to its roadmap. Now they are on the way to add seamless scaling-out feature where database can work over multiple commodity servers working together as cluster. Arango will internally manage the optimum storage and retrieval of data on that cluster of N nodes. This sharding feature is something which made me again interesting in Arango (earlier I evaluate and left it as it was not capable to scale-out). Arango is a good piece of open-source software as its multi-modal. Yes, it can act as document store, graph store or key-value store. Beauty of Arango lies in its graph capabilities, so if you plan to develop graph based apps like social networks (where one person/entity can be connected to N entities and those can further be related to other M entities with cyclic relations in-between), you can try ArangoDB. Even in case of graphs, it performs well, so traversing over graph (which actually a big problem in RDBMS world) is not big problem in case of ArangoDB, same stands for OrientDB which is covered next. Another good feature is its FOXX interface which acts as a middleware layer close to DB. It allows you to write your own Javascript functions to write your app’s business logic and make calls to DB using javascript, so if you are building a small or mid-level app, you can consider writing your app’s business logic in FOXX / Arango itself rather than having NodeJS / Apache layer in between. Big-O of NoSQL – OrientDB
  • 3. OrientDB is another hidden gem from open-source NoSQL world. It’s very similar to ArangoDB in its capabilities as they both bring the positives of RDBMS and NoSQL worlds together. Few differences between them could be query language to perform CRUD operations (Arango uses AQL – similar to SQL & OrientDB have a SQL interface), clustering / sharding (OrientDb was designed keeping clustering in mind whereas Arango is now introducing it on developer’s demand). OrientDB has a nice inbuilt user access control in DB. It has default users and roles which can be extended and customized to meet the access control needs of ant application. Something which I liked about OrientDB is that it also manages the access control at document level (row of table in RDBMS world) automatically if our class is derived from some ORestricted abstract class. What actually it means is that although multiple users can store documents (rows in RDBMS) in same class (table in RDBMS) but when they fetch the documents they will only get the documents which they stored, not the documents of other users. You can read here, how record level security works in OrientDB. Although MongoDB, CouchDB, Neo4J are some of the popular NoSQL DBs, but if we get into details and compare them I personally think OrientDB is much better. Against MongoDB which makes a good case only for WORM (Write Once, Read Many) applications, OrientDB stand out. When we store related data in MongoDB, either we embed the sub document in parent document (we make data de- normalized, not good for updates or multiple writes) or we build relation between documents using reference (which are resolved at run time and hits the read performance). On other hand OrientDB handles it differently. As every record / document in OrientDB is an object (instance of a class) the linking between objects / documents is not through references, its direct linking (saving pointer to object. This this leads to quick retrieval of related data as compared to JOINS in RDBMS. So OrientDB neither loose the benefits of normalization and nor it gets hit on read / query performance due to run time cost of JOINS (there are no joins, it stored the direct pointers to other related documents). Other than this difference another key difference is that MongoDB is not make for transactional applications (it not ACID compliant), whereas OrientDB is made for transactional applications (its ACID compliant). You can check the detailed post comparing MongoDB and OrientDB here. Another good feature OrientDB comes with is Fetch Plan. Fetch Plan do the same thing which JOINS do in RDBMS, it fetches the related documents / records while querying DB. It’s same as JOINS but OrientDB makes it easy to use as compared to JOINS. We need not to write complex JOIN queries, we just need to write simple Fetch Plan; for instance below query will fetch all (*:-1) the related records from other classes (company, salary, projects etc.) up to infinite depth in one go. “SELECT * FROM emp WHERE name=’Gaurav’ FETCHPLAN *:-1” In above fetch plan * tells what related fields / attributes need to be fetched and -1 tells up to what depth the search should go on. You can learn more about fetch plans here. Sailing high in world of NodeJS – SailsJS
  • 4. If you have ever worked in NodeJS or plan to, you must have not heard lot many great frameworks except ExpressJS, which is one of the most popular in NodeJS world. SailsJS took ExpressJS to one level further as it’s built upon ExpressJS. SailsJS brings MVC design methodology to NodeJS. You can related and understand it very quickly if you have earlier worked in some MVC framework like CodeIgniter or Zend etc. Clear distinction between Controller, Model and Views make much simple with SailsJS, plus it does lot many default basic work which is expected in every web app, running web server, taking request, parsing parameters, session management etc. if we do not use any framework on NodeJS, doing these basic things itself take lot of time with NodeJS. Just visit SailsJS website to know how easy it is to install and run any NodeJS app with it. You can get started in just 5 minutes. Best part of SailsJS is its database adapters and websockets integration. SailsJS can talk to any database with its waterline adapter layer. Waterline gives a standard interface to talk to any underlining database, may it be MongoDB, MySQL, REST Webservices, Redis or any other database. To support any database for SailsJS one need to write or use small adapter which knows how to talk to specific database. For instance, I just wrote a Sailsjs adapter for OrientDB as I want to use both and there was no exiting adapter for OrientDB in SailsJS. This shows the flexibility and the modular approach SailsJS takes. Another great thing about SailsJS is its tight integration with SocketIO to build two way communication Here is nice introduction video about SailsJS from its founder: Tiny atoms make the whole world – ATOMS Till now I talked about DBs or backend infrastructure, but on web / mobile along with performance, scalability everything needs to be beautiful else it will not get required attention. Till now making web / mobile UIs was more of coding in HTML / CSS. People who know HTML / CSS can make beautiful interfaces, but what about others, idea to build next big app can come to anyone, you, me or even a school kid. To build that barrier of nice UI designing, few tools came up but either those where paid or not that great. ATOMS is an attempt by France based startup to build a drag-drop web based IDE for web / mobile UI development. It’s still in beta as of now at the time of writing this post and hopefully will be released as open-source soon. Developer of ATOMS earlier made some nice CSS and Javascript frameworks like LungoJS and QuoJS which I personally find these very useful for mobile interface design as these frameworks are optimized performance on mobile. ATOMS is still in beta. Below is its video. Although its not in English still it makes sense to look at how it will work. The shining star – Ionic Framework
  • 5. There have been many effort to build something great for hybrid mobile app development; esp the UI part. Many projects in open- source space also started to make robust, high performing, responsive and clean mobile UI framework. Sencha Touch, JQuery Mobile, PhoneJS, ChoclateChip UI, LungoJS, KendoUI are some of the result of that effort. Even Bootstrap re- wrote its framework to make it mobile first. One upcoming star in this world of mobile UI frameworks is Ionic Framework, which actually has been designed keeping mobile (low resource, responsive, touch based) in mind from the very beginning. It’s an open-source project started by Drift, company behind Cordiqa project which was designed to develop mobile app prototypes in drag-drop manner. Although Ionic is still in beta but its maturing fast and it already have many live apps to its credits. It’s a promising framework to build clean, mobile friendly user interfaces. Best part about Ionic is that it integrated with AngularJS and PhoneGap which make whole mobile app development much easier. Angular brings the benefits of two-way data binding (no more programmatic DOM manipulations, your view and model always remain in sync) and PhoneGap bring the device capabilities (camera, geo-location, contact address book, calling features etc) to your mobile app. Packaging your hybrid mobile app for different mobile platforms is just few commands with Ionic. Drifty guys are soon coming with cloud based build service, something similar to the one provided by Adobe for PhoneGap. They are also coming with drag-drop mobile UI development IDE, somewhat similar to ATOMS discussed above. You can know more about it here. There might be lot many more hidden gems in heap of open-source, but these are few which I personally explored during my evaluation to build FindSmartly.com and next version of TravelCRM. I hope with this post you got to know some great framework that carry the potential to be super frameworks of tomorrow. For any queries, doubts or consulting, feel free to contact me on my twitter handle @gaurav_dhiman or drop me message on LinkedIn.