Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap #16

Open
BenjaminVanRyseghem opened this issue Aug 10, 2014 · 13 comments
Open

Roadmap #16

BenjaminVanRyseghem opened this issue Aug 10, 2014 · 13 comments
Labels

Comments

@BenjaminVanRyseghem
Copy link
Member

Fake issue to discuss Spec roadmap.

The goals so far are:

  • to improve the models API
  • to do a pass over the different layers to ensure the separation of concerns between models <-> adapters <-> widgets
  • to implement a Magritte like meta-description mechanism to build UI easily
  • to experiment with Mars for native UIs
@Ducasse
Copy link

Ducasse commented Aug 11, 2014

Here is my wishlist

  • check the extensions. I analyzed many Spec extensions and moved the extensions that were simply missing methods to their
    respective packages. But may be I missed some of them. I paid attention to conserve layers (model not getting in the widgets).
  • I would like that ReactiveVariable get renamed as NewValueHolder (because we have 15 years of books and concepts that use that name)
    It should take you less than 5 min to do it and it would be great that Spec does not diverge from concepts for the sake of it.
    • to do a pass over the different layers to ensure the separation of concerns between models <-> adapters <-> widgets
      => i imagine that this point is related to

      Could we remove the interpretation layer between Morphic adapter and Morphic. From a Morphic-adapter point of view I know that I'm talking to a Morph
      because this is my reason d'etre. I can help creating the delegating methods.

  • to implement a Magritte like meta-description mechanism to build UI easily
    => I will see if gary can show what he is doing. I hope that he will attend ESUG.
    Because he has all the widgets described with a kind of metadescription based on that he can build interactively UI
    and with some "type information" provide panes to control widgets.
    Did you watch the video is colleague from pinesoft sent around?
    https://www.youtube.com/watch?v=Izg_Dr2Cg7k&feature=youtu.be
    They could build a new UI in a couple minutes.
  • I do not remember exactly but while I was studying polymorph I saw that some widgets where only used once by Spec and I would like to see how we can
    remove this dependency (may be it was about menu).

@BenjaminVanRyseghem
Copy link
Member Author

Here is what wikipedia says:

A value holder is a generic object that handles the lazy loading behavior, and appears in place of the object's data fields

This is not the case for what we call 'NewValueHolder' just because it used to be called like that.
If you search google for "Reactive Variable" on the other hand, you find articles and papers about reactive programming, see this article.

So it seams to me that the name ValueHolder does not correspond now to what you are suggesting.

@Ducasse
Copy link

Ducasse commented Aug 11, 2014

Ben wikipedia is not about books or docs written on Smalltalk. I'm quite sure that you do not want me to give you the list of such books but I can if this is necessary.
Now you can impose this vocabulary for the sake of it but I find that silly. We have better things to do (at least me).

@BenjaminVanRyseghem
Copy link
Member Author

I think we better have to stick with what people in the world is expecting to see, rather than use terminology from 15yo out dated books.

If you find it silly, it's your right, but except bringing more complexity to new comers, using your own vocabulary is not helping.

@Ducasse
Copy link

Ducasse commented Aug 11, 2014

Ben seriously can you stop making statements like that. If you want to piss to mark your territory no need to argue. If you are serious and want to be credible just ask in the VisualWorks mailing-list what is a valueHolder or even in the esug mailing-lits and people will reply to you: I'm quite sure. Or you can tell them that there are obsolete :) they will appreciate. I learned VW back in 1995 should I should be obsolete :). It does not change it your argumentation is wrong. Now if instead of copying old concepts (I know I show it to you) of VisualWorks you invent new ones then you can freely give names the name you want.

@Ducasse
Copy link

Ducasse commented Aug 11, 2014

Ben I was rereading your statement I found it ridiculous. Now seriously why don't you ask in the esug mailing-list. I'm quite sure about the result. BTW for your culture activeVariable was used by KR language and framework back in the 80 to add triggering behavior on value changes. But I'm obsolete and proud of it.

@BenjaminVanRyseghem
Copy link
Member Author

If you could stop reading what you want to read, that could be nice.

So your point is to stick to how was named things in the 80s because it makes more sense than to stick to what people are used to today?

Should we have this discussion over minitel?

And if you find it so ridiculous, why spending 3 posts just bashing about that? Who is trying to piss to mark his territory here?

BTW aren't you just giving a counter-example to what you are saying by pointing KR language?

@Ducasse
Copy link

Ducasse commented Aug 11, 2014

Because this is important to not break concepts. But you do not respect this because you want to show that you are in control. Why don't you change semaphore too and call it blockingVariable?
About KR just think about it... I will you guess.
After it is better to be known as the person that has no culture than to be unknown :)

@BenjaminVanRyseghem
Copy link
Member Author

By calling a object used to react to modification a ValueHolder you are breaking the concept for 95% of the coders.

But if your idea is to put your balls on the tables showing that Smalltalk rules the world, please go ahead.

If you think it's an ego issue, please feel free. You clearly know better than me what ego issues are

@BenjaminVanRyseghem
Copy link
Member Author

And if all the world names a semaphore blockingVariable, then yes, maybe it should be renamed, despite the fact there is literature with your name on the cover talking about semaphores

@Ducasse
Copy link

Ducasse commented Aug 11, 2014

Ben you asked me why I'm concerned here are the real reasons:

  • I do not want that people can say that innovation in Pharo is just by renaming existing concepts.
  • When people using VW will come to Pharo they should not think that too and they should not get lost.
  • The books of X. Briffault, Bernard Horan, Tim Howard, Ivan Tomek, plus all the tutorial and docs of VisualWorks are using ValueHolder. Probably more but I did not have the time to check.
  • Now if Spec would be an external library that can be loaded in Pharo, I would not care and you could use the names you want. But Spec is part of Pharo.

Now really ask in the esug mailing-list to see what Smalltalkers thing. I'm all in favor of changing but not for the sake of it.

@StephanEggermont
Copy link

It might be better to have discussions on a linked issue, and only name the subjects here.

I'm probably too old to understand why developers should have a problem with ValueHolder.
Reactive variables are part of RFP, a subject that 95% of developers have never heard of,
and is extremely immature.

The wikipedia article is a bad copy of a page of Martin Fowlers Patterns of Enterprise Application Architecture. Reactive variables is not a subject in wikipedia, RFP is. Marcel Weiher already complains about not using lessons learned in: http://blog.metaobject.com/2014/03/the-siren-call-of-kvo-and-cocoa-bindings.html. Value Holder is a pattern described by Bobby Woolf in 1994 in http://c2.com/ppr/vmodels.html and referred to in much of the pattern literature.

@BenjaminVanRyseghem
Copy link
Member Author

Discussion about NewValueHolder vs ReactiveVariable could be continued here: #17

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants