Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. What's wrong with Java?

What's wrong with Java?

Scheduled Pinned Locked Moved The Lounge
csharpvisual-studiojavaquestion
75 Posts 34 Posters 10 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U User 13269747

    Quote:

    I fondly remember discovering that the byte type is signed (why, really why ???)

    I know the answer to this one: it's because the representation of signed integers is specified (as two's complement), so there is no problem with bit-shifting (or other bit operations) them as there is with bit-shifting signed numbers in C++ (which doesn't specify the integer representation). In C++, for example, you cannot write this (to check if variable 'a' overflowed):

    if (a + 1 < a) { ... }

    and expect it to work on all conforming compilers because there is no guarantee that the underlying representation uses twos-complement. In Java the representation is guaranteed to be twos complement. In C++, the result of:

    a = b >> 3;

    Is undefined if 'b' is signed. In java it's defined (right-shift twos-complement). Sure, those are shitty reasons to leave out unsigned types, but they're still reasons. The only place you're likely to run into problems is when trying to add two signed 64-bit numbers that overflow the signed 64-bit type.

    N Offline
    N Offline
    NelsonGoncalves
    wrote on last edited by
    #46

    Thanks for the explanation.

    Member 13301679 wrote:

    Sure, those are sh*tty reasons to leave out unsigned types, but they're still reasons. The only place you're likely to run into problems is when trying to add two signed 64-bit numbers that overflow the signed 64-bit type.

    I am OK with the design decisions made, the issue there was conflicting expectations. The Java language designers choose to treat bytes as signed integers, while in the embedded world a byte is simply a string of 8 bits and endianess. In my case, the problem wasn't math but reading data from a serial port. I was getting "garbage" until my colleagues told me that in Java bytes are signed.

    U 1 Reply Last reply
    0
    • T trønderen

      In (very) special cases: Sure. In those cases, you might as well go to assembly language. I learned 30+ years ago that trying to outsmart an optimizing compiler is futile. In my student days, we thought it crazy to write an OS in a "high" level language - but Unix did succeed, and performance was not an issue. So we abandoned assembly. Not entirely; there are cases for assembly because that is the only possible way to get access to certain hardware functions. But going assembly for performance reasons has no place in the third millennium. Today, the same goes for memory. It is almost as difficult to outsmart automatic memory management by "clever" use of malloc/free as to outsmart a compiler - in particular because you have no insight in actual memory fragmentation. The risk of memory leaks is much larger; too many programmers do not master their own memory use as well as they believe (or, they are not enforcing the programming discipline as they should). Again: There are (very) extreme cases where the cost of garbage collection is unacceptable. Usually, memory fragmentation is then unacceptable as well. So you manage your objects e.g. in a static array, dimensioned for a worst case. (I was programming one such C solution - malloc was not accepted by our coding standards. C++ new would have been rejected as well, so the case for C++ was not very strong.) Analogy: When I talk with extreme HiFi buffs, I must admit that 24 bit samples at 96 kHz does have its place, in a professional studio where a sound recording may go through many generations of various processing, mixing etc. for an end result of unknown sample width and frequency. But that is is the studio. It doesn't mean that the music I listen to on my stereo benefits from being in 96/24 format. Similarly: If you write a physical level driver for a 10 Gbps network interface, you probably cannot tolerate GC delays. But for 99.999% of all code written, GC without memory leaks is a lot better than dubious "private" memory management.

      C Offline
      C Offline
      CodeWraith
      wrote on last edited by
      #47

      Quote:

      I learned 30+ years ago that trying to outsmart an optimizing compiler is futile.

      Indoctrination. Processors have been built to prove this point for a long time. Cache penalties, pipeline penalties, millions of addressing modes... Just take a true RISC processor and you are rid of most of that. Now a child can be just as good as the compiler, leaving only the thing that compilers are notoriously bad at and that's choosing the algorithm.

      trønderen wrote:

      But for 99.999% of all code written, GC without memory leaks is a lot better than dubious "private" memory management.

      Maybe, but developers who run into such a problem and know nothing about memory management are helpless 100% of the time. Watching 'team leaders', 'architects' and who knows what other titles they had given themselves camp around a server and trying magical chanting and sacrificing virgins to fix a memory overflow is a sad sight. But I was able to motivate them with lots of good natured humor, which they took as biting sarcasm.

      I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.

      1 Reply Last reply
      0
      • N NelsonGoncalves

        Thanks for the explanation.

        Member 13301679 wrote:

        Sure, those are sh*tty reasons to leave out unsigned types, but they're still reasons. The only place you're likely to run into problems is when trying to add two signed 64-bit numbers that overflow the signed 64-bit type.

        I am OK with the design decisions made, the issue there was conflicting expectations. The Java language designers choose to treat bytes as signed integers, while in the embedded world a byte is simply a string of 8 bits and endianess. In my case, the problem wasn't math but reading data from a serial port. I was getting "garbage" until my colleagues told me that in Java bytes are signed.

        U Offline
        U Offline
        User 13269747
        wrote on last edited by
        #48

        Quote:

        I am OK with the design decisions made, the issue there was conflicting expectations.

        Yes, that is the problem: if you're going to have a type called 'byte' in your language, it's better represent a pattern of bits (no matter the size of the byte itself). As I get older, I get more and more irritated that all languages are not keeping to The Law of least Astonishment; they have rules, then exceptions to those rules, then overloaded meanings for keywords, then overloaded meanings for characters ... I keep meaning to design a language that is easier to read than to write: most modern languages right now make the reading very difficult unless you have unreasonable context memorised. C++ is a great example of producing "easy to write, but impossible to read" compound statements - most lines in C++ require knowing complex rules, some part of the standard and some part of the program. In particular, I'd like to shoot whoever thought that pass-by-reference must only be indicated in the declaration, and "helpfully" filled in by the compiler at the point of call. This means that looking at any function or method call is meaningless even if you just want to ignore it while looking for something else.

        1 Reply Last reply
        0
        • U User 13269747

          Quote:

          i have a particular bookmarked folder for every anti-class based-oop post i have stomp upon written by people who by my opinion have competent or expert skills at programming including oop.

          Maybe you should share that ;-)

          M Offline
          M Offline
          Martin ISDN
          wrote on last edited by
          #49

          lets have 10 links for starters. also the wikipedia article is ok and some of the answers at quora [Object-Oriented Programming is Bad - YouTube](https://www.youtube.com/watch?v=QM1iUe6IofM) [Object-Oriented Programming is Embarrassing: 4 Short Examples - YouTube](https://www.youtube.com/watch?v=IRTfhkiAqPw) for all those propaganda examples of elegant oop code vs neanderthal procedural code, this is the reverse situation where procedural is lean and oop is bureaucracy [Stop Writing Classes - YouTube](https://www.youtube.com/watch?v=o9pEzgHorH0) [What's Wrong With Object-Oriented Programming?](https://www.yegor256.com/2016/08/15/what-is-wrong-object-oriented-programming.html) [Object-Oriented Cult](http://www.softpanorama.org/SE/anti\_oo.shtml) [Object-Oriented Programming — The Trillion Dollar Disaster](https://betterprogramming.pub/object-oriented-programming-the-trillion-dollar-disaster-92a4b666c7c7) [Object Oriented Programming is an expensive disaster which must end](https://medium.com/@jacobfriedman/object-oriented-programming-is-an-expensive-disaster-which-must-end-2cbf3ea4f89d) [Rees Re: OO](http://www.paulgraham.com/reesoo.html) [The Web Will Die When OOP Dies](https://www.youtube.com/watch?v=\_CEBG\_s92P8&t=1044s) [Object Oriented Programming Oversold](http://www.oocities.org/tablizer/index.html) this looks like it is about oop in general, but it is about the java way of oop. not against oop in smalltalk, javascript or clos lisp. i know that there are people who can dispute something from this list and even claim that all of it is disputable, it is not. you are free to believe whatever you like. there must be some reason why kotlin has functions (not just methods), go is procedural and rust is not like Java.

          1 Reply Last reply
          0
          • L Leo56

            What's a 'camera'? Isn't that what smartphones are for? How else to instantly upload to that other essential invention ... social media? ;P

            P Offline
            P Offline
            PIEBALDconsult
            wrote on last edited by
            #50

            The problem with smartphones is that they suck out the subject's soul. :sigh:

            1 Reply Last reply
            0
            • C Cp Coder

              I don't understand the snarky comments one sees about Java. :confused: I am well versed in programming both in C# (Visual Studio 2019) and JavaFx (IntelliJ IDE). I enjoy both equally. There must be something wrong with me! :sigh: :laugh:

              Get me coffee and no one gets hurt!

              D Offline
              D Offline
              Dan Neely
              wrote on last edited by
              #51

              From the C# side, it feels clunky and verbose and despite having added a few modern features like lambdas overall feels like I'm stuck in C# 1.x. :sigh:

              Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

              1 Reply Last reply
              0
              • C Cp Coder

                I don't understand the snarky comments one sees about Java. :confused: I am well versed in programming both in C# (Visual Studio 2019) and JavaFx (IntelliJ IDE). I enjoy both equally. There must be something wrong with me! :sigh: :laugh:

                Get me coffee and no one gets hurt!

                O Offline
                O Offline
                obermd
                wrote on last edited by
                #52

                Going to Java after C# is really tedious, especially for multi-threaded applications.

                1 Reply Last reply
                0
                • raddevusR raddevus

                  There are two main issues to me: 1) versioning -- difficult to know which version to run and what functionality I will have -- this is especially after Oracle took over and then it split even more with the OpenJDK and all that nonsense. It's quite difficult. Along with versioning it is difficult to find tools that feel like they are "official". For instance, I am attempting to use JCov (java coverage tool) and it is supposed to be the "official" but very poorly or not documented at all. 2) UI Framework - Oh boy. I remember the original was something like AWT, right? Then JavaFX (but never caught on fully). 3rd party stuff, and controls that are instantly recognizable that they weren't Windows controls. It was all so confusing and there were better options (C#, Visual Studio and MFC, etc). 3) Java Applets they used applets to introduce Java and it was supposed to be gee-whiz. I was like, "a plugin...?? that fails a lot in my browser...?? and needs to be updated constantly...??? which MS doesn't like to support ???" That intro to Java kind of killed it. After that it felt like a slow cumbersome thing with no direct line to components without lots of management. So, over to C#, which was easy. Much of this isn't "fair" to Java, but it is the perception.

                  B Offline
                  B Offline
                  BryanFazekas
                  wrote on last edited by
                  #53

                  Following on with raddevus' points are: 4) Support -- ongoing support is difficult as the Java versions keep changing. Applications that run in "version X update Y" may not run on "update Y+1". And if multiple installed applications require different versions? Getting each to use the right installed version is its own version of DLL Hell. 5) Hiring -- finding people with experience in the needed versions of specific libraries can be tough. If not using the latest and greatest, finding people with experience and a willingness to work in an older version can be all but impossible. Besides, knowing one version of a library may not mean anything in a different version. Java the language? It's just another language. It's got its pluses and minuses, same as every other language. IMO, the serious problems are everything except the language itself. C# has its own issues, but post-deployment it's MUCH easier to support.

                  1 Reply Last reply
                  0
                  • Mike HankeyM Mike Hankey

                    Nay brother let me lead you to the true path of enlightenment. Nikon shall set you free and with your purchase of a new lens you shall receive the blessing of the shutter gods.

                    The less you need, the more you have. JaxCoder.com

                    D Offline
                    D Offline
                    davecasdf
                    wrote on last edited by
                    #54

                    Hmmph! https://www.flickr.com/photos/awrose/103252765/in/pool-camerawiki ain't it pretty? Story - 35 yrs ago - guy had done some beautiful work and was very proud that the grain was so fine. I said so? I get that smooth out of Tri-X all the time. He goes uh - OH! you're the one with THAT camera!

                    Mike HankeyM T 2 Replies Last reply
                    0
                    • D davecasdf

                      Hmmph! https://www.flickr.com/photos/awrose/103252765/in/pool-camerawiki ain't it pretty? Story - 35 yrs ago - guy had done some beautiful work and was very proud that the grain was so fine. I said so? I get that smooth out of Tri-X all the time. He goes uh - OH! you're the one with THAT camera!

                      Mike HankeyM Offline
                      Mike HankeyM Offline
                      Mike Hankey
                      wrote on last edited by
                      #55

                      Beautiful camera! I love looking at old photos taken with those types of cameras.

                      The less you need, the more you have. JaxCoder.com

                      D 1 Reply Last reply
                      0
                      • L Leo56

                        What's a 'camera'? Isn't that what smartphones are for? How else to instantly upload to that other essential invention ... social media? ;P

                        T Offline
                        T Offline
                        trønderen
                        wrote on last edited by
                        #56

                        Leo56 wrote:

                        What's a 'camera'? Isn't that what smartphones are for?

                        Obligatory Geek and Poke[^]

                        1 Reply Last reply
                        0
                        • D davecasdf

                          Hmmph! https://www.flickr.com/photos/awrose/103252765/in/pool-camerawiki ain't it pretty? Story - 35 yrs ago - guy had done some beautiful work and was very proud that the grain was so fine. I said so? I get that smooth out of Tri-X all the time. He goes uh - OH! you're the one with THAT camera!

                          T Offline
                          T Offline
                          trønderen
                          wrote on last edited by
                          #57

                          I am very much two-faced about grains. On the one hand, those super-smooth tones from old 4*5" films (or even larger), when the emulsion was stuffed with silver, and not a trace of grain, can be a pleasure to study for their tonal qualities alone. Then, in significant parts of modern B&W photography, graininess is used as an artistic expression, not unlike the 'dottiness' of some impressionist painters. In journalism and sports photography, graininess and hard, 'graphics style' contrast has been a style of expression for at least 50 years. Even in some landscape photography, grains can add structure to a surface that would otherwise be boring (e.g. a misty landscape). My photography books fill two meters of shelf space. In them, I can "in no time" find a hundred photos, from internationally recognized photographers, that would have lost some of their qualities if they were absolutely grain-less and with a smooth, 'natural' tone scale. Fair enough for 'scientific style' documentary photos, but if you want your photo to tell a story, you may need something beyond a simple and boring 'This is exactly how it looks'. It may be true, but So what? Who said "A picture shouldn't show something, it should be something"? In the process of making it "be" something, grains can be a great tool.

                          1 Reply Last reply
                          0
                          • C Cp Coder

                            I don't understand the snarky comments one sees about Java. :confused: I am well versed in programming both in C# (Visual Studio 2019) and JavaFx (IntelliJ IDE). I enjoy both equally. There must be something wrong with me! :sigh: :laugh:

                            Get me coffee and no one gets hurt!

                            B Offline
                            B Offline
                            Bruce Patin
                            wrote on last edited by
                            #58

                            I tried writing an accounting program in Java, but gave up, when I got tired of trying to outwit UI classes that didn't do the job, and having to write factory classes to construct other classes to do the simplest things in the most complicated way.

                            C 1 Reply Last reply
                            0
                            • Mike HankeyM Mike Hankey

                              Beautiful camera! I love looking at old photos taken with those types of cameras.

                              The less you need, the more you have. JaxCoder.com

                              D Offline
                              D Offline
                              davecasdf
                              wrote on last edited by
                              #59

                              Ah yes, one of far too many "need to spend time with thats". ( And the F-1, A-1... the D2s ( which are 5-7s, the Gundlach is a 4-5 ) and the Bronica - which I got paid for using _almost_ what I paid for it. )

                              1 Reply Last reply
                              0
                              • B Bruce Patin

                                I tried writing an accounting program in Java, but gave up, when I got tired of trying to outwit UI classes that didn't do the job, and having to write factory classes to construct other classes to do the simplest things in the most complicated way.

                                C Offline
                                C Offline
                                Cp Coder
                                wrote on last edited by
                                #60

                                Were you using Swing or JavaFX?

                                Get me coffee and no one gets hurt!

                                B 1 Reply Last reply
                                0
                                • C Cp Coder

                                  I don't understand the snarky comments one sees about Java. :confused: I am well versed in programming both in C# (Visual Studio 2019) and JavaFx (IntelliJ IDE). I enjoy both equally. There must be something wrong with me! :sigh: :laugh:

                                  Get me coffee and no one gets hurt!

                                  S Offline
                                  S Offline
                                  sasadler
                                  wrote on last edited by
                                  #61

                                  As an embedded engineer, I've only worked on one project that had enough memory to support java. The only snark I'd have for Java is the lack of unsigned integers! I will say that my favorite editor is java based (jEdit).

                                  1 Reply Last reply
                                  0
                                  • R Rick York

                                    I worked with a customer who implemented a serious, corporate-wide Manufacturing Control System using Java. I worked with them on systems at four sites - San Jose, CA; Szenzhen, China; Mainz, Germany; and a place in Thailand I have forgotten the name of. The MCS was used with Windows, AIX, Linux, MacOS, and a few others I can't remember. We used sockets as our interface and there were no problems with it all. I don't even know what OS the systems we directly interfaced with ran on because we didn't need to. That was a few employers ago so I have forgotten some details now. The systems were used in the manufacturing of disk drives and dealt with making the disks themselves. Assembly happened at other sites and we did a few of those systems too.

                                    "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                                    T Offline
                                    T Offline
                                    trønderen
                                    wrote on last edited by
                                    #62

                                    I grew up with Open Systems Interconnection - communication protocols that are very explicitly designed for being completely independent of any given tool used to generate the protocol elements. One very fundamental protocol principle is that the application, and all lower layers, should relate to the protocol specification, and nothing else. As OSI was pushed into the darkness, it felt like a rope being tightened around my neck: the protocols replacing the OSI ones more or less demanded that you use specific libraries, specific OS conventions, specific languages - or else you would have to emulate those specific libraries, OSs and languages. But that is troublesome, because new extensions were added all the time, and keeping up with the updates to the libraries, OSs and languages in your emulation was almost impossible. Sometimes, the binding to specific tools is not immediately apparent. Take the RFC 4506 serialization format (a.k.a SUN XDR): In my archives from the years of the network wars is a "benchmark" of it against OSI BER (Basic Encoding Rules). XDR beats BER by an high factor. What the benchmark documents keep perfectly quiet about is that XDR is more or less a direct streaming of the binary layout of a C struct on a SUN machine; there is hardly any conversion at all. After generating the red tape, you set that byte pointer to the start of the struct and send the following sizeof(struct) bytes out on the line. (Needless to say, this benchmark was run on a SUN.) I never thought BER would be anywhere as fast as XDR (BER has a lot more flexibility, which can't be realized at zero extra cost). But if you set up a similar benchmark on a non-SUN machine, the serialization cost of XDR might easily raise by a magnitude. Say, if the machine had a different float format. Different byte order. Maybe an old machine wouldn't be byte addressable - my first three university years, I was programming non byte addressable machines exclusively; the Univac even used 1-complement integers, and its proprietary 6-bit character set. (The Decsystem series used 7-bit ASCII, packed 5 to a 36-bit word.) Say, if your language has proper string handling, you will have to explicitly add a C-style terminating NUL at the end (a use of NUL which is in direct conflict the the ASCII / ISO 646 standard). The specification of how to encode a structure is given by how a C declaration of it looks. And so on. This is typical: As long as you use the "proper" machine, the "proper" language, the "proper" OS, you find it very eas

                                    R 1 Reply Last reply
                                    0
                                    • T trønderen

                                      I grew up with Open Systems Interconnection - communication protocols that are very explicitly designed for being completely independent of any given tool used to generate the protocol elements. One very fundamental protocol principle is that the application, and all lower layers, should relate to the protocol specification, and nothing else. As OSI was pushed into the darkness, it felt like a rope being tightened around my neck: the protocols replacing the OSI ones more or less demanded that you use specific libraries, specific OS conventions, specific languages - or else you would have to emulate those specific libraries, OSs and languages. But that is troublesome, because new extensions were added all the time, and keeping up with the updates to the libraries, OSs and languages in your emulation was almost impossible. Sometimes, the binding to specific tools is not immediately apparent. Take the RFC 4506 serialization format (a.k.a SUN XDR): In my archives from the years of the network wars is a "benchmark" of it against OSI BER (Basic Encoding Rules). XDR beats BER by an high factor. What the benchmark documents keep perfectly quiet about is that XDR is more or less a direct streaming of the binary layout of a C struct on a SUN machine; there is hardly any conversion at all. After generating the red tape, you set that byte pointer to the start of the struct and send the following sizeof(struct) bytes out on the line. (Needless to say, this benchmark was run on a SUN.) I never thought BER would be anywhere as fast as XDR (BER has a lot more flexibility, which can't be realized at zero extra cost). But if you set up a similar benchmark on a non-SUN machine, the serialization cost of XDR might easily raise by a magnitude. Say, if the machine had a different float format. Different byte order. Maybe an old machine wouldn't be byte addressable - my first three university years, I was programming non byte addressable machines exclusively; the Univac even used 1-complement integers, and its proprietary 6-bit character set. (The Decsystem series used 7-bit ASCII, packed 5 to a 36-bit word.) Say, if your language has proper string handling, you will have to explicitly add a C-style terminating NUL at the end (a use of NUL which is in direct conflict the the ASCII / ISO 646 standard). The specification of how to encode a structure is given by how a C declaration of it looks. And so on. This is typical: As long as you use the "proper" machine, the "proper" language, the "proper" OS, you find it very eas

                                      R Offline
                                      R Offline
                                      Rick York
                                      wrote on last edited by
                                      #63

                                      I saw that tendency in MFC and I never bought into that aspect of it. I try my best to avoid all of its collections and OS synchronization object wrappers and I use STL and write my own wrappers. That lets me leave only the UI for MFC and I actually like how it handles most of that. It's pretty much on life support now so soon I am going to leave it and move on.

                                      "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                                      1 Reply Last reply
                                      0
                                      • C Cp Coder

                                        I don't understand the snarky comments one sees about Java. :confused: I am well versed in programming both in C# (Visual Studio 2019) and JavaFx (IntelliJ IDE). I enjoy both equally. There must be something wrong with me! :sigh: :laugh:

                                        Get me coffee and no one gets hurt!

                                        M Offline
                                        M Offline
                                        Member 12982558
                                        wrote on last edited by
                                        #64

                                        Depends on what you what domain you are working in. I wrote a DAB (digital Aufio Broadcasting) decoder in C++ and simplified versions - just as a programming exercise - in Ada and in java. The type of program of such a decoder requires extensive interaction with libraries written in C (to name a few, device handling, fft transforms, and aac decoding). In my personal opinion, binding java structures to C libraries is a crime. btw the Ada binding is simpler since I was using the Gnat compiler system, but even then ... Java is just a language, it is not my choice, but for many applications it seems more or less OK. Personally I do not like the GUI handling, but that is probably a matter of taste. The misery with binding to non-java (read: C) libraries is such that I would not recommend it for applications where one depends on that kind of libraries (I dislike all kinds of so-called integrated environments such as IntelliJ or whatever, right now I am writing some stuff where I (more or less) have to use VS as development environment. It is probably my ignorance, but I absolutely dislike the destruction of the formats I use in my coding, and the error messages are a horror. For me the command line tools such as vim, qmake, mae and the GCC suite - with gdb as debugger under Linux - are the ideal development tools)

                                        1 Reply Last reply
                                        0
                                        • C Cp Coder

                                          I don't understand the snarky comments one sees about Java. :confused: I am well versed in programming both in C# (Visual Studio 2019) and JavaFx (IntelliJ IDE). I enjoy both equally. There must be something wrong with me! :sigh: :laugh:

                                          Get me coffee and no one gets hurt!

                                          M Offline
                                          M Offline
                                          Member_5893260
                                          wrote on last edited by
                                          #65

                                          What's wrong with Java is that it's 30 years old or something, and its architecture is a prisoner of what was available at the time: it no longer makes any sense now that richer and more capable systems exist. And it doesn't have properties, which is ridiculous.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups