<commit_before><?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
                      "../support/docbook-dtd/docbookx.dtd"

[
<!ENTITY introduction              SYSTEM "modules/introduction.xml">
<!ENTITY lexical                   SYSTEM "modules/lexical.xml">
<!ENTITY typesystem                SYSTEM "modules/typesystem.xml">
<!ENTITY declarations              SYSTEM "modules/declarations.xml">
<!ENTITY statementblocks           SYSTEM "modules/statementblocks.xml">
<!ENTITY expressions               SYSTEM "modules/expressions.xml">
<!ENTITY types                     SYSTEM "modules/types.xml">
<!ENTITY modules                   SYSTEM "modules/modules.xml">
]>

<book lang="en">

    <bookinfo>
        <title>Project Ceylon</title>
        <subtitle>A Better Java</subtitle>
        <releaseinfo>For internal discussion only</releaseinfo>
    </bookinfo>

    <toc/>
    
    <preface>
    <title>A work in progress</title>
    
    <para>This project is the work of a team of people who are fans of Java,
    and of the Java ecosystem, of its practical orientation, of its culture of 
    openness, of its developer community, of its unashamed participation in the 
    world of business computing, and of its strong commitment to portability. 
    However, we recognize that the language and class libraries, designed more 
    than 15 years ago, are no longer the best foundation for a range of today's 
    business computing problems.</para>
    
    <para>The goal of this project is to make a clean break with the legacy 
    Java SE platform, by improving upon the Java language and class libraries, 
    and by providing a modular architecture for a new platform based upon the 
    Java Virtual Machine.</para>
    
    <para>Of course, we recognize that the ability to interoperate with existing 
    Java code, and leverage existing investment in the Java ecosystem, is a 
    critical requirement of any successor to the Java platform.</para>
    
    <para>Java is a simple language to learn and Java code is easy to read and
    understand. Java provides a level of typesafety that is appropriate for
    business computing and enables sophisticated tooling with features like
    refactoring support, code completion and code navigation. Ceylon aims to 
    retain the overall model of Java, while getting rid of some of Java's warts,
    including: primitive types, arrays, constructors, getters/setters, checked 
    exceptions, raw types, wildcard types, thread synchronization, finalizers, 
    serialization, unsafe typecasts and reflection, and the dreaded 
    <literal>NullPointerException</literal>.</para> 
    
    <para>Ceylon has the following goals:</para>
    
    <itemizedlist>
        <listitem>
            <para>to be appropriate for large scale development, but to also
            be <emphasis>fun</emphasis>,</para>
        </listitem>
        <listitem>
            <para>to execute on the JVM, and interoperate with Java code,</para>
        </listitem>
        <listitem>
            <para>to be easy to learn for Java and C# developers,</para>
        </listitem>
        <listitem>
            <para>to eliminate some of Java's verbosity, while retaining its 
            readability&mdash;Ceylon does <emphasis>not</emphasis> aim to be 
            the least verbose/most cryptic language around,</para>
        </listitem>
        <listitem>
            <para>to provide a declarative syntax for expressing hierarchical 
            information like user interface definition, externalized data, and 
            system configuration, thereby eliminating Java's dependence upon 
            XML,</para>
        </listitem>
        <listitem>
            <para>to provide a more elegant and more flexible annotation syntax
            to support frameworks and declarative programming,</para>
        </listitem>
        <listitem>
            <para>to support and encourage a more functional style of programming 
            with immutable objects and first class functions, alongside the
            familiar imperative mode,</para>
        </listitem>
        <listitem>
            <para>to expand compile-time typesafety with compile-time safe handling 
            of null values, compile-time safe typecasts, dimensioned types with
            typesafe indexing, and a more typesafe approach to reflection,</para>
        </listitem>
        <listitem>
            <para>to provide language-level modularity,</para>
        </listitem>
        <listitem><commit_msg>minor<commit_after><?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
                      "../support/docbook-dtd/docbookx.dtd"

[
<!ENTITY introduction              SYSTEM "modules/introduction.xml">
<!ENTITY lexical                   SYSTEM "modules/lexical.xml">
<!ENTITY typesystem                SYSTEM "modules/typesystem.xml">
<!ENTITY declarations              SYSTEM "modules/declarations.xml">
<!ENTITY statementblocks           SYSTEM "modules/statementblocks.xml">
<!ENTITY expressions               SYSTEM "modules/expressions.xml">
<!ENTITY types                     SYSTEM "modules/types.xml">
<!ENTITY modules                   SYSTEM "modules/modules.xml">
]>

<book lang="en">

    <bookinfo>
        <title>Project Ceylon</title>
        <subtitle>A Better Java</subtitle>
        <releaseinfo>For internal discussion only</releaseinfo>
    </bookinfo>

    <toc/>
    
    <preface>
    <title>A work in progress</title>
    
    <para>This project is the work of a team of people who are fans of Java,
    and of the Java ecosystem, of its practical orientation, of its culture of 
    openness, of its developer community, of its unashamed participation in the 
    world of business computing, and of its strong commitment to portability. 
    However, we recognize that the language and class libraries, designed more 
    than 15 years ago, are no longer the best foundation for a range of today's 
    business computing problems.</para>
    
    <para>The goal of this project is to make a clean break with the legacy 
    Java SE platform, by improving upon the Java language and class libraries, 
    and by providing a modular architecture for a new platform based upon the 
    Java Virtual Machine.</para>
    
    <para>Of course, we recognize that the ability to interoperate with existing 
    Java code, and leverage existing investment in the Java ecosystem, is a 
    critical requirement of any successor to the Java platform.</para>
    
    <para>Java is a simple language to learn and Java code is easy to read and
    understand. Java provides a level of typesafety that is appropriate for
    business computing and enables sophisticated tooling with features like
    refactoring support, code completion and code navigation. Ceylon aims to 
    retain the overall model of Java, while getting rid of some of Java's warts,
    including: primitive types, arrays, constructors, getters/setters, checked 
    exceptions, raw types, wildcard types, thread synchronization, finalizers, 
    serialization, unsafe typecasts and reflection, and the dreaded 
    <literal>NullPointerException</literal>.</para> 
    
    <para>Ceylon has the following goals:</para>
    
    <itemizedlist>
        <listitem>
            <para>to be appropriate for large scale development, but to also
            be <emphasis>fun</emphasis>,</para>
        </listitem>
        <listitem>
            <para>to execute on the JVM, and interoperate with Java code,</para>
        </listitem>
        <listitem>
            <para>to be easy to learn for Java and C# developers,</para>
        </listitem>
        <listitem>
            <para>to eliminate some of Java's verbosity, while retaining its 
            readability&mdash;Ceylon does <emphasis>not</emphasis> aim to be 
            the most concise/cryptic language around,</para>
        </listitem>
        <listitem>
            <para>to provide a declarative syntax for expressing hierarchical 
            information like user interface definition, externalized data, and 
            system configuration, thereby eliminating Java's dependence upon 
            XML,</para>
        </listitem>
        <listitem>
            <para>to provide a more elegant and more flexible annotation syntax
            to support frameworks and declarative programming,</para>
        </listitem>
        <listitem>
            <para>to support and encourage a more functional style of programming 
            with immutable objects and first class functions, alongside the
            familiar imperative mode,</para>
        </listitem>
        <listitem>
            <para>to expand compile-time typesafety with compile-time safe handling 
            of null values, compile-time safe typecasts, dimensioned types with
            typesafe indexing, and a more typesafe approach to reflection,</para>
        </listitem>
        <listitem>
            <para>to provide language-level modularity,</para>
        </listitem>
        <listitem>
{'fraction_non_alphanumeric': 0.07289393278044522, 'fraction_numerical': 0.0026189436927106066, 'mean_word_length': 2.5578416149068324, 'pattern_counts': {'":': 0, '<': 157, '<?xml version=': 2, '>': 157, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 18}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5848778', 'n_tokens_mistral': 2379, 'n_tokens_neox': 2194, 'n_words': 934}