Announcement

Collapse
No announcement yet.

OpenJDK Java's Native Wayland Support Progressing

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by slagiewka View Post

    Yup. JetBrains must be utter dum-dums. Due to that awful decision their products are useless and literally no one will ever pay for them
    I didn't use IntelliJ for a long time, but CLion, also from Jetbrains, is so slow, such that basic workflows, like switching between header and source file or jumping into a method of a class, is real PITA, so that I cancel the task and do it manually. Also debugging is slow as hell and I get timeouts which is not the fault of gdb, because it works with other IDEs. And I have the impression the IDE gets worse and slower by each version.
    And it is full of bugs, but this has nothing to do with Java.

    Comment


    • #22
      Originally posted by Steffo View Post

      I didn't use IntelliJ for a long time, but CLion, also from Jetbrains, is so slow, such that basic workflows, like switching between header and source file or jumping into a method of a class, is real PITA, so that I cancel the task and do it manually. Also debugging is slow as hell and I get timeouts which is not the fault of gdb, because it works with other IDEs. And I have the impression the IDE gets worse and slower by each version.
      And it is full of bugs, but this has nothing to do with Java.
      I have had that happen to me before (in PHPStorm and Goland) and fixed it with invalidating the caches and restarting (from the file menu)

      Comment


      • #23
        Originally posted by Steffo View Post

        I didn't use IntelliJ for a long time, but CLion, also from Jetbrains, is so slow, such that basic workflows, like switching between header and source file or jumping into a method of a class, is real PITA, so that I cancel the task and do it manually. Also debugging is slow as hell and I get timeouts which is not the fault of gdb, because it works with other IDEs. And I have the impression the IDE gets worse and slower by each version.
        And it is full of bugs, but this has nothing to do with Java.
        I have never used an IDE for C/C++ that did not have some issues like this without a massive amount of work on my part to configure it properly. Sure they tend to work for small and trivial projects. But as soon as you try to load a large and complex project they all fail in various ways (e.g. Linux kernel, and something of similar code base size I worked on at my previous work). Either not finding/parsing header files properly, slow "go to definition/declaration", just plain random timeouts etc.

        The best option I found (back in the day when I did more C++ than I do nowdays) was QtCreator actually. As long as you turned off the clang-based code model and used the older QtCreator specific code model. That had okay performance. I'm not sure if that is the case still.

        For other languages I have found plenty of good IDE. E.g. PyCharm works great for me. Though the code bases have been nowhere near the size of the C/C++ stuff I mentioned above, so maybe they too would start to fail as the size goes up.

        If anyone know of a good IDE for C/C++ that can handle the Linux kernel well I'm all ears. (With a reasonably easy set up of include paths etc as well. The Linux kernel has a rather unique build system after all.)

        Comment


        • #24
          Originally posted by caligula View Post
          Ref counting has much better interactive performance.
          But it leaks with cyclic dependencies.

          Comment


          • #25
            Originally posted by Steffo View Post

            I didn't use IntelliJ for a long time, but CLion, also from Jetbrains, is so slow, such that basic workflows, like switching between header and source file or jumping into a method of a class, is real PITA, so that I cancel the task and do it manually. Also debugging is slow as hell and I get timeouts which is not the fault of gdb, because it works with other IDEs. And I have the impression the IDE gets worse and slower by each version.
            And it is full of bugs, but this has nothing to do with Java.
            Well, the Java developers have explained that Java actually has some inefficient structures, e.g. the generics requires dummy object wrappers for primitive values, and larger generic aggregate operations with arrays don't use cache lines efficiently. There's also the fact that e.g. lambdas create object wrappers even when you don't need the object context. If you don't believe me, you can create a small micro benchmark where you reuse a lambda by storing it in a local variable. If you use a memory profiler, you can see the normal casual use of lambdas creates anonymous temporary objects with dollar signs in the name. Those put burden on the GC. But as you can imagine, nobody writes their lambda code in a way that reuses the same lambda via a local variable, because it looks silly and one could argue that those small inefficiencies don't matter that much. But when your app grows, those small inefficiencies start to accumulate, resulting in higher CPU use overall. On top of that, the latest Java ships with more efficient threads, but as you can imagine not all production apps like IntelliJ use those threads yet.

            Comment


            • #26
              Originally posted by tildearrow View Post
              Typo:
              Michael pulled a Stewie Griffin there.

              Comment


              • #27
                Originally posted by caligula View Post

                Well, the Java developers have explained that Java actually has some inefficient structures, e.g. the generics requires dummy object wrappers for primitive values, and larger generic aggregate operations with arrays don't use cache lines efficiently. There's also the fact that e.g. lambdas create object wrappers even when you don't need the object context. If you don't believe me, you can create a small micro benchmark where you reuse a lambda by storing it in a local variable. If you use a memory profiler, you can see the normal casual use of lambdas creates anonymous temporary objects with dollar signs in the name. Those put burden on the GC. But as you can imagine, nobody writes their lambda code in a way that reuses the same lambda via a local variable, because it looks silly and one could argue that those small inefficiencies don't matter that much. But when your app grows, those small inefficiencies start to accumulate, resulting in higher CPU use overall. On top of that, the latest Java ships with more efficient threads, but as you can imagine not all production apps like IntelliJ use those threads yet.
                Generally speaking in any language you can create perverse situations where a compiler doesn't optimize certain code, even in C/C++. More critically though, even the examples you are describing doesn't make Java anyway near as slow as Python which, for example, due to its GIL has to lock entire data structures whenever they accessed by multiple threads, i.e. its basically the equivalent of putting a Java synchronized block on every method. So while your statement have hints of truth in it, you are framing it in a way to create a completely incorrect result. Even then, the problem you are pointing out in Java has ABSOLUTELY NOTHING to do with CLion being slow (the person you are responding to), firstly because Clion isn't coded in the retarded manner that you describe and secondly it has more to do with the fact that C/C++ being such a complicated language to generate hints/autocompletion its probably running similar issues experienced with Scala where it ends up using large amounts of memory to generate the necessary PsiTree datastructure which Clion (and any other Jetbrains IDEs) uses to handle completions/inspections/refactorings. C++ is especially brutal in this regard because its templating language is turing complete, so good luck trying to doing autocompletions for that in a performant way.

                If you are going to judge a language by its speed you should do so when it's written idiomatically, in which case JVM is much faster than Python unless you happen to be using Python libraries that are C wrappers in a single threaded context. There are even cases where Java beats C/C++, mainly due to JIT being able to optimize bytecode at runtime based on dynamic input.
                Last edited by mdedetrich; 25 September 2022, 03:06 PM.

                Comment


                • #28
                  If Java uses xlib (or xcb) for support for X11. What is the equivalent for Wayland? There doesn't seem to be a core library for this yet. Is Oracle just communicating via the UNIX domain socket directly?

                  Comment


                  • #29
                    Originally posted by Vorpal View Post
                    I have never used an IDE for C/C++ that did not have some issues like this without a massive amount of work on my part to configure it properly. Sure they tend to work for small and trivial projects. But as soon as you try to load a large and complex project they all fail in various ways.
                    I've head, that Visual Studio (not Code), shall be the best C++ IDE. Especially, when it comes to debugging. But never used it for C++, because I'm tight to Linux.

                    Comment


                    • #30
                      Fantastic news. Java apps are currently the only thing stopping me from running pure Wayland.

                      Comment

                      Working...
                      X