Assuming that hidden classes (#2886) don't affect anything (I don't think it does, but I don't entirely understand the JEP), we can then formally tick javaparser off as supporting java 15... which would be rather nice! :D
After that, it's just records to go for java 16 support :)
@Betty-Wong However, I think it is useful to share experiences that were problematic.
Well, "problematic" for you. But why should I consider your personal interaction with somebody "problematic" for me? The whole thing is very novel to me. I use a lot of different open source tools in my work and the truth is that I almost never have any idea at all of the personalities of the various people who created those things. I honestly just never gave it much thought. To me, it is a very strange idea that I should decide on the tool stack to use in a project because of an opinion about a person I don't know, expressed by another person whom I also don't know. That, of course, is why I asked you whether you had any technical grounds for telling people not to even consider using JavaCC21. That's the question I'm interested in but you didn't answer it.
I use a lot of different open source tools in my work and the truth is that I almost never have any idea at all of the personalities of the various people who created those things.
Ditto. For the most part, the vast vast vast majority of people involved in open source are friendly -- OR, at the absolute least, civil. Being noticably offensive is (thankfully) the extremely rare exception within successful projects.
I think Linus Torvalds with the Linux kernel project is the only exception I can recall and that's only front of mind because it was in the headlines a short while back that he'd been forced to tone it down.
I wholly agree with you that the personality of the creators/maintainers of a project should normally not be noticeable.
... Which makes it extremely remarkable and a bit of a novelty when such offensive individuals make it onto the radar.
It is disappointing and shameful when someone is notable because of the way they interact rather than their technical ability.
Imagine, hypothetically, a project you use that is, on a technical consideration, extremely appealing... BUT it is extremely noticable that the maintainer is particularly hostile and offensive in reply to even the slightest bit of disagreement or (perceived) provocation.
Imagine if it then escalated to the point where absolutely foul language and hateful abusive emails are being sent, despite repeated requests to tone it down and pleas to keep it friendly/civil.
Imagine if it then escalated to the point that this individual actually goes ahead and registers domain names out of spite and continues the barrage of personal threats/insults.
For what reason would anybody continue to engage with somebody who is consistently like this and is consistently hard work to communicate with (e.g. one line email being returned with multiple essays, the content of which is often vile and offensive personal attacks)??
Most of us join open source communities (and then STAY) for the community. We do it for fun and gratification. There is (typically) no monetary reward. If it's not fun, don't do it. If you're snowed under at work or with family or whatever "real world" obligations and commitments you have -- whatever pays the bills and makes you happy absolutely MUST take priority. That is ever more relevant given the current global pandemic.
THAT is the reason several of us have such strong opinions about the project, despite being able to appreciate its progress on a technical level.
(I am inclined to think of this being analogous to boycotting a clothing company because of the vile views of it's owners re: oppressing LGBT rights or promoting child labour or bullying or some other horrid and offensive behaviour ---- even if the quality of the clothing (software) is technically amazing, I'm not going to shop there (use the software)... and if I feel particularly strongly I'll spread the word and encourage others to boycott that particular range of products (software) irrespective of how technically awesome it is)
@Nullable
annotations? Specifically I'm curious about whether it's possible to create a custom annotation that "extends" another (thus creating a single place that it can be swapped out/changed), but general thoughts/comments/experiences would be welcomed :)
Optional
. I introduced that a few years back, and I often wondered if it was a good decision. I think, by now, that I would prefer to replace all Optional
s with some kind of annotation. The only drawback is that you can't do fancy map/ifpresent stuff anymore.
Optional
usage and parameter null-checks did completely, 100% stamp out all null-pointer related issues. And there were a lot!
ifBinaryExpr
didn't exist yet: // Figure out what to get and what to cast simply by looking at the AST in a debugger!
I did not answer it because I did not make a technical analysis of that project for the reasons I explained.
Yes, so you say, but I'm still trying to make sense of it. You say that Mr. Revusky, the main developer of JavaCC21, sent you insulting emails, he was obviously infuriated at you, that seems clear enough, and according to you, this took place for absolutely no reason. "Totally unprovoked" was the term you used, and as a consequence, you make no "technical analysis" of the JavaCC21 project and also tell other people not do so. I have to be totally honest and say that your story just makes no sense. You know, actually, it seems like a trivial exercise in critical thinking to realize what really happened. More or less, anyway. You were adamantly ignoring Revusky's work and telling other people to do the same, and Revusky realized what you were doing, and as a consequence became infuriated at you. Surely that's what really happened, no? So, your version of events is inverting cause and effect. You claim that you are ignoring Revusky's work because he got infuriated at you. I mean, that makes no sense and the opposite direction of causality gives us a story that roughly makes sense. Revusky gets infuriated at you because you are ignoring his work and encouraging others to ignore it. I mean, c'mon. Even as famously irascible person as Mr. Revusky does not get that angry at people for absolutely no reason! So, that's my honest reaction to what you are saying. Though the other question is why we should care anyway. I mean, look, it's a rough and tumble world out there. For me and the other people on my team to care that Mr. Revusky flamed you, what, 6 months ago? Look, why don't you take it as a badge of honor? I see that far more worthy people than you have been flamed by Revusky. You should be proud! Besides, my woman's intuition tells me that you probably deserved to get flamed and you might as well take your lumps and not whine about it. Nobody likes a whiner, you know. I can tell you that women find it unattractive in a man.
(I am inclined to think of this being analogous to boycotting a clothing company because of the vile views of it's owners re: oppressing LGBT rights or promoting child labour or bullying or some other horrid and offensive behaviour ---- even if the quality of the clothing (software) is technically amazing, I'm not going to shop there (use the software)... and if I feel particularly strongly I'll spread the word and encourage others to boycott that particular range of products (software) irrespective of how technically awesome it is)
Well, well, young man! Correct me if I'm wrong, but you're some kind of naive student who has never really lived in the real world. Now, granted, I'm not in favour of oppressing LGBT people or anybody else, but I don't go to a clothing shop to get preached to about so-called gay rights or preach to other people about such things. Like any normal person, I go there to buy clothes. Most ordinary people are in a constant struggle to get to the end of the month, pay their bills, put food on the table and so on, and shopping in one place or another based on the politically incorrect views of the business's owner is a luxury they can't afford. It's really the kind of stuff that naive, idealistic students or academicians who never really grew up talk about.
Finally, though, I don't think that's the main point. You see, I have a fiduciary responsibility to my client to serve his/her/their best interest, right? That would mean recommending the best technical solutions, no? Or put it this way: even if I felt so strongly about "LGBT rights" or whatever social justice stuff, would it be right to saddle my client or employer with a technically inferior solution because of that? Far more likely than not, my client or employer does not give a hoot about so-called "gay rights" and just wants the best technical solution. So how do you resolve that inherent contradiction? I guess you could argue that you should only work for clients or companies that share the same beliefs as you, like just how important "gay rights" are, so that you are attuned on that question. But again, frankly, this is a concept typical of naive students who've never lived in the real world.
Maybe what it really gets down to is the concept of "due diligence". Mr. Tomassetti is suggesting that I dispense with any due diligence in terms of evaluating JavaCC21 because he doesn't like the tool's main author, Mr. Revusky. Suppose somebody asks me why I did not consider using JavaCC21, since it is pretty clearly the best tool in its space. So, did I doe due diligence when making that decision? And my answer is that there was no need for any such due diligence because somebody on the Internet told me he doesn't like Mr. Revusky... Mr. Revusky said some nasty things to him for absolutely not reason, so he says. But this is where it gets very weird. You guys don't like Mr. Revusky but it's pretty safe to say that Mr. Revusky doesn't like you guys very much. So, if I should not use his work because you guys don't like him, by the same logic, I should not use your work because he doesn't like you! And then there's always somebody who doesn't like somebody else, so pretty soon, I can hardly use any software product out there!
I don't know about you but my way of resolving these quandaries this is: I just ignore personal spats between people and do a proper technical evaluation of the various options in the space. That way, I meet the fiduciary obligation to my client and I can do work that I take pride in, to the best of my ability.
Well.. I'm not sure where to start... It seems we are going around in the exact same circles as before, just with a little less explicit profanity...
With respect to "Betty-Wong" -- On the balance of probabilities it appears that this is a puppet account created for the sole purpose of arguing about/for the fork of javacc. For that reason, I have banned this account. The "Betty Wong" account is brand new ("Joined yesterday"), has no projects and no activity on github, is coincidentally created just moments after the real "revusky" account got banned from this gitter channel (following the most recent spate of hostile emails).
This channel is public, which means you'll still be able to read this without being logged into the banned account - If I am wrong, then I do truly apologise. If you would like to contribute to or discuss javaparser, do feel free to message me directly about removing the ban.
For now, however, we really must draw a line under this, and return to javaparser-related chat.
re: the comments / the content of the sample project, I was lazy and just copied across the maven sample :wink:
both could probably use an update though :)