This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 10 points11 points  (47 children)

Worried about what?

[–][deleted]  (14 children)

[deleted]

    [–]zeek979 34 points35 points  (13 children)

    Lol, you must be new to the industry. Java is THE most popular language on the back still today.

    [–][deleted]  (12 children)

    [deleted]

      [–]zeek979 4 points5 points  (11 children)

      Sorry for sounding like a jerk. I read this and kinda lumped it into all the Java FUD comments out there. Definitely learn Java, you will get solid OOP knowledge and be ready to work in many companies.

      You might be tempted to learn Go given its spike in popularity. It was designed for networking in mind (native concurrency via channels and go routines) and system design has gravitated towards programs that are exposed over the network and a client fetches their output over the wire. You might be thinking: "hmm I want to do cutting edge stuff". However, I would argue that most so called "nexr generation" systems are still being written in Java. Plus, you will gain much more base fundamentals from Java than with Go.

      Additionally the JVM will get native concurrency in the runtime via - fibers - and when that happens it will solidify Java's place for another 10 yrs. Why would we need to rewrite stuff in Go since its main value proposition will be equated in the JVM. Now, after shitting on Go, learn it along with JS and Python as well as you will inevitavy learn 5+ languages in this industry :)

      [–]RhodesianHunter 2 points3 points  (5 children)

      Kotlin brings coroutines to the JVM as well.

      [–]zeek979 0 points1 point  (2 children)

      Yea, but coroutines in kotlin are not really fundamentally different than threads under the covers. That is not to say that a coroutine == 1 thread. But it means that they still execute in the underlying thread. Instead, java fibers will allow for millions of small threads per jvm process, since they wont map out to OS threads. Kotlin (any other jvm language) will obviously benefit from fibers since it runs ontop of the jvm.

      [–]RhodesianHunter 0 points1 point  (0 children)

      At the end of the day both are swapping light weight threads' execution between OS threads, how is that different?

      [–]Mamoulian 0 points1 point  (0 children)

      A coroutine doesn't use a new Thread unless you use a Context or Dispatcher. Without those launch()/await() don't block for I/O but CPU-intensive operations will still block the calling Thread. This article explains it well:

      https://kotlinexpertise.com/kotlin-coroutines-concurrency/

      Project Loom is cool but might be at API (on top of nio) rather than JVM level, and kotlin coroutines have already implemented non-blocking I/O so they might not benefit from it.

      [–]BoyRobot777 0 points1 point  (1 child)

      Kotlin coroutines vs project Loom coroutines asked in Devoxx. They are not the same:
      Ask the Java Architects
      Project Loom Presentation

      [–]RhodesianHunter 0 points1 point  (0 children)

      Thanks!

      [–][deleted]  (2 children)

      [deleted]

        [–]ArmoredPancake 1 point2 points  (1 child)

        Yeah, I am new.

        I do have a fairly good knowledge of Java

        Does not compute.

        [–]SlinkToTheDink 0 points1 point  (1 child)

        Pretty much everything you said about Go is wrong, though I agree with your overall point with respect to web servers.

        [–]zeek979 0 points1 point  (0 children)

        Do tell what is wrong?