Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Comment Re:Most uninteresting (Score 4, Interesting) 158

Where did you see an example of the language? The links went to sourceforge (I didn't want to install the package just to see the language) and a marketing video.

There are a few code examples in the marketing video. There are several additional examples on the Taodyne web site, but I'm pretty sure it can't take a slashdotting.

I'm curious how anyone thought that if/then/else was a difficult enough construct in popular languages such that it needed improving. I mean, it's a couple of lines of code in *any* language, isn't it? Anyone know how this language supposedly improved on the concept?

The idea is that in other languages, if-then-else is a built-in construct. You can't do something similar yourself without hacking the compiler. In Tao3D, if-then-else is a library element like printf in C. So you can change it.

Let's say you often use a specific kind of for loop. In Tao3D, you simply add the notation you need, and now your code is shorter and more concise. Once you decide that one of the language objectives is that you can extend it yourself and create your own domain-specific languages, it's obvious that a good test for that feature is to use the basic programming language constructs found in other languages, like if-then-else or for loops.

So, functions are first class data members? Is it weakly typed then, like Lua? In that language, defining a function is just syntactic sugar for assigning a chunk of code to a variable of the assigned name, so you can use it just like any other variable.

The part that is always verbose in existing functional languages (except maybe Lisp) is how you pass code to another function. For example, in Javascript, you'd pass a callback with 'function() { ... }'. In Tao3D, I got rid of everything but ..., and the language is smart enough to figure things out. This means that you can define a slide by passing bullet points, and it almost looks like Markdown, whereas if I was in JavaScript, I would need layers and layers of code. This particular aspect is detailed in an article called "Storytelling, the web is doing it wrong"

In Tao3D, you define the notations you want first, you design the (domain-specific) language around your notations second. In existing languages, it's the other way round, the notation is imposed by the language you chose.

I'm also curious what this particular brings to the table that a library couldn't have accomplished. Learning a new language is a fairly big hurdle for someone to take to develop for a particular platform. Part of the reason I think we have so many computer languages is that programmers simply love writing new languages, not that it really solved any new problem. Nothing wrong with that, but then again, don't expect us to care unless there was a good reason for the new language.

That's a very good point. The reason for XLR (the language underlying Tao3D) was that we have to invent new languages all the time, not because we like to, but because existing languages are very bad at accepting something that is not already in their DNA. You could not get lambda functions in C++ until the language committee sat around a table, standardized it, and then all compiler vendors had to implement it. But if what you need is for example a notation for symbolic derivative, or a notation for slides, or a notation for a specific kind of for-loop, you are stuck. So progress in programming languages is very slow, because each language adds its own little features, but drops tons of other features that already exist in other languages.

The idea with XLR was to create a language where the fundamental process was extending the language. And Tao3D is an example of a relatively large scale domain-specific language (specifically around 3D and animations). Most of it is precisely in a library. But you wouldn't know from using it. It feels "native".

Comment Re:Point? (Score 1) 158

Porting to a web platform is something I'd like to see happen. When we started Tao3D, WebGL and even Javascript were not mature enough, and it would have been unreasonable to do so. Today, I don't know. There are still a few things in Tao3D I think Javascript would have a hard time doing. Feel free to try. That's one of the reasons we opened the code.

Comment Re:Where is IF-THEN-ELSE more verbose than that? (Score 3, Informative) 158

The actual definition of if-then-else can be found here. It looks like this:

// If-then-else statement
if true then TrueBody else FalseBody -> do TrueBody
if false then TrueBody else FalseBody -> do FalseBody

if true then TrueBody -> do TrueBody
if false then TrueBody -> false

The definition of the 'for' loop is more convoluted and is actually found in C++ code. It looks like this:


FORM(IntegerForLoop, tree,
          "for Var in Low:integer..High:integer loop Body",
          PARM(Var, tree, "")
          PARM(Low, integer, "")
          PARM(High, integer, "")
          PARM(Body, source, ""),
          return xl_integer_for_loop(context,self, &Var, Low, High, 1, &Body), )
FORM(IntegerForLoopStep, tree,
          "for Var in Low:integer..High:integer by Step:integer loop Body",
          PARM(Var, tree, "")
          PARM(Low, integer, "")
          PARM(High, integer, "")
          PARM(Step, integer, "")
          PARM(Body, source, ""),
          return xl_integer_for_loop(context,self, &Var, Low,High,Step, &Body), )
FORM(RealForLoop, tree,
          "for Var in Low:real..High:real loop Body",
          PARM(Var, tree, "")
          PARM(Low, real, "")
          PARM(High, real, "")
          PARM(Body, source, ""),
          return xl_real_for_loop(context,self, &Var, Low, High, 1.0, &Body), )

Comment Re:Where is IF-THEN-ELSE more verbose than that? (Score 1) 158

I'm curious, when is the definition of a content-free if-then-else statement more than a couple of lines?

The point is that you define the if-then-else control structures. If you wish, if-then-else is a macro in Tao3D, not a built-in.

(though in the sample I linked the indenting doesn't seem to be very consistent at the end)

Can you tell me where you think it's not consistent?

Submission + - Tao3D: a new open-source programming language for real-time 3D animations (sourceforge.net)

descubes writes: Tao3D is a new open-source programming language designed for real-time 3D animations. With it, you can quickly create interactive, data-rich presentations, small applications, proofs of concept, user interface prototypes, and more. The interactivity of the language, combined with its simplicity and graphical aspects, make it ideal to teach programming.

Tao3D also demonstrates a lot of innovation in programming language design. It makes it very easy to create new control structures. Defining if-then-else is literally a couple of lines of code. The syntax to pass pass blocks of code to functions is completely transparent. And it is fully reactive, meaning that it automatically reacts as necessary to external events such as mouse movements or the passage of time.

The source code was just made available under the GNU General Public License v3 on SourceForge, GitHub and Gitorious.

Comment Re:What is the significance here? (Score 1) 106

Well, as the author of the blog post, I did not intend this post to go on Slashdot. It was just a note-to-self about the various commands and build steps involved. Because they are, well, complicated.

In the grand scheme of things, the significance behind this is that I plan to open-source Tao, the 3D document description language invented by Taodyne, with the intent to be able to integrate it into at least one web browser. More details about why Tao would make a difference for the web here: http://www.taodyne.com/shop/de... (and in the follow up article). More details about how it works for a developer here: https://www.youtube.com/watch?....

Comment Software complexity also follows Moore's law (Score 1) 608

Software complexity follows Moore's law, an exponential law. So with a fixed set of tools, you are bound to reach a point where you can't code effectively. That's why we need either new sets of tools on a regular basis (e.g. C -> C++ -> Java -> ...) or tools that evolve over time (e.g. Lisp).

See http://xlr.sourceforge.net/Con... for another take at tools that evolve over time.

Comment Internet confirms my faith (Score 1) 1037

I will go against the crowd here, and say that Internet helps me with my faith. It gives me free access to the life and writings of saints. It gives me access to the original words of people like the pope, and lets me contrast them with the reporting often given in the media. It gives me a connexion to a community of Christian people. And it lets me realise that most of the counter arguments to religion are nothing new, and have been debunked by great minds centuries ago. I recently came across a site dedicated to Fatima that had me entirely revisit the (very low) standards I had for my own faith and life.

Information on the net about religion is a little like information on sex and love. Good luck trying to understand what true love is by going to porn sites! Same thing trying to understand what the true love of God is The first post I see here equates knowledge to the antichrist. It's funny, because it's typical of the derisive "information" you can find on the net, which combines some familiarity with basic concepts and utter ignorance of what's really behind them. Yes, the original sin derived from knowledge of good and evil. No, this does not mean at all that the catholic church condemns knowledge! A good lie has to be believable, and you know who the master of all lies is

I'm really sorry to hear that the original poster became an atheist by reading about religion on the Internet. He was already away from faith, since he said that he would have identified himself as religious without attending service (aka not really religious). If you don't attend service, chances are you did not personally meet God yet. For most christians, faith means a personal encounter of some sort. Trying to use internet arguments against my faith is a bit like trying to use porn as a proof that my wife's love is not real

Slashdot Top Deals

It has just been discovered that research causes cancer in rats.

Working...