← Home ← Back to /g/

Thread 106482732

181 posts 20 images /g/
Anonymous No.106482732 >>106482745 >>106482761 >>106482763 >>106482764 >>106482765 >>106482772 >>106482777 >>106482779 >>106482780 >>106482855 >>106482856 >>106482931 >>106482933 >>106482988 >>106483176 >>106483305 >>106483324 >>106483462 >>106483479 >>106483513 >>106483864 >>106483869 >>106483927 >>106483959 >>106483979 >>106484305 >>106484473 >>106485834 >>106485932 >>106485979 >>106486038 >>106486051 >>106486070 >>106486136 >>106486458 >>106486522 >>106486997 >>106487670 >>106487795 >>106487923 >>106487937 >>106489241
Which way, /g/?
Anonymous No.106482745 >>106483040 >>106483292 >>106485736 >>106489069 >>106489438
>>106482732 (OP)
a.f() and f(a) are not the same thing.
>t. Java enthusiast
Anonymous No.106482747 >>106482753 >>106482766
what is f?
what is a?
Anonymous No.106482753
>>106482747
FUCK ASS
Anonymous No.106482761
>>106482732 (OP)
im not familiar with this language what is it
Anonymous No.106482763 >>106485736
>>106482732 (OP)
They are not the same thing and a UCS is retarded.
Anonymous No.106482764
>>106482732 (OP)
apply(f, a)
Anonymous No.106482765
>>106482732 (OP)
>dumb xitter poster doesn’t understand encapsulation
yep, it certainly is a day of the week that contains the letter Y.
Anonymous No.106482766 >>106482824
>>106482747
f is a function, a is a variable, presumably.
Anonymous No.106482772 >>106482786
>>106482732 (OP)
>IT'S ZOZZIN TIME
Anonymous No.106482773
doesn't matter
Anonymous No.106482777 >>106482800 >>106482819 >>106482825
>>106482732 (OP)
The second one is better also because in vim I can just do
ESC + A and start typing
With parenthesis, I have to navigate to TWO separate places if I wish to wrap an expression in one more function call.
Anonymous No.106482779
>>106482732 (OP)
/g/ during European hours is so fucking dumb.
What stupid bullshit thread even is this?
Anonymous No.106482780 >>106482980 >>106484000
>>106482732 (OP)
But the function name is not just "f", is it? Class methods let you use contextual naming.
It's more like
foo.barify()
barify_foo(foo)
Anonymous No.106482786
>>106482772
wit amista azozin
Anonymous No.106482793
>bikeshedding thread
I expect it to reach post limit in 15 minutes.
Anonymous No.106482800
>>106482777
check 'em
Anonymous No.106482819 >>106483048 >>106485844
>>106482777
Making any kind of decisions about how you should structure your code just because of what you can do in your editor is not a good decision.
Anonymous No.106482824 >>106483455 >>106485736
>>106482766
>f is a function, a is a variable, presumably.
if f is a function, then the second notation implies the function has at least an argument, while in the first one it has none. this is not coherent
Anonymous No.106482825
>>106482777
>coding in vim
Anonymous No.106482855
>>106482732 (OP)
top one cannot be force inlined in c
tsoding btfo
Anonymous No.106482856 >>106482957 >>106485827 >>106487677
>>106482732 (OP)
(f a)
Anonymous No.106482931 >>106483629
>>106482732 (OP)
>Which way, /g/?
nope, these two don't do the same thing in powershell.
a.f() would look inside the object and find the 'key' f and it's data.
But since a doesn't have a $, it will just error out.
f(a) would work.
function a {
return "fun a"
}
function f($inputFromA) {
Write-Output "$inputFromA"
Write-Output "function f"
}
f(a)
Anonymous No.106482933
>>106482732 (OP)
who cares about how much you have to type? code readability is what matters (in this case there's no real difference in readability between both so whatever).
Anonymous No.106482957
>>106482856
>mental illness
Anonymous No.106482980 >>106484000 >>106484361
>>106482780
>Class methods let you use contextual naming.
Basically every programming language has modules/namespaces that let you do similar without the drawbacks.
Anonymous No.106482988
>>106482732 (OP)
> s-tier

f a
(f a)
a :f -- a object with method f

> good tier

f(a)
a |> f

> retarded-tier
a.f()
Anonymous No.106483017
Call f(a)
Anonymous No.106483026 >>106483050 >>106483141 >>106483961
noun.verb makes more sense than verb(noun)
Anonymous No.106483028 >>106483050 >>106483057 >>106485827
(f a)
Anonymous No.106483040
>>106482745
they are
>t. Go grugneer
Anonymous No.106483048
>>106482819
Yes it is. You don't want to get demoralized. You want to enjoy coding. And also it is more readable if there are less parenthesis (assuming it is a C like language and not a lisp variant)
Anonymous No.106483050 >>106483112
>>106483026
not in english it doesnt
>>106483028
this is the way
Anonymous No.106483057
>>106483028
mental illness
Anonymous No.106483093 >>106483110
> For people that actually want to learn something:

They represent method call vs free function call. In many languages:
>a.f() means f is a method bound to object a.
>f(a) means f is a standalone function taking a as an argument.

The caption jokes about developers preferring the method-call syntax (a.f()) because it triggers IDE autocompletion (you type a. and get a list of methods). With plain function calls (f(a)), you don’t always get context-sensitive autocompletion, so developers feel like they need the dot syntax even if both ways are logically the same.

So the "one character per function call" is the extra . you add to make autocompletion work.
Anonymous No.106483110 >>106483114
>>106483093
kill yourself
Anonymous No.106483112
>>106483050
are(you, "retarded")
Anonymous No.106483114 >>106483129
>>106483110
>yourself.kill()
Anonymous No.106483129 >>106483135
>>106483114
kill | yourself
Anonymous No.106483135
>>106483129
pipe(self, kill)(you)
Anonymous No.106483141 >>106483365
>>106483026
noun.verb implies that for a verb to exist it must have a noun that "has" the function as an action it can perform. so now if you simply want to have a function to something you need to attach it to some pre-existing noun or make one from scratch, with all the design complications that come from that
Anonymous No.106483146
your self kill
where are my RPN chads
Anonymous No.106483176
>>106482732 (OP)
So a is a structure that hold a pointer to a function f?
How does that function know what a is, and why does that function have to deal with an a that has a pointer to itself?
Anonymous No.106483225
What about this?
a.f().g().h()

vs
h(g(f(a)))
Anonymous No.106483292 >>106483612
>>106482745
Kotlin enthusiast here laughing at you
Anonymous No.106483305
>>106482732 (OP)
this is why kakoune is superior to vim.
anyone who doesn't understand why narrowing early is better for completion is literally mentally retarded.
Anonymous No.106483324
>>106482732 (OP)
a f
Anonymous No.106483365 >>106483571 >>106483914
>>106483141
that's how programming works though.
you can't just define some top level get() and expect any noun to be accepted as a parameter.

a good example of why verb-noun is retarded is looking at powershell.

>Get-
>2 gorillian results to show
>none of them relevant
>actually needed List-MyNoun or Show-MyNoun instead

only a fucking retard thinks verb-noun is better than noun-verb. it's basic hierarchical thinking in general.
Anonymous No.106483455
>>106482824
Don't worry it makes sense, you are just missing some knowledge
Anonymous No.106483462
>>106482732 (OP)
That one extra character aids readability.
Anonymous No.106483479 >>106483582 >>106483961
>>106482732 (OP)
a.f()
f(&a)

if you pass "a" as a reference (as you should) you get the same amount of characters, but of course he's a stinking lying pimple faced russian
Anonymous No.106483513
>>106482732 (OP)
My oop mind thinks that a is a class and f is part of that class for the first one, and in the second one a is a function parameter
Anonymous No.106483548
>Which way, /g/?
All of them and I'll pick whichever I prefer, thanks
a.f()
f(a)
a.f
f a
Anonymous No.106483571
>>106483365
is the autocompleted list of parameters not typed?
Anonymous No.106483582 >>106483676 >>106483828
>>106483479
every language besides c doesn't need you to explicitly take a reference, and c doesn't have methods in the first place. (you could write a.f(a) if f was a property of a).
Anonymous No.106483612
>>106483292
>kotlin enthusiast
i'm surprised you could laugh with that giant dildo shoved down your throat
Anonymous No.106483629 >>106483771
>>106482931
>PowerShell
Shut the fuck up.
Anonymous No.106483676 >>106483758
>>106483582
Rust and C++, the only languages that matter. Webshitters need not speak.
Anonymous No.106483734
[CODE]
f(&a)
[/CODE]
Anonymous No.106483745
Python and c
Anonymous No.106483758 >>106483769 >>106483790
>>106483676
...both implicitly convert to references in the relevant context.
Anonymous No.106483769 >>106483873
>>106483758
Rust doesn't, and the C++ equivalent would be passing a pointer not a reference
Anonymous No.106483771
>>106483629
>Shut the fuck up.
Shut up faggot.
Anonymous No.106483790
>>106483758
>implicit
jeet coder
Anonymous No.106483828 >>106483873
>>106483582
Rust doesn't reference things implicitly, only dereferences if needed.
Rust references aren't a special thing like in C++. It's just a non-null aligned pointer to a valid object with a lifetime.
Anonymous No.106483864
>>106482732 (OP)
a.f
If you care about character count make a lang where empty parenthesis are optional and just don't allow property-method name conflicts. I think MATLAB allows this.
Anonymous No.106483869
>>106482732 (OP)
there's literally no reason why they can't be the same thing, programming languages are religious slop for pseuds. I'm glad I wasn't mentally raped with these arguments at college, there are better topics like algebra and mathematical analysis to really get pedant. This are just pseud shit.
Anonymous No.106483873
>>106483769
>>106483828
huh, fair enough. well sucks to be a troon i guess
Anonymous No.106483914
>>106483365
>you can't just define some top level get() and expect any noun to be accepted as a parameter.
there is a difference between a.f() meaning that f() is a function inside namespace a, and f() being an action that the "object" a can perform. This is why the :: notation was created for OOP
Anonymous No.106483927
>>106482732 (OP)
a.f() is more convenient because 'f' is scoped in the class of a, so 'f' can be a nice short name, whereas in f(a) f needs all the usual namespacing and lengthening to avoid collisions.
Anonymous No.106483959
>>106482732 (OP)
userId.isValid()
or
isValid(userId)
?
Anonymous No.106483961
>>106483026
Only person itt that gets it.
>add(a, b)
Means "computer, add a and b together". The arguments are the object of the verb.
>game.update()
Means "game, do the update". It reads as if the game is the subject.
Besides, there's no language that ONLY has method syntax, that wouldn't even make sense. Everyone is free to use the way that's more natural to them, so I don't know why anyone would be seething about this. I guess that's how it is if your job is to ragebait webshitters on twitter.
>>106483479
This is also a good point. In Rust a mutating function actually needs f(&mut a), while with the method would still be a.f(). But that's a mostly self inflicted problem, I guess.
Anonymous No.106483979
>>106482732 (OP)
obj.foo() >>> foo(obj)
>it avoids naming collisions with other foo's
>it's obvious foo belongs to obj and is not just some random function
>cleaner syntax (personal preference)
Anonymous No.106484000
>>106482780
tbf some languages have function overloading.

>>106482980
Then you'd end up getting n.f(a) which is longer than both.
Anonymous No.106484020
I like the bottom one even if it makes nested functions a pain because I prefer procedural programming over functional or OOP. Its nice because you lose the voodoo programming which sucks for some thing, but is better on the whole.
Anonymous No.106484030 >>106484061
import svo:
2.add(5)
import vso:
add(2,5)
import sov:
(2,5).add

.???. thanks
Anonymous No.106484061
>>106484030
in smalltalk this is just

2 add: 5
Anonymous No.106484305
>>106482732 (OP)
first one implies that function is part of object, second one implies that you pass the object to the function

these are not the same
Anonymous No.106484361 >>106484397
>>106482980
Except you then don't get that object's data in scope without passing it in.
Anonymous No.106484376 >>106484412 >>106484506 >>106489657
a.f()
.g()
.h()
.i()

Vs
i(
h(
g(
f(a)
)
)
)


Which way, civilized man?
Anonymous No.106484397
>>106484361
Sound like you're just working with a shit tier language.
fun MutableList.swap(index1: Int, index2: Int) {
val tmp = this[index1] // 'this' corresponds to the list
this[index1] = this[index2]
this[index2] = tmp
}
Anonymous No.106484412 >>106484426
>>106484376
>abstract factory builder/fluent mode
versus
>C mode
See yourself out.
Anonymous No.106484426 >>106484479
>>106484412
>he thinks you need a builder pattern or a factory to use extension functions
>tells others to see themselves out
KWAB
Anonymous No.106484473
>>106482732 (OP)
Depends on context

save(user)

Or user.save()
Anonymous No.106484479 >>106484512
>>106484426
Who are quoting?
Anonymous No.106484506 >>106484517 >>106484592
>>106484376
neither. they're both bad. i want my code to be debuggable.
f_result := f(a)
g_result := g(f_result)
h_result := h(g_result)
i_result := i(h_result)
Anonymous No.106484512
>>106484479
WHO ARE QUOTING SAR? WHO??
Anonymous No.106484517 >>106484533
>>106484506
Huh? How does this make the code more debuggable?
Anonymous No.106484533 >>106484548 >>106484576
>>106484517
how do you step with a debugger over the code you showed without it being annoying and confusing? even if you don't use a debugger, you will have to factor out some part of the chain to debug some intermediary value at some point.
Anonymous No.106484548
>>106484533
>debug some intermediary value
I mean for like printf debugging or whatever.
Anonymous No.106484576 >>106484604 >>106484688
>>106484533
>how do you step with a debugger over the code you showed without it being annoying
Welcome to the 21st century anon
Anonymous No.106484592 >>106484604 >>106484652
>>106484506
>wasting so much memory and time
Anonymous No.106484604 >>106484849
>>106484576
i dont understand what your pic is supposed to mean. it doesn't show a chain of operations like i(h(g(f(a)))), much less the intermediary values, like f(a), g(f(a)), etc.
>>106484592
do you realize that this is literally what your compiler is converting your code to in the background and that's it's not slow or wasteful at all actually? do you know what SSA form is?
Anonymous No.106484650
f3 $ f2 $ f1 $ a
Anonymous No.106484652
>>106484592
bait used to be believable
Anonymous No.106484688 >>106484849
>>106484576
grabbing intermediate results from nested function calls is pretty annoying to do
Anonymous No.106484849
>>106484604
>>106484688
is this black magic to you? be honest right now
Anonymous No.106485736 >>106485918 >>106486082
>>106482824
>>106482745
>>106482763

The first one takes a as implicit argument you niggers
Anonymous No.106485766 >>106485791 >>106485800
.f() implies the function is a member of an object, f() implies that it is a regular function. they are not the same. you could in theory call f(b) and not b.f(), assuming b does not share any inheritance with a.
Anonymous No.106485791 >>106485911
>>106485766
>.f() implies the function is a member of an object
depending on the language. Same syntax can have different meanings in different languages
Anonymous No.106485800 >>106485911
>>106485766
no it doesn't unless you're talking about a specific language
but in another language f may or may not be a method of a and only use virtual dispatch if a is an indeed object and f is indeed a virtual member
Anonymous No.106485807
>I dont know what this is, the thread
Anonymous No.106485827
>>106482856
>>106483028
BASED SEXPCHADS
Anonymous No.106485834
>>106482732 (OP)
it's actually used for transforming
f(a, b)
to
a.f(b)
and so on. it is no more charcters
Anonymous No.106485844
>>106482819
lmao tell that to SQL fags who still don't have autocomplete after 50 years because they can't start a statement with FROM like a normal language would
Anonymous No.106485911
>>106485791
>>106485800
that is the syntax in all oop languages. there are maybe some meme langs i am unaware of, but the example was
a.f()
f(a)

this is clearly in reference to objects, hence why in the "f(a)" a is being passed as an argument, and not being passed in "a.f()". inb4 rust function chaining.
Anonymous No.106485918 >>106485944
>>106485736
then why isn't it a.f ? why the empty parenthesis?
Anonymous No.106485932
>>106482732 (OP)
my compiler does both because #1 is just syntactic sugar in the parser
Anonymous No.106485944 >>106486144
>>106485918
because sometimes you need more parameters you absolute retard
Anonymous No.106485952
b.f(a)

is what you want, because a rarely has enough context, and
f(b, a)

means passing an ever growing context through your system, which sucks. let your framework construct b out of the pieces it needs and you'll get individually testable units for free
Anonymous No.106485979
>>106482732 (OP)
>stupid opinion
>snownigger moonspeak runes
checks out
Anonymous No.106486038 >>106486061
>>106482732 (OP)
Those should not be the same thing.
Anonymous No.106486051
>>106482732 (OP)
Ada actually uses both styles, the former is optionally available if you're working with Objects.
Anonymous No.106486061 >>106486125
>>106486038
for what reason
Anonymous No.106486070
>>106482732 (OP)
#2 is a limitation of C
#1 is a million languages without that limitation
Anonymous No.106486082 >>106486108 >>106488320 >>106489396 >>106489438
>>106485736
They are most definitely not the same in Java.

'a.f()' is calling method 'f' of object 'a' with no arguments

'a(f)' is calling static method 'a' on 'f'.
Anonymous No.106486108 >>106489402
>>106486082
yes, java is a shit language thanks for reminding us. it's why civilized people use kotlin
Anonymous No.106486125 >>106486169
>>106486061
Because they don't look the same.
Anonymous No.106486136 >>106486173
>>106482732 (OP)
a.f() <- C++ OOP
f(a) <- C FP

what I like about the a.f() approach is that, you already know the "domain" of functions you could use for a.

I'll say a.f(), but most of those C neckbeards are going to hate me for that.
Anonymous No.106486144 >>106486160 >>106486240
>>106485944
>already have the f(a, b c) notation
>make a new one that "makes sense" as long as you have stuff like a.f()
>but the moment you need to do a.f(b, c, d, e) it's basically a more retarded version of f(a, b, c, d, e)
Anonymous No.106486160
>>106486144
yes, it stops making sense on such scenarios

like, you can't decide if the function must belong to a, or b, or c, or d, or e.... since such function requires all those 5 different types, so to whom it even belongs to?
Anonymous No.106486169
>>106486125
that's some big brain thinking
Anonymous No.106486173 >>106486188
>>106486136
>f(a) <- C FP
that has nothing to do with "functional programming" you retarded sack of shit
Anonymous No.106486188 >>106486288
>>106486173
Please be nice when posting to the Dra/g/on Maid Board. Remember that everybody here is a cute maid who likes computers just like you.
Anonymous No.106486240 >>106486267 >>106486320
>>106486144
look anon, you don't have to gloat about never having had a job but here's a simple example
val newRectangle = rectangle
.scale(xFactor, yFactor, padding)
.transform(xOffset, yOffset)
.color(gradient, opacity, brush)

now lets look how retards like you would write this:
val scaledRectangle = scaleRectangle(rectangle, xFactor, yFactor, padding)
val transformedRectangle = transformRectangle(scaledRectangle, xOffset, yOffset)
val coloredRectangle = colorRectangle(transformedRectangle, gradient, opacity, brush)
val newRectangle = coloredRectangle
Anonymous No.106486267 >>106486274
>>106486240
You are the retard who doesn't understand that a.f() does not in any way imply that we are dealing with object oriented programming. OP's vague question simply confronted two notations without any context. Nowhere is was said that a is an "object" that has "methods" and other bullshit. We are talking about purely syntactical
Anonymous No.106486274 >>106486293
>>106486267
>he thinks this is only possible with objects
KWAB
Anonymous No.106486288
>>106486188
good post
Anonymous No.106486293 >>106486317
>>106486274
I literally don't care though which implementation that notation can be put to use, OP's questionis not about that, and that is the point of the post you cluelessly just replied to because you have the reading comprehension of a nigger
Anonymous No.106486317 >>106486381
>>106486293
>accuses others of having bad reading comprehension and seethes incessantly
>can't understand a simple example of a pure syntax based scenario where .f() is superior (chaining)
Name for this mental illness?
Anonymous No.106486320
>>106486240
The first one is methods of rectangle.
The second one is public functions.
They are not, and should not, be the same.
Anonymous No.106486381 >>106486389 >>106486397 >>106486765
>>106486317
val rectangle = scale(rectangle, xFactor, yFactor, padding)
rectangle = transform(rectangle, xOffset, yOffset)
rectangle = color(rectangle, gradient, opacity, brush)
Anonymous No.106486389 >>106486397 >>106486425
>>106486381
>ambiguous function naming where you have to infer what it does from the fucking parameters
Oops, you failed
Anonymous No.106486397 >>106486425
>>106486389
Kek this
>>106486381
Also enjoy having your IDE suggest this completely unrelated function each time you start typing "scale"
Anonymous No.106486425 >>106486439
>>106486389
>>106486397
>Regardless of the implementation, my a.f() syntax is nice and clean
>N-NO YOU CANNOT PRESENT A CLEAN EXAMPLE OF f(a) SYNTAX IT WOULD BE HEKKIN CONFUSING IN ITS REAL WORLD IMPLEMENTATION
A perfect bait for spotting bad faith arguing and it worked flawlessly
Anonymous No.106486439
>>106486425
Even with all your copes, you wrote twice as much slop in your "clean" example kek
Anonymous No.106486458 >>106486468
>>106482732 (OP)
a.f
>t. Scala enthusiast
Anonymous No.106486468
>>106486458
Based fellow scalachad
Don't tell the retards ITT about infix, they might unironically lose their minds kek
Anonymous No.106486522 >>106486536 >>106486565
>>106482732 (OP)
f(a) is more functional and will bite you in the ass less often. a.f() is object oriented slop that will ruin your life.
>t. sex having Haskellchad
Anonymous No.106486536
>>106486522
>a.f() is object oriented slop that will ruin your life.
It's not object oriented slop. In a non-OOP language `a.f()` is just sugar syntax for `f(a)`. Only in OOP does it start to involve virtual tables and more leg work, ultimately doing the same as `f(a)` just a lot more hidden behind the scenes to handle calls to the superclass (if needed)
Anonymous No.106486565
>>106486522
>haskellchad
>that post
On a scale from 1 to 10, how retarded are you? Half of haskell syntax is infix and function composition
Anonymous No.106486765
>>106486381
>var
Fucking yikes.
Anonymous No.106486997
>>106482732 (OP)
f(x=6, y=6, z=6), a
Anonymous No.106487362
for me, it's
std::invoke(f,a)
Anonymous No.106487467 >>106487476 >>106487682 >>106489056
(F a)

Dot notation doesn't allow multimethods
Anonymous No.106487476
>>106487467
>another sexpchad has entered the thread
Anonymous No.106487670
>>106482732 (OP)
f(a) is the only sane way to do it
Frosch !!vBXGOUbKnuP No.106487677
>>106482856
We've got a high class gentleman and pillar of the community in the thread
https://www.youtube.com/watch?v=voNEgCKzves&list=RDvoNEgCKzves&start_radio=1&ab_channel=RHINO
Anonymous No.106487682 >>106488234
>>106487467
>Dot notation doesn't allow multimethods
wat
Anonymous No.106487795 >>106487892
>>106482732 (OP)
OOP BAD IT JUST IS OK
Anonymous No.106487892
>>106487795
The dot notation is not necessarily an OOP concept, though.
It could just be an associated function of a type.
Anonymous No.106487923
>>106482732 (OP)
First one is namespaced.
If you go with the second option you'll have to do
fA(a), fB(b), etc as more structs use f function.
Also fuck whoever uses a single character for their functions. A dot is 50% of the characters when your function is a single character but normally they are at least 4, so more like 20%, less of a deal
Anonymous No.106487937 >>106488409
>>106482732 (OP)
The benefit of method call syntax is that the function doesn't have to be in the root namespace. If you want to use traditional function call syntax, you either have to fully qualify the namespace of the function, or import the function into the root namespace. So it actually looks more like:
T.f(a)

or
import f from T
f(a)
Anonymous No.106488234 >>106488490 >>106489056
>>106487682
(F a b) can be a method specialised on both a & b instead of a method specialised on a alone in a.f()
Anonymous No.106488320
>>106486082
But the actual difference is a(f) will jump to where a is.
a.f() will have to go to function call table of a and find f then jump there.
Anonymous No.106488409
>>106487937
C++ was right to discourage this shit by forcing you to type out uncomfortable double colons if you really want to be a dumbass.
Anonymous No.106488490
>>106488234
Like function overloading in C++?
Anonymous No.106489056
>>106488234
>>106487467
You can do this in Beef with autocomplete.
(a,b).F();
Anonymous No.106489069
>>106482745
https://en.wikipedia.org/wiki/Uniform_function_call_syntax
Anonymous No.106489183
concatenative: x f g h
Anonymous No.106489241
>>106482732 (OP)
a f
Anonymous No.106489259
C: no method syntax, shit
Java: no free function syntax, shit
Anonymous No.106489396
>>106486082
have you never written JNI before? lol
Anonymous No.106489402 >>106489521 >>106489539
>>106486108
kotlin is trash. no low level control

garbage language for shitting out boilerplate webdev frameworkslop
Anonymous No.106489438
>>106482745
>>106486082
JNIEXPORT void JNICALL Java_path_to_package_MyClass_myMethod
(JNIEnv *, jclass); yes they are
Anonymous No.106489521 >>106489539 >>106489540
>>106489402
>muh Heckin low level controllerino!!
Nobody cares about your pointerslop
Anonymous No.106489539
>>106489402
>>106489521
There is actually Kotlin/Native. It has a GC but you can use any C library and manual memory management, if you want. It's kinda in a limbo right now, though.
Anonymous No.106489540 >>106489549
>>106489521
enjoy your 1GB of dependencies (assuming the security manager is disabled so it even works) to do something i can enjoy in 100 lines with or without the security manager
Anonymous No.106489549 >>106489555
>>106489540
>can enjoy in 100 lines
Why are you lying to yourself
It's gonna be 20k lines and you'll spent two years working on it but you'll be oh so proud that it's hyper efficient and only takes up 1mb instead of 40mb kek
Anonymous No.106489555 >>106489586
>>106489549
it's the java side that is 20k lines kek
Anonymous No.106489586 >>106489622
>>106489555
Is that the cope Cshitters tell themselves?
Anonymous No.106489622
>>106489586
no, it's my project you fucking retard
Anonymous No.106489657 >>106489678 >>106489698
>>106484376
extremely dishonest
disgustingly so, even

the second one should be
f(a)
g(a)
h(a)
i(a)

bc its all methods form a single class
Anonymous No.106489678
>>106489657
(clarif.)
(and so its procedural equivalent should be functions sequentially applied to one object too)
Anonymous No.106489698 >>106489721 >>106489734
>>106489657
>bc its all methods form a single class
That's an assumption you made retard, nowhere does it say that assumption is true.
So no, the only one being disingenuous is you
Anonymous No.106489721 >>106489734 >>106489750
>>106489698
thats what the syntax says, oop trany
you lost
Anonymous No.106489734
>>106489721
>>106489698
to clarify
a.f()
.g()
.h()
.i()

>umm achksually
>in the middle of that shorthand notation the target object gets swapped away
i will do unspeakable things to your computer, ooptrany
Anonymous No.106489750 >>106489755
>>106489721
val x = 5
x.factorial()
println(x) // 5
println(x.factorial()) // 120

What's your cope now?
Anonymous No.106489755 >>106489765
>>106489750
>doesnt even realize factorial is a method of x
such is the power of oop, huh?
early onset dementia?
Anonymous No.106489765 >>106489770
>>106489755
Yes and x is a primitive. So I'll repeat, what's your cope here? Your "should be" wouldn't work whatsoever
Anonymous No.106489770
>>106489765
what cope?
no amount of digression is gonna help now that you made a retard
you fucking scald
we should put a muzzle on you