This time making you all happy all again

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

This time making you all happy all again

Simon Asselbergs
Hi List,

What if I would start a project for an IDE specifically for haxe (and haxe target languages) which has this little solution:
  1. IDE layout switching as a visual display view, without altering underlying haxe code!!
  2. IDE shortcuts as a visual display, without altering underlying haxe code!!
ad 1.) a user can just toggle with or without layout switching, just a button
ad 2.) a user can define snippets with shortcuts, based on type context, keyshortcuts, and scriptable IDE_UI components so even some advanced native haxe code generation can be done.
ad3.) presettable on always, project, (maybe even at imports level). This way if you don't want such features you don't have to even see them.

Because all code is and will always be haxe syntax, and opened in other ide's or editors always be recognized as such, all complaints about operator overloading, syntax changes etc have become nonexistent, since the code remains pure haxe syntax. 

Now we could have all freedom, now one's freedom will not be at the cost of others (code sharing) and also not to the design(Nicolas). Maybe not so advanced as some of you would like, but not being in the way who don't like and not harmful for the community.

I want to start such project as soon as I finished a UI framework I am making, called Unify. Unify is meant to be a complete multi-target, very rich UI framework, but lean and mean  which my company has just kicked off. Unify will be complemented with a huge a very big library of components. And very easy to use, skin, and roll your own UI components. Unify is meant to be innovation over convention. This includes having declarative dataproviders, very testable passive view design and lots of other things. I need this Unify to be finished first before I want to start such GUI. Unify is a multi year effort, since it's very big in terms of research, design, documentation and production time. So the only sad thing is that this IDE I talk of I can only contribute if I have finished Unify at some extend. I don't like to be on two different projects, so that's the only minus for me: waiting. All will be open source using the haXe preferred licencing.

Does that make you all happier?

Or do I have to go to the drawing board and rethink the whole thing again?

Simon




--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
Hi List,

To be perfectly clear: The IDE will be written in multi target haxe, using unify lib for it's UI. So it will run crossplatform. I am a interaction designer(or UX designer if you will) so I am specialized in designing visual appealing, usable user interfaces.

Simon

On Sat, Oct 2, 2010 at 3:24 PM, Simon Asselbergs <[hidden email]> wrote:
Hi List,

What if I would start a project for an IDE specifically for haxe (and haxe target languages) which has this little solution:
  1. IDE layout switching as a visual display view, without altering underlying haxe code!!
  2. IDE shortcuts as a visual display, without altering underlying haxe code!!
ad 1.) a user can just toggle with or without layout switching, just a button
ad 2.) a user can define snippets with shortcuts, based on type context, keyshortcuts, and scriptable IDE_UI components so even some advanced native haxe code generation can be done.
ad3.) presettable on always, project, (maybe even at imports level). This way if you don't want such features you don't have to even see them.

Because all code is and will always be haxe syntax, and opened in other ide's or editors always be recognized as such, all complaints about operator overloading, syntax changes etc have become nonexistent, since the code remains pure haxe syntax. 

Now we could have all freedom, now one's freedom will not be at the cost of others (code sharing) and also not to the design(Nicolas). Maybe not so advanced as some of you would like, but not being in the way who don't like and not harmful for the community.

I want to start such project as soon as I finished a UI framework I am making, called Unify. Unify is meant to be a complete multi-target, very rich UI framework, but lean and mean  which my company has just kicked off. Unify will be complemented with a huge a very big library of components. And very easy to use, skin, and roll your own UI components. Unify is meant to be innovation over convention. This includes having declarative dataproviders, very testable passive view design and lots of other things. I need this Unify to be finished first before I want to start such GUI. Unify is a multi year effort, since it's very big in terms of research, design, documentation and production time. So the only sad thing is that this IDE I talk of I can only contribute if I have finished Unify at some extend. I don't like to be on two different projects, so that's the only minus for me: waiting. All will be open source using the haXe preferred licencing.

Does that make you all happier?

Or do I have to go to the drawing board and rethink the whole thing again?

Simon





--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
In reply to this post by Simon Asselbergs
Hi List,

And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!

I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.

Simon


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

David Bergman
Simon,

If you can create an IDE, that would be great. Some of us have tried to use existing IDE's and tailor them to fit haXe. This includes writing syntax handlers for Eclipse, TextMate, XCode and Emacs.

An advice from an old fart: do not underestimate the effort needed to create a usable IDE, and please have a look at the existing "configuration" attempts of existing mainstream first, to see if you could help improve them first.

/David

On Oct 2, 2010, at 9:39 AM, Simon Asselbergs wrote:

> Hi List,
>
> And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!
>
> I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.
>
> Simon
>
> --
> haXe - an open source web programming language
> http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Andy Li
In reply to this post by Simon Asselbergs
Hi Simon,

A visual abstraction to the haXe language is pretty interesting and I have similar idea too. But instead of displaying the syntax differently, my idea goes a bit further, it's creating a node-based visual programming interface to haXe, something looks like PureData and MAX/MSP, or the hypergraph in Maya (that 3D authoring tool). Well, just a thought.

But of course, a "traditional" IDE designed for and written in haXe will be good enough. And I'm looking forward to see your unify project.

Cheers,
Andy

On Sat, Oct 2, 2010 at 9:39 PM, Simon Asselbergs <[hidden email]> wrote:
Hi List,

And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!

I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.

Simon


--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
In reply to this post by Simon Asselbergs
Hi List,

I forgot to give an example also:

So this normal haxe code, in the vanilla mode of the IDE(watch also the coloring):

// using the plain mutable haxe List
var list<String>=new List();
list.add('a');
list.add('b');
list.add('c');

Now at the toggle of the button that same code will only be displayed differently(the same code form above is still left unaltered beneath the visual abstraction):

var list<String> :: List('a','b','c';

or you can customize it that it looks like this:
var list<String> :: List(a,b,c);

now the coloring is the last visual indication that a,b,c,d are in fact strings. It's not cryptic as we not only see the coloring, we also see list<String>.

note also even if the underlying real haxe code would be this:
var list=new List();
list.add('a');
list.add('b');
list.add('c');

it could still be visually abstracted as:
var list<String> :: List(a,b,c);

This was just to show how it completely leaves the code intact and how shortcuts mode looks like. I hope it also gives some sense of how configurable it should be.

However for those declarative guys with much verbose anonymous functions stuff (or monads) they can have the benefit of make it more readable and less verbose while editting:

Now we use a Stax example, a pure haxe lib but declarative style:

Underlying pure haxe code looks in vanilla mode like this:
public static function quicksort<T>(list: List<T>, cmp: T -> T -> Int): List<T> {
   return if (list.length <= 1) list;
   else {
      var head = list.head();
      var tail = list.tail();
      var lessThan = tail.filter(function(e) return cmp(e, head) < 0);
      var notLessThan = tail.filter(function(e) return cmp(e, head) >= 0);
      quicksort(lessThan).concat(quicksort(notLessThan).cons(head));
   }
}
and this will look like this in visual shorthand:
public static function quicksort<T>(list: List<T>, cmp: T -> T -> Int): List<T>
   return if (list.length <= 1) list
   else 
      var head = list.head()
      var tail = list.tail()
      var lessThan = tail.filter((e) return cmp(e, head) < 0)
      var notLessThan = tail.filter((e) return cmp(e, head) >= 0)
      quicksort(lessThan).concat(quicksort(notLessThan).cons(head))
of course more shortcuts can be possible, but already function looks nice:
instead of displaying:

function(n:String){ trace('Hello '+n); return null};

it's now displayed as:

(n:String) trace(Hello  + n) return null

And you can do so much more. Also because the code remains the same you can make a list look like an Array etc, while they still are treated differently (underlying code remains unaltered). And also nice is that the short cuts is visually applied when typing the shortcut (or keycombo shortcut, witch may have or not have a visualisation) and aware of context (type, interface, etc).

Maybe you could give some idea's of nice visual short cuts?

You can show your prettiest or ugliest, it doesn't matter: the only danger is that you could make the code look unreadable for yourself, not for others.

Simon

--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
In reply to this post by David Bergman
Hi David (y' ol' fart),

Thanks for the advice. I think I am an old fart to, so I have the privilege to call him such ;)

An advice from an old fart: do not underestimate the effort needed to create a usable IDE, and please have a look at the existing "configuration" attempts of existing mainstream first, to see if you could help improve them first.
 
I will only start after Unify. And I will probably only look at existing ones, but still make my own one. There is a bigger challenge and reward to waste my time in at least an innovative AND productive way. But ofcourse maybe such things can be done in other editors to. I hate the existing IDE's all plenty, mostly the bloated ones. I like flashdevelop much, though it's a quirky one and some things like refactoring are thing left for more improvement (but I expect that to be changed soon).

Simon

--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
In reply to this post by Andy Li
Hi Andy,

I have thought of that to, well 8 years ago or something. I have also a Master of Arts in Interactive Multimedia. So I have toyed around with pure data, max and also Maya (I believe Maya was just a new kid on the block then, version 1.0 i believe?)

The point is it may look as if it gives you a better abstraction for also normal programming (not just signal processing), but it doesn't. It's the same as thoroughly 3D interface desktop, it doesn't give extra oversight: if not very careful it only costs you oversight. 3D interface for a 3D editting makes more sense, but that doesn't mean it makes sense to usual code editting. Especially when on an intensive daily basis. Such an interface is nice for Pure data. The same goes for some kiddy programming interface for the Lego RCX. It was nice, for kids. Larger Visual programs means they take much more space, ofcourse you can zoom out, but it doesn't make it more readable.

You might like code bubble interfaces. I think if one would combine augment the tradionla ones in a smart way with code bubling, that would be nice.

Nice thought still ;)

Simon
 But if you want to do it, got for it.

On Sat, Oct 2, 2010 at 4:11 PM, Andy Li <[hidden email]> wrote:
Hi Simon,

A visual abstraction to the haXe language is pretty interesting and I have similar idea too. But instead of displaying the syntax differently, my idea goes a bit further, it's creating a node-based visual programming interface to haXe, something looks like PureData and MAX/MSP, or the hypergraph in Maya (that 3D authoring tool). Well, just a thought.

But of course, a "traditional" IDE designed for and written in haXe will be good enough. And I'm looking forward to see your unify project.

Cheers,
Andy

On Sat, Oct 2, 2010 at 9:39 PM, Simon Asselbergs <[hidden email]> wrote:
Hi List,

And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!

I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.

Simon


--

haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
In reply to this post by David Bergman
David,

Also, besides that. The itch to scratch is non bloated versatile cross platform IDE first including some decent use of hxml. And everyone can join in on this one.

Simon

On Sat, Oct 2, 2010 at 3:55 PM, David Bergman <[hidden email]> wrote:
Simon,

If you can create an IDE, that would be great. Some of us have tried to use existing IDE's and tailor them to fit haXe. This includes writing syntax handlers for Eclipse, TextMate, XCode and Emacs.

An advice from an old fart: do not underestimate the effort needed to create a usable IDE, and please have a look at the existing "configuration" attempts of existing mainstream first, to see if you could help improve them first.

/David

On Oct 2, 2010, at 9:39 AM, Simon Asselbergs wrote:

> Hi List,
>
> And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!
>
> I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.
>
> Simon
>
> --
> haXe - an open source web programming language
> http://haxe.org


--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Baluta Cristian
You are one of a kind, and you are modest also.
Creating an ide just for displaying the syntax differently? To give you some useful ideas: textmate bundle needs some more work. Also i have doubts it's possible to create any program that will fill as a native one on osx, win or linux in the same time.

On Sat, Oct 2, 2010 at 6:07 PM, Simon Asselbergs <[hidden email]> wrote:
David,

Also, besides that. The itch to scratch is non bloated versatile cross platform IDE first including some decent use of hxml. And everyone can join in on this one.

Simon


On Sat, Oct 2, 2010 at 3:55 PM, David Bergman <[hidden email]> wrote:
Simon,

If you can create an IDE, that would be great. Some of us have tried to use existing IDE's and tailor them to fit haXe. This includes writing syntax handlers for Eclipse, TextMate, XCode and Emacs.

An advice from an old fart: do not underestimate the effort needed to create a usable IDE, and please have a look at the existing "configuration" attempts of existing mainstream first, to see if you could help improve them first.

/David

On Oct 2, 2010, at 9:39 AM, Simon Asselbergs wrote:

> Hi List,
>
> And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!
>
> I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.
>
> Simon
>
> --
> haXe - an open source web programming language
> http://haxe.org


--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org



--
Băluță Cristian
http://ralcr.com
http://imagin.ro

--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
Hi Baluta,

You see a crossplatform IDE written in Haxe language with your own eyes, when you see one. First Unify (also a big project) then IDE. My itch is that the current IDE's wont do for me, flashdevelop does best, but not on all platforms.

There is nothing wrong with scepticism if you have so much doubts. It will be a big daunting project, for sure.  Well I have given my best shot to come up with an idea, I hope to surprise you when you completely forgotten about this email.

Cordially greetings, Simon 


On Sat, Oct 2, 2010 at 6:33 PM, Baluta Cristian <[hidden email]> wrote:
You are one of a kind, and you are modest also.
Creating an ide just for displaying the syntax differently? To give you some useful ideas: textmate bundle needs some more work. Also i have doubts it's possible to create any program that will fill as a native one on osx, win or linux in the same time.


On Sat, Oct 2, 2010 at 6:07 PM, Simon Asselbergs <[hidden email]> wrote:
David,

Also, besides that. The itch to scratch is non bloated versatile cross platform IDE first including some decent use of hxml. And everyone can join in on this one.

Simon


On Sat, Oct 2, 2010 at 3:55 PM, David Bergman <[hidden email]> wrote:
Simon,

If you can create an IDE, that would be great. Some of us have tried to use existing IDE's and tailor them to fit haXe. This includes writing syntax handlers for Eclipse, TextMate, XCode and Emacs.

An advice from an old fart: do not underestimate the effort needed to create a usable IDE, and please have a look at the existing "configuration" attempts of existing mainstream first, to see if you could help improve them first.

/David

On Oct 2, 2010, at 9:39 AM, Simon Asselbergs wrote:

> Hi List,
>
> And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!
>
> I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.
>
> Simon
>
> --
> haXe - an open source web programming language
> http://haxe.org


--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org



--
Băluță Cristian
http://ralcr.com
http://imagin.ro

--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Nathan
In reply to this post by Simon Asselbergs
Simon Asselbergs wrote:
> What if I would start a project for an IDE specifically for haxe (and haxe
> target languages) which has this little solution:

may be worth considering expanding eclihx for such a need, eclipse is
already cross platform, and there are many examples and a big community
who could help when you have questions + a waiting familiar market when
you're done.

It's written in Java and so far "works" and it's quite easy to haxe away at.

Regards

--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
In reply to this post by Simon Asselbergs
Andy,

I am coming back on it just a slight bit. You just got me thinking a bit again. Thanks! I still doubt it's well-suited-ness for code editting. How ever signal processing (especially live) has to remain a simple algo, otherwise performance lacks. And audio programming is a very elegant model, very composable building blocks which make it so.

Declarative programming is also build on the same composability. This may not be interesting for a complte view of the code (as the space is still too large), however if you could visually build declarative parts this woudl be indeed awesome!!!! 

But remember also, declarative programming (against an declarative implementation) is not always desirable, as some declarative algo's might not be performant enough. However it may be much easier for newbe's to learn and use declarative algo's on pure functional immutable data collections!!! Great. Thanks for the inspiration. I am really getting an old fart ;)

Simon


On Sat, Oct 2, 2010 at 4:46 PM, Simon Asselbergs <[hidden email]> wrote:
Hi Andy,

I have thought of that to, well 8 years ago or something. I have also a Master of Arts in Interactive Multimedia. So I have toyed around with pure data, max and also Maya (I believe Maya was just a new kid on the block then, version 1.0 i believe?)

The point is it may look as if it gives you a better abstraction for also normal programming (not just signal processing), but it doesn't. It's the same as thoroughly 3D interface desktop, it doesn't give extra oversight: if not very careful it only costs you oversight. 3D interface for a 3D editting makes more sense, but that doesn't mean it makes sense to usual code editting. Especially when on an intensive daily basis. Such an interface is nice for Pure data. The same goes for some kiddy programming interface for the Lego RCX. It was nice, for kids. Larger Visual programs means they take much more space, ofcourse you can zoom out, but it doesn't make it more readable.

You might like code bubble interfaces. I think if one would combine augment the tradionla ones in a smart way with code bubling, that would be nice.

Nice thought still ;)

Simon
 But if you want to do it, got for it.

On Sat, Oct 2, 2010 at 4:11 PM, Andy Li <[hidden email]> wrote:
Hi Simon,

A visual abstraction to the haXe language is pretty interesting and I have similar idea too. But instead of displaying the syntax differently, my idea goes a bit further, it's creating a node-based visual programming interface to haXe, something looks like PureData and MAX/MSP, or the hypergraph in Maya (that 3D authoring tool). Well, just a thought.

But of course, a "traditional" IDE designed for and written in haXe will be good enough. And I'm looking forward to see your unify project.

Cheers,
Andy

On Sat, Oct 2, 2010 at 9:39 PM, Simon Asselbergs <[hidden email]> wrote:
Hi List,

And also ofcourse using only visual operator overloading and visual layoutswitching, no spaces will be added and again no underlying code will be any different than the code you now write, since it's only a visual abstraction nothing more!

I just want to be very clear now, not want to upset people who might be seeing ghosts which aren't there or might interpret things very different than I want, considering my previous communication clumsyness. Sorry for this maybe unnecessary additional explanation.

Simon


--

haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org



--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

John A. De Goes
In reply to this post by Simon Asselbergs

Stax desperately needs a declarative GUI library, built on its reactive library. So I hope you can consider working with the Stax team on this project. :-)

Many libraries start at the GUI and work down to some middle ground; then as a programmer, you have to work up from the data to get to the middle ground. And nearly every library is completely imperative, with a vast amount of boilerplate (wiring of view + controller). There's a lot of room to produce a GUI library that starts from the data (moving all the way up the stack) and is as declarative as reactive programming permits.

Regards,

John A. De Goes
Twitter: @jdegoes 
LinkedIn: http://linkedin.com/in/jdegoes

On Oct 2, 2010, at 7:24 AM, Simon Asselbergs wrote:

Hi List,

What if I would start a project for an IDE specifically for haxe (and haxe target languages) which has this little solution:
  1. IDE layout switching as a visual display view, without altering underlying haxe code!!
  2. IDE shortcuts as a visual display, without altering underlying haxe code!!
ad 1.) a user can just toggle with or without layout switching, just a button
ad 2.) a user can define snippets with shortcuts, based on type context, keyshortcuts, and scriptable IDE_UI components so even some advanced native haxe code generation can be done.
ad3.) presettable on always, project, (maybe even at imports level). This way if you don't want such features you don't have to even see them.

Because all code is and will always be haxe syntax, and opened in other ide's or editors always be recognized as such, all complaints about operator overloading, syntax changes etc have become nonexistent, since the code remains pure haxe syntax. 

Now we could have all freedom, now one's freedom will not be at the cost of others (code sharing) and also not to the design(Nicolas). Maybe not so advanced as some of you would like, but not being in the way who don't like and not harmful for the community.

I want to start such project as soon as I finished a UI framework I am making, called Unify. Unify is meant to be a complete multi-target, very rich UI framework, but lean and mean  which my company has just kicked off. Unify will be complemented with a huge a very big library of components. And very easy to use, skin, and roll your own UI components. Unify is meant to be innovation over convention. This includes having declarative dataproviders, very testable passive view design and lots of other things. I need this Unify to be finished first before I want to start such GUI. Unify is a multi year effort, since it's very big in terms of research, design, documentation and production time. So the only sad thing is that this IDE I talk of I can only contribute if I have finished Unify at some extend. I don't like to be on two different projects, so that's the only minus for me: waiting. All will be open source using the haXe preferred licencing.

Does that make you all happier?

Or do I have to go to the drawing board and rethink the whole thing again?

Simon



--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
Stax desperately needs a declarative GUI library, built on its reactive library. So I hope you can consider working with the Stax team on this project. :-)

Most definitely yes !!!!!!!!!!

Many libraries start at the GUI and work down to some middle ground; then as a programmer, you have to work up from the data to get to the middle ground. And nearly every library is completely imperative, with a vast amount of boilerplate (wiring of view + controller). There's a lot of room to produce a GUI library that starts from the data (moving all the way up the stack) and is as declarative as reactive programming permits.

Couldn't formulate it any better :) !!

Simon



--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Niel Drummond-3
In reply to this post by John A. De Goes
I disagree to some extent. Libraries like ExtJs, dojo and SceneJs, are declarative, using HTML or a mixed JSON/javascript syntax. The problem with declarative syntax is that you start mixing the role of the controller and the view - you will start programming event mechanisms in sections that declare layout constructs.

- Niel

On 10/03/10 03:36, John A. De Goes wrote:

Stax desperately needs a declarative GUI library, built on its reactive library. So I hope you can consider working with the Stax team on this project. :-)

Many libraries start at the GUI and work down to some middle ground; then as a programmer, you have to work up from the data to get to the middle ground. And nearly every library is completely imperative, with a vast amount of boilerplate (wiring of view + controller). There's a lot of room to produce a GUI library that starts from the data (moving all the way up the stack) and is as declarative as reactive programming permits.

Regards,

John A. De Goes
Twitter: @jdegoes 
LinkedIn: http://linkedin.com/in/jdegoes

On Oct 2, 2010, at 7:24 AM, Simon Asselbergs wrote:

Hi List,

What if I would start a project for an IDE specifically for haxe (and haxe target languages) which has this little solution:
  1. IDE layout switching as a visual display view, without altering underlying haxe code!!
  2. IDE shortcuts as a visual display, without altering underlying haxe code!!
ad 1.) a user can just toggle with or without layout switching, just a button
ad 2.) a user can define snippets with shortcuts, based on type context, keyshortcuts, and scriptable IDE_UI components so even some advanced native haxe code generation can be done.
ad3.) presettable on always, project, (maybe even at imports level). This way if you don't want such features you don't have to even see them.

Because all code is and will always be haxe syntax, and opened in other ide's or editors always be recognized as such, all complaints about operator overloading, syntax changes etc have become nonexistent, since the code remains pure haxe syntax. 

Now we could have all freedom, now one's freedom will not be at the cost of others (code sharing) and also not to the design(Nicolas). Maybe not so advanced as some of you would like, but not being in the way who don't like and not harmful for the community.

I want to start such project as soon as I finished a UI framework I am making, called Unify. Unify is meant to be a complete multi-target, very rich UI framework, but lean and mean  which my company has just kicked off. Unify will be complemented with a huge a very big library of components. And very easy to use, skin, and roll your own UI components. Unify is meant to be innovation over convention. This includes having declarative dataproviders, very testable passive view design and lots of other things. I need this Unify to be finished first before I want to start such GUI. Unify is a multi year effort, since it's very big in terms of research, design, documentation and production time. So the only sad thing is that this IDE I talk of I can only contribute if I have finished Unify at some extend. I don't like to be on two different projects, so that's the only minus for me: waiting. All will be open source using the haXe preferred licencing.

Does that make you all happier?

Or do I have to go to the drawing board and rethink the whole thing again?

Simon



--
haXe - an open source web programming language
http://haxe.org



--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
Hi Neil,
I have two questions:

Question 1:
The problem with declarative syntax is that you start mixing the role of the controller and the view - you will start programming event mechanisms in sections that declare layout constructs.
Can you explain a bit more? ( I am not sure what you mean.)

Question 2:
Are you a Stax user?

Simon


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Niel Drummond-3
1 e.g. (from extjs samples)
// create the editor grid
    var grid = new Ext.grid.EditorGridPanel({
        store: store,
        cm: cm,
        renderTo: 'editor-grid',
        width: 600,
        height: 300,
        autoExpandColumn: 'common', // column with this id will be expanded
        title: 'Edit Plants?',
        frame: true,
        // specify the check column plugin on the grid so the plugin is initialized
        plugins: checkColumn,
        clicksToEdit: 1,
        tbar: [{
            text: 'Add Plant',
            handler : function(){
                // access the Record constructor through the grid's store
                var Plant = grid.getStore().recordType;
                var p = new Plant({
                    common: 'New Plant 1',
                    light: 'Mostly Shade',
                    price: 0,
                    availDate: (new Date()).clearTime(),
                    indoor: false
                });
                grid.stopEditing();
                store.insert(0, p);
                grid.startEditing(0, 0);
            }
        }]
    });

notice there is a function in the same block as width and height assignments. this is mixing view (width and height) with controller (function calling a datastore).

2 No

- Niel


On 10/04/10 23:13, Simon Asselbergs wrote:
Hi Neil,
I have two questions:

Question 1:
The problem with declarative syntax is that you start mixing the role of the controller and the view - you will start programming event mechanisms in sections that declare layout constructs.
Can you explain a bit more? ( I am not sure what you mean.)

Question 2:
Are you a Stax user?

Simon



--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

Simon Asselbergs
Ok. First of all I am not planning to use what you call declarative: ExtJs, dojo or SceneJS . There aren't many declarative user component frameworks, and the few that exist I think are very cumbersome.

Secondly before I was using Stax I was interested in imperative like MVC and MVP. They are a boilerplate mess and hard to test. Mixin javascript and some html, that's really something completely different, than I am doing. Look to Stax, and you know what I mean. The UI component framework I am going to make must be purely functionial, and use a reactive programming model that fits in that category. So It certainly not even remotely look like MVC, or MVP. Then pattern I will let inspire me will be passive view, but without the imperative sinks and wiring. It will possibly look and be an entirely new pattern, because it will be declarative. After I studied all kinds of GUI models for haskell and many other pure fucntional languages, I have yet to see  something solid. I am not going to repeat those mistakes. It must be better. As I am a interaction designer (which includes designing front ends), I have a lot of reasons to be very picky, even way more picky than a very untypical programmer who would actually care much about user interfaces.

Third, if you don't use Stax (and you say you don't) you won't probably use the UIcomponents framework anyways, since they will become part of Stax. So there is probably nothing close to a problem to disagree on.


--
haXe - an open source web programming language
http://haxe.org
Reply | Threaded
Open this post in threaded view
|

Re: This time making you all happy all again

John A. De Goes
In reply to this post by Niel Drummond-3

Those frameworks aren't truly declarative.

Declarative = no assignment (just definition), no mutation, no event handlers (a handler must perform mutation to have some side effect), etc.

Marc Weber recently brought to my attention Ur, a programming language with declarative front-end. There's also some stuff for ocaml and sml (there are projects to convert the code to JS), and Flapjax for JavaScript. In total, only a handful of FRP interfaces to GUI programming, and none (probably) that you are familiar with.

Regards,

John A. De Goes
Twitter: @jdegoes 
LinkedIn: http://linkedin.com/in/jdegoes

On Oct 5, 2010, at 6:07 AM, Niel Drummond wrote:

I disagree to some extent. Libraries like ExtJs, dojo and SceneJs, are declarative, using HTML or a mixed JSON/javascript syntax. The problem with declarative syntax is that you start mixing the role of the controller and the view - you will start programming event mechanisms in sections that declare layout constructs.

- Niel

On 10/03/10 03:36, John A. De Goes wrote:

Stax desperately needs a declarative GUI library, built on its reactive library. So I hope you can consider working with the Stax team on this project. :-)

Many libraries start at the GUI and work down to some middle ground; then as a programmer, you have to work up from the data to get to the middle ground. And nearly every library is completely imperative, with a vast amount of boilerplate (wiring of view + controller). There's a lot of room to produce a GUI library that starts from the data (moving all the way up the stack) and is as declarative as reactive programming permits.

Regards,

John A. De Goes
Twitter: @jdegoes 
LinkedIn: http://linkedin.com/in/jdegoes

On Oct 2, 2010, at 7:24 AM, Simon Asselbergs wrote:

Hi List,

What if I would start a project for an IDE specifically for haxe (and haxe target languages) which has this little solution:
  1. IDE layout switching as a visual display view, without altering underlying haxe code!!
  2. IDE shortcuts as a visual display, without altering underlying haxe code!!
ad 1.) a user can just toggle with or without layout switching, just a button
ad 2.) a user can define snippets with shortcuts, based on type context, keyshortcuts, and scriptable IDE_UI components so even some advanced native haxe code generation can be done.
ad3.) presettable on always, project, (maybe even at imports level). This way if you don't want such features you don't have to even see them.

Because all code is and will always be haxe syntax, and opened in other ide's or editors always be recognized as such, all complaints about operator overloading, syntax changes etc have become nonexistent, since the code remains pure haxe syntax. 

Now we could have all freedom, now one's freedom will not be at the cost of others (code sharing) and also not to the design(Nicolas). Maybe not so advanced as some of you would like, but not being in the way who don't like and not harmful for the community.

I want to start such project as soon as I finished a UI framework I am making, called Unify. Unify is meant to be a complete multi-target, very rich UI framework, but lean and mean  which my company has just kicked off. Unify will be complemented with a huge a very big library of components. And very easy to use, skin, and roll your own UI components. Unify is meant to be innovation over convention. This includes having declarative dataproviders, very testable passive view design and lots of other things. I need this Unify to be finished first before I want to start such GUI. Unify is a multi year effort, since it's very big in terms of research, design, documentation and production time. So the only sad thing is that this IDE I talk of I can only contribute if I have finished Unify at some extend. I don't like to be on two different projects, so that's the only minus for me: waiting. All will be open source using the haXe preferred licencing.

Does that make you all happier?

Or do I have to go to the drawing board and rethink the whole thing again?

Simon



--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org


--
haXe - an open source web programming language
http://haxe.org
12