Dao, the official 1.0 version is released


This is to announce the first official release of Dao.

Dao is a simple yet powerful object-oriented programming language with many advanced features including, soft (or optional) typing, BNF-like macro system, regular expression, multi-dimensional numeric array, closure, coroutine, asynchronous function call for concurrent programming etc. Dao provides a rich set of standard data types, methods and libraries. Dao is implemented as a light and efficient virtual machine with very transparent C programming interfaces, which make it easy to extend Dao with C/C++ or embed Dao into C/C++ programs.

There have been a lot of improvements since the last release including: a lot of bug fixing and some broken feature fixing; several large implementation changes to improve the structure and clarity of the codes; and some implementation of new features. For the details, please have a look at: http://www.daovm.net/?page=dao_whats_new.

Besides the improvements to the language and its implementation, the modules, tools, documentations and website associated with this language have also been improved greatly. The documentations are more complete than before, and are prepared in nice formats for easy referencing. A number of demos are also included in the release, including some programs for the The Computer Language Benchmarks Game, which can be tried out just for fun.

One automatic tool (tools/autobind.dao) was developed using Dao itself, and was used to create most of the released Dao extending modules, by generating wrappers directly from the header files of the corresponding C/C++ libraries. This tool could also be used to wrap other C/C++ library as necessary.

A new website that was developed using Dao itself too, has been setup at http://www.daovm.net, and is going to be the new official website of Dao. This new website will be established as a serious platform to promote the spreading of Dao and to grow a community of its users.

Have fun.

Home: http://www.daovm.net
Document: http://www.daovm.net/?page=document_en
Download: http://www.daovm.net/?page=download_en
Forum: http://www.daovm.net/?forum

(edit: fixed some links)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Another object oriented programming language :\. How many of these do we need?

It's inductive.

∀n, n+k, where n is the current number of object oriented languages at any given moment, and k is some constant bounded by the number of currently living programmers.

That's a measure of success

If a concept is successful, it's quite logical that there are many implementation of it.
So the number of OO language is an indicator that this concept is very successful..

Well, it does mean the

Well, it does mean the 'concept' is successful. So was the Macarena.

Success of a concept does not, however, measure its relative value or utility.

I suspect OO will survive in some form or other (likely first class processes or actors), but I don't believe it is nearly as useful or valuable as is implied by its success.

A fashion industry

Well, it does mean the 'concept' is successful. So was the Macarena.

A bad comparison: sure language and concept adoption follow a kind of fashion, but OOP has been successful for a long time, so you cannot really compare it to a one-time event.

Success of a concept does not, however, measure its relative value or utility.

I disagree as language developers use concepts that they find valuable and useful, as there's no objective measure their hunch is as good a measure as any.

Saying that "OOP has been

Saying that "OOP has been successful for a long time" would require you to really find one brand of OOP to describe as successful over a long time. Unfortunately, in the 1990s the term was adopted as a buzz-phrase and applied quite liberally to a wide variety of projects and language designs that originators such as Alan Kay and Kristen Nygaard have been hard-pressed to classify as OOP.

It is my impression that the huge numbers of 'tweaks' that OOP sees is evidence that language designers keep thinking it flawed and in need of change. I don't see nearly as much change to what 'functions' are or what 'predicates' are or what 'procedures' are in functional, logic, and procedural programming respectively; instead I see new ways to compose and synchronize them. I suspect that, by the time language designers are mostly finding new ways of 'composing and synchronizing' objects, they'll have been pared down to actors or first class processes from some process calculi.

language developers use concepts that they find valuable and useful

Indeed. But another way of saying this is: "many language developers automatically include certain concepts that they've experienced in other languages, thus perpetuating both fads and flaws inherent to those concepts without careful analysis".

there's no objective measure their hunch is as good a measure as any

Well, there's no objective measure of 'right thing'. But a technical decision made on a hunch is a pointless gamble. Language designers should make informed technical decisions for technical reasons, such as achievability, allowance for a particular optimization, automated prediction of useful language properties (like confinement, safety, deadlock avoidance, performance, termination), etc.

As a note, use of <quote> doesn't do much for visibility, at least in Firefox. Adding some italics or use of <blockquote> would help.

OOP is NOT the dominant feature of Dao

Well, Dao is not merely object-oriented, it has included many other features as well, OOP is even not the dominant feature. I admit my description has some problem, probably I shouldn't put OOP in the first place in the description:)

Depends who you are trying to interest

I'd venture a guess that declaring a PL as object oriented is a positive for the programming world at large.

As for why we need another OOP language, I'd say that the matter of static (or soft) typing is still an open problem.