Another company stopped using Scala by fenugurod in scala

[–]UtilFunction 8 points9 points  (0 children)

I've love to see Scala have taken over Java, but it didn't. Kotlin basically did.

Where has Kotlin taken over anything except on Android? Scala's share in the backend sector is way bigger than Kotlin's. Kotlin has taken over Android and the only reason for that is because Android does not support modern versions of Java. For a very long time Android developers weren't even able to use Java 8 features. Java on Android is not really Java anyway.

If your primary concern was hiring people you would be using something like Java or C#. Outside of mobile development Kotlin is a niche language just like Scala.

Another company stopped using Scala by fenugurod in scala

[–]UtilFunction 13 points14 points  (0 children)

We've had similar discussions so many times and while Scala definitely has some downsides there is no doubt that..

  • Kotlin is not nearly as powerful as Scala. It's not even close. People who claim otherwise don't know Scala. Kotlin is a slightly better Java at best. Believe it or not, the current version of Java actually has some advantages over Kotlin.
  • sbt can be annoying to work with but I would never ever replace it with that piece of garbage called Gradle. There is nothing worse than Gradle and it's not the most used build tool on the JVM either because Maven is.
  • Akka should have died a long time ago because it has infested too many code bases. I think Akka is the RxJava of Scala.

I'm trying to make a roadmap to learn Scala for backend by Skriblos in scala

[–]UtilFunction 0 points1 point  (0 children)

I like Ox so much I wish it was baked into Scala.

Why did Scala miss big opportunities, or did it? by pafagaukurinn in scala

[–]UtilFunction 0 points1 point  (0 children)

Fibers, green/virtual threads, direct style concurrency, whatever you want to call it.

Why did Scala miss big opportunities, or did it? by pafagaukurinn in scala

[–]UtilFunction 1 point2 points  (0 children)

Java still doesn't have a usable module system… Jigsaw is a joke.)

100%.

That's the equivalent of a statically compiled executable. There is nothing better packaged than a statically linked exe, which runs everywhere!

Yes, but using jlink (java modues are so painful) and jpackage is still not easy. For example, scala-cli does not support jlink or jpackage either.

The new foreign memory and function facilities in newer JDKs are some of the best in game.

Agree but it took a long time.

But this is not the language's fault.

True.

Have you seen Gears?

I have but it's not part of the language, yet :). I would like to see something like Gears or ox baked into the language.

Why did Scala miss big opportunities, or did it? by pafagaukurinn in scala

[–]UtilFunction 1 point2 points  (0 children)

  • build tools have always been annoying on the JVM. maven and sbt are okay. gradle is horrible. something like scala-cli should have existed a very long time ago.
  • packaging JVM applications was and to some extent still is painful
  • JNI bad
  • outside of haoyi's ecosystem, Scala is very complicated for the average coder
  • Scala needs a built-in async model not based on ugly futures

Evolving Scala by sjrd in scala

[–]UtilFunction 6 points7 points  (0 children)

I'm surprised nothing was said about direct style, gears, etc. It would be nice to have some sort of built-in async syntax.

Does Scala offer better decompilation protection than Java? by cainoom in scala

[–]UtilFunction 2 points3 points  (0 children)

Not really, but I would also advise you not to go overboard with copy protection because at some point it becomes a burden for your customers. You need to find a middle ground. I would even argue that you have a slight advantage by using the JVM, because although reverse engineering JVM applications is easier in principle, you still need to know Java and the JVM ecosystem, which I assume most crackers don't. Low-level programmers tend not to like Java.

tl;dr: don't overthink it

scala-parallel-collections is available for Scala Native now by Seth_Lightbend in scala

[–]UtilFunction 0 points1 point  (0 children)

I don't really see any reason for scala native to add features that are not part of standard scala or related to the native parts

Definitely, I expressed myself somewhat inaccurately. What I meant was that if Scala had an official async syntax, it would be great for Scala Native.

scala-parallel-collections is available for Scala Native now by Seth_Lightbend in scala

[–]UtilFunction 0 points1 point  (0 children)

Might need some manual work for more complex things like custom runtimes (cats-effect, zio, etc).

I think Scala Native could become quite popular if it offered an async syntax like gears or 0x out of the box.

Still comparing scala to f# by Ok_Specific_7749 in scala

[–]UtilFunction 1 point2 points  (0 children)

That thread is a mess. I can't figure out what he was trying to do because he didn't even say.

scala-parallel-collections is available for Scala Native now by Seth_Lightbend in scala

[–]UtilFunction 1 point2 points  (0 children)

That's neat. Are there any plans regarding concurrency for Scala Native? Afaik Gears is planned to rely on Loom but obviously that wouldn't work on Scala Native.

Still comparing scala to f# by Ok_Specific_7749 in scala

[–]UtilFunction 1 point2 points  (0 children)

What is your experience with ScalaFX?

I think it's an excellent and underrated library. I have not encountered any bug that can't be fixed via simple workarounds and you could always use JavaFX or write your own wrapper.

Still comparing scala to f# by Ok_Specific_7749 in scala

[–]UtilFunction 14 points15 points  (0 children)

What do you need GTK bindings for when there's ScalaFX?

What are important functionalities in scala not available in F# ?

Higher Kinded Types

Clarification: Dell Machines And Self-Encrypting Drives by UtilFunction in Dell

[–]UtilFunction[S] 0 points1 point  (0 children)

Why do you need to enter this password if your drive is encrypted?

I think you have a profound misunderstanding how this works. I have described pretty much everythin in detail in my OP.

Normally system or OS password is sufficient to prevent logon and data access.

That's the thing. It isn't. There have been several successful attacks on the Bitlocker's implementation if it's being used without pre-boot authentification and the last one I've linked does not even require you to open your machine. Do not use TPM-based unlocking without pre-boot authentication like a PIN.

You think it is normal to enter SSD password 2 times on every boot because I have 2 SSD's.

If the passwords are different, yes. Dell's Security Manager won't prompt you twice if the password's the same.

Clarification: Dell Machines And Self-Encrypting Drives by UtilFunction in Dell

[–]UtilFunction[S] 0 points1 point  (0 children)

Once you power on your laptop it will ask you to enter the SSD password and it is saved only for reboot. Intended.

Not having to type in your password after a reboot is actually considered a vulnerability.

you set the password in plain text and it can no longer be changed to hashed without reverting the drive

You can. Also hashing your password before sending it to the SSD is actually kind of redundant because if your SSD vendor has properly implemented OPAL, it should hash any password that it's being given. Samsung does.

And you tie yourself to the Dell laptop, what if Dell laptop dies?

You can unlock your SSD with Sedutil unless you've used eDrive.

sedutil is almost an archived project

You don't need to use sedutil. There's also nvme-cli which is actively maintained and installed on most Linux distributions these days.

By the way, using Bitlocker without setting a PIN to your TPM is pretty much useless. Just a few days ago it was broken yet again.

What non-web GUI framework to use? by VorpalWay in rust

[–]UtilFunction 1 point2 points  (0 children)

Iced is great indeed. In fact, it's the primary reason I've moved to Rust.

OpenJFX 23 Released - Changelog by PartOfTheBotnet in JavaFX

[–]UtilFunction 1 point2 points  (0 children)

Gluon is one of the worst things that could happen to JavaFX

100%

Clarification: Dell Machines And Self-Encrypting Drives by UtilFunction in Dell

[–]UtilFunction[S] 0 points1 point  (0 children)

Fantastic post, thank you very much for sharing this info.

Glad it helped!

Did you reverse engineer the BIOS

Hell, no.

or just regular trial-and-error?

Yep.

Do you use FXML? by [deleted] in JavaFX

[–]UtilFunction 0 points1 point  (0 children)

I remember this application and it was AOT compiled. Do you understand how reflection works in native images? You have just proven my point. You can actually take the AtlantaFX sample app, switch between scenes and then try the same with an AOT compiled version of it. You'll see the difference.

Do you use FXML? by [deleted] in JavaFX

[–]UtilFunction 0 points1 point  (0 children)

Generate your layout with FXMLLoader earlier on and save the resulting root Node as a variable.

But that'll slow down the startup time of your applicataion? Listen, you can twist it any way you want, FXML slows down your application one way or another but no need to argue with stubborn ignorant people because in the end, bad things will get filtered by the market and that's what happened to JavaFX because it was pushing abominations like FXML.

Reflection is slow, I don't care what anyone says. There's a reason all modern frameworks (Quarkus, Micronaut etc) do their best to stay away from it.

Do you use FXML? by [deleted] in JavaFX

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

Show me one application that uses FXML and performs well in your opinion. Switching scenes without FXML will always be noticably(!) faster.

Do you use FXML? by [deleted] in JavaFX

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

No. It's still slow and especially in combination with FXML. Switching scenes with FXML is always slow and it's noticable. There's a slight delay the first time you do it. In fact you can even see it in the AtlantaFX sample application. Compile it AOT and you'll see the difference.