Pharo Video Tutorial: Package Tags
In this Episode of "Pharo Video Tutorial" we take a look at "Package tags" and how we can use them to organise our classes and packages to make our lives easier https://www.youtube.com/watch?v=Q2Vwg_0RMVU&list=PLqbtQ7OkSta0ULYAd7Qdxof851...
On Wed, Jun 3, 2015 at 3:34 PM, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
In this Episode of "Pharo Video Tutorial" we take a look at "Package tags" and how we can use them to organise our classes and packages to make our lives easier
https://www.youtube.com/watch?v=Q2Vwg_0RMVU&list=PLqbtQ7OkSta0ULYAd7Qdxof851...
Looks good. Thanks kilon. but maybe we should to change the dialog title from "Create new category" to "Create new package tag" ?? cheers -ben
Since Tags have a different behaviour than Packages, I think we should. (specially when adding comments, which Packages support and Tags don't) â
Guys I would not use sub-packages. Think about newbies please. We have packages and tags and ideally I would remove tags but we will not because else people will cry. Stef Le 3/6/15 12:30, Sergio Fedi a écrit :
Since Tags have a different behaviour than Packages, I think we should. (specially when adding comments, which Packages support and Tags don't)
â
Le 04/06/2015 21:30, stepharo a écrit :
Guys
I would not use sub-packages. Think about newbies please. We have packages and tags and ideally I would remove tags but we will not because else people will cry.
I would cry because I remember Pharo going through the RPackage without tags idea and how it was killed and replaced by RPackage + Tags. (It's there somewhere in AltBrowser github history, along with the Spec version of AltBrowser... looked and felt exactly like today's packageName + tags, by the way ) Thierry
Stef
Le 3/6/15 12:30, Sergio Fedi a écrit :
Since Tags have a different behaviour than Packages, I think we should. (specially when adding comments, which Packages support and Tags don't)
â
On Wed, Jun 3, 2015 at 1:19 PM, Sergio Fedi <sergio.fedi@gmail.com> wrote:
If something is a tag, then you should be able to apply multiple tags to something.
Well you sort-of can do that. Consider how many packages have tag "Tests" in it. They don't need to be globally unique and it makes sense to use the very same tag in different packages... so at least for me tag is perfectly fitting name. On Thu, Jun 4, 2015 at 9:35 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Le 04/06/2015 21:30, stepharo a écrit :
Guys
I would not use sub-packages. Think about newbies please. We have packages and tags and ideally I would remove tags but we will not because else people will cry.
Why would you want to remove them? What is the damage they are incurring? I find them very useful for organization and judging by packages of other people I am not alone. Peter
If something is a tag, then you should be able to apply multiple tags to something. Well you sort-of can do that. Consider how many packages have tag "Tests" in it. They don't need to be globally unique and it makes sense to use the very same tag in different packages... so at least for me tag is perfectly fitting name.
If you could use Tags as tags, then you could have this Car -> Model CarTest -> Model, Tests CarFactory -> Factories CarFactoryTest -> Factories, Tests Thus, you could browse different groups of classes anyway you want: *Has tag: *Model *Classes: *Car, CarTest *Has tag: *Model, no-Tests *Classes: *Car *Has tag: *Tests *Classes: *CarTest, CarFactoryTest *Has tag: *Factores, Tests *Classes: *CarFactoryTest Imagine then that you could also make tags to show which classes implement a certain Pattern, so now you could browse different implementations of a specific Pattern all accoress your image. Tagging in any domain is an extremely useful feature. So is adding notes/comments, but that's another topic.
On Sat, Jun 6, 2015 at 7:30 AM, Sergio Fedi <sergio.fedi@gmail.com> wrote:
If something is a tag, then you should be able to apply multiple tags to something. Well you sort-of can do that. Consider how many packages have tag "Tests" in it. They don't need to be globally unique and it makes sense to use the very same tag in different packages... so at least for me tag is perfectly fitting name.
If you could use Tags as tags, then you could have this
Car -> Model CarTest -> Model, Tests CarFactory -> Factories CarFactoryTest -> Factories, Tests
Thus, you could browse different groups of classes anyway you want:
Has tag: Model Classes: Car, CarTest
Has tag: Model, no-Tests Classes: Car
Has tag: Tests Classes: CarTest, CarFactoryTest
Has tag: Factores, Tests Classes: CarFactoryTest
Imagine then that you could also make tags to show which classes implement a certain Pattern, so now you could browse different implementations of a specific Pattern all accoress your image.
Tagging in any domain is an extremely useful feature. So is adding notes/comments, but that's another topic.
I am not clear on the internals dealing with "tag" , but in your example I guess the tags needs to be associated with classes, but our current "tag"s are associated with a packages? If tags are used how you describe, I wonder if our package "categories" then become tag filter expressions. Perhaps GT-Tests-Spotter makes a good example, tagging classes as: Exceptions; Scripting; and Mocks. You might simultaneously have filter categories: * Exceptions * Scripting * Mocks * Exceptions,Mocks * Scripting,Mocks cheers -ben
The examples you listed are awesome. When I first saw Tags on the system browser I thought they behaved that way.
I am not clear on the internals dealing with "tag" , but in your example I guess the tags needs to be associated with classes, but our current "tag"s are associated with a packages?
Yeah at least to me it feels that it is associated more with packages. GT-Tests-Spotter makes a good example, tagging classes as: Exceptions;
Scripting; and Mocks. You might simultaneously have filter categories: * Exceptions * Scripting * Mocks * Exceptions,Mocks * Scripting,Mocks
To me this seems like unreasonable amount of extra effort and shit ton of cognitive load with no obvious benefit. Sure, tags are powerful in theory; but to make them work you need to apply them consistently throughout the whole system to get the benefit. _For me_ this seems like unproportinal amount of effort with little gain. E.g. Gmail allows to tag emails, yet I treat it very hierarchically; that way I there is always only one way --- the most meaningful of them to get to it; otherwise I would have to think about all the various contexts in which it could be accessed. So getting back to Pharo's tags, I like the fact that there are some common namings, such as many packages will have tags like "Examples", or "Tests", however I still fail to see why would you want to put one class into multiple tags and what the benefit would be. Peter
So getting back to Pharo's tags, I like the fact that there are some common namings, such as many packages will have tags like "Examples", or "Tests", however I still fail to see why would you want to put one class into multiple tags and what the benefit would be.
In my case I have a hard time dealing with hierarchical categorizations, I haev plenty of aspects of my code that runs accross in different ways. One case is the Model/Web/Application vs Tests, which they can be combined orthogonally. Another aspect is that I have classes that belong to different layers: Application, Interface-Web, Interface-Windows, Interface-CommandLine, Commands, Model, Persistence But them several of these classes belong to different "modules" or sets of functionality: Clients, Providers, Administration, Production With a Tag scheme, I can arbitrarily browse: All commands that are in the Provider module Persistence Tests Classes from Production and Persistence (which should be empty)
Le 06/06/2015 14:57, Sergio Fedi a écrit :
So getting back to Pharo's tags, I like the fact that there are some common namings, such as many packages will have tags like "Examples", or "Tests", however I still fail to see why would you want to put one class into multiple tags and what the benefit would be.
In my case I have a hard time dealing with hierarchical categorizations, I haev plenty of aspects of my code that runs accross in different ways.
One case is the Model/Web/Application vs Tests, which they can be combined orthogonally.
Another aspect is that I have classes that belong to different layers: Application, Interface-Web, Interface-Windows, Interface-CommandLine, Commands, Model, Persistence But them several of these classes belong to different "modules" or sets of functionality: Clients, Providers, Administration, Production
With a Tag scheme, I can arbitrarily browse:
All commands that are in the Provider module Persistence Tests Classes from Production and Persistence (which should be empty)
At the moment, tags are a bit strict (i.e. hierarchically included with packages) because of their relation with system categories (one per class). But elsewhere in the system (i.e. packages) they aren't that significant (for example, they don't appear in packages). So, we could do what you say (allow for multiple tags to a class) in a compatible way with system categories with a slightly different syntax (and some changes to RPackage): a category of: PackageName-Interface/Windows Would say that those classes belong to tags Interface and Windows The system browser could just then either parse the category (split by $- for the package name, then split by $/ to get multiple tags) or rely on RPackage to do so. Thierry
how that would improve Pharo ? On Thu, Jun 4, 2015 at 10:30 PM stepharo <stepharo@free.fr> wrote:
Guys
I would not use sub-packages. Think about newbies please. We have packages and tags and ideally I would remove tags but we will not because else people will cry.
Stef
Le 3/6/15 12:30, Sergio Fedi a écrit :
Since Tags have a different behaviour than Packages, I think we should. (specially when adding comments, which Packages support and Tags don't)
â
thanks I dont like the name "tag" its too generic. I would prefer something like "Create new sub-package" On Wed, Jun 3, 2015 at 12:43 PM Ben Coman <btc@openinworld.com> wrote:
On Wed, Jun 3, 2015 at 3:34 PM, Dimitris Chloupis <kilon.alios@gmail.com> wrote:
In this Episode of "Pharo Video Tutorial" we take a look at "Package tags" and how we can use them to organise our classes and packages to make our lives easier
https://www.youtube.com/watch?v=Q2Vwg_0RMVU&list=PLqbtQ7OkSta0ULYAd7Qdxof851...
Looks good. Thanks kilon.
but maybe we should to change the dialog title from "Create new category" to "Create new package tag" ??
cheers -ben
I have several issues with this part of the system. If something is a tag, then you should be able to apply multiple tags to something. If not, then they are, as you say, subpackages. â
Sergio Fedi wrote
If something is a tag, then you should be able to apply multiple tags to something.
If not, then they are, as you say, subpackages.
Agreed. Actually, tags are more interesting as they would be much more valuable to users, who want a logical domain view of the system. Currently, the package tree we provide is more a Package Browser than a System Browser. And... tags are orthogonal to packages. The way we use them, sub-packages seems more correct. ----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-Video-Tutorial-Package-Tags-tp4830133p4830290.ht... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
+1 to subpackages as denomination for tags if they're going to be used only to organize things hierarchically inside a package instead of used across packages. Cheers, Offray On 03/06/15 13:42, Sean P. DeNigris wrote:
Sergio Fedi wrote
If something is a tag, then you should be able to apply multiple tags to something.
If not, then they are, as you say, subpackages. Agreed. Actually, tags are more interesting as they would be much more valuable to users, who want a logical domain view of the system. Currently, the package tree we provide is more a Package Browser than a System Browser.
And... tags are orthogonal to packages. The way we use them, sub-packages seems more correct.
----- Cheers, Sean -- View this message in context: http://forum.world.st/Pharo-Video-Tutorial-Package-Tags-tp4830133p4830290.ht... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
participants (8)
-
Ben Coman -
Dimitris Chloupis -
Offray Vladimir Luna Cárdenas -
Peter Uhnák -
Sean P. DeNigris -
Sergio Fedi -
stepharo -
Thierry Goubier