Conversation

I just learned TIOBE has a "quality indicator" and is ranked D out of an A to F scale where A is best.

No further comments on that.

https://ticsdemo.tiobe.com/tiobeweb/DEMO/TqiDashboard.html#axes=Project(curl),Sub()&metric=tqi

5
1
1
@sodiboo @bagder why is this styled as an energy efficiency sticker 😭
1
0
1

@ada @sodiboo hey, there is some manager there who thought that was very clever!

1
0
1

@sodiboo code average is a mystery to me. Code coverage when/how? I claim a high degree of incompetence there.

3
0
1

@bagder @sodiboo i assume the code duplication comes from curl being cross platform and having implementation specific code. which begs the question of why is this metric considered on cross platform software

1
0
0

@puppygirlhornypost2 @bagder @sodiboo looks like it also includes the example code in docs and counts that as code duplication. only looking at src/ shows a much higher result

1
0
0

@bagder I quite like this warning in curl.h and presumably tons of other files as well

1
0
0

@bagder actually hm. at first I read this wrong and thought “what?! there clearly is a Copyright notice there” but upon further inspection I believe it’s docking points not based on the part I highlighted, but because you attribute it to “Daniel Stenberg” instead of “TIOBE”. bwahahaha

2
0
0

@bagder @sodiboo @ada is quite clever though. shame about the whole rest of the quality indicator

0
0
0

"Reserved identifier '__AMIGA__' may not be used"

... wat?

2
1
1

okay, I'll repeat what I replied to the TIOBE person who told me about it:

"color me highly skeptical after just 30 seconds checking your scores of random curl details. I'm not sure it is worth bothering about."

1
0
1

(this on LinkedIn) I just had to follow-up my comment after seeing some more of this horror-show so I added:

"looking closer, I think it actually is borderline offensive. But you do what you do."

0
0
1

@sodiboo @bagder This code is not contributed to us… USELESS

0
1
1

@bagder 15% of that is cyclomatic complexity, which is imo a mostly very stupid metric... Here's what you can do to reduce it: make more methods out of your "complicated" code blobcatFine

1
0
0

@emma @bagder I think cyclomatic code complexity do have some value - could we have a graph of code complexity for each function that had a security vulnerability to have some metric? Higher complexity often leads to bugs, especially wrt error handling in C. I’m not saying low complexity doesn’t lead to bugs, though.

1
0
0

@jas @emma yeah, and we have actually worked quite hard over the last year or so to reduce the cyclomatic complexity in curl. Down from some rather extreme values. But not down to the rock bottom strict levels I presume some tools would like it to be.

0
0
0

@bagder wonder if it also gives error for __ANDROID__, or if that is fine because it’s a reserved identifier used by a mainstream platform

2
0
0
@sodiboo @bagder this strongly smells of some vibe coded logic
0
0
1

@cuddlebug looking at include/curl/system.h where a large amount of are used, it is clear that some are accepted but some others are not, quite arbitrarily from what I can tell

0
0
1

@bagder @sodiboo they either seem to be falling into “this doesn’t match the exact coding style we use at TIOBE” or “this macro expands to always-false expressions which is intentional so that the compiler can do DCE”

1
0
2

@cuddlebug @bagder Android is NOT okay. I think maybe the lint is just about any __*__ identifier defined by the compiler?

2
0
0

@bagder @cuddlebug wait yeah it tells us

Only the predefined macro names __FILE__, __LINE__ and __func__ may be used.

1
0
0

@piggo sure! It builds and runs fine on Amiga, and has so since forever

0
0
1

@sodiboo @bagder yeah. honestly it should really just only be checking if you #define macros with such reserved name patterns in your own code, not if you check an existing one defined based on the architecture, platform, compiler, libc, etc etc.

0
0
0

@bagder @sodiboo they also do cyclometric analysis on the code which is “blocking” on thresholds seemingly so low that it fails on reasonably complex structured c code

1
1
1

@bagder @sodiboo ngl this feels more like me a decade ago going through eclipse turning on all of the options in eclipse’s static analyser than something reasonable

0
0
1

@sodiboo @bagder @cuddlebug a lot of drivers for android for MediaTek chipsets are just transplanted from a build of their MAUI feature phone OS from 2005, but with some lines of code stuck in so they run on android https://android.googlesource.com/kernel/mediatek/+/android-4.4.4_r5/drivers/power/mediatek/switch_charging.c

2
0
1

@sodiboo @bagder @cuddlebug the MAUI source code is great too lol, very cool to see how they made a full feature phone OS on a ***VERY*** underpowered chipset. it’s still actively maintained, though most of the builds that have leaked are pretty old. the MAUI OS source code was licensed from MTK if you were building a device with one of their feature phone chipsets, you’d get the source code and modify it for your device

2
0
1

@GroupNebula563 @bagder @sodiboo interesting. but here is the most important question. does MAUI run curl?

1
0
0

I want to clarify that this scoring and site of course mean exactly NOTHING to me or us and it has no relevance at all.

But it shouldn't stop us from making fun of them.

0
1
0

@sodiboo @bagder @cuddlebug fun tear your hair out activity: try to build one of the leaked MAUI versions https://github.com/adasngle/testmywatch

1
0
0

@cuddlebug @bagder @sodiboo not that I’m aware of, though it is written in some variety of C and can already perform HTTP requests, so a port might not be too hard

1
0
1

@cuddlebug @bagder @sodiboo alternatively, some builds of MAUI support the MediaTek Runtime Environment (MRE) which is pretty low level compared to the MRP and J2ME runtimes some versions of MAUI also support https://lpcwiki.miraheze.org/wiki/MediaTek_MRE

0
0
1

@bagder @sodiboo Since curl seems to suck so hard, I'll immediately stop using it altogether.

...oh wait, that's imlossible.

/s

0
0
0