6 ms·
They're really great for making sure Java devs will absolutely never contribute to your project. (I say this as a Java dev who occasionally gets tempted to try
by jdm2212 3y ago
They're really great for making sure Java devs will absolutely never contribute to your project.
(I say this as a Java dev who occasionally gets tempted to try to help out in repos that are Kotlin/Scala, and gives up very quickly.)
- the_overseer 3y agoIs this supposed to be a good thing or a bad thing?
- hamandcheese 3y agoDouble edged sword. Spring devs: stay far, far away from me.
- jdm2212 3y agoMostly a bad thing, at companies with lots and lots of Java devs.
- soulbadguy 3y agoIsn't that true for any other language as well ?
- jdm2212 3y agoI'm happy to take a crack at Go and C++, but coming from Java it is totally impossible to decipher wtf is going on in Scala. Kotlin is better, but still pretty awful. Also, devs who use Go and C++ usually have a good reason (embedded systems and such), but Kotlin and Scala use seems to be motivated mostly by vaguely hipster-y annoyance with Java 8. And, like, sure, if you are annoyed by Java 8 and then use a language designed to have nothing in common with Java 8 except that it can import Java libraries and run in the JVM... well, it's gonna be a pain in the butt for your colleagues who do Java all day. And some of them aren't going to make the effort to work with it.
- soulbadguy 3y ago> wtf is going on in Scala I hate to admit it as someone who enjoy trying new languages and enjoyed my time using haskell a long time ago, but scala 2.x was definitely the most confusing and intuitive language i have ever used professionally. Really felt like a collage of desperate features without any coherence between them.
- tome 3y ago> most confusing and intuitive unintuitive, perhaps?
- soulbadguy 3y ago+1
- still_grokking 3y agoIn my experience Scala is one of the most intuitive and coherent languages out there. Very hard to beat in those regards. A tiny language with only a few, but powerful, features which can be used as building blocks to express even the most advanced patterns. The problem are just the people "holding it wrong". If you try to use it as Java++ Scala will be more cumbersome than Kotlin. If you try to use it as Haskell this will become very painful quite quickly. You need to use it as Scala… This means you need to embrace its features and philosophy. Just use the best parts of OOP and FP together!
- soulbadguy 3y ago> A tiny language with only a few, but powerful, features which can be used as building blocks to express even the most advanced patterns. And yet from the scala 3 website itself : > One underlying core concept of Scala was (and still is to some degree) to provide users with a small set of powerful features that can be combined to great (and sometimes even unforeseen) expressivity. For example, the feature of implicits has been used to model contextual abstraction, to express type-level computation, model type-classes, perform implicit coercions, encode extension methods, and many more. Learning from these use cases, Scala 3 takes a slightly different approach and focuses on intent rather than mechanism. Instead of offering one very powerful feature, Scala 3 offers multiple tailored language features, allowing programmers to directly express their intent: > The problem are just the people "holding it wrong". If enough people have the same problem with a programming language, at one point it become the problem of the language, not the people. > Just use the best parts of OOP and FP together! Assuming that one can cleanly extract the best part of OOP and FP without bringing the baggage of eiter. It's not clear to me that those part don't have a certain level of "contradiction" which leads to the whole beeing less coherent than just OOP or FP.