Whats the next step for a Java fag who wants to make a JVM project thats not in Java?

Whats the next step for a Java fag who wants to make a JVM project thats not in Java?
Kotlin vs Scala? Talk to meh Jow Forums

Attached: index.jpg (299x168, 6K)

Other urls found in this thread:

eta-lang.org
twitter.com/SFWRedditImages

kotlin is a better java
scala is a different java

would it be worth learning both? I really only have any level of competence with Java since its the language at my uni

Kotlin is outdated java pushed hard by jetbrains that only was worth it if you can't use jvm11+

Just use good ol' Java like a real man.

kotlin has google support so it has a brighter inmmediate future

but nothing is settled, golang is a horrible thing that google decided to back but im certain it wont last a decade

ok

I think Kotlin does a lot in the way of saving keystrokes, but it falls into C++ territory with language features. They just keep adding every language feature under the sun just because they can, without a care for code uniformity or simplicity. Java always looks like Java. Kotlin from one codebase can look way different than Kotlin from another codebase.

Do we really need infix functions to be expressive? Is having Obj-c style space based function calls really worth that saved keystroke or two. I dunno.

But I thank them for killing verbose getters and setters and all the typical boilerplate of a basic class.

>Kotlin from one codebase can look way different than Kotlin from another codebase.
This is the moment any language dies for me. People really should be quicker to diverge into a dialect or something. A "language" is useless if you can't have mental interop with other things in that language imo.

Kotlin has more of a future than Scala.
I like Scala more.
JVM is just shit though.

Since you're in uni ill let you in on a secret.
If you teach yourself a bunch of languages that are in essence all the same, you aren't really giving yourself more experience.

Learning a language thats out in left field will give you more tangential knowledge that will help you tackle new concepts.

I also find myself confused more often when reviewing code during code reviews now that my teams have moved to Kotlin. Simple review in the browser is much harder because of lack of explicit type declarations. Even in the IDE I have to jump to definition far more often just to see what I'm actually looking at.

Also, SAM lambda conversions are only valuable for super common SAMs like Runnable#run and the like that every JVM programmer would know. When people use these for their barely used interface from some internal library, I have no fucking clue what I'm looking at and I'm forced to jump to definition.

Why did explicit typing fall out of favor? The rise of JavaScript/Python? C++ auto keyword? How much are those few saved keystrokes worth when you lose clarity?

If you have time to burn and you're interested in programming languages I'd give Eta a try. It's a dialect of haskell and it seems to be compatible with most things in the haskell ecosystem. As such it's mainly geared towards backend server development, but they also have tutorials for android development and other things.

eta-lang.org

good advice. So im doing a summer semester soon where after i complete it theres no more "teach you a language" type classes.

What languages are good compliments to Java iyo?

pic unrelated

Attached: 1558391875245s.jpg (118x125, 2K)

I wonder the same

>Why did explicit typing fall out of favor? The rise of JavaScript/Python? C++ auto keyword? How much are those few saved keystrokes worth when you lose clarity?
I think some of the intent was to mitigate the cost of refactoring, but it might be pretty rare that it's actually useful in that way outside of experimenting.
No need to edit the declaration if types change.
I agree though that level of ambiguity makes it easier to write, but harder to read without proper tooling. I feel like Javadoc and godoc are helpful with this in those languages.

Actual professional here. Every software engineer should know at least the basics of

>C
>C++
>Java-like managed language (Kotlin and C# are fine)
>JavaScript and the basics of web programming. Know how to build a basic web api
>Python (ML)

Everything beyond that is just preference/whatever you're working on currently.

Do people actually refactor without the IDE though? Shift+F6 and every declaration is updated in IntelliJ.

Seems like a weird justification. Code review is done far more often outside of the IDE compared to refactoring.

alright i guess ill keep learning Java to advanced level and then try to at least get familiar with these. I had planned on learning C/C++ anyway because of my interest in command line, systems/low level stuff

Forgot to mention:

>one assembly language

x86 is the most useful in practice, but it's bad to learn on. Try writing basic sorting algos in MIPS or ARM. Without some assembler background you'll really find yourself looking like a brainlet when you're trying to really optimize something speed critical

fortunately i have to suffer through x86 Assembly in the fall

have sex

im 28 and im married

sure thing fag

heres a checklist.
so java is a fine language to learn mostly because its pretty widely used. I prefer c++ for learning though, because it introduces more memory management things you arent really exposed to in languages like java or scripting languages.

if you want to learn a language that teaches you memory management, c is great. I hate it, but you will know how to handle yourself without all the syntactic sugar of modern languages.

after that, Id say a scripting language or two is good to know. Id say bash is important for setting up projects. Generally upon deploy you have a bash script that does some initialization jazz. Alternatively, python, ruby, javascript and lua are all fine choices. I ordered them in order of usefulness. Some might put javascript higher, and thats fair. Sometimes you just need to write something in 5 minutes that will do something that only needs to happen once ever. Scripting languages are great for that.

After that, go for a functional language. This is mostly so you know the lay of the land with that area of programming. I havent really seen it in a professional setting, but i know a bunch of companies that use heavily functional languages. You can also apply functional techniques to most modern OO languages, and definitely in the scripting languages above. I would try Haskell or something like that, but this isnt my area of expertise.

Finally go for something fun that just twists your nipples and slaps your asscheeks.
Rockstar, Prolog, Chef.
Useless languages that will just make you struggle to do basic things, but I find that these teach you how to learn the right way, and break apart problems into what you want to do in any given moment.

Also assembly.

bash is a language? im a basic bitch linux noob and ive been slowly learning bash inside and out.. people consider that a language?

bash scripting -> scripting language. At least ive always put it in the same vein.

Clojure

Clojure

Scala's even worse when it comes to everything you just described.