eo-objects

eolang supplementary objects

License

License

MIT
GroupId

GroupId

org.eolang
ArtifactId

ArtifactId

eo-objects
Last Version

Last Version

0.1.4
Release Date

Release Date

Type

Type

jar
Description

Description

eo-objects
eolang supplementary objects
Project Organization

Project Organization

EO

Download eo-objects

How to add to project

<!-- https://jarcasting.com/artifacts/org.eolang/eo-objects/ -->
<dependency>
    <groupId>org.eolang</groupId>
    <artifactId>eo-objects</artifactId>
    <version>0.1.4</version>
</dependency>
// https://jarcasting.com/artifacts/org.eolang/eo-objects/
implementation 'org.eolang:eo-objects:0.1.4'
// https://jarcasting.com/artifacts/org.eolang/eo-objects/
implementation ("org.eolang:eo-objects:0.1.4")
'org.eolang:eo-objects:jar:0.1.4'
<dependency org="org.eolang" name="eo-objects" rev="0.1.4">
  <artifact name="eo-objects" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.eolang', module='eo-objects', version='0.1.4')
)
libraryDependencies += "org.eolang" % "eo-objects" % "0.1.4"
[org.eolang/eo-objects "0.1.4"]

Dependencies

compile (1)

Group / Artifact Type Version
org.eolang : eo-runtime jar 0.1.4

Project Modules

There are no modules declared in this project.

Donate via Zerocracy

EO principles respected here Managed by Zerocracy DevOps By Rultor.com We recommend IntelliJ IDEA

Build Status PDD status Maintainability Hits-of-Code License Lines of code Maven Central

EO (stands for Elegant Objects or ISO 639-1 code of Esperanto) is an object-oriented programming language. It's still a prototype. It's the future of OOP. Please contribute! By the way, we're aware of popular semi-OOP languages and we don't think they are good enough, including Java, Ruby, C++, Smalltalk, Python, PHP, C#: all of them have something we don't tolerate.

EO is not planning to become a mainstream language—this is not what we want. Our main goal is to prove to ourselves that true object-oriented programming is practically possible. Not just in books and abstract examples, but in real code that works. That's why EO is being created—to put all that "crazy" pure object-oriented ideas into practice and see whether they can work. It's an experiment, a prototype, a proof-of-concept.

If you want to contribute, please join our Telegram chat first.

Our Twitter tag is #eolang.

These things we don't tolerate:

  • static/class methods or attributes (why?)
  • classes (why?)
  • implementation inheritance (why?)
  • mutability (why?)
  • NULL (why?)
  • global variables/procedures
  • reflection
  • type casting (why?)
  • scalar types and data primitives
  • annotations (why?)
  • unchecked exceptions (why?)
  • operators
  • flow control statements (for, while, if, etc)
  • DSL and syntactic sugar (why?)

We want EO to be compilable to Java. We want to stay as close to Java and JVM as possible, mostly in order to re-use the eco-system and libraries already available.

We also want to have an ability to compile it to any other language, like Python, C/C++, Ruby, C#, etc. In other words, EO must be platform independent.

Quick Start

Here is a simple program that asks for a year and tells you whether it's leap or not:

+alias stdout org.eolang.io.stdout
+alias stdin org.eolang.io.stdin
+alias scanner org.eolang.txt.scanner

[args] > main
  [y] > leap
    or
      and
        eq (mod y 4) 0
        not (eq (mod y 100) 0)
      eq (mod y 400) 0
  and
    stdout "Enter a year:"
    stdout
      concat
        (scanner stdin).nextInt > !year
        " is a leap year?"
        leap year:y

More examples are here.

How to contribute

Fork repository, make changes, send us a pull request. We will review your changes and apply them to the master branch shortly, provided they don't violate our quality standards. To avoid frustration, before sending us your pull request please run full Maven build:

$ mvn clean install -Pqulice

Troubleshooting

If after clean import from Maven, IDEA doesn't compile the project and shows errors about ProgramLexer is undefined:

  • Open Maven Projects window
  • Select eo-compiler
  • Right button
  • Generate Sources and Update Folders

Versions

Version
0.1.4