blob: 070a747b88d91f553d917595a00f59192e0bab52 [file] [log] [blame]
<!--div id="bigbuttons">
<h3>Primary Links</h3>
<ul>
<li><a id="buttonDownload" href="download.php" title="Download">Eclipse
Distribution, Update Site, Dropins</a></li>
<li><a id="buttonDocumentation" href="documentation.php"
title="Documentation">Tutorials, Examples, Videos, Reference Documentation</a></li>
<li><a id="buttonSupport" href="support.php" title="Support">Bug
Tracker, Newsgroup</a></li>
<li><a id="buttonInvolved" href="getting_involved.php" title="Getting Involved">CVS,
Workspace Setup, Wiki, Committers</a></li>
</ul>
</div-->
<main role="main" style="height:400px;">
<div it="novaContent" class="container-full footer-offset breakcrumbs-offset padding-top">
<div class="container" style="padding-top:1.5em">
<div class="col-md-15">
<h1>Luna is here:<br/>Object Teams embraces Java&trade;8</h1>
</div>
</div>
</div>
</main>
<div id="container" style="background-image:url(../images/OTJ8-concepts.png);background-repeat:no-repeat;background-position:30px 20px;width:773px;height:687px;">
<h1 style="position:relative; left:200px; top:0px;height:36px;">Programming with OT/J is …</h1>
<h2 style="position:relative; left:170px; top:0px;height:24px;">Composition:</h2>
<div style="position:relative; left:38px; top:10px; width:380px;height:300px;font-size:16px;">
The essence of object-oriented programming is to compose a system from a possibly large number of interacting classes and objects.
Since version 1.1, Java has not seen any enhancements for this task.
OT/J adds three closely related concepts:
<ul>
<li>Roles can be attached to a base object for dynamic specialization.</li>
<li>Roles are grouped into a Team to yield cohesive modules for use-cases &amp; features.</li>
<li>Teams support nested inheritance for large-scale specialization.</li></ul>
</div>
<h2 style="position:relative; left:100px; top:-440px;
display:block;transform:rotate(-90deg);
-ms-transform:rotate(-90deg);
-webkit-transform:rotate(-90deg);">Algorithms:</h2>
<div style="position:relative; left:523px; top:-230px; width:245px;font-size:16px;">
OT/J is agnostic to how algorithms are encoded (programming in the small),
but you may leverage lambda expressions from Java 8 in your OT/J programs for that touch
of functional programming.
</div>
<h2 style="position:relative; left:150px; top:-140px;"> Types:</h2>
<div style="position:relative; left:280px; top:-197px; width:450px;font-size:16px;">
A rich type system is key for attaching semantics to the elements of your program.
<ul>
<li>Java 8 features …<br/>
type annotations for expressing more properties of types,</li>
<li>JDT leverages …<br/>
type annotations for detecting null related errors,</li>
<li>OT/J introduces …<br/>
dependent types to express object ownership.</li>
</ul>
</div>
</div>