I N  I T S
P L A C E.


"In nature all things return to their common
 source and are distributed along different
 paths; through one action the fruits of a
 hundred thoughts are realized."

-- I Ching
SourceForge.net Logo

Bento: An Object-Oriented Markup Language




bentodev.org is now Bento-powered! The content on this site is being served by BentoServlet/Tomcat.

View the Bento source for this site.

View BentoServlet status for this site.

An alpha version of the Bento grammar has been released in decorated JavaCC (JJTree) format.

Reference Implementation
Development is proceeding towards the alpha version of a Bento reference implementation. Enough features have been implemented to handle simple pages.

The Bento keyword core denotes the global namespace. Objects defined in a core statement are globally defined. Among these are the standard objects needed by every web site (page, for example). The Bento core is thus roughly equivalent to the standard libraries and APIs of other languages.

The Bento core is still in the research stage. It is not expected to be finalized until a larger body of experience has accumulated.

  • Greater expressive power

  • Productivity multiplied

Free, nonproprietary and open source

Want to learn the basics of Bento in 15 minutes?
See Bento in a Nutshell.

Bento Scenarios

Separating Presentation and Content

This scenario shows how a class hierarchy naturally separates content and presentation.

Simple Dynamics

This scenario shows how Bento can greatly simplify the process of building a dynamic web site.

Database Integration

This scenario shows how to use Bento to access a MySQL database.

Building Web Services

This scenario shows how to build a web service with Bento.

More scenarios

Why Bento is a good bet

What is Bento?

Bento is an object-oriented declarative language for defining web sites.


...is Bento for?

Bento is for developers of web sites large and small.

No one owns Bento. Bento is an open, non-proprietary language with an open-source reference implementation.

The Bento specification is maintained by bentodev.org, a community of developers and others who share the goals and vision of the Bento language.

Why use it?

The benefits of Bento include reliability, maintainability, reusability and extendability.

How do you use it?

You can either compile Bento files into HTML (or XHTML, JSP, PHP, etc.) or you can serve Bento directly.

Introducing Object-Oriented Declarative Programming

Bento is a declarative language which follows object-oriented principles. While a number of procedural languages are object-oriented (C++, Java, Python and others), Bento is the first declarative language to incorporate the fundamental principles of object orientation: encapsulation, which is the ability to hide data and logic in an object; inheritance, the ability to define a new kind of object as an extension of an existing kind, specifying only the differences; and polymorphism, the ability to use such an extended object wherever the original object is expected.

Any developer who works in HTML, ASP, JSP, PHP or virtually any other declarative language can now choose to work in Bento instead. Bento files are easily compiled into HTML, ASP, etc. using a Bento compiler such as bentoc, free for download. Alternatively, a Bento server such as BentoServlet (also free for download) can use the Bento files to generate HTML dynamically.

The benefits of using object-oriented techniques are substantial:

  • makes hard problems tractable
  • makes huge projects manageable
  • makes complex programs maintainable
  • allows solutions to be captured, generalized and reused, turning an expense (a programmer's time and effort) into an investment

Code Is Poetry

Another benefit of object-oriented programming is harder to measure but no less important: it is more fulfilling for the programmer. Most programmers choose their field because they deeply enjoy programming. Programming is a form of creative expression, and the most widely used languages among professional programmers are the ones that best enable programmers to be creative.

Object-oriented techniques allow programmers to write metaphors in code, to find and express deeper truths, to reconcile form and function.


Use of any software, source code and documentation obtained from this site is governed by the Bento Poetic License.

Copyright © 2003 by bentodev.org