All Projects → faysou → MTools

faysou / MTools

Licence: MIT license
Object Oriented Programming in Mathematica 10+

Programming Languages

Mathematica
289 projects

Projects that are alternatives of or similar to MTools

Ddd On Scala
DDD sample implementation by Scala.
Stars: ✭ 113 (+352%)
Mutual labels:  object-oriented
Lw oopc
modified from http://sourceforge.net/projects/lwoopc/
Stars: ✭ 159 (+536%)
Mutual labels:  object-oriented
Design-Patterns
Project for learning and discuss about design patterns
Stars: ✭ 16 (-36%)
Mutual labels:  object-oriented
Algo ds notes
It is a repository that is a collection of algorithms and data structures with implementation in various languages.
Stars: ✭ 1,897 (+7488%)
Mutual labels:  object-oriented
Ood Principles In Swift
💎 The Principles of OOD (SOLID) based on Uncle Bob articles.
Stars: ✭ 1,710 (+6740%)
Mutual labels:  object-oriented
Dao
Dao Programming Language
Stars: ✭ 183 (+632%)
Mutual labels:  object-oriented
Pfunit
Parallel Fortran Unit Testing Framework
Stars: ✭ 104 (+316%)
Mutual labels:  object-oriented
ABAP-Library
Useful ABAP code snippets
Stars: ✭ 118 (+372%)
Mutual labels:  object-oriented
Moose
Official repository for Moose
Stars: ✭ 153 (+512%)
Mutual labels:  object-oriented
Finalcut
A text-based widget toolkit
Stars: ✭ 244 (+876%)
Mutual labels:  object-oriented
Db
Newt DB is a Python object-oriented database with JSONB-based access and search in PostgreSQL
Stars: ✭ 132 (+428%)
Mutual labels:  object-oriented
Eclipse Collections
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.
Stars: ✭ 1,828 (+7212%)
Mutual labels:  object-oriented
Ring.js
Ring.js - JavaScript Class System with Multiple Inheritance
Stars: ✭ 223 (+792%)
Mutual labels:  object-oriented
Doodle
A pure Kotlin UI framework for the Web.
Stars: ✭ 127 (+408%)
Mutual labels:  object-oriented
lua-classy
Class-based OO library for Lua
Stars: ✭ 28 (+12%)
Mutual labels:  object-oriented
Inko
Inko is a statically-typed, safe, object-oriented programming language for writing concurrent programs. This is a read-only mirror of https://gitlab.com/inko-lang/inko
Stars: ✭ 108 (+332%)
Mutual labels:  object-oriented
Elena Lang
ELENA is a general-purpose language with late binding. It is multi-paradigm, combining features of functional and object-oriented programming. Rich set of tools are provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers, run-time interfaces
Stars: ✭ 161 (+544%)
Mutual labels:  object-oriented
vix
VMware VIX API binding for Python
Stars: ✭ 31 (+24%)
Mutual labels:  object-oriented
Ensembler
Ensembler is a python package that provides fast and easy access to 1D and 2D model system simulations. It can be used for method development or to deepen understanding of a broad spectrum of modeling methods, from basic sampling techniques to enhanced sampling and free energy calculations. It is easy to install, fast, increases shareability, co…
Stars: ✭ 42 (+68%)
Mutual labels:  object-oriented
Feelpp
💎 Feel++: Finite Element Embedded Language and Library in C++
Stars: ✭ 229 (+816%)
Mutual labels:  object-oriented

MTools

release v0.4.6 Semantic Versioning license MIT Mathematica 10.0

The main contribution of MTools is to allow object oriented programming in Mathematica in a very natural way .

The package also contains:

  • Generic classes for manipulating trees of objects and displaying them
  • Automatic interface generation for displaying and editing objects
  • Functions for doing asynchronous evaluation easily using parallel kernels (MSync)
  • Tools for accessing Couchbase, serializing and deserializing objects.

Usage example

You can find usage examples on the Wolfram Community site and in the answer to "Once more on object orientation..." question on Mathematica Stack Exchange.

More examples will be added in the MTools.nb notebook located in the MTools package.

Installation

Automatic installation

To install the MTools package evaluate:

Get["https://raw.githubusercontent.com/faysou/MTools/master/BootstrapInstall.m"]

Note that this will also install the ProjectInstaller package, if you don't have it already installed.

To load the MTools package evaluate: Needs["MTools`"].

Manual installation

  1. Download the latest released MTools.zip file.

  2. Extract the downloaded MTools.zip file to any directory which is on the Mathematica $Path, e.g. to one obtained by evaluating FileNameJoin[{$UserBaseDirectory,"Applications"}].

  3. To load the package evaluate: Needs["MTools`"]

Compatibility

This package requires Mathematica 10 and above, as it makes extensive use of Association.

Bugs and requests

If you find any bugs or have feature requests please create an issue on GitHub.

Contributing

Feel free to fork and send pull requests.

All contributions are welcome!

License

This package is released under The MIT License.

Attribution

I used as template the README of the ClasslessObjects project.

I used the following contributions posted by people on Mathematica StackExchange for some functions in the Utils.m package:

Versioning

Releases of this package will be numbered using Semantic Versioning guidelines.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].