

Dejavu - A set of Object Oriented Programming tools for JavaScript - satazor
http://indigounited.com/dejavu

======
satazor
dejavu is a set of Object Oriented Programming tools that aims to deliver
classical inheritance on top of JavaScript prototypal inheritance, easing the
process of moving from other traditional OOP languages, like PHP, Java, AS3,
and others into JavaScript. Its main features include:

\- High performance; \- Classes (concrete, abstract and final); \- Interfaces;
\- Mixins; \- Private and protected members; \- Static members; \- Constants;
\- Method signature checks; \- Capability to extend or borrow from vanilla
classes; \- Custom instanceOf with support for interfaces;

Of course this is a matter of flavour, and some developers would rather work
with vanilla JS. Still there are a lot of developers that find comfort in
working with a more structured codebase, specially in projects involving
bigger teams, which enforce traditional OOP guidelines. There were already
some libraries out there that could achieve many of the features we expected,
but none offered the performance we required, which is why we opted for
building this library. With its optimiser, you get better performance than
handwritten JavaScript specially in node.js, Chrome and Safari.

------
jbellis
Dejavu is also the name of an interesting ORM for Python -- basically gives
you linq-like queries in Python, compiled down to SQL through AST inspection.

[http://blip.tv/pycon-us-videos-2009-2010-2011/dejavu-
languag...](http://blip.tv/pycon-us-videos-2009-2010-2011/dejavu-language-
integrated-query-for-data-1958907)

~~~
satazor
I choose dejavu as the name for the library because of the familiarity you
feel when using it, specially when you programmed in languages like PHP. The
same analogy with the library you mentioned also applies but for different
things.

------
filipediasf
Check out @ [http://www.functionn.in/2013/01/dejavu-high-performance-
oop-...](http://www.functionn.in/2013/01/dejavu-high-performance-oop-library-
for.html)

------
dragonwriter
I really wish people that want to add class-based, C++/Java-style constructs
to JavaScript would stop calling it "OOP" or "traditional OOP".

~~~
marcooliveira
I think it is perfectly valid. If you immediately got the point, I think it is
doing a good job.

