On Thu, Nov 24, 2016 at 11:31 AM, Rob Tompkins <chtom...@gmail.com> wrote:
> > > On Nov 24, 2016, at 1:58 PM, Gary Gregory <garydgreg...@gmail.com> > wrote: > > > > I just found that longestCommonPrefix does not exist in [lang]... let's > > sort through what we have first before we imagine ourselves more > headaches > > ;-) > > > > Fair, I more meant to pose an interesting example of where I think the > boundary between text and lang is, and I’m completely with you that it > seems squarely on the boundary. > > With that in mind, what are the thoughts on the original question now that > we’ve explored where we think the boundary is? On one hand the mechanics > behind string escaping seem to lie completely in text, but on the other the > use case of it seem to lie more in lang. > For me, String escaping belongs in text because the content domain of the strings are HTML, XML, JSON and other types of documents. These types of documents are "text" and I would not expect HTML, JSON, and XML to belong in java.lang and java.util. It's way above that. Gary > Cheers, > -Rob > > > Gary > > > > On Thu, Nov 24, 2016 at 10:55 AM, Gary Gregory <garydgreg...@gmail.com> > > wrote: > > > >> > >> > >> On Thu, Nov 24, 2016 at 5:54 AM, Rob Tompkins <chtom...@gmail.com> > wrote: > >> > >>> > >>>> On Nov 22, 2016, at 4:38 PM, Gary Gregory <garydgreg...@gmail.com> > >>> wrote: > >>>> > >>>> On Tue, Nov 22, 2016 at 12:04 PM, Benedikt Ritter <brit...@apache.org > > > >>>> wrote: > >>>> > >>>>> Hello Gilles > >>>>> > >>>>> Gilles <gil...@harfang.homelinux.org> schrieb am Di., 22. Nov. 2016 > um > >>>>> 20:55 Uhr: > >>>>> > >>>>>> On Tue, 22 Nov 2016 19:40:30 +0000, Benedikt Ritter wrote: > >>>>>>> Gary Gregory <garydgreg...@gmail.com> schrieb am Sa., 19. Nov. > 2016 > >>>>>>> um > >>>>>>> 19:09 Uhr: > >>>>>>> > >>>>>>>> On Nov 19, 2016 9:50 AM, "Gilles" <gil...@harfang.homelinux.org> > >>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> On Sat, 19 Nov 2016 08:59:50 -0800, Gary Gregory wrote: > >>>>>>>>>> > >>>>>>>>>> On Sat, Nov 19, 2016 at 3:33 AM, Benedikt Ritter > >>>>>>>> <brit...@apache.org> > >>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Hello Gray, > >>>>>>>>>>> > >>>>>>>>>>> Gary Gregory <garydgreg...@gmail.com> schrieb am Sa., 19. Nov. > >>>>>>>> 2016 um > >>>>>>>>>>> 01:07 Uhr: > >>>>>>>>>>> > >>>>>>>>>>>> Just a thought: > >>>>>>>>>>>> > >>>>>>>>>>>> Does all the current (and future) string escaping code (XML, > >>>>>>>> HTML, > >>>>>>>> ...) > >>>>>>>>>>>> really belong in [lang]? Would it be more natural to have it > >>>>>>>> in > >>>>>>>> [text]? > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> My view on the whole think currently is, that we put stuff that > >>>>>>>> is > >>>>>>>> related > >>>>>>>>>>> to strings in Lang. Code that works on texts should go to Text. > >>>>>>>> To me a > >>>>>>>>>>> text is more than just a string. A text contains works, that > >>>>>>>> make up > >>>>>>>>>>> sentences, which in turn build paragraphs. > >>>>>>>>>>> > >>>>>>>>>>> Using this description, I'd argue that escaping belongs into > >>>>>>>> lang and > >>>>>>>> not > >>>>>>>>>>> into text, because it works on individual characters rather > than > >>>>>>>> on > >>>>>>>> texts. > >>>>>>>>>>> > >>>>>>>>>>> But this would also raise the question if the various edit > >>>>>>>> distance > >>>>>>>>>>> algorithms works on texts or on strings. So maybe my > distinction > >>>>>>>> is not > >>>>>>>>>>> good at all. > >>>>>>>>>>> > >>>>>>>>>>> Do we need to better specify the scope of text? > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> Great question of course. > >>>>>>>>>> > >>>>>>>>>> I'd like to think of [lang] as "What is missing from the JRE's > >>>>>>>> most > >>>>>>>> basic > >>>>>>>>>> classes and specifically from the java.lang package and some > >>>>>>>> java.util > >>>>>>>>>> classes". > >>>>>>>>>> > >>>>>>>>>> Quoting from our site: > >>>>>>>>>> > >>>>>>>>>> "The standard Java libraries fail to provide enough methods for > >>>>>>>>>> manipulation of its core classes. Apache Commons Lang provides > >>>>>>>> these > >>>>>>>> extra > >>>>>>>>>> methods. > >>>>>>>>>> Lang provides a host of helper utilities for the java.lang API, > >>>>>>>> notably > >>>>>>>>>> String manipulation methods, basic numerical methods, object > >>>>>>>> reflection, > >>>>>>>>>> concurrency, creation and serialization and System properties. > >>>>>>>> Additionally > >>>>>>>>>> it contains basic enhancements to java.util.Date > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> How about "Date" becoming a nice standalone component? ;-) > >>>>>>>>> [Components should be concept-based.] > >>>>>>>> > >>>>>>>> Joda-time covers more than we will ever do here IMO. And Java 8 > has > >>>>>>>> new > >>>>>>>> time APIs... maybe when lang is Java 8 based we can look again. > For > >>>>>>>> now I'd > >>>>>>>> rather leave dates as is. > >>>>>>>> > >>>>>>> > >>>>>>> Yes, let's get back to topic. > >>>>>>> > >>>>>>> I think we need a clear distinction between string related stuff > that > >>>>>>> goes > >>>>>>> into Lang and more complex stuff that goes into text. > >>>>>> > >>>>>> IMHO "more complex" is key, not so much "string" vs "text". > >>>>>> > >>>>>> Hence I suggest [text] is a better place for "RandomStringUtils" > >>>>>> than [lang], and the former should allow dependencies as a > >>>>>> foundation for that complexity; in that case, that would be > >>>>>> "Commons RNG". > >>>>>> > >>>>> > >>>>> I find it hard to draw a line here. What might be complex to me, > could > >>> be > >>>>> simple for others. I fear that there will always be discussions. > >>>>> > >>>> > >>>> Then we can focus on a feature request with a different lens: Would > you > >>>> reasonably expect this to be in java.lang or java.util. > >>> > >>> Let’s consider an example that I would ask about here. Consider the > >>> “longestCommonPrefix” method: > >>> > >>> public static int longestCommonPrefix(final String s1, final String > s2) { > >>> int i = 0; > >>> while (i < s1.length() && i < s2.length() && s1.charAt(i) == > >>> s2.charAt(i)) { > >>> i++; > >>> } > >>> return i; > >>> } > >>> I would think that this would end up in text because I doubt many folks > >>> would use this in standard application code. What are other’s thoughts? > >>> > >> > >> This is 50/50 in my mind because there is no "domain" like words, > >> sentences, and so on. This is really about churning through a string for > >> some condition. > >> > >> That said, moving it to [text] could be an opportunity to change the API > >> name. Why is it longestCommonPrefix and not just commonPrefix? What > would > >> a shortestCommonPrefix is what I think when I see "longest". > >> > >> Gary > >> > >> > >>> > >>> -Rob > >>> > >>>> > >>>> Gary > >>>> > >>>>> > >>>>> > >>>>>> > >>>>>> Regards, > >>>>>> Gilles > >>>>>> > >>>>>>> > >>>>>>> > >>>>>>>> > >>>>>>>> Gary > >>>>>>>>> > >>>>>>>>> How about deprecating "RandomUtils"? > >>>>>>>>> [(About to be) superseded by "Commons RNG".] > >>>>>>>>> > >>>>>>>>> How about to > >>>>>>>>> * moving "RandomStringUtils" to [text] too and > >>>>>>>>> * implement it against a custom interface (as per Jochen's > >>>>>>>> remark) > >>>>>>>>> rather than "java.util.Random" > >>>>>>>>> ? > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> and a series of utilities > >>>>>>>>>> dedicated to help with building methods, such as hashCode, > >>>>>>>> toString and > >>>>>>>>>> equals." > >>>>>>>>>> > >>>>>>>>>> I do not think edit distances fit into this at all. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> +1 > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> I am also questioning whether string escaping belongs in lang as > >>>>>>>> well > >>>>>>>> since > >>>>>>>>>> there are so many escaping domains XML, HTML, JSON, and so on. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> They don't belong. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> IMO, anything that is word based does not belong in lang like > >>>>>>>>>> capitlization. The WordUtils class should be in [text] IMO. The > >>>>>>>> whole > >>>>>>>> lang > >>>>>>>>>> text package should be in [text] IMO. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> +1 > >>>>>>>>> [To anything that imposes a strict diet on the humongous > >>>>>>>> "components".] > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Regards, > >>>>>>>>> Gilles > >>>>>>>>> > >>>>>> > >>>>>> > >>>>>> ------------------------------------------------------------ > --------- > >>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >>>>>> For additional commands, e-mail: dev-h...@commons.apache.org > >>>>>> > >>>>>> > >>>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >>>> Java Persistence with Hibernate, Second Edition > >>>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl? > >>> ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&link > >>> Code=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > >>>> > >>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >>> am2&o=1&a=1617290459> > >>>> JUnit in Action, Second Edition > >>>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl? > >>> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&link > >>> Code=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4 > 18%22> > >>>> > >>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >>> am2&o=1&a=1935182021> > >>>> Spring Batch in Action > >>>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl? > >>> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&link > >>> Code=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Bli > >>> nk_id%7D%7D%22%3ESpring+Batch+in+Action> > >>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= > >>> am2&o=1&a=1935182951> > >>>> Blog: http://garygregory.wordpress.com > >>>> Home: http://garygregory.com/ > >>>> Tweet! http://twitter.com/GaryGregory > >>> > >>> > >> > >> > >> -- > >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > >> Java Persistence with Hibernate, Second Edition > >> <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > >> > >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1617290459> > >> JUnit in Action, Second Edition > >> <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22 > > > >> > >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1935182021> > >> Spring Batch in Action > >> <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1935182951> > >> Blog: http://garygregory.wordpress.com > >> Home: http://garygregory.com/ > >> Tweet! http://twitter.com/GaryGregory > >> > > > > > > > > -- > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > > Java Persistence with Hibernate, Second Edition > > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1617290459> > > JUnit in Action, Second Edition > > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22 > > > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1935182021> > > Spring Batch in Action > > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1935182951> > > Blog: http://garygregory.wordpress.com > > Home: http://garygregory.com/ > > Tweet! http://twitter.com/GaryGregory > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> JUnit in Action, Second Edition <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> Spring Batch in Action <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory