10 ways my language is better than Dart

611 views
Skip to first unread message

xkp.s...@gmail.com

unread,
Jul 23, 2012, 10:34:38 PM7/23/12
to mi...@dartlang.org
Apologize the cockiness of the title, it was just to grab your attention. I was floating my language (Hey, we have an online IDE with plenty of good looking samples!) and JJ from here suggested I compile a list of areas where I felt my humble lang offered improvement over the current Dart for discussion purposes. So here I give you : 10 ways my language is better than Dart!

1- Scope: Dart is mainly intended as a language running on a browser. Excess is intended to run anywhere, desktops, phones, browsers. Actually, to run on all of them at the same time while changing your code very little.

2- VM: VMs are tricky, error prone, and they make it hard to port existing code. I have no doubt Google can pull it off, but these things take years to mature. XS, in turn, was designed to be VM-agnostic, which is to run on other VMs. Ones that have taken the years to mature, that, right there, guarantees your apps will run solidly. But we go further, we have designed the platform to rapidly integrate foreign libraries. So, if we want 3D graphics (for instance), the compiler spits pure three.js code on a browser and pure (say)  Ogre code on a desktop. Based on the same code! As a disclaimer, xs does have a vm, but it runs inside the compiler only, and it was a major pain.

Quick note: This approach allowed a meager 3 part-timer team to put up 30+ samples , and since those samples compile to external libraries they are mostly guaranteed to be bug-free, unless the bug happens inside those libraries, which are solid. So, solid solid code for you, absolutely independent from xs. Consider also that, when a new awesome library pops up, your code could be running on it only by recompiling.

Quick note 2: I know the idea of Dart is to be VM fast, to which I respond: I could very well generate in C or well... Dart :)

3- What, not how: XS apps are first described in a data language (xml, json). And that description gets merged seamlessly into your application. This is not a new concept, but one that’s sorely lacking in Dart. The advantages of this approach are very well documented with one obvious one being your apps can be visually created, or at least a large part of them. This would be the difference between, say, WinForms and MFC.

4- Syntax: Our language is designed so you don’t have to learn it. You know javascript? This code is valid:

var x = 10;

function myFunc()
{
    ...
}

Or you do java/c#?

private int x = 10;
public void myFunc()
{
   ...
}

They mean the same thing… actually, in a couple of versions xs will 98% compatible with js. I only have to add code functions. But, then we innovate a little, and not in the “look how cute we are” way. For instance, xs assign first class status to two of the most common modern-day constructs: properties and events:

property myProp : int =
{
  //get code
}
{
  //set code
}

(and a few variations) and:

on click(x, y)
{
  ...
}

and then we will introduce behaviours, a brand new, super useful construct no present anywhere (to my knowledge). And, on top of that, we provide DSLs.

5- DSL: xs supports domain specific languages foreign to its syntax. I will not into the advantages of this, they should be fairly obvious. Instead a little code:

asynch()
{
    var result = do_something_expensive_in_another_thread();
    sync()
    {
      show_results_in_the_ui_thread(result);
    }
}

you can see this in action here (this sample is about 500 loc short of what got Instagram a billion dollars) and if you see the output code (click run) you will see how this very simple construct saves the poor programmer many-a-line of boilerplate, mostly useless web worker code. Some other dsls we support: sql, ajax, shell. In short, a language without DSL is a very boilerplatish language. Please note that these are not part of the language spec, so, once the SDK is out you could write your own dsls that serve your own app needs.

6- Animation: I assume Dart has as on of its objectives to become a substitute of Flash. It wouldn’t make sense not to try at least. But there is a severe lack of animation system to it. Animations are complex animals (I come from gaming, where you would find crazy complex behavior) . Such behavior is extremely difficult to write/maintain when done by hand (as in, requestAnimationFrame) and is practically impossible to do based on keyframe animation only (ie css3). Take a look at this sample: this animation is written in about 75 lines of xml… no code, no state, nothing. Try doing this in Dart, count the LOC. All in all I think our library is by far the best available today, add a visual editor to it and it would kick Flash into a crying shame. I apologize about the overconfidence.

7- Canvas: What fun is a canvas (as in HTML5 canvas) if you have to draw every by hand, dealing with contexts, etc? Well, look around and you’ll see nobody has done nothing of significance using it. It is very cool for demos, not so cool when you try to write real-world applications. Excess has a very strong canvas library containing almost 20 components, that ties naturally into the anim system and even can be embedded onto 3d surfaces! This has never, ever been done before. Not in about a 100 LOC.

8: UI: I seemed to have read Dart is writing yet another UI library? Not a good idea, such libs also take years to become solid . Excess? we use jQuery, without actually knowing jQuery… to the programmer eyes the UI behaves exactly the same as the Canvas library, just tags in xml. And again, solid, tried and tested libraries that will not fail you and that you won’t have to wait until they mature.

9: Code manipulation: Since we are not tied into a VM, we can manipulate the user code to our liking. We can lie, cheat, steal, insert complicated calls into the resulting code so you, the developer, the one that matters, have it easy. Just to give you an example: we linearize asynchronous nodejs code, so the poor dev can write code the way he/she is used to (blocking code) while at the same enjoying all the benefits of nodejs. We do magic with this stuff, and still in very few lines of compiler code (a complex idiom, like the anim system, goes for about 400 LOC of a meta-programming language)

10: Budget: Finally, please consider that all these was made with a very small team supported exclusively on my sub-par dev salary. Dart has a what? 20-25 strong full-time team? 300+ contributors? I can only imagine where we could get with a fraction of that… but nobody said life was fair. Still, you can help… so, please do.

And you can start helping by destroying my points... if you dare :)

Happy Hacking,

Emilio 

mythz

unread,
Jul 24, 2012, 1:03:13 AM7/24/12
to mi...@dartlang.org, xkp.s...@gmail.com
I don't want to be the bearer of hard truths considering how much time it looks like you've invested in your project but Dart, just by having Google's backing (and its best language designers and implementers assigned to it) is going to have more potential and opportunity for developers. Attempts by small team or single hacker will likely not come close to matching the quality and "batteries included" approach the Dart platforms envisages. E.g. IDE, tooling, debugability, static analysis, package manager and more importantly the brand recognition to build a strong community, which will be important considering it the primary source contributing libs to the package manager.

1- Scope: Dart is mainly intended as a language running on a browser. Excess is intended to run anywhere, desktops, phones, browsers. Actually, to run on all of them at the same time while changing your code very little.

You mention scope, but you must be aware that Dart both compiles to js runs in the browser and includes a server VM that can run on the server and inside Dartium and will be in future be embedded inside Chrome. There is no other language on the horizon that will work seamlessly with the DOM apart from JS and Dart that will enjoy this opportunity. Google doesn't have control of other browser vendors (which is why compiling to JS remains important) and all browsers attitude towards using NIH-only technology basically ensure all browsers wont be able to reach consensus. The hope of course is if Dart can prove itself in the wild providing superior productivity and run and start-time performance that other browsers would want to adopt as well - given Dart's extremely lax and forgiving licence (and patent freedoms) they will have every opportunity to do so.

Basically this sounds like FUD, right from the outset Dart provides end-to-end development, in fact nearly all my projects in Dart run on the Server VM only (networking/httpserver/etc). If anything V8 might've been accused of being optimized to only run in the browser (assuming running on a server was taken into consideration). But based on the strength and quality VM, Ryan adopted it for node which is where it's stayed. Given the Dart's team always intend it, and already have it running on the server with native OS lib bindings - this argument should be moot. Implementers of V8 now work in Dart, and as a goal they always envisaged an end-to-end stack.

The potential for Dart is huge, it has the backing of Google's talent and resources giving it the best opportunity of success. If it plays out like everyone intends we'll see it integrated as a core part in the Chrome platform which will allow us to write Chrome Extensions, available in Chrome OS, hosted on the WebStore, even to build "native behaving" packaged desktop apps http://code.google.com/chrome/extensions/apps.html we may also potentially see this as another language target in App Engine, and hopefully as another language option in Android. I personally hope it becomes a better Java so I can use it for mainstream general purpose programming instead of C#/Java.

2- VM: VMs are tricky, error prone, and they make it hard to port existing code. I have no doubt Google can pull it off, but these things take years to mature... 

If anyone can pull it off, it would be the same guys who pioneered the fastest javascript engine (V8), who having the benefit of hindsight are working on the Dart VM. Given their experience, proven record, input into language design and accessibility to the rest of the language team, frankly I see no better people for the job. Only a native VM will be able to enjoy features like Dart's "snapshotting" (i.e. vastly improved start time performance) and native web inspector tools + Browser>IDE integration.

3- What, not how: XS apps are first described in a data language (xml, json). And that description gets merged seamlessly into your application. This is not a new concept, but one that’s sorely lacking in Dart.  

This might be a stylistic/aesthetic preference/advantage because I surely am not missing another XML declarative language. If there is demand for it, it can just as easily code-gen into Dart and run where it does.

4- Syntax: Our language is designed so you don’t have to learn it. You know javascript? 

I'm personally looking forward to a better language than JavaScript and do not miss continually typing the 'function' keyword.

5- DSL: xs supports domain specific languages foreign to its syntax. 

The Dart team are looking at ways at improving async code where they were trying different experiments to see which approach will work best. At one point they had a working prototype with the async/await construct inspired by C#/traceur in the repo. Not sure of the current status of async feature but it looks like any syntax/construct they choose will work on top of Futures.

For UI libraries points 6-8, I'm happy for a new UI lib that maintains a cohesive API that works with the rest of Dart's type system and conventions. Google do make many of the worlds biggest web apps and they maintain many robust UI libraries as seen in Closure Library GWT Library and APIs so I'm quietly confident in their ability to deliver yet another robust UI framework/libraries. 

10: Budget: Finally, please consider that all these was made with a very small team supported exclusively on my sub-par dev salary. Dart has a what? 20-25 strong full-time team? 300+ contributors?  

This is actually a major disadvantage against any unfunded language/project. A new Language, VM, transpiler, IDE, tooling, debugger + browser integration, package manager, quality libraries, marketing and developer evangelism takes a lot of talent, time and financial resources. As a developer it makes a lot more sense to spend time investing in Dart since it has the backing and ingredients to become a success and to foster a thriving community. 

Good decisions generally factor in an opportunity cost, i.e. by asking ourselves from any given point in time with the way things are now, (disregarding all my previous efforts/sunk costs), what will provide the most rewards from my future efforts? So whilst life may not be fair, you always have the opportunity to make the best decisions for yourself. Based on my small sample feedback: I have a distinct lack of free time, so I personally don't have the time to invest/tinker in a language/platform that I don't believe will have a thriving future - it's likely many devs feel this same way too.

Given this I think its time to take a holistic look at the broader ecosystem and where your efforts fit in the "big-picture" i.e. it might be a wasted effort trying to convince others here to adopt a different language/platform. A lot of us are here because we're excited about what a new language/vm/platform enables us to do (esp. with Google's ubiquity and reach). I'm already vastly more productive with Dart than JS and its optional typing has already saved me many iteration cycles by identifying errors before I even ran them. When there were API changes I was even able to identify all the changes that were affected. More importantly I was even given pull requests from the community who had changed my OSS libs for me! I'm just not going to get this support from a platform without an active and thriving community.

Anyway these are just my thoughts on the topic, I hope it's provided some valuable outside perspective/insights.

- Demis

Shane Stevens

unread,
Jul 24, 2012, 1:13:19 AM7/24/12
to mi...@dartlang.org, xkp.s...@gmail.com
1. Actually, Dart is meant for headless servers/clients (servers, command-line) and web-client (javascript/VM).
2. Kasper Lund & Lars Bak are VM rockstars. You should watch this talk: http://www.youtube.com/watch?v=bsGgfUreyZw They really know what they're doing.
3. Visual design isn't something I'm missing, to be honest. Just design your your UI using standard html/css, and write your logic in Dart. Also, with the introduction of Web Components, this will be even more awesome. Check it out: http://www.youtube.com/watch?v=2txPYQOWBtg
4. Dart syntax is awesome. If you know Javascript, you're set. Personally, I'm from a C/C++ video game programming background, and I LOVE the syntax. I default to using strict types, but Javascript guys can just start typing (geddit?). Plus, because of the grammar and syntax, your code can be analysed, refactored and generally structued.  I'm not sure how closely you've looked at Dart, but it's hard to improve on what's there.
5. DSL's are not part of the Dart goals, and that's a good thing.  For the record, Instagram built a little more than your example to get a valuation of a billion dollars ;)
6. It's a pretty contrived example.  Besides, JQuery UI can do this stuff easily, they just chain things together with Promises.  Easy. (e.g. http://www.incg.nl/blog/2008/hover-block-jquery/)
7. Come on, there are thousands of examples of games, tools and demos that use HTML 2d/3d canvas.  How many have been created with Excess's 20 components?
8. You should check out John Evans' Dart "Buckshot" UI library (https://github.com/prujohn/Buckshot).  It's very cool.  Besides, there are good reasons why the Dart developers are taking their time with a UI framework.  It's necessary, but not a priority.  Getting the language to 1.0 is more important than having the kitchen sink of support libraries, IMHO.
9. You should check out Dart's "Future" class (http://api.dartlang.org/dart_core/Future.html) It's easy to write linear code with async responses.
10. Why does budget make Excess "Better" than Dart? It's not a feature of the language.


Some extra points:

1. Community. There is an incredible community of developers who are behind Dart, not just Google employees. Seth Ladd has done an incredible job at spreading the word, and the fact that Google opened up the language early to involve the community is testament to the fact they believe in this. The Dart list that you've posted on has many superb discussions, by intelligent, passionate programmers. Excess forums, on the other hand, have 2 posts by you and "Most Online Ever: 7 (March 26, 2012, 11:05:34 AM)"
2. Anyone can go an grab the source code, and contribute back into the code base. Forgive me, but I couldn't find a github link to all of the Excess source code, just some half finished docs and a fork of three.js (https://github.com/xkp)
3. VM Integration into Chrome.  This is potentially HUGE.  Only Google could do this, and I, for one, can't wait to see the benefits.
4. Debugger and IDE (tools).  I can hit a breakpoint and step by step debug.  This makes life as a programmer infinitely easier than printf()s.  Plus refactoring and other tools on the way make is stand head and shoulders over Javascript.
5. Dart to Javascript.  This means it can be used right now.  Sure, it doesn't produce the most optimal code right now, but that's an optimisation problem, and the guys optimising it are the very same team that created V8.  Can't argue with that.

So, well done for creating a language you're passionate about.  Keep working on it, and I wish you the best of success.

As for me, I'm sticking with Dart.

Ladislav Thon

unread,
Jul 24, 2012, 4:17:01 AM7/24/12
to Shane Stevens, mi...@dartlang.org, xkp.s...@gmail.com
Purely technically, XS has some interesting points. But... where the heck is an entry point? Where does my program even start? Is there even such a thing, or the best I get is an "init" event? Come on... is XS even bootstrappable?

Btw, a little self-promo: if someone wants to look at a DSL encoded in Dart, head over to http://ladicek.github.com/2012/05/27/abusing-operators-to-encode-a-testing-dsl.html You'll see that this is also valid Dart code:

var t = table * "a" * "b" * "c"
              | 3   | 4   | 5
              | 5   | 12  | 13
              | 7   | 24  | 25
              | 8   | 15  | 17
              | 9   | 40  | 41
              ;

expect
  * "it is a triple" / ((it) => it.length == 3)
  * "it is a Pythagorean triple" / ((it) => it.a * it.a + it.b * it.b == it.c * it.c)
  < each(t);

And to be clear, I'm only half-serious about it currently :-)

LT

Emilio Santos

unread,
Jul 24, 2012, 9:53:46 AM7/24/12
to mythz, mi...@dartlang.org
Thanks for the comments!

On Tue, Jul 24, 2012 at 1:03 AM, mythz <demis....@gmail.com> wrote:
I don't want to be the bearer of hard truths considering how much time it looks like you've invested in your project but Dart, just by having Google's backing (and its best language designers and implementers assigned to it) is going to have more potential and opportunity for developers. Attempts by small team or single hacker will likely not come close to matching the quality and "batteries included" approach the Dart platforms envisages.

Don't worry about being the bearer of hard truths, life takes that roles pretty well :) And besides, I'm fully aware of the struggles of the 99%... however, I do what I do primarily for fun so the lack of success won't really kill me. But just to make a couple of points:

 
E.g. IDE, tooling, debugability, static analysis, package manager and more importantly the brand recognition to build a strong community, which will be important considering it the primary source contributing libs to the package manager.

Even Google went the way of Eclipse (IDE, tooling, debugability) Something I'm already developing using Xtext and the tested and true java debugger (remember, my language already generates java code) So I see little advantage there. Package Manager? That should be something that is not needed, I have always seen that as the language developers being lazy. xs provides a way so you dont have to include any packages, just code. 
 
1- Scope: Dart is mainly intended as a language running on a browser. Excess is intended to run anywhere, desktops, phones, browsers. Actually, to run on all of them at the same time while changing your code very little.
You mention scope, but you must be aware that Dart both compiles to js runs in the browser and includes a server VM that can run on the server and inside Dartium and will be in future be embedded inside Chrome. There is no other language on the horizon that will work seamlessly with the DOM apart from JS and Dart that will enjoy this opportunity. Google doesn't have control of other browser vendors (which is why compiling to JS remains important) and all browsers attitude towards using NIH-only technology basically ensure all browsers wont be able to reach consensus. The hope of course is if Dart can prove itself in the wild providing superior productivity and run and start-time performance that other browsers would want to adopt as well - given Dart's extremely lax and forgiving licence (and patent freedoms) they will have every opportunity to do so.

will it ever run on iOS? Native linux? Hell, even Android?? As for the server part I don't see Dart a "server" language, so, just because you can run it n the server it doesn't necessarily mean devs will want to. Even google has another server language (Go). My point here was excess can run on any established platform (say, nodejs for servers) with very little effort on the part of the compiler maker. And the language provides ways for it to be a server language. 
 

Basically this sounds like FUD, right from the outset Dart provides end-to-end development, in fact nearly all my projects in Dart run on the Server VM only (networking/httpserver/etc). If anything V8 might've been accused of being optimized to only run in the browser (assuming running on a server was taken into consideration). But based on the strength and quality VM, Ryan adopted it for node which is where it's stayed. Given the Dart's team always intend it, and already have it running on the server with native OS lib bindings - this argument should be moot. Implementers of V8 now work in Dart, and as a goal they always envisaged an end-to-end stack.

The potential for Dart is huge, it has the backing of Google's talent and resources giving it the best opportunity of success. If it plays out like everyone intends we'll see it integrated as a core part in the Chrome platform which will allow us to write Chrome Extensions, available in Chrome OS, hosted on the WebStore, even to build "native behaving" packaged desktop apps http://code.google.com/chrome/extensions/apps.html we may also potentially see this as another language target in App Engine, and hopefully as another language option in Android. I personally hope it becomes a better Java so I can use it for mainstream general purpose programming instead of C#/Java.

I don't disagree on the potential, I just see more potential (abstract app making potential) in xs. I don't see it blindly but I still provide about 30 samples (I donwloaded the Dart editor and it came with 3) that take about 100loc to make and I don't see how you write them easily on Dart... maybe you could shed some light on it. 
 

2- VM: VMs are tricky, error prone, and they make it hard to port existing code. I have no doubt Google can pull it off, but these things take years to mature... 

If anyone can pull it off, it would be the same guys who pioneered the fastest javascript engine (V8), who having the benefit of hindsight are working on the Dart VM. Given their experience, proven record, input into language design and accessibility to the rest of the language team, frankly I see no better people for the job. Only a native VM will be able to enjoy features like Dart's "snapshotting" (i.e. vastly improved start time performance) and native web inspector tools + Browser>IDE integration.

I'm also sure they can pull it off, maybe not in time to catch up, but that I truly don't know. My point was that I (xs) just don't need to do that and can go run in any established platform. Including Dart. Without having to wait for any VM to mature.
 

3- What, not how: XS apps are first described in a data language (xml, json). And that description gets merged seamlessly into your application. This is not a new concept, but one that’s sorely lacking in Dart.  

This might be a stylistic/aesthetic preference/advantage because I surely am not missing another XML declarative language. If there is demand for it, it can just as easily code-gen into Dart and run where it does.

People are sure not missing MFC and went running in droves to Flash, you cannot discount the power of visual editors. That is NOT stylistic. Btw, what did you mean by code-gen into Dart?
 

4- Syntax: Our language is designed so you don’t have to learn it. You know javascript? 

I'm personally looking forward to a better language than JavaScript and do not miss continually typing the 'function' keyword.

There you either missed the point and certainly ignored most of the good stuff. But just to clarify: the keyword function in xs is pure syntactical sugar to lessen the learning curve. As is the java/c# syntax that is also included (see, you dont have to use function!) but the way xs designed methods and called... well... method. As in:

method myMethod()
{
    ....
}

 

5- DSL: xs supports domain specific languages foreign to its syntax. 

The Dart team are looking at ways at improving async code where they were trying different experiments to see which approach will work best. At one point they had a working prototype with the async/await construct inspired by C#/traceur in the repo. Not sure of the current status of async feature but it looks like any syntax/construct they choose will work on top of Futures.

Missed point again, this was not about asynch (which, you must concede, kicks ass). asynch is only one of the DSLs available, and only in xs you could create your *own* DSL. So I'll give you another example:

sql(connection = myConnection)
{
   myData = SELECT * FROM myTable
}

then myData takes an array of the results. Now, understand that this is a general mechanism and don't tell me the dev team is also looking into SQL queries :)
 

For UI libraries points 6-8, I'm happy for a new UI lib that maintains a cohesive API that works with the rest of Dart's type system and conventions. Google do make many of the worlds biggest web apps and they maintain many robust UI libraries as seen in Closure Library GWT Library and APIs so I'm quietly confident in their ability to deliver yet another robust UI framework/libraries. 

It is hard to compare *future* UI libraries to, say, *actual* libraries. Like jQuery or Winforms... my point is that those (established, solid, widely accepted) are/could be available. And they could be used at the same time with the same code!

Look, I know you trust the company to do anything it wants (and hell, you might be right) but they also fail. Case in point o3D, where they tried to add 3d graphics to the browser... xs? We already provide kick ass 3D capabilities without the huge burden of having to implement a 3D engine... in that vein, what 3D tools are available to Dart? Plain WebGL? There I can *guarantee* you devs are not gonna go into that because it has an immensely huge learning curve.

In xs? Devs just write xml, same as they do for jQuery, canvas, or nodejs... one consistent general API. You must at least concede the value there.
 
There you also ignored important points in 6-8... where are the animations tools? I'm sure the best developers in the world are working at them (or are they). Again... already available in xs.


10: Budget: Finally, please consider that all these was made with a very small team supported exclusively on my sub-par dev salary. Dart has a what? 20-25 strong full-time team? 300+ contributors?  

This is actually a major disadvantage against any unfunded language/project. A new Language, VM, transpiler, IDE, tooling, debugger + browser integration, package manager, quality libraries, marketing and developer evangelism takes a lot of talent, time and financial resources. As a developer it makes a lot more sense to spend time investing in Dart since it has the backing and ingredients to become a success and to foster a thriving community. 

Good decisions generally factor in an opportunity cost, i.e. by asking ourselves from any given point in time with the way things are now, (disregarding all my previous efforts/sunk costs), what will provide the most rewards from my future efforts? So whilst life may not be fair, you always have the opportunity to make the best decisions for yourself. Based on my small sample feedback: I have a distinct lack of free time, so I personally don't have the time to invest/tinker in a language/platform that I don't believe will have a thriving future - it's likely many devs feel this same way too.

Given this I think its time to take a holistic look at the broader ecosystem and where your efforts fit in the "big-picture" i.e. it might be a wasted effort trying to convince others here to adopt a different language/platform. A lot of us are here because we're excited about what a new language/vm/platform enables us to do (esp. with Google's ubiquity and reach). I'm already vastly more productive with Dart than JS and its optional typing has already saved me many iteration cycles by identifying errors before I even ran them. When there were API changes I was even able to identify all the changes that were affected. More importantly I was even given pull requests from the community who had changed my OSS libs for me! I'm just not going to get this support from a platform without an active and thriving community.

Hey, would you let me play the victim card here? :) My larger point is... if with very limited resources we are able to provide a bunch of stuff not present in Dart, what could we do with a little budget!
 

Anyway these are just my thoughts on the topic, I hope it's provided some valuable outside perspective/insights.

- Demis

Oh yes, and I'm very grateful... I just love the discussion :)

Thanks,
Emilio

Christian Grobmeier

unread,
Jul 24, 2012, 10:25:29 AM7/24/12
to Emilio Santos, mythz, mi...@dartlang.org
Emilio,

what are you trying to achieve?

You complain about little budget and constantly say: Feature X is
already avail in excess but it's not in Dart. If it is so, the build
up a user base like the guys from Opa did/do. There is for sure room
for interesting new language and there are surely some user in need of
it right now.

Dart aims to be available in hopefully all Browsers some day. It is a
well-thought language which is still in alpha state. It is not
possible to provide all tools right now, but Googlers did one thing
right: with the early accessability of Dart, they made it possible
that great non-google-coders can do great stuff with Dart already.
Look at Dartwatch.com, were Chris maintains a list of great software
products.

If one group can bring a new VM to all big browsers out there, than it
is the set of people we find here. My hope is they make it. I am very
sorry to say, but I don't have the same thinking about Excess.

Another reason I will not switch to Excess: I can wait for Dart. This
language progresses in the right direction and I love it, as many here
do. I don't need another language.

On a technical perspective I have not seen anything which make me
excited on Excess.

>> E.g. IDE, tooling, debugability, static analysis, package manager and more
>> importantly the brand recognition to build a strong community, which will be
>> important considering it the primary source contributing libs to the package
>> manager.
>
> Even Google went the way of Eclipse (IDE, tooling, debugability) Something
> I'm already developing using Xtext and the tested and true java debugger
> (remember, my language already generates java code) So I see little
> advantage there.

With Dart I want to avoid Java-Code. I am Java-Coder at day, but I
really don't need that with Dart.

> Package Manager? That should be something that is not
> needed, I have always seen that as the language developers being lazy. xs
> provides a way so you dont have to include any packages, just code.

I disagree, package managers are necessary.
Developers might be lazy, but they need to take care of f.e. different
versions of code.


> will it ever run on iOS? Native linux? Hell, even Android??

It can be embedded and it has potential to run there. Whenever
somebody needs it there it will be available there. Recently I have
seen a mesage from somebody who embeds it on Android. No clue were the
journey leads us because I didn't speak to the bus driver. But there
is a good chance it does.

> As for the
> server part I don't see Dart a "server" language, so, just because you can
> run it n the server it doesn't necessarily mean devs will want to.

What?
You can say the same about every language. Heck, even JavaScript
became a "server language", see Node.js.

> Even google has another server language (Go).

Which does not give say anything about Dart

> My point here was excess can run on
> any established platform (say, nodejs for servers) with very little effort
> on the part of the compiler maker. And the language provides ways for it to
> be a server language.

"just because you can run it n the server it doesn't necessarily mean
devs will want to"


> I don't disagree on the potential, I just see more potential (abstract app
> making potential) in xs. I don't see it blindly but I still provide about 30
> samples (I donwloaded the Dart editor and it came with 3) that take about
> 100loc to make and I don't see how you write them easily on Dart... maybe
> you could shed some light on it.

Have you looked at this?
http://code.google.com/p/dart/source/browse/#svn%2Ftrunk%2Fdart%2Fsamples

The quality of a language should not be measured in the number of samples, btw


>> 3- What, not how: XS apps are first described in a data language (xml,
>> json). And that description gets merged seamlessly into your application.
>> This is not a new concept, but one that’s sorely lacking in Dart.
>>
>> This might be a stylistic/aesthetic preference/advantage because I surely
>> am not missing another XML declarative language. If there is demand for it,
>> it can just as easily code-gen into Dart and run where it does.
>
>
> People are sure not missing MFC and went running in droves to Flash, you
> cannot discount the power of visual editors. That is NOT stylistic. Btw,
> what did you mean by code-gen into Dart?

I never use visual editors and never did. It is stylistic to use such tools.

except VIM is a visual editor (or IntelliJ)



> There you either missed the point and certainly ignored most of the good
> stuff. But just to clarify: the keyword function in xs is pure syntactical
> sugar to lessen the learning curve.

I am fine with learning that I don't need unnecessary crap in my syntax.

> As is the java/c# syntax that is also
> included (see, you dont have to use function!) but the way xs designed
> methods and called... well... method. As in:
>
> method myMethod()
> {
> ....
> }

For me this is a function, not a method. Methods refer at least in my
world to objects. Maybe others might think different, but well, this
is the problem with such keywords. After all I need to learn I need to
use "method" instead of "function". Tell my why that is better instead
of leaving it out?


> Missed point again, this was not about asynch (which, you must concede,
> kicks ass). asynch is only one of the DSLs available, and only in xs you
> could create your *own* DSL. So I'll give you another example:
>
> sql(connection = myConnection)
> {
> myData = SELECT * FROM myTable
> }
>
> then myData takes an array of the results. Now, understand that this is a
> general mechanism and don't tell me the dev team is also looking into SQL
> queries :)

Who knows? Not everything is public yet.
Not sure if I like that syntax actually.


> Look, I know you trust the company to do anything it wants (and hell, you
> might be right) but they also fail. Case in point o3D, where they tried to
> add 3d graphics to the browser... xs? We already provide kick ass 3D
> capabilities without the huge burden of having to implement a 3D engine...
> in that vein, what 3D tools are available to Dart? Plain WebGL? There I can
> *guarantee* you devs are not gonna go into that because it has an immensely
> huge learning curve.

OK, again, what are you trying to achieve? Want to convince users to
migrate from Alpha-Dart to Production-Excess? Yes, the team might
fail, but as i look at Dart since it is published I can say the
interest has increased MUCH and LOTS have been done.

> In xs? Devs just write xml, same as they do for jQuery, canvas, or nodejs...
> one consistent general API. You must at least concede the value there.
>
> There you also ignored important points in 6-8... where are the animations
> tools? I'm sure the best developers in the world are working at them (or are
> they). Again... already available in xs.
>

Dart = Alpha-Language.

> Hey, would you let me play the victim card here? :) My larger point is... if
> with very limited resources we are able to provide a bunch of stuff not
> present in Dart, what could we do with a little budget!

move on to kickstarter. It seems you are very excited about your
language and you have some power. Get a funding.

Looking at Excess site, you could improve your marketing here. For
example, I want a "learn excess in 5 minutes page".

After all I think you should build up a user base; you certainly will
not succeed when trying to convince others their toys are bad. Maybe
you should look a little at what Seth Ladd did for Dart and try to
emulate some of his things to make your language growing.

In any case - good luck!

Cheers
Christian
--
http://www.grobmeier.de
https://www.timeandbill.de

Emilio Santos

unread,
Jul 24, 2012, 10:54:38 AM7/24/12
to Shane Stevens, mi...@dartlang.org
Shane, thanks for taking the time...

On Tue, Jul 24, 2012 at 1:13 AM, Shane Stevens <sh...@twiitch.com> wrote:
1. Actually, Dart is meant for headless servers/clients (servers, command-line) and web-client (javascript/VM).

I touched that on a previous email, the short version is: what about iOS, Desktop, Android, Rim....
 
2. Kasper Lund & Lars Bak are VM rockstars. You should watch this talk: http://www.youtube.com/watch?v=bsGgfUreyZw They really know what they're doing.

Surely they do and certainly they can put up something equl in quality to, say, .NET or Java. My point is xs already generates code for some of those platforms. Or to say it another way, the VMs on which xs run are as good as the ones Kasper and Lars will have in the future... That just makes me proud :)
 
3. Visual design isn't something I'm missing, to be honest. Just design your your UI using standard html/css, and write your logic in Dart. Also, with the introduction of Web Components, this will be even more awesome. Check it out: http://www.youtube.com/watch?v=2txPYQOWBtg

Again, I won't go into preferences... but history says otherwise. Case in point .NET and Flash... a complex UI in html/css becomes unmanagable/unmaintainable in amazing short periods of time. And you deny the awesome power of the graphic designer, whom rather not write a bunch of scripts. I think history and reason are on my side on this... but I respect your preferences here.
 
4. Dart syntax is awesome. If you know Javascript, you're set. Personally, I'm from a C/C++ video game programming background, and I LOVE the syntax. I default to using strict types, but Javascript guys can just start typing (geddit?). Plus, because of the grammar and syntax, your code can be analysed, refactored and generally structued.  I'm not sure how closely you've looked at Dart, but it's hard to improve on what's there.

I'm not sure how closely you looked at xs, but I just gave you 3 examples: properties, events and DSLs... Soon I'll comeback with behaviors, too. And hey, I'm not hating on Dart, I actually like it. So maybe you will comeback with a bunch of stuff Dart has and I dont? Looking at it I just saw lambdas (more of syntactical sugar that I will integrate rather easily in the future)
 
5. DSL's are not part of the Dart goals, and that's a good thing.  For the record, Instagram built a little more than your example to get a valuation of a billion dollars ;)

DSL's are awesome, purely awesome... they should be part of the goals because they provide real, tangible, goodness. And not only for the programmer, for the compiler maker too. in the asynch sample the compiler can know *exactly* which code run asynchronously, thus being able to detect deadlocks and things of that nature... something that is practically imposible under the traditional code only approach (create thread, assign it a function)
 
6. It's a pretty contrived example.  Besides, JQuery UI can do this stuff easily, they just chain things together with Promises.  Easy. (e.g. http://www.incg.nl/blog/2008/hover-block-jquery/)

Maybe I'm the only one that finds that example extremely hard to read? Those are 2 nested functions to provide animation for a single image. When you get 27 (as my in contrived sample) that code can simply just explode. Here we ought to agree to disagree, but you could definitively shame me into tears if you write that contrived sample (forget the 3d planes, use only images if you want) in less than 500 lines of that "easy" code.
 
7. Come on, there are thousands of examples of games, tools and demos that use HTML 2d/3d canvas.  How many have been created with Excess's 20 components?

This is just plain wrong... there are not "thousands" of 3d canvas samples around, and they tend to grow real fat real fast, especially when you have to setup webgl by hand. Something you, coming from graphics, should know. But just for kicks, show me one of those samples in less that 500 LOC. Unless you want to argue that more lines of code is good thing :)
 
8. You should check out John Evans' Dart "Buckshot" UI library (https://github.com/prujohn/Buckshot).  It's very cool.  Besides, there are good reasons why the Dart developers are taking their time with a UI framework.  It's necessary, but not a priority.  Getting the language to 1.0 is more important than having the kitchen sink of support libraries, IMHO.

Writing UI libraries is a lot of fun (I've written like 10) And I disagree it is not important... it means the world for developers. Since you come from gaming, I'll give some anecdotal evidence: Everywhere I worked in the industry (Including giants like EA) every single one of those companies wrote their own UI libraries... the result? Dart sized teams *just* for the games UI. Huge waste of money for subpar results mostly... 

So, yeah, its cool. But is also incredibly hard to get right/compete with established UIs... and those make all difference between a "cool" product and a "usable" product. It is unbelievably hard to replace the feeling users have for established UIs, even when the new framework if better. In other words, you go native or risk user alienation. It has been proven time and again..
 
9. You should check out Dart's "Future" class (http://api.dartlang.org/dart_core/Future.html) It's easy to write linear code with async responses.

Cool, but you ought to notice the difference from:
Future<int> future = getFutureFromSomewhere();
future.then((value) {
  print("I received the number $value");
});
to: 

int value = getFutureFromSomewhere();
print(value);

The difference is a *lot* of semantic noise, and as apps grow that very noise can destroy an app. The other difference is that xs code compiles into typical nodejs code, so, there are no compiler bugs involved. Or to put it another way...  futures inside a VM are a LOT of work (and yeah, I know you have a bunch of superstars) but a lot of code is never a good thing :)

10. Why does budget make Excess "Better" than Dart? It's not a feature of the language.

The thinking goes: if a little budget can provide a lot of stuff a big-budget-best-developers-in-the world can't (or will take a while to) there must be something to it, no?
 


Some extra points:

1. Community. There is an incredible community of developers who are behind Dart, not just Google employees. Seth Ladd has done an incredible job at spreading the word, and the fact that Google opened up the language early to involve the community is testament to the fact they believe in this. The Dart list that you've posted on has many superb discussions, by intelligent, passionate programmers. Excess forums, on the other hand, have 2 posts by you and "Most Online Ever: 7 (March 26, 2012, 11:05:34 AM)"

Ya, Google I ain't... just don't hate me for being poor. I'm just trying to get the word out to get a community going. But I agree that I'm lacking that and that I might never have it. It does not take anything away from the technical goodness.
 
2. Anyone can go an grab the source code, and contribute back into the code base. Forgive me, but I couldn't find a github link to all of the Excess source code, just some half finished docs and a fork of three.js (https://github.com/xkp)

That is coming, and there is a github repo... it will be private until is ready as I don't like publishing unfinished code. As for the docs... again, excuse my poverty. I can only afford to write features or doc, not both. I will go into it with the pain of my heart when I put 1.0 out... which might be, well, never :)

Just think that if google forced any of their superstars to write the docs for their products they might never be released also.
 
3. VM Integration into Chrome.  This is potentially HUGE.  Only Google could do this, and I, for one, can't wait to see the benefits.

Like I said, I can *easily* generate Dart code so I could be HUGE too? :)
 
4. Debugger and IDE (tools).  I can hit a breakpoint and step by step debug.  This makes life as a programmer infinitely easier than printf()s.  Plus refactoring and other tools on the way make is stand head and shoulders over Javascript.

Working on it... a simple Xtext + generating java code + jsr45 + java debugger... puff! My debugger is as good as any. It will just, well, take me time. In the meantime, however, you can compile xs for android, rgab the resulting eclipse solutions and go right into debugging. Good enough?
 
5. Dart to Javascript.  This means it can be used right now.  Sure, it doesn't produce the most optimal code right now, but that's an optimisation problem, and the guys optimising it are the very same team that created V8.  Can't argue with that.

xs to javascript, happening now. With near optimal code too! Now... can you argue with that?
 

So, well done for creating a language you're passionate about.  Keep working on it, and I wish you the best of success.

Thanks, you may or may not believe me, but this exercise (of arguing against Dart and winning it at least in my mind) makes the whole thing worth of the effort. And it has been incredibly fun, too.
 

As for me, I'm sticking with Dart.

Happy Hacking!

Emilio

Emilio Santos

unread,
Jul 24, 2012, 12:04:04 PM7/24/12
to Christian Grobmeier, mythz, mi...@dartlang.org
Christian, thanks for the input!

On Tue, Jul 24, 2012 at 10:25 AM, Christian Grobmeier <grob...@gmail.com> wrote:
Emilio,

what are you trying to achieve?

That is a complicated question, if I had to go with a single answer it would be something like: immortality or greatness. But that's not what you were looking for. 
 

You complain about little budget

I guess the "get them to feel sorry for me" thing is not working that great :)
 
and constantly say: Feature X is
already avail in excess but it's not in Dart.

That I say, but keep in mind that from the beginning I made clear I aint here to bash Dart, and that the original post was at the suggestion of one of the Dart advocates, I'm sorry if it rubbed you the wrong way.
 
If it is so, the build
up a user base like the guys from Opa did/do. There is for sure room
for interesting new language and there are surely some user in need of
it right now.

To answer your first question, that is what I'm trying to achieve here. Granted I'm not very good at it so I come to these forums to try and get some help. So, any pointers you can give me are appreciated, my first attempt at that was coming here.
 

Dart aims to be available in hopefully all Browsers some day. It is a
well-thought language which is still in alpha state. It is not
possible to provide all tools right now, but Googlers did one thing
right: with the early accessability of Dart, they made it possible
that great non-google-coders can do great stuff with Dart already.
Look at Dartwatch.com, were Chris maintains a list of great software
products.

That is too what I'm trying to do (make it available early) Excess just 2 days ago became what I would call "usable", so here I am, trying...
 

If one group can bring a new VM to all big browsers out there, than it
is the set of people we find here. My hope is they make it. I am very
sorry to say, but I don't have the same thinking about Excess.

If by the people here you mean the incredibly good Dart team I cannot match that. If you mean the great community, well, I'm trying to reach out... I'm not sure how much independent developing you have done, but it is incredibly hard to get people to even look at you. Do you suggest I just quit?
 

Another reason I will not switch to Excess: I can wait for Dart. This
language progresses in the right direction and I love it, as many here
do. I don't need another language.

Very understandable, the hope here is that not everyone will think the way you do.
 

On a technical perspective I have not seen anything which make me
excited on Excess.

Sorry to hear that.
 

>> E.g. IDE, tooling, debugability, static analysis, package manager and more
>> importantly the brand recognition to build a strong community, which will be
>> important considering it the primary source contributing libs to the package
>> manager.
>
> Even Google went the way of Eclipse (IDE, tooling, debugability) Something
> I'm already developing using Xtext and the tested and true java debugger
> (remember, my language already generates java code) So I see little
> advantage there.

With Dart I want to avoid Java-Code. I am Java-Coder at day, but I
really don't need that with Dart.

I probably not made myself quite clear... I meant java code behind the scenes + jsr45 + java debugger. The fact that there is java language in the backend will be completely transparent to the user. 
 

> Package Manager? That should be something that is not
> needed, I have always seen that as the language developers being lazy. xs
> provides a way so you dont have to include any packages, just code.

I disagree, package managers are necessary.
Developers might be lazy, but they need to take care of f.e. different
versions of code.

Again, probably not made myself clear... such managers are necessary, only they should happen in the background and away from the developer. I was hating on the import keywords, which is where devs get lazy. xs will never have one of those.
 


> will it ever run on iOS? Native linux? Hell, even Android??

It can be embedded and it has potential to run there. Whenever
somebody needs it there it will be available there. Recently I have
seen a mesage from somebody who embeds it on Android. No clue were the
journey leads us because I didn't speak to the bus driver. But there
is a good chance it does.

First of all I mean run there "natively", we all know Apple will never allow the embedding as they didn't allow Flash and I have the point of the importance of native things like UI. Excess has that capability by design.
 

> As for the
> server part I don't see Dart a "server" language, so, just because you can
> run it n the server it doesn't necessarily mean devs will want to.

What?
You can say the same about every language. Heck, even JavaScript
became a "server language", see Node.js.

Yeah, you got me there... I tried to say something that I didn't have clearly in my head. And talking about node.js... do you know excess generates code for it already? :)
 

> Even google has another server language (Go).

Which does not give say anything about Dart

> My point here was excess can run on
> any established platform (say, nodejs for servers) with very little effort
> on the part of the compiler maker. And the language provides ways for it to
> be a server language.

"just because you can run it n the server it doesn't necessarily mean
devs will want to"

This is along the lines of what I was trying to say before. Excess (not being tied to a VM) can be more flexible and actually look like a server language. For instance:

<application id="myServer">
    <service id="myService"/>
    <page id="home"/>
</appication>

See? server concepts like a template engine or web services... I don't feel Dart would have that flexibility any time soon. And, on top of that, the output will be a traditional, solid, node.js app that can run anywhere. For more info you can see this post.

Hope I clarified a bit...
 


> I don't disagree on the potential, I just see more potential (abstract app
> making potential) in xs. I don't see it blindly but I still provide about 30
> samples (I donwloaded the Dart editor and it came with 3) that take about
> 100loc to make and I don't see how you write them easily on Dart... maybe
> you could shed some light on it.

Have you looked at this?
http://code.google.com/p/dart/source/browse/#svn%2Ftrunk%2Fdart%2Fsamples

I saw it... and what I see is only one sample that could be consider "real life" (correct me if I'm wrong)
That sample was almost 1K LOC (935, without counting html + css). For reference, check this game that I feel is more complicated:


Goes for 140 LOC... will you argue that the amount of code the dev writes don't matter? 
 


The quality of a language should not be measured in the number of samples, btw

Languages, at the end, are meant to create real life apps, the amount of samples goes to show the amount of real life situations your language can tackle. Considering the link you provided, I just don't see many of those. Stuff like clocks or solar systems... not too real life. 
 


>> 3- What, not how: XS apps are first described in a data language (xml,
>> json). And that description gets merged seamlessly into your application.
>> This is not a new concept, but one that’s sorely lacking in Dart.
>>
>> This might be a stylistic/aesthetic preference/advantage because I surely
>> am not missing another XML declarative language. If there is demand for it,
>> it can just as easily code-gen into Dart and run where it does.
>
>
> People are sure not missing MFC and went running in droves to Flash, you
> cannot discount the power of visual editors. That is NOT stylistic. Btw,
> what did you mean by code-gen into Dart?

I never use visual editors and never did. It is stylistic to use such tools.

except VIM is a visual editor (or IntelliJ)

The development community at large, as well as history, disagrees with you. 
But you are certainly entitled to your preferences.
 



> There you either missed the point and certainly ignored most of the good
> stuff. But just to clarify: the keyword function in xs is pure syntactical
> sugar to lessen the learning curve.

I am fine with learning that I don't need unnecessary crap in my syntax.

Like?
 

> As is the java/c# syntax that is also
> included (see, you dont have to use function!) but the way xs designed
> methods and called... well... method. As in:
>
> method myMethod()
> {
>     ....
> }

For me this is a function, not a method. Methods refer at least in my
world to objects. Maybe others might think different, but well, this
is the problem with such keywords. After all I need to learn I need to
use "method" instead of "function". Tell my why that is better instead
of leaving it out?

That is in fact a method, that belongs to the "application" object. And I'm sorry, but did not understand your question of leaving out...

just to be clear on the method thing, the aforemention method (that you call a function) is the same as

class myClass
{
    method myMethod()
    {
        ....
    }

    //or
    function anotherMethod()
    {
       ...
    }

    //or
    private void yetAnotherMethod()
    {
       ....
    }
}

you choose...
 


> Missed point again, this was not about asynch (which, you must concede,
> kicks ass). asynch is only one of the DSLs available, and only in xs you
> could create your *own* DSL. So I'll give you another example:
>
> sql(connection = myConnection)
> {
>    myData = SELECT * FROM myTable
> }
>
> then myData takes an array of the results. Now, understand that this is a
> general mechanism and don't tell me the dev team is also looking into SQL
> queries :)

Who knows? Not everything is public yet.
Not sure if I like that syntax actually.

Care to share? The way I see it it says exactly what it does. Which is the point of DSLs and good languages, in general.
 


> Look, I know you trust the company to do anything it wants (and hell, you
> might be right) but they also fail. Case in point o3D, where they tried to
> add 3d graphics to the browser... xs? We already provide kick ass 3D
> capabilities without the huge burden of having to implement a 3D engine...
> in that vein, what 3D tools are available to Dart? Plain WebGL? There I can
> *guarantee* you devs are not gonna go into that because it has an immensely
> huge learning curve.

OK, again, what are you trying to achieve? Want to convince users to
migrate from Alpha-Dart to Production-Excess? Yes, the team might
fail, but as i look at Dart since it is published I can say the
interest has increased MUCH and LOTS have been done.

Not at all, I'm trying to create awareness, that's all. And btw, Excess is very sadly as alpha as Dart.
 

> In xs? Devs just write xml, same as they do for jQuery, canvas, or nodejs...
> one consistent general API. You must at least concede the value there.
>
> There you also ignored important points in 6-8... where are the animations
> tools? I'm sure the best developers in the world are working at them (or are
> they). Again... already available in xs.
>

Dart = Alpha-Language.

So is xs...
 

> Hey, would you let me play the victim card here? :) My larger point is... if
> with very limited resources we are able to provide a bunch of stuff not
> present in Dart, what could we do with a little budget!

move on to kickstarter. It seems you are very excited about your
language and you have some power. Get a funding.

That is a good suggestion, will definitively try it.
 

Looking at Excess site, you could improve your marketing here. For
example, I want a "learn excess in 5 minutes page".

Noted, thanks for the suggestion. This is exactly what I came here for...
 

After all I think you should build up a user base; you certainly will
not succeed when trying to convince others their toys are bad. Maybe
you should look a little at what Seth Ladd did for Dart and try to
emulate some of his things to make your language growing.

Again, I think you took it the wrong way... I tried to go out of my way to mention this was not to bash and that it was done at the suggestion of a Google Advocate. I just try to put some humor into things and sometimes it does backfire... What Seth Ladd and other advocates have is the ability to communicate and excite, plus a bully pulpit. Me? I suck at everything but writing code.

I regret being misunderstood as being saying: "Hurry, quit Dart", wasn't the intention.
 

In any case - good luck!

Cheers
Christian

Thanks!
 Emilio

Christopher Wright

unread,
Jul 24, 2012, 12:04:54 PM7/24/12
to Ladislav Thon, Shane Stevens, mi...@dartlang.org, xkp.s...@gmail.com
I know someone who used that to create his own keywords. You could write things like:

[1, 3, 5, 9] /map/ (x) => x*x

Of course, that requires special support for reverse operators as well as forward operators, so while you can do it in D and C# (and possibly C++?), you can't do it in Dart.

xkp.s...@gmail.com

unread,
Jul 24, 2012, 1:03:42 PM7/24/12
to mi...@dartlang.org, Shane Stevens, xkp.s...@gmail.com

Ladislav,

On Tuesday, July 24, 2012 4:17:01 AM UTC-4, Ladislav Thon wrote:
Purely technically, XS has some interesting points. But... where the heck is an entry point? Where does my program even start? Is there even such a thing, or the best I get is an "init" event? Come on... is XS even bootstrappable?

Every application contains an "application" object which is the de-facto entry point. In xs you don't have to classify objects in order to extend them. So, in this case the application object is being modified  the same way you can modify objects described in xml:

<button id="myButton" x="20" .../>

and then in xs:

instance myButton
{
    property myProp;
  
    method myMethod()
    {
    }
}
 
I find it very useful, but going back to the entry points... are they really that important? In my 20 years I might have modified one of those maybe twice and always for the wrong reasons (ie to hack the crap out of something). I my mind entre points are the epitomr of boilerplate code and my task in life is to get rid of those :)

I'm open to discussion, tho. 

 

Btw, a little self-promo: if someone wants to look at a DSL encoded in Dart, head over to http://ladicek.github.com/2012/05/27/abusing-operators-to-encode-a-testing-dsl.html You'll see that this is also valid Dart code:

var t = table * "a" * "b" * "c"
              | 3   | 4   | 5
              | 5   | 12  | 13
              | 7   | 24  | 25
              | 8   | 15  | 17
              | 9   | 40  | 41
              ;

expect
  * "it is a triple" / ((it) => it.length == 3)
  * "it is a Pythagorean triple" / ((it) => it.a * it.a + it.b * it.b == it.c * it.c)
  < each(t);

And to be clear, I'm only half-serious about it currently :-)

That is very cool, however, in my mind this classify as developer entertainment with limited real-life applications. Where as stuff like asynch, or sql do provide real means to simplify/guarantee correctness of very common tasks.
 
 

LT

Thanks for the input,
Emilio
 

Seth Ladd

unread,
Jul 24, 2012, 1:48:51 PM7/24/12
to xkp.s...@gmail.com, mi...@dartlang.org, Shane Stevens
One of the great aspects of the Open Web Platform is that everyone can introduce ideas and code. We believe multiple options for programming modern web apps is a good thing. If more developers from different platforms are building engaging, high performance apps for the web, then the web wins. In other words, there is room for choices and options, and we're happy to see multiple efforts to make web programming rock.

We can certainly discuss the Dart effort here, but I recommend that Emilio and other fans of Excess continue to show why Excess is awesome by keeping up with a steady stream of news, samples, and screencasts. Create a twitter account, a G+ account, and keep the news flowing.

I suggest we move discussion about Excess over to the Excess forums here: http://www.codexcess.com/forum/  (Note to Emilio, the link to General Discussion is busted :(

xkp.s...@gmail.com

unread,
Jul 25, 2012, 9:13:24 AM7/25/12
to mi...@dartlang.org, xkp.s...@gmail.com, Shane Stevens

Seth, 

Thanks and I couldn't have said it better. Before the discussion moves somewhere else I'd like to thank everybody for their comments and particularly to the advocates who participated in the conversation (Seth and JJ) for being so gracious and having web development's interests above any other. My only regret is not been able to get feedback from actual Dart developers (those writing the language), but one can't have everything :)

Everyone is invited to continue at http://www.codexcess.com/forum/ which now works (how embarrassing)

Cheers and the best of lucks to Dart,
Emilio
Reply all
Reply to author
Forward
0 new messages