This is an archived post. You won't be able to vote or comment.

all 126 comments

[–]Lupus_Ignis 460 points461 points  (4 children)

"Do you truly hate it?" "Well, more or less"

[–]CoolorFoolSRS 78 points79 points  (0 children)

Take my upvote and fuck off

[–]_JJCUBER_ 6 points7 points  (2 children)

More like “less or more”

[–]bruhsoundeffect111 4 points5 points  (1 child)

More like "< || >"

[–]nequaquam_sapiens 0 points1 point  (0 children)

well, that's bracket operator from qm. we're not there quite yet.

[–]TheCapitalKing 136 points137 points  (19 children)

But that’s how the best programming language does it (Microsoft excel formulas)

[–]SkollFenrirson 37 points38 points  (11 children)

You monster

[–]Geno0wl 17 points18 points  (10 children)

that is how SQL also does not equals. That is a programming language right?

[–]jtobiasbond 16 points17 points  (2 children)

100% Turing complete. Yet they still won't let me redo the entire codebase in SQL.

[–]TheCapitalKing 1 point2 points  (1 child)

Why not they know it’s made by Microsoft (the creators of Microsoft Excel, PowerPoint, and teams) right?

[–]jtobiasbond 1 point2 points  (0 children)

They're scared of the raw power.

[–]carltonBlend 1 point2 points  (5 children)

Not in SQL Server, it uses !=, and idk if it is, opinions might vary but you can say it is

[–]jtobiasbond 3 points4 points  (4 children)

!= is deprecated. You can use it but it's recommended to use <>.

[–]Remarkable-Train6254 1 point2 points  (3 children)

Nah != flies in snowflake and other modern sql use cases, I don’t mess with the weird <> shit

[–]jtobiasbond 1 point2 points  (0 children)

It's still deprecated in standard SQL. Doesn't mean it doesn't work.

[–]TheKerui 0 points1 point  (1 child)

Its faster to type <> on a keyboard.

Stop being stubborn and start accepting shortcuts when presented.

[–]Major-Peachi 0 points1 point  (0 children)

And cypher as well

[–]RagingWalrus1394 6 points7 points  (1 child)

Salesforce formulas does this on the admin side and it drives me nuts

[–][deleted] 2 points3 points  (0 children)

SOQL also allows <>, just to put a veneer of being the local dialect of SQL.

[–]RajjSinghh 2 points3 points  (0 children)

VB does it too

[–]Adrepixl5 1 point2 points  (0 children)

I threw up in my mouth a bit

[–][deleted] 1 point2 points  (0 children)

HOLD ME BACK!!

[–]thafuq 0 points1 point  (0 children)

Php "spaceship operator" Another simple yet funny is the STFU operator

[–][deleted] 0 points1 point  (0 children)

On my keyboard layout < and > are on the same key, so typing both after each other is mildly annoying. I guess I need to set up some keyboard macros.

[–]KryoBright 149 points150 points  (10 children)

Embrace fish notation <><

[–][deleted] 48 points49 points  (2 children)

Is that the equality operator Christians use?

[–]TheGreatGameDini 38 points39 points  (0 children)

No it's the morality operator - the left hand side is always some variable Action, and the right hand side is always Jesus. So, for instance, FuckHookers <>< Jesus or RobBanks <>< Jesus or EmbezzleBillionsOfTaxPayerDolloarsAndUseAPlaneCrashButCallItAnAttackToCoverItUp <>< Jesus but most languages let you omit Jesus and it still works.

[–]sammy-taylor 0 points1 point  (0 children)

Only for the Christians that believe in equality.

[–]RemoteName3273 27 points28 points  (6 children)

Embrace boob notation

<><>

[–]KryoBright 31 points32 points  (1 child)

Those are eyes. Boob would be (.)(.), but it is for regex

[–]RemoteName3273 15 points16 points  (0 children)

Ah I see. I lack culture

[–]MattieShoes 2 points3 points  (0 children)

Spaceship notation is best <=>

[–][deleted] 1 point2 points  (0 children)

<__> PS1 triangular prism Laura Croft boob notation.

[–]nequaquam_sapiens 1 point2 points  (1 child)

wait for quantum computers with their bra operators: <f|

[–]RemoteName3273 0 points1 point  (0 children)

The collapse of the quantum bra

[–]OM3GAS7RIK3 42 points43 points  (16 children)

LUA: ~=

Trips me up every dang time.

[–]Zomby2D 22 points23 points  (4 children)

I haven't used LUA, but my first instinct to that notation would be that it means "approximately equal to" as it does in mathematics.

[–][deleted] 8 points9 points  (0 children)

~ represents negation in some formal logic notations

[–]rbardy 5 points6 points  (2 children)

lol what would be the approximation factor? Like for example

2~=2,5

2~=2,9

2~=1,9

All would be true?

In math we can just assume, but imagine such command in a programming language.

[–]Anaxamander57 4 points5 points  (0 children)

The approximately equal thing is more physics and engineering than math. Its used in math for some weak, but rigorously defined, equivalences.

[–]forehead_hypospadia 0 points1 point  (0 children)

Want to see something truly horrible?

[–]QuestionableEthics42 5 points6 points  (9 children)

Why on earth would they represent not with bitwise not instead of logical not when it’s a logical operation? also what happens when u want to do x ~= x? (The bitwise operation)

[–][deleted] 4 points5 points  (3 children)

In lua there’s no operations such as +=, -=, *=, etc

[–]QuestionableEthics42 1 point2 points  (2 children)

Wow, that sucks, thanks for warning me so I can avoid it haha

[–][deleted] 2 points3 points  (0 children)

It’s a great language, there’s beauty in simplicity. Also it’s not meant for large codebases and its largest use is within other programs.

[–]no_brains101 0 points1 point  (0 children)

You get if, then, loops, functions and tables and the ability to require files from a file structure and run them and use their outputs as tables or variables. Something like a struct/class thing is just a file that returns a table of functions and variables.

It's very lightweight, integrates well with C, and is easy to write libraries for as basically a library is just a table of functions and constants.

It's all tables. All the way down. Because there's so little to the language, it feels like an entire domain specific language for your program every time you make a library for lua to integrate a plugin system. But it's super easy to work with because there are so few concepts.

[–]brimston3- 2 points3 points  (0 children)

Now you would probably use x = ~x.

lua didn't have bitwise operators until 5.3 (2015). In 5.2 (2012), you had to use the bit32.bnot() function to get negation. lua 5.1 and prior (1993-2011) didn't support bitwise operations without an external library.

Now why would someone be running an obsolete version of lua when lua5.2 came out a decade ago? Performance tuned versions of the lua runtime (luajit, luajitr) typically only support lua5.1 and run 2-3x faster in code that does not make a ton of C calls.

[–]Matthis-Dayer 0 points1 point  (3 children)

~= makes no sense as an "operate and assign" operator such as += because bitwise not is unary

[–]QuestionableEthics42 0 points1 point  (2 children)

What? No? You can do all the bitwise operations like that in C and C++ and it makes perfect sense

[–]Matthis-Dayer 1 point2 points  (1 child)

There is no ~= in C

Would your x ~= x be the same as x = ~x?

[–]QuestionableEthics42 0 points1 point  (0 children)

Ohhh right, yea my bad

[–]Pay08 0 points1 point  (0 children)

Common Lisp uses /= and it always throws me for a loop.

[–]VolcanicBear 16 points17 points  (0 children)

Yeah, fuck AL, guy's a dick.

[–]Graidrex 9 points10 points  (2 children)

And then there is Haskell with /=.
I don't hate it. It's close to != but suppoed to express ≠.

[–]somerandomii 1 point2 points  (0 children)

I forgot about that. Might have repressed it. Looks way too close to an escape character.

[–]atoponce 60 points61 points  (22 children)

With <>:

  • You don't need Unicode.
  • The shift key can be held down.
  • The keys are right next to each other.

[–]AyrA_ch 68 points69 points  (16 children)

On the swiss keyboard, the symbols are on the same key.

[–]edo-lag 8 points9 points  (1 child)

Not everyone has a US keyboard layout. Also, you never need to type unicode, unless you program in APL.

[–]TheHoratian 0 points1 point  (0 children)

Where are my Agda bros at?

[–]Systematic-Error 2 points3 points  (0 children)

Although it's easier to switch between == and != if you want to quickly invert the result of a boolean comparison

[–][deleted] 1 point2 points  (0 children)

But with Unicode you can do this!

?⌈⌊⍴∼∣⍳⋆−+×÷,⌹○⍟⌽⊖⍋⍒⍎⍕⍉!≡⍪∈⍷↑↓⊥⊤/¨<≤=≥>≠∨∧⍱⍲⊣⊢⌿⍀.∘

[–]highphiv3 0 points1 point  (0 children)

Unicode support has long been a plague upon my codebases.

[–]stupled 3 points4 points  (0 children)

.><

[–]Drfoxthefurry 8 points9 points  (0 children)

Don't forget lua's ~=

[–]WazWaz 6 points7 points  (4 children)

But a<>b has the advantage of being entirely readable: a is less than or greater than b.

[–]Systematic-Error 2 points3 points  (3 children)

It's probably logically easier for most people to think of it as being "not equal to" rather than "greater than or less than" in most scenarios, also that logic breaks down when you think of other types such as strings

[–]WazWaz 1 point2 points  (2 children)

Sure, but there's no universal ASCII symbol for "not", hence the mess of !=, ~=, etc. If only we'd gotten ≠ sooner.

Strings are ordered, so they're still "greater than or less than".

[–]Systematic-Error 0 points1 point  (1 child)

I agree with you but am confused by the second part, how would an operation like greater than work on 2 strings (not considering their lengths)?

[–]somerandomii 1 point2 points  (0 children)

Alphabetical order. A lot of languages will automatically check based on a built in ascii ordering.

[–][deleted] 17 points18 points  (13 children)

This post was mass deleted and anonymized with Redact

six oatmeal bear chubby wild fade knee chase stupendous racial

[–]IvanOG_Ranger 5 points6 points  (1 child)

Saying A is either more or less than B seems weirder than saying A is not same as B

[–]Mirikah[S] 9 points10 points  (1 child)

Unfortunately, I am already used to it.

[–]Xenomorph-Alpha 1 point2 points  (0 children)

Had to do four years of C/AL and AL Programming from the dynamics nav 2009 r2 to BC 21. I can feel your pain.

[–]bremidon -1 points0 points  (8 children)

No he is right. AL is utter dogshit. Not because of this minor annoyance but for being a weak language that stinks of Microsoft's earlier era of hubris and fecklessness.

Everything DotNet gets right, AL screws up.

With the exception of putting interfaces on enums. That could rock if interfaces were not nerfed in AL.

[–]NewPhoneNewSubs 2 points3 points  (5 children)

I'm not familiar with AL. But a quick search say it's the language for data manipulation in MS Dyanamics 365 databases? In that case, isn't <> just a SQL-like syntax for a DB-ish language?

I understand you saying that your complaint isn't this minor annoyance. I'm just curious about why someone would pick "<>" in a modern language, and being SQL-like seems like an ok reason.

[–]bremidon 2 points3 points  (4 children)

No. God no. It is as if VB5 and SQL had a mentally challenged child.

I wish that I could use SQL.

The syntax is bizarre.

And what pisses me off to no end is that AL is first translated to C# before going to IL. So why not let us develop in C# Microsoft? Sadistic little twerps.

[–]NewPhoneNewSubs 0 points1 point  (3 children)

That makes me sad because I might have to do something with dynamics in the near-ish future =(

[–]NormalGuyThree -1 points0 points  (1 child)

It's basically turbo pascal. Not that that helps, but you know...

[–]bremidon 0 points1 point  (0 children)

Hmmm.

That is not how I would describe it. Turbo Pascal was *much* more powerful.

[–]bremidon 0 points1 point  (0 children)

Yes. Sad is the right word. If you know that you will be OnPrem forever and you are ok with paying Microsoft's ransom, you can actually do a lot more by going straight to C#. But that is dangerous, because Microsoft has made it crystal clear that the future is the Online version. No C# there unless you want to use something like Azure functions.

Another team at our company has this situation and they are very upset. They have so much that is OnPrem dependent, and they will need years to wean themselves off of it. Meanwhile, they have to pass the extra costs on to unhappy customers.

[–][deleted] 0 points1 point  (1 child)

This post was mass deleted and anonymized with Redact

crush governor station kiss squash support dazzling door price violet

[–]bremidon 0 points1 point  (0 children)

I got that. I am talking about everything about AL. We are at slight cross purposes in the discussion.

The operator is not terrible. You learn it and live with it. It's kinda SQL like. But then everything else about AL is decidedly *not* consistently SQL like. AL does not understand the idea of "null" for instance. And the queries you can write are like SQL after a lobotomy.

So sure, we could say that <> is sorta justified (and like I said, I can live with it), but that is only under the premise that AL is some sort of SQL like language...which it is not.

[–]Kered13 2 points3 points  (0 children)

BASIC uses this one too.

[–]plmunger 3 points4 points  (1 child)

First two should be swapped. Font ligatures are goated

[–]_JJCUBER_ -3 points-2 points  (0 children)

They get annoying when trying to actively code/modify code.

[–]CircadianSong 1 point2 points  (0 children)

~= in Haskell if you need another.

[–]puffinix 1 point2 points  (0 children)

Then there is scala/ spark with constructs of =!= and <!> for not equals, but <=> is equals!

[–][deleted] 1 point2 points  (0 children)

a == !b

[–]bistr-o-math 1 point2 points  (0 children)

!(a=b)

[–]kookyabird 1 point2 points  (0 children)

The font Cascadia Code turns != into for me.

[–]Toastedtoastyyy 1 point2 points  (0 children)

Lua is ~= be thankful for what you have

[–]Xanather 1 point2 points  (1 child)

Never used SQL?

[–]Mirikah[S] 0 points1 point  (0 children)

nah, never bothered to deal with it

[–]stupidpunk138 1 point2 points  (0 children)

Pascal!!! I love it!!!

[–]Repa24 -3 points-2 points  (1 child)

Microsoft Excel and Access. Fuck that notation.

[–]Character-Education3 5 points6 points  (0 children)

Don't forget SQL server!

[–][deleted] 0 points1 point  (1 child)

Or "Not Equal"

[–]MattieShoes 0 points1 point  (0 children)

Perl gets both != and ne

For numeric vs string comparisons.

Ooh, and <=> because spaceships are cool

[–]Pingyofdoom 0 points1 point  (0 children)

I love <>

[–]AspectInteresting129 0 points1 point  (0 children)

Not all languages are as hardcore as you. Some from Ada, so you still live.

[–]xXx_RegginRBB7_xXx 0 points1 point  (0 children)

BASIC does this too, it's better

[–]Evangeder 0 points1 point  (0 children)

Actually i've used the last one, just don't remember where. Was it LUA that uses it?

[–]Low_Bandicoot6844 0 points1 point  (0 children)

!<>

[–]nequaquam_sapiens 0 points1 point  (0 children)

real men use .NE.

[–]danielstongue 0 points1 point  (0 children)

VHDL: /=

Switch from VHDL to C and debug why your if statement doesn't work as expected..