12 ms·
Java has really come a long way. I'm not sure why it's not hyped more. I guess it's like C++ (another widely used old man's language that runs the world).
by w8rbt 10y ago
Java has really come a long way. I'm not sure why it's not hyped more. I guess it's like C++ (another widely used old man's language that runs the world).
- ProdSangi 10y agoI thought Java was the 'default' language in most companies.
- JBReefer 10y agoI feel like it's coming back as the "just use this" after the flashes in the pan of the last few years. C# seemed like it had a shot at the throne but the ecosystem is in deep disarray these days, tooling wise.
- tonyedgecombe 10y agoC# is fine if you stick to the Windows ecosystem, the cross platform stuff was released far too early in my opinion.
- JBReefer 10y agoI agree - even with the VSCode stuff, they're missing their major competitive advantage: Visual Studio.
- sdfsdufihwfuhdf 10y agoI use C# at work, the syntax is better than Java but there's one huge issue: good luck getting it to work without Windows and Visual Studio. .NET core is still very immature, we had to back out every time we tried to use it in production. Maybe in a few years it will be good. Java on the other hand has support for many IDE's, package managers, web servers, JVM's, OS's. You can swap out pretty much everything, no vendor lock in issues at all. The open source community is far stronger as well. So many times I wanted to use a cool database and found out there's no official C# client
- geodel 10y agoIt needs no hype. I think 90% of enterprises use it in lot of ways. Pre-hype and post-hype people know Java gets shit done. People who believe in hyped cool functional language which ultimately runs on JVM are not going to listen anyone who claim is Java is just fine for lot of work.
- nrjdhsbsid 10y agoJava isn't perfect but it's the defacto language for anything that doesn't need to be compiled. I personally really like Java and I've used a ton of languages over the years. Not a perfect design but it's hard to think of any big downsides. The syntax is annoying at times but once you learn to use the IDE to poop out boilerplate it's not an issue
- Cyclone_ 10y ago"Java isn't perfect but it's the defacto language for anything that doesn't need to be compiled" Java is a compiled language.
- dangravell 10y agoCompiled to bytecode, I'm guessing the GP meant compiled to native.
- Cyclone_ 10y agoPossibly, just wanted to make sure there's no confusion.
- danbruc 10y agoJava is complied to native code, this is just delayed until execution. There are drawbacks like slower start-up performance due to the required JIT compilation but there are also advantages like being able to optimize for the exact machine you are executing on or even recompiling at run-time after profiling the running application and determining useful optimizations based on the actual work load. A really important aspect of using an intermediate language like Java, .NET but also LLVM does is that it reduces the amount of required code. If you have M languages each targeting N different platforms, then you need M * N traditional compilers. If you first compile to a common intermediate language and then from there to the targeted platform, then you only need M + N compilers.
- di4na 10y agoIt has added some half assed okish stuff into a language that is still massively hard to use, super ceremonious and all that for not a lot of security. Yes it is better than a lot of things, but it is also a super low standard. It get things done if you are ready to deal with all its problem... But it is still the child of its history, and its shows.
- nrjdhsbsid 10y agoJava is easy to use once you understand it. I can code Java just as fast as C# or Python. In fact C# and Java are close enough to be mutually intelligible. The ceremony is all optional crap that most people don't worry about, it happens to any language used a lot in corporate. The security issues were mostly in Java applets. The language itself is pretty damn secure. I can't remember the last time I saw a web exploitable issue in the JVM.
- Cyclone_ 10y agoWell said. I'll add on that if you use a framework like Play with hot swap built in, you don't have to worry about restarts.
- sdfsdufihwfuhdf 10y agoI'm messing with running Jersey on Jetty right now so I can get HTTP/2 before java 9. Netty and Jetty have both supported it for a while :) There's still a lot of innovation going on in the Java community you just don't hear about it.
- craigching 10y agoFor Jersey + Jetty, it's hard to beat dropwizard (dropwizard.io). I'm sure you've heard of it though ;)
- di4na 10y agoBy security, i was more thinking of dealing with exceptions and error. I should have used Fault tolerance. And i was not comparing Java to C# or Python here, but that is probably due to my personal background, which is more with OCaml, Erlang, C, Rust and co.
- legulere 10y ago- Oracle has hands on it and does questionable things like suing google - Everything Java does, C# does as good or better. In general for everything in Java you could easily find a better way to do it. - Java has lots of warts, many to have the language be backwards-compatible. (switch-case, enums, UTF-16 encoding, generics, null, difference between objects and basic types,...) - Java is tied to old technologies. There are no standard JSON libraries, however even XSLT is included in java se. - You need to use Java with an IDE. Eclipse is horrible to use (even scrolling lags here) and IntelliJ costs money. Still java is a mature and solid language. There is just nothing to hype about it.
- sdfsdufihwfuhdf 10y agoYou must not have used eclipse for a while :) . I use Visual Studio at work and Eclipse at home and they're comparable these days. I agree that years ago Eclipse was awful. - Every language has switch-case and enums? I don't get what you're trying to say there. - Generics are fine? - Every language supports null on objects? - Nearly every language treats null and primitive types differently for performance reasons - Java has three popular JSON parsers and they're all faster than .NET's builtin serialization. To get similar performance you need to use Newtonsoft which isn't builtin to C# either :). - You don't need an IDE, it's just stupid to develop without one because they're so helpful. Nothing is stopping you from running javac on the command line. You can't do a LOT of things java can do in C# because third party library support pales in comparison. A lot of databases and open source software don't have c# clients. If you're dealing with big data or ML you'll find almost nothing in C# land. I feel like you haven't used Java in a long time. Things are much better than Java 6 days
- legulere 10y agoMaybe I should expand a bit on my points, as the problems do not seem so apparent. - Java has the same horrible switch case with the error prone break as C. If you want exhaustive matching on enums you will end up with a useless default case. If you ever worked with a programming language with pattern matching you will feel the pain. - This might be a bit opinionated but I think enums are not enough. Sum types/tagged unions/variant types/disjoint unions/whatever you like to call them are pretty useful. - Generics in Java are highly limited. Part of that is because generics were added as an afterthought and are implemented using type erasure. Both functional programming languages like Haskell or imperative programming languages like C++ or Rust offer more powerful generics that can sometimes help abstract things more elegant. - The problem is that all objects are nullable by default and you cannot specify that e.g. parameters or results are never null. This leads to boilerplate null checking and missing handling of null cases. Everybody that touched java probably saw quite some amounts of NullPointerExceptions. Kotlin for instance offers types that by default cannot be null, with TypeScript this exists if you turn on an option of the compiler. - You can offer pretty much everything you offer for objects also for primitive types. In fact, this is what Project Valhalla tries with value types and specialisation. - My comment on IDEs was more about the need to use an IDE being bigger with Java than for instance C, while eclipse is often annoying. I am using eclipse daily currently because I work on some Java code for my Master's thesis.
- edem 10y agoI realky like it as well. I started to use Kotlin lately which interops with Java seamlessly and addresses a lot of Java's warts without wanting to be more than it is: Turbo Java.