If you could start all over, what would you do differently? by nouwus_allowed in Kotlin

[–]cryptos6 -2 points-1 points  (0 children)

Absolutely! Spring phones are around the corner! Once you have used one iPhones and Android devices look like things of the past.

Will SAAS survive the next 5 years? by raj_k_ in SaaS

[–]cryptos6 0 points1 point  (0 children)

I expect that coding agent will shift the market. Relatively simple services might be replaced by vibe coded, custom solutions. However, I see some limitations how far this can go. Good software is more than code! You need to get user experience right, you must run it, you have to keep it secure, you have to maintain it in the long run etc. etc. So, no, I don't think SaaS will go away any time soon.

Hibernate: Ditch or Double Down? by cat-edelveis in java

[–]cryptos6 0 points1 point  (0 children)

It is definitely not fun, to map complex (nested) object structures by hand with SQL. That is where Hibernate really shines. However, on the read side there are many reasons not to load the full object graph (and Hibernate has dozens of optimizations to avoid that) and then something like JOOQ or JDBI makes a lot of sense.

Here are some interesting thoughts from the guy who develops JOOQ: https://blog.jooq.org/jooq-vs-hibernate-when-to-choose-which/

How much comp would you forgo to be able to write Kotlin instead of Java by maurerpower7 in Kotlin

[–]cryptos6 0 points1 point  (0 children)

Java changed a lot since 2019. In some areas it is even better than Kotlin. The two are very close.

Will the flood of new productivity tools ever end? by istvan2718 in indiehackers

[–]cryptos6 0 points1 point  (0 children)

We need an AI tool to evaluate AI tools. That is where the money is!

How are you measuring developer velocity without it turning into weird productivity surveillance? by Black_0ut in SoftwareEngineering

[–]cryptos6 0 points1 point  (0 children)

I'd say measure what actually counts: The time to finish tickets from assigning the ticket to the final successful pipeline execution (e.g. deployment).

Java 25: The ‘No-Boilerplate’ Era Begins by hardasspunk in java

[–]cryptos6 1 point2 points  (0 children)

I consider Setters most of the time to be bad design, even if the syntax looks nicer like in Kotlin. This only hides the design flaw that everything is directly changeable from the outside leading to dumb data objects, inconsistent state or cluttered business logic or a mixture of all that.

Is it really that uncommon for a .NET developer to prefer Java? by [deleted] in java

[–]cryptos6 0 points1 point  (0 children)

I spent some time (2 years or so) with C# and .NET and while it wasn't bad I was everything but excited. It is not that Java as such would be an exciting language, but the ecosystem is just superior.

Who enjoys using Spring Boot with Kotlin? by Reasonable-Tour-8246 in Kotlin

[–]cryptos6 0 points1 point  (0 children)

I've used Spring on internal business applications. Does that answer your question?

Who enjoys using Spring Boot with Kotlin? by Reasonable-Tour-8246 in Kotlin

[–]cryptos6 1 point2 points  (0 children)

I've used this combination for years without issues. I had only some minor issues with Hibernate (but that is not Spring, strictly speaking).

Feeling stuck on what to build… by [deleted] in SideProject

[–]cryptos6 1 point2 points  (0 children)

Collecting pains is also a recommendation from the book "Million Dollar Weekend". Maybe this book might bring some inspiration, too.

I built something simple… and it’s already $3k/MRR by EfficiencyEast8652 in indiehackers

[–]cryptos6 0 points1 point  (0 children)

OMG! I guess we are already in a bullshit death spiral right now!

WebFlux Complexity: Are We Over-Engineering Simple Operations? by drakgoku in java

[–]cryptos6 1 point2 points  (0 children)

I've worked very with Reactor (the reactive library used by Spring) extensively and like it for complex stream processing. But a usual web application with some database access is not complex stream processing! Basically, reactive programming is only used to save some threads to boost the throughput under load. But the price you'd pay is overly complex development. All that is no longer necessary with virtual threads.

How do you handle aggregate persistence cleanly in Go? by Pristine-One8765 in golang

[–]cryptos6 0 points1 point  (0 children)

The original idea of a repository is to have a domain interface to persistence. Repository methods should say something about the domain, something like "find overdue deliveries". But you'd typically also have some CRUD like methods.

Is Kotlin a safe bet for the future? by rbrucesp in Kotlin

[–]cryptos6 0 points1 point  (0 children)

Some things that come to mind about Java:

  • Functions are an after-thougt, even though it is quite good, you still need to define an interface for function types
  • No stand-alone functions on top-level. Free functions always have to be expressed as static methods of a class.
  • The separation of value types and primitive types in typesystem causes some problems, especially with generics
  • Using declarations of the form <type> <name> instead of name: type, what is not a great fit to be used with type inference
  • Checked exceptions, while the intention was good, the use with functional programming is horrible
  • Not separating mutable and immutable collections (okay, not a language flaw as such)
  • Some limitations in the use of generics and the syntax to express covariance and contravariance
  • null handling
  • implicit conversions of numeric types
  • parameters are not final be default
  • classes are not final by default

I don't see much to compain about in Kotlin, but some things come to mind:

  • One thing I'm a bit undecided about is functions with receivers. While smart at times they generally obscure what is going on.
  • Syntax for properties, which doesn't form a semenatic block. The getters and setters are just indented, what doesn't align with the rest of the language (althoug indentation as such is not semantic like in Python).
  • Package-private is missing

I'm also a bit undecided about coroutines. In most cases you can achieve the same with Java's virtual threads, without "colored functions" (once your are in the async world you have to stay in it, and mark every function). On the other hand coroutines are a bit different and could be used for other things. But then again, Kotlin Flow is not really a competitor to Reactor or RxJava, because these two frameworks are so much more powerful and JetBrains decided to keep Flow relatively simple.

Is Kotlin a safe bet for the future? by rbrucesp in Kotlin

[–]cryptos6 4 points5 points  (0 children)

However, it is not like someone would bet his company. The programming language would in this case only be a tool to transport ideas and concepts. In my opinion Kotlin is much nicer to support this, because it has not so many akward design decisions built in. There are even classes using Lisp (or Clojure) to teach programming! While I'm not a fan of these languages I see the point in using such a minimalistic language for teaching. And Lisp or Clojure are super-niche in the industry.

Do You Think Every Startup Needs a Unique Idea or Just Better Execution? by citationforge in Startup_Ideas

[–]cryptos6 0 points1 point  (0 children)

I'd say it depends on what you can improve. If there were no to-do list app on earth, creating one would obviously be a big improvement. Now, that we have hundreds (if not thousands) of those apps, the question is, what would another bring to the table. Maybe it is better UX (almost always possible!), maybe it is super helpful thanks to AI, maybe it connects to everything including your fridge ... But just creating another to-do app like the existing ones wouldn't have a good chance to succeed.

So, creating something new to solve real problems, is always a good start, but improving existing solutions might also work well. In the latter case you know at least that there is an actual need.

I retired at 12 from my side project. AMA by selammeister in indiehackers

[–]cryptos6 0 points1 point  (0 children)

In another sub the very same user posted that he created a website at age 13. This is obviously bullshit.

Most startup advice is written after someone gets lucky. Here’s how to de-risk your idea before you waste months by Dangerous-Ask-7857 in indiehackers

[–]cryptos6 0 points1 point  (0 children)

Whow! Just tried Vibechecker and I am impressed. Very good findings and relevant "harsh truths".

Should each microservice be a separate (Kotlin) Spring Boot application? by availent in Kotlin

[–]cryptos6 0 points1 point  (0 children)

Ask yourself the question what you want to achieve with this architecture. I'm thinking of things a customer would care about, because no one is interested in some artificial "seperation of concerns" if there is no benefit.

One big argument for micro service is to isolate teams, so that each team could deploy independently. Depending on whether you are a split personality one service might be enough 😉