[ home / overboard ] [ soy / qa / mtv / dem ] [ int / pol ] [ a / asp / biz / fit / k / r9k / sude / tech / tv / v / x ] [ q / news / chive / rules / pass / bans ] [ wiki / booru / irc ]

A banner for soyjak.party

/tech/ - Soyence and Technology

Download more RAM for your Mac here
Catalog
Email
Subject
Comment
File
Password (For file deletion.)

File: go gopher.png πŸ“₯︎ (111.39 KB, 1634x2224) ImgOps

 β„–4935[Quote]

Literally perfect.

 β„–4941[Quote]

File: ClipboardImage.png πŸ“₯︎ (34.51 KB, 460x307) ImgOps

oops wrong pic

 β„–4942[Quote]

>>4941
YWNBAW

 β„–4943[Quote]

File: Gigachoco_audio.mp4 πŸ“₯︎ (508.32 KB, 180x180) ImgOps

>oops wrong pic

 β„–5672[Quote]

File: 1743004819982375.png πŸ“₯︎ (58.72 KB, 1342x1343) ImgOps

>>4935 (OP)
Love this retard, best langs for idiots (me)

 β„–5770[Quote]

>>4935 (OP)
i am a caucasian male and i use the go programming language

 β„–6141[Quote]

Can you fuck it?

 β„–6218[Quote]

I do not understand concurrency in go.
Seems like it's really easy to shoot myself in the foot with channels.

I literally like Rust more because of this.

 β„–6234[Quote]

>>6218
>I do not understand concurrency in go
>I literally like Rust
You're an the biggest nigger I've seen on this board so far

 β„–6284[Quote]

>>4935 (OP)
All I want is inbuilt unions. Fucking around with interfaces and structs is not an alternative.

 β„–6439[Quote]

File: b6ejjzfagzt01.jpg πŸ“₯︎ (932.1 KB, 2560x1228) ImgOps

Go is not a systems language. It’s not even a good scripting language. It’s a corporate toy designed by people who were tired of writing Java but still wanted all the same restrictions β€” just with worse syntax and a smug minimalist aesthetic.

> No real enums

> β€œcontext.Context”
Imagine if someone smashed together a cancellation token, a timeout manager, and a key-value store into one god-object, gave it the most generic name possible, and then told you to pass it through every function signature like a sacred relic.
> Built-in map/(((slice))) types
> β€œrange” is simple but "while" is too complex
Pure nigger behaviour.
> Generics (added in 2022, still sucks)
> The cult
You don’t just learn Go β€” you join the Go Church.

Not touching your raisin.

 β„–6441[Quote]

File: b6ejjzfagzt01.jpg πŸ“₯︎ (932.1 KB, 2560x1228) ImgOps

Go is not a systems language. It’s not even a good scripting language. It’s a corporate toy designed by people who were tired of writing Java but still wanted all the same restrictions β€” just with worse syntax and a smug minimalist aesthetic.

> No real enums

> β€œcontext.Context”
Imagine if someone smashed together a cancellation token, a timeout manager, and a key-value store into one god-object, gave it the most generic name possible, and then told you to pass it through every function signature like a sacred relic.
> Built-in map/(((slice))) types
> β€œrange” is simple but "while" is too complex
Pure nigger behaviour.
> Generics (added in 2022, still sucks)
> The cult
You don’t just learn Go β€” you join the Go Church.

Not touching your raisin.

 β„–6449[Quote]

>>6439
What is better for backend web?

 β„–6452[Quote]

>>6449
Better in what way? You can write a back end in anything and it will be a better experience than Go

 β„–6459[Quote]

>>6452
Dunno I just figured you would have a recommendation. My work likes Go but I am learning Rust on the side.

 β„–6470[Quote]

File: ClipboardImage.png πŸ“₯︎ (1.01 MB, 1280x640) ImgOps

go has no support for functional programming, it's too simple, they only added generics after much whining, the type system is raisin, and error handling sucks

rust has awful compiler messages, code becomes a syntactical clusterfuck for anything non-trivial, and unless you need performance you waste your time trying to get past the borrow checker. no i am not stupid, i use rust daily but it's not an ideal language for all purposes.

kotlin is the best middle group and it has the entire java ecosystem available with actual interoperability unlike scala.

still haven;t heard any valid criticisms for kotlin.

 β„–6481[Quote]

>>6470
>Kotlin
Thanks I will check it out

 β„–6483[Quote]

>>6470
> kotlin is the best middle group and it has the entire java ecosystem available with actual interoperability unlike scala.

kotlin is a retarded brimstone language by jetbrainfucked

the language is fine but they really really want you to use their IDE at all costs. They REFUSE to make an LSP with the argument that "we can create a better experience for our users on our IDE". So developing with Kotlin outside their bloated IDE is a less than ideal experience.

There's a third-party LSP made by some 'jeet o algo but it's been abandoned iirc.

I don't know why anybody would want to be tied to an IDE for all their lives unless you're just ok with having subpar tooling everywhere else and fully depend on jetcuck.

 β„–6534[Quote]

File: vxq3o6.mp4 πŸ“₯︎ (4.51 MB, 1920x1080) ImgOps

>>6459
Rust or C# (if using windblows).

Security in C# is a breeze. Microraisin does all the work and they make their own version of all the open source raisin so you don't have to worry about rug pulls or abondware. The CLI is also solid. The only cancer is p-OOP.

Use Rust if performance and type safety are what you care about.

Use Python or Node if for everything else.

>Buhhh muh green threads!!!

Elixir.

 β„–6547[Quote]

I dont like it personally. I use C# though, so I might just be a retard.

 β„–6555[Quote]

>>6547
I've always sticked to C# because even though it's microjew's language it's one of the only good things created by them

 β„–6574[Quote]

>>6555
I agree. They made us learn it at my sixth form, and I stuck with it all through university.
Its comfy.
I have used others stuff, but C# and .net is my home. Nothing competes.

 β„–6600[Quote]

>>6483
I use vim with the kotlin plugin. You don't need Intellij but it also has vim a plugin. If you use VS code it's your own problem but yeah jetbrains should be thinking about you people too.

 β„–6603[Quote]

>>6574
also I plan on developing (and have developed) games in unity so C# is a great choice for me

 β„–6605[Quote]

>>6574
>They made us learn it at my sixth form
what kind of bollocks is this? they should be teaching fundamentals (C and Haskell) not shilling microsoft.

 β„–6626[Quote]

>>6470
>still haven;t heard any valid criticisms for kotlin.
It's very much tied to IntelliJ and if you want to use IntelliJ for anything beyond offline toy project you gotta pay. Ran a tech screening for it last year and vetoed using it because not everyone uses IntelliJ even when company pays.

 β„–6637[Quote]

>>6470
>go has no support for functional programming
Every language has support for functional programming. All you need to do is not modify the input value of a function you know.

 β„–6658[Quote]

>>6605
Don't be retarded anon. That's too much for the white kids. They'll be aspirin to be tik tokers and waste their parents money

 β„–6786[Quote]

>>6534
OOP isn't inherently raisin. I think the ideal program should only have 2 (or maybe 3 absolute max) layers of inheritance where it's extremely obvious to use it, and then supplement the rest of the "fine grain details"rest via composition, interfaces, etc.

The problem is that people have taken the paradigm to the ridiculous extreme with overuse of singletons, MegaFactoryItemCreatorHandler() etc. A sprinkling of OOP never hurt anyone, but admittedly it's very easy to stay on that path instead of taking a step back and incorporating functional/compositional style otherwise.

 β„–6819[Quote]

>>6605
My school took donations from Microsoft and some other major companies. I think they were teaching in C# because of this lol.
I also had work experience at Microsoft because of this school. A real wagie indoctrination factory.
I quite like C# anyhow…

 β„–6861[Quote]

File: 1621379457107.webm πŸ“₯︎ (1.93 MB, 426x426) ImgOps

>>6786
Na, it's inherently raisin. I thought like you until I encountered DICs. DICs are uniquely an OOP problem.

The more I thought about them the more I realised that a lot of the design patterns exist to cover the pile of raisin created by OOP.

An example would be a the Factory pattern. That raisin should not exist. It's simply there to cope with the fact that your system is in defragmentation hell and you have to reach all 4 corners of your state hell to create something usable.

 β„–6903[Quote]

>>6470
>kotlin is the best middle group and it has the entire java ecosystem available with actual interoperability
you misspelled clojure its ok common mistke

 β„–6904[Quote]

>>6861
All factories do is make instances with some or all preset instantiation parameters. You hate OOP for "fragmentation" and then hate a way to reduce the number of different objects required. Make up your mind.
>Prius extends Toyota extends Car -> class Prius
or
>PriusFactory -> class Car
See? Not so hard a concept.

 β„–6947[Quote]

File: 1687481614864541.webm πŸ“₯︎ (728.3 KB, 404x720) ImgOps

>>6904
new Toyota()

See no factory needed. This is a software program. Don't strawman me anon. You know exactly what factories are for. A way to bundle state. The only reason you'd need this thing is because you have a cluster fuck of state all over your app and you need a way to keep track of it.

 β„–7015[Quote]

>rustg
I'm doing it… I'm doing it… I'm… I'm… oxidisinggggg

 β„–7018[Quote]

>>6904
>>6947
Both people are discussing software design patterns, specifically factories in object-oriented programming (OOP). There's no clear "right" or "wrong" here - they're presenting different perspectives on when and why to use factory patterns.

Person 1 is arguing that factories help reduce object fragmentation by centralizing object creation logic, allowing for preset parameters and potentially fewer different objects. They contrast two approaches:
- Inheritance hierarchy: Prius extends Toyota extends Car
- Factory approach: PriusFactory creating Car instances

Person 2 prefers direct instantiation ("new Toyota()") and views factories as unnecessary complexity. They suggest factories are only needed when managing complicated state across an application.

Both perspectives have valid points:
- Factories can provide benefits like encapsulation of creation logic, flexibility in returning different object types, and reuse of configuration
- Direct instantiation is simpler and more straightforward for basic cases

The "right" approach depends on the specific software requirements, complexity, and design goals. Both patterns have situations where they're appropriate, and experienced developers often choose different patterns based on context rather than declaring one universally superior.
# Pros and Cons of Direct Instantiation vs Factory Pattern

## Direct Instantiation (Person 2's approach)
Pros:
- Simplicity: Straightforward and easy to understand (`new Toyota()`)
- Less code: No additional classes or structures needed
- Clear and explicit: You can immediately see what type is being created
- More lightweight: No overhead from additional abstraction layers
- Easier to follow in code: The execution path is obvious and direct

Cons:
- Limited flexibility: Can't easily change which types are instantiated at runtime
- Creation logic is scattered: Object creation details may be duplicated across the codebase
- Tight coupling: Client code is bound to concrete classes rather than interfaces
- Testing difficulties: Harder to mock or substitute implementations for testing
- Less adaptable: Changing instantiation requirements requires modifying multiple places

## Factory Pattern (Person 1's approach)
Pros:
- Centralized creation logic: Encapsulates complex object creation in one place
- Flexibility: Can return different implementations or subclasses based on parameters
- Loose coupling: Clients depend on interfaces rather than concrete classes
- Better testability: Easier to mock or replace factory in tests
- Parameter management: Can manage complex configurations or default values
- Can implement caching, pooling, or lazy instantiation strategies
- Supports the Open/Closed principle: New product types can be added without modifying client code

Cons:
- Added complexity: Introduces additional classes and indirection
- Potential overengineering: May be unnecessary for simple cases
- Learning curve: Requires understanding the pattern and its implementation
- Can hide what's actually happening from developers new to the codebase
- Performance overhead: Minor additional cost from the extra layer of abstraction

Both approaches have their place in software development. Direct instantiation works well for simpler scenarios with stable requirements, while factories shine in more complex applications where flexibility, testability, and centralized creation logic are important.

 β„–7138[Quote]

>>7018
Fuck off ChatGPT didn't understand the conversation.

I was arguing that raisinty design patterns like the factory pattern exist because of inherent flaws with OOP. It's uniquely an OOP lang pattern. They exist because p-OOPies don't have free standing functions and that the paradigm is a cluster fuck of state. It's just a way to push your mess under the bed and call the room "clean".

It's why I called out Dependency Injection Containers in the first place. I get it, it's beautiful but it's also slop.

 β„–7280[Quote]

>>7138
I see the additional context now. This clarifies Person 2's actual position in the OOP debate, which is quite different from what I initially understood.

Person 2 isn't just advocating for direct instantiation as a simpler alternative - they're making a more fundamental criticism of OOP design patterns like factories. Their argument is that:

1. Factory patterns (and similar design patterns) exist primarily to patch inherent flaws in the OOP paradigm
2. These patterns are unnecessary in languages with free-standing functions
3. They view OOP as creating "a cluster fuck of state" that these patterns try to manage
4. They see factories and dependency injection containers as ways to hide complexity rather than address it ("push your mess under the bed")

This is a more principled stance against OOP itself rather than just a preference for direct instantiation. Person 2 seems to favor functional programming approaches where state management and function composition might be handled differently.

Their frustration makes sense in this context - they weren't arguing for a simpler OOP approach but questioning the entire paradigm that necessitates these patterns in the first place.

This perspective is part of a larger debate in programming between object-oriented, functional, and other paradigms, each with their own approaches to managing complexity, state, and dependencies.

# Pros and Cons of Person 2's Anti-OOP Stance

## Pros of Person 2's Position

- Identifies real complexity issues: Accurately points out that some design patterns exist primarily to manage complexity that arises from OOP's approach to state management
- Questions established dogma: Challenges widely-taught patterns rather than accepting them uncritically
- Highlights alternative paradigms: Implicitly advocates for functional programming approaches that may handle certain problems more elegantly
- Addresses root causes: Focuses on underlying issues rather than surface-level implementation details
- Simplicity argument: Makes a case for simpler code with fewer abstractions and indirections
- Consistent internal logic: Their criticism of factories aligns with their broader criticism of OOP state management

## Cons of Person 2's Position

- Overgeneralizes: Dismisses all OOP patterns as "slop" without acknowledging their benefits in appropriate contexts
- Lacks nuance: Doesn't acknowledge that different paradigms (including OOP) have strengths for different problems
- Confrontational tone: The aggressive language may alienate others and reduce the persuasiveness of otherwise valid points
- Incomplete alternative: Criticizes OOP without fully explaining a better alternative approach
- Ignores practical constraints: Doesn't address that many developers work in OOP languages/frameworks by necessity, not choice
- Reductionist: Simplifies complex design decisions to just being about "hiding mess"

Person 2 makes some intellectually honest criticisms of OOP patterns that many experienced developers would agree with, particularly those from functional programming backgrounds. However, the absolutist framing and dismissive tone weaken what could be a more productive critique of where and when different programming paradigms are most appropriate.

 β„–7290[Quote]

I was thinking of begging Blonathan Jow to let me into the jai closed beta so I can try it out. Does anybody know which email should I write to?

 β„–7295[Quote]

>>7290
>theonlypersonthatwilllovehimishisownmother@blow.com

 β„–7304[Quote]

File: 1745011004641p.png πŸ“₯︎ (429.62 KB, 660x1000) ImgOps

>>6470
>the type system is raisin

 β„–7327[Quote]

>>6947
You're fucking stupid and have zero understanding about either OOP or factory pattern. "State management" what the fuck. Retard…

 β„–7337[Quote]

>>6470
Kotlin and in general any vm lang will perform like raisin unless everything you do is in a loop with more than 4k iterations (the prerequisite for the jit to compile your code). Your hello world will also consume 10x the memory of any compiled language. Any language that doesnt compile to native is a toy for nocoders.

 β„–7461[Quote]

>>7337
Even JAVA sir?

 β„–7468[Quote]

>>7337
dull take from a dullard who doesn't code and regurgitates the tryhard opinions

 β„–7479[Quote]

>C# OOPedos and java jeets
Absolute state of this board geg

 β„–7481[Quote]

>>4935 (OP)
Java is king. What you see is what you get. Car car = new Car(). There can be no doubt that this object is a Car.

All other languages are either too niche, too complicated, or too gay (JS, Python)

 β„–7482[Quote]

>>7479
>it's not clear that it's a car unless you write it at least 3 times
Kek

 β„–7490[Quote]

>>7482
It's important to make your code retard proof. That's also why I recommend avoiding concurrency, streams, or any of the new features introduced after Java 11.

 β„–7523[Quote]

growing up is when you realize java is king and rightly so

 β„–7563[Quote]

>>7523
trvke

 β„–7566[Quote]

>>7523
raisin ton of vulnerabilities though

 β„–7567[Quote]

File: s1apdrmuds6e1.jpeg πŸ“₯︎ (260.16 KB, 2360x1544) ImgOps


 β„–7569[Quote]

>>7523
trvke

 β„–7583[Quote]

>>7523
Java cured my unemployment

 β„–7635[Quote]

>>7468
I've made my own Bytecode compiler/VM. It will never be as fast as native due to an added layer on indirection between the compiled bytes you have and a VM converting them into native instructions for whatever platform you're running said VM on. The only way VM langs approach native speed is by, you guessed it, completely removing the bytecode/VM indirection from equation and going straight to native when, through enough reflection (which in itself is a resource hog), it realizes it can avoid all that crap. VM's are for portability (which is a questionable benefit given all major compiled languages now cross compile to whatever platform you want), not speed and efficiency and everything you hear otherwise is ESL nigger tier copium.

 β„–7661[Quote]

>>7523
it's .net for me doe

 β„–7670[Quote]

>>6470
>all interpreters and jits are nocoder toys
and yet the corporate world runs on them, and the most widespread category of software that mostly avoids non-native code is PC games, actual toys.

 β„–7688[Quote]

>>7670
Are you suggesting that the raisin churned out by slave labor jeets that requires multiple orders of magnitude more computing power to do the same raisin you can do in C/C++/Rust is the quality of software you should be aiming for?

 β„–7837[Quote]

>>7635
This is all true. When I first time compiled main.go with a 10 line hello world web server without any imports outside its standard library and no tooling other than what Go comes with it was like inhaling LSD. Suddenly everything in the world looked very different. No JVM, no Maven, no IDE setup. Just a 8Mb binary, ran without any special commands such as Maven build target sequence to get it built and running, just main.exe and boom it runs. No JRE necessary. Even non-java setups like Express or Django still require Node or Python to be installed to run. Then on deploying you'd need special containers shipping with JRE or make sure the EC2 instance is made to automatically install those if skipping Docker. Go binary? Doesn't care, just toss it in smallest Linux container without anything and make it execute the binary and hey webserver.

 β„–8021[Quote]

>>7837
holy fuck how brain dead are you
>just werks
>no need form jvm
<JUST TOSS IT INTO CONTAINER AND MAKE IT EXECUTE THE BINARY
>hey webserver
plz look up the perfromance of java vs go for webservers. its ok ill wait.

 β„–8308[Quote]

Yup, using anything else for most of the stuff makes no sense. Obsoletes all compiled and interpreted languages in performance while being about as simple as TypeScript.

 β„–8591[Quote]

>>8021
>coping javatard raisinhead

 β„–8619[Quote]

>>8021
Sure you can beat Go in performance with at least Quarkus. It doesn't remove the rest of the negatives I listed.

No idea what your greentext sperging is about.

 β„–8625[Quote]

>>8619
you main complaint about java is the JVM and then you got compile your GOLANG code to just throw it into a docker container. your mind is literally zoomfucked. kys for having me have to spell this out for you.

 β„–8684[Quote]

>>8625
I still don't get your sperging. Take your medicine.

 β„–8794[Quote]

>>8625
How many build systems and VM's does your garbage jeet lang now have?

 β„–9075[Quote]

go is just so nice to use, and isn't very far from how the hardware works under the hood, so it doesn't feel like magic u can't control if it breaks

 β„–9080[Quote]

>>8794
>VM's
HotSpot
JRockit
IBM J9
GraalVM
Azul Platform Prime
JamaicaVM
Excelsior JET
Jinitiator
Mac OS Runtime for Java (MRJ)
Microsoft Java Virtual Machine
Blackdown Java
Sun CVM
Jikes RVM
leJOS
Maxine
Apache Harmony
GCJ
IKVM.NET
JamVM
Juice
Jupiter
Kaffe
Mika VM
NanoVM
SableVM
Squawk
SuperWaba
TakaTuka
VMKit
Wonka VM
CEE-J
SNAP (Imsys AB)
Apogee
JBed
JBlend
MicroEJ
OJVM (JServer)
PERC
SAP JVM
JESSICA
JNode
JOP
JX
VM02
Dalvik

>build systems

Apache Ant
Apache Maven
Gradle
SBT
Leiningen
Buildr
Bld
Ivy
Jenkins
Bazel
Buck
Pants
TeamCity
Travis CI
Bamboo
Sonatype Nexus
JFrog Artifactory
JitPack
Capsule
Mill

Your point chuddy?

 β„–9792[Quote]

>>8625
containers aren't VMs retard

 β„–11682[Quote]

>>>6470
They literally made the entire language to make you use their IDE.

 β„–11683[Quote]

File: ClipboardImage.png πŸ“₯︎ (78.01 KB, 200x200) ImgOps

>>7635
I never understood the use-case of JVM, to abstract the machines specific implementations for portability, that's what an IR is for, why all that hassle creating a VM? I suspect it's a maneuver from Oracle to lock corporations into their ecosystem. They say JVM programs are portable, but it's only in a JVM, so are they? I might be missing something here, so correct me if I'm wrong.

 β„–11684[Quote]

>>11683
I remembered that Sun started this raisin, so it's the same.
>Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System.
I don't know what oracles does this days, but it's probably something worse.

 β„–11686[Quote]

>>11683
To allow the exact same code to run anywhere the JRE can run. Back when Java was made there were tons of active noncompatible processor architectures and their extensions. These days and with easy cross-compiling it makes less sense.



[Return][Catalog][Go to top][Post a Reply]
Delete Post [ ]
[ home / overboard ] [ soy / qa / mtv / dem ] [ int / pol ] [ a / asp / biz / fit / k / r9k / sude / tech / tv / v / x ] [ q / news / chive / rules / pass / bans ] [ wiki / booru / irc ]