Hi everyone, Nobody mentioned it, but I often designed my code through interfaces.
So I would write Samuel code like this: List<Etudiant> etudiants = Groupe.blabla Because I used often java libraries and I didn’t care about implementation. All the best, Philippe > On 3 Feb 2025, at 13:18, Samuel Pelletier via Webobjects-dev > <webobjects-dev@lists.apple.com> wrote: > > HI, > > Those NS collections where essentials in the first java WO mainly because at > that time Java did not had real collections classes (they appeared in Java > 1.8), and the name was probably kept to help porting. I did not switch to > java WO at that time and maintained some objective-C apps for a long time! > > I mostly use the NS versions because I'm still on EOF and uses ERXKey for > sort orderings, qualifier building and aggregate computation to have type > checking: > > - EOQualifier qualifier = > Evenement.DATE.greaterThanOrEqualTo(dateDebut()).and(Evenement.DATE.lessThanOrEqualTo(dateFin())); > - ERXKey.sum(ContratRetenue.NB_HEURES).valueInObject(retenues); > - NSArray<Etudiant> etudiants = > Groupe.ETUDIANTS_ACTIFS.atFlatten().arrayValueInObject(evenement.groupes()); > - sortOrderings = Evenement.DATE.asc() > .then(Evenement.ORDRE_AFF_MOIS_SALLE.asc()) > > .then(Evenement.GROUPE_PRINCIPAL.dot(Groupe.SEMESTRE_DEBUT.dot(Semestre.DATE_DEBUT)).desc() > .then(Evenement.HEURE_DEBUT.asc())); > > I still think those are more readable than creating lambda, probably mostly > explained because I'm use to the syntax. > > Is there something like ERXKey when using Cayenne ? > > Regards, > > Samuel > > >> Le 2 févr. 2025 à 07:21, Amedeo Mantica via Webobjects-dev >> <webobjects-dev@lists.apple.com> a écrit : >> >> Iirc the NS collections were there due to simplifying porting of apps from >> objc to Java. I don’t think there is any big difference in performance >> >> Sent from my iPhone >> >>> On 2 Feb 2025, at 12:18, Jérémy DE ROYER via Webobjects-dev >>> <webobjects-dev@lists.apple.com> wrote: >>> >>> Hi all, >>> >>> Even if I still use EOF (due to inheritance limitations of Cayenne), I >>> followed Hugi’s precepts : >>> - « use 100% java native whenever possible » >>> >>> One other advantage when working in a team… is that 100% java is widely >>> documented and exampled... and it's more attractive to newbees. >>> >>> Sorry if I don’t « really » answer the question 😄 >>> >>> Jérémy >>> >>>> Le 2 févr. 2025 à 11:13, Hugi Thordarson via Webobjects-dev >>>> <webobjects-dev@lists.apple.com> a écrit : >>>> >>>> When I made the switch to Java collections I did do some benchmarking. >>>> Haven’t got the code anymore (this was a decade ago) but at that time, the >>>> Java collection classes were faster, but the operations were really so >>>> fast in both cases that the differences were negligible — at that time. >>>> >>>> Since then, a decade of improvements has happened in the Java collections >>>> so I think we can guess where you’ll find performance improvements — and >>>> will keep getting performance improvements. On one hand you have old >>>> classes written in an old version of Java, on the other hand you have >>>> actively maintained open source classes used by millions of programmers >>>> and maintained by the performance-obsessed authors of Java and the JDK >>>> itself. >>>> >>>> And now for the opinion piece: >>>> Unless you’re writing extremely performance-sensitive code — even if the >>>> foundation collections were faster I think it makes sense to use Java >>>> collections and write to the standard Java collection APIs where you don’t >>>> *need* foundation collections, because If you’re using foundation specific >>>> APIs, your code is really already obsolete at the time of writing. I never >>>> regretted the switch and have hardly seen an NS* collection class in my >>>> code in years, except where explicitly required as a parameter for passing >>>> into WO APIs. (that story may be a little different if you’re using EOF >>>> which uses the NS collections everywhere, so this may not apply in that >>>> case). >>>> >>>> The Java collection classes do have their warts, the most obvious one to >>>> us coming from the NS* world being the non-API-differentiation between >>>> mutable and immutable collections (weird design oversight) but that hasn't >>>> plagued me, really. It’s just something you’re aware of and don’t really >>>> hit often. >>>> >>>> Another one for us WO users is that you can’t use KVC operators on Java >>>> collections (someArray.@sortAsc, .@sum etc). When I made the switch I >>>> always thought I’d miss these hugely and planned to write operator support >>>> into ERXComponent’s valueForKeyPath(), but never got around to it since I >>>> really didn’t miss the operators, preferring to keep my logic in Java >>>> rather than templates (compile time errors and refactoring support are >>>> awesome things). >>>> >>>> Probably just saying things you know — but I thought it might have some >>>> value hearing from someone that moved to Java collections and doesn’t >>>> regret it. >>>> >>>> Cheers, >>>> - hugi >>>> >>>> >>>>> On 2 Feb 2025, at 00:29, ocs--- via Webobjects-dev >>>>> <webobjects-dev@lists.apple.com> wrote: >>>>> >>>>> Hi there, >>>>> >>>>> did ever anybody tried some benchmarks to find whether it is better to >>>>> use WO collections (NSArray, NSDictionary...) as widely as possible (ie >>>>> essentially anywhere, unless one really needs to store nulls or can't do >>>>> without ConcurrentHashMap or so), or whether it's better to use standard >>>>> collections (List, HashMap...) wherever they happen to work properly >>>>> (which is surprisingly often, but not anywhere)? >>>>> >>>>> Are they roughly comparable, or are one or the others considerably better? >>>>> >>>>> Thanks! >>>>> OC >>>>> >>>>> _______________________________________________ >>>>> Do not post admin requests to the list. They will be ignored. >>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>> Help/Unsubscribe/Update your Subscription: >>>>> https://lists.apple.com/mailman/options/webobjects-dev/hugi%40karlmenn.is >>>>> >>>>> This email sent to h...@karlmenn.is >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/jeremy.deroyer%40ingencys.net >>>> >>>> This email sent to jeremy.dero...@ingencys.net >>> >>> _______________________________________________ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/amedeomantica%40me.com >>> >>> This email sent to amedeomant...@me.com >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com >> >> This email sent to sam...@samkar.com > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/prabier%40icloud.com > > This email sent to prab...@icloud.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com