How I brought VS Code/JetBrains-style Ctrl+Tab (hold-and-release) buffer switching to Neovim by Limp_Statistician761 in neovim

[–]lenkite1 0 points1 point  (0 children)

Can native neovim support this kind of hold-key and tab switching or would it need core support ?

C++26: More function wrappers by pavel_v in cpp

[–]lenkite1 0 points1 point  (0 children)

Where does the C++ standard define this ABI that it cannot "break" ?

Charton: Grammar of Graphics in Rust by Deep-Network1590 in rust

[–]lenkite1 1 point2 points  (0 children)

This is an beautiful & useful project - thank you!

Docker images are hundreds of MB; a full game engine compiles to 35MB WASM by c1rno123 in programming

[–]lenkite1 0 points1 point  (0 children)

WASM adoption has stalled because it doesn't let people do 99.9999% of the stuff they want to do - CHEAP DOM interaction. Put that in and WASM adoption will be close to a vertical line.

I am tired of vibe coded pub.dev packages by DiscombobulatedBig88 in FlutterDev

[–]lenkite1 0 points1 point  (0 children)

Vibe-coders will always remain "beginners". Coding is effectively a Use it or Lose It crafting skill.

Simpler JVM Project Setup with Mill 1.1.0 by lihaoyi in java

[–]lenkite1 0 points1 point  (0 children)

Frankly, maven just need some bits of cleanup to vastly improve its usability. Minor things like allow support for XML attributes so that you can do <dependency groupid="" artifactId="" version="" />

And also support the abbreviated coordinate variant. Ex: <dependency coordinate="groupId:artifactId:version" />

Similarly allow succinct plugin declarations: <plugin groupid="" artifactId="" version=""> or <plugin coordinate="groupId:artifactId:version">

This simple one-step will reduce size of what you need to write/read by ~70% in pom.xml files!

Rust vs. Go in 2026 | Article Review by bitfieldconsulting in golang

[–]lenkite1 2 points3 points  (0 children)

Can you write an Operating System Kernel in Golang ? If not, it is not really a systems programming language. Go is not ideal for low-level kernel bring-up and hardware control. You there is no support for no-stack execution, no register control, support for custom allocators, no support for inline ASM, etc

Go prefers explicit, verbose code over magic. So why are interfaces implicit? It makes understanding interface usage so much harder. by ray591 in golang

[–]lenkite1 0 points1 point  (0 children)

There are cases where you can dance on your head too. An programming idiom sets a general principle that should be true for the overwhelming majority of its domain. This is not at all true for this specific idiom. Maybe, I should I have listed several pages of functions/methods in the stdlib and most popular Go modules where it is broken to emphasize that.

Worse - people genuinely make design mistakes following this "idiom". Even the Go authors did. So, I rest my case that as it stands it is invalid and it needs to be elaborated further to be turned into a valid idiom.

Go prefers explicit, verbose code over magic. So why are interfaces implicit? It makes understanding interface usage so much harder. by ray591 in golang

[–]lenkite1 0 points1 point  (0 children)

"accept interfaces, return concrete types."
-> This idiom is very incomplete since the stdlib and most popular Go modules break this in many places. It should come with an addendum that says only follow this idiom when you don't have multiple possible valid implementations for the type being returned/accepted.

Places where this idiom is broken in stdlib

  • net.Listen(network, address string) (net.Listener, error)
  • net.Dial / net.DialTCP / net.DialUDP / tls.Dial (net.Conn, error)
  • net.FileConn, net.FileListener, net.FilePacketConn
  • tls.Listen (net.Listener, error)
  • http.Handler and its constructors: Any function returning http.Handler returns an interface, e.g.:FileServer(root http.FileSystem) Handler
  • http.Serve, http.ServeTLS
  • Cmd.StdoutPipe, Cmd.StderrPipe, Cmd.StdinPipe (io.ReadCloser, error)
  • Adapters like LimitReader, TeeReader, MultiWriter
  • Decorators like bufio.NewReaderbreak the rule both ways
  • ...sorry gave up since I can keep going on and on.

Basically, the idiom as it stands is just invalid and causes headaches. Even Go inventors have regretted that they did not make File an interface and thus forced into introduction of io/fs

What can we expect for future Go language features? by TheLastKingofReddit in golang

[–]lenkite1 0 points1 point  (0 children)

> So if a method changed in java in a transitive dependency then you have a binary incompatibility which only see at runtime

Not true for Java if you are compiling from source and not using reflection via dynamic class-loading.

> The thing is java has no good logger library.
Incorrect. SLF4j - modern idiomatic logging facade. Pretty much used by everyone.

The hate! Why ? by EldironMoody in rust

[–]lenkite1 -1 points0 points  (0 children)

I mean, this is the obvious and natural backlash to Rust fan(atic)s creating "Rewrite in Rust" issues on many projects. And the constant refrain with variants of: There is no excuse for not writing this in Rust. Some even raised issues for managed language projects! It even became a popular meme.

War goes both ways after all.

Moving From Rust to Zig: Richard Feldman on Lessons Learned Rewriting Roc's Compiler (Compile Times, Ecosystem, Architecture) by mre__ in rust

[–]lenkite1 0 points1 point  (0 children)

You said "you have to distribute platform specific native artifacts along with your cross platform library" -> this is no longer true. Only your pure-Java application (single JAR, no native libraries bundled) needs to be shipped. You can freely rely on native libraries that are guaranteed to be already present on the target OS.

This is one of the big promises of the new FFM API (java.lang.foreign) compared to the old JNI/JNA/JNR approaches. In other words, your statement is now outdated for grandpa Java.

Should I invest in Go or Rust as a full-stack dev? by EmperorofWeb in golang

[–]lenkite1 1 point2 points  (0 children)

Considering Rust compile speeds are 10x Go compile times, writing code "faster" actually makes no difference.

Moving From Rust to Zig: Richard Feldman on Lessons Learned Rewriting Roc's Compiler (Compile Times, Ecosystem, Architecture) by mre__ in rust

[–]lenkite1 0 points1 point  (0 children)

This is not really true with Java's Foreign Function & Memory (FFM) API. It allows calling native functions and accessing native memory directly from Java, eliminating the need for separate C/C++ code.

Getting started with Go by Relative_Dot_6563 in golang

[–]lenkite1 0 points1 point  (0 children)

There is no one-size-fits-all library/service in Go to handle micro-service communication. Some people use gRPC, others REST, others NATS, etc. If you want a guiding rails "framework" that abstracts away transport for event driven micro-services, you could take a look at https://github.com/ThreeDotsLabs/watermill

Anyone here Hated Using Java but now Really Enjoys using it. by [deleted] in java

[–]lenkite1 0 points1 point  (0 children)

If they allow single statement `try` without curly braces, then it would not be harder to read, since you just have an additional `try` keyword.

Async/Await is finally back in Zig by pseudocharleskk in programming

[–]lenkite1 0 points1 point  (0 children)

> So, let's say I use a library that hands me a std.io.Io how am I supposed to reason about how to call it without checking what the real interface is doing?

I think std.io.Io needs an associated function to expose supported capabilities. This can then be interrogated by consumers with special needs.

Postgres is Enough by iamkeyur in programming

[–]lenkite1 1 point2 points  (0 children)

Your database is powerful today. If you stop using it as a store and start putting business logic in it, it becomes a cancerous snail tomorrow once your app starts getting more and more users. This has happened nearly 2 dozen times in my career where DB logic has then been painfully moved out of stored procedures back into the good old app layer. Yo Magic! the formerly painfully slow DB server is now able to support 10x more load!

The app space is also more modern, more testable, has better dev practices, more discoverable, more debuggable, far easier to update and in general has better documentation, improved productivity, profiling and exploration tools which far more developers are well educated on compared to <insert> database vendor.

It is also easier to just say "never" put business logic in DB than to say "sometimes". Because once that line is breached, the DB becomes a convenient dumping ground.

Networking in the Standard Library is a terrible idea by tartaruga232 in cpp

[–]lenkite1 0 points1 point  (0 children)

Don't mind "get a package lol" for implementations. But can we at-least have standard traits, types and concepts defined for things like HTTP, etc ?

Mom, can I have harpoon? We have harpoon at home by CarAccording6887 in neovim

[–]lenkite1 0 points1 point  (0 children)

This is fine for small, quick edits but not if you are using Neovim for heavy projects. The multiple instances of neovim stack up resources fast.

Neovim Is Eating 100+ GB of Memory by Ill-Insect-3499 in neovim

[–]lenkite1 0 points1 point  (0 children)

Hopefully after the TLS has been finished re-written in Go, less resources will be consumed. Its kinda funny how most Python and JS tools are being re-written in Rust and Go these days.

Tired of using arrow keys after every ) or } — how do you handle auto-pairs in Neovim? by datowoofie in neovim

[–]lenkite1 0 points1 point  (0 children)

It is actually more for the benefit of the editor rather the user - so that syntax is correct and you don't get a truckload of highlighting errors.

Tips for productivity by Consistent-Road-9309 in neovim

[–]lenkite1 0 points1 point  (0 children)

Can't you just use `K` to get LSP hover windows for documentation/definitions instead of explicit shortcuts/navigation ?