On 2 October 2012 23:38, clay <[email protected]> wrote: > - Better Generics: Java lacks reified generics in that it discards type > info at runtime. I agree that this is a deficiency of Java, but the > practical consequences of this seem quite obscure. Sure C# can do List<int> > faster than a Java List<Integer>, but int[] goes much faster in both > languages, and most super performance sensitive code uses that. Other > language features have more tangible benefits. >
This isn't about reification, it's about boxing. Scala already demonstrates that manifests can be just as effective as reification, and fortess had a nice alternative too (before it was canned). The performance and memory benefit of Arrays wouldn't be achieved through reification, but with jvm-native structs/tuples and something akin to John Rose's fixnum proposal > - Unsigned integers: I know there are some use cases, particularly in > hashing and cryptography, where you really want a 32/64-bit unsigned int. > Java 8 has library functions to address this which can hypothetically be > properly optimized to give full performance benefit. It's still slightly > nicer to have native unsigned primitives in C#, but practically Java 8 is > fine. > Screw the unsigned int, I want unsigned bytes! These have been sorely missed by anyone doing hardware I/O or network protocol stuff. You can expect the issue to come up again if we ever see a significant number of people hacking over the GPIO of a Raspberry PI using Java... > - Tail Call Optimization: OK, this is important and Java is behind on this > one. Scala has this however. > Sadly limited, and can make debugging difficult. burning it into the JVM would be far more effective. > - Tuples: I looked at the new .NET 4.0 tuples in the standard library, and > those aren't any different than any third party tuple library on Java. > Scala and others have more native, language level tuples. > They can be stack-allocated, and elements inside such a tuple don't need to be boxed. This is a *significant* difference! > - LINQ: I've used LINQ when I was doing C#, but I am no expert. Could you > articulate what this does better than Java 8? Is it really years ahead? > Most LINQ examples I see on the Internet can be translated into Java 8's > functional collections (I'm not sure about join type operations) and the > latter syntax is more intuitive/natural. Also, for external database > access, typesafe's slick looked like a better solution at a superficial > level (I haven't actually had the chance to use it yet). > Without extractors, pattern-matching, some form of flatMap/bind operation, etc. the lambdas in Java 8 are a level of abstraction below Scala and LINQ. And that's before we even start considering Futures, Options, etc. which can also take advantage of the same monadic operations. > - F#: I haven't used it, but I've heard great things about F#, and I > suspect they are right. This sounds like a more academic, thinking man's > programming language and that's not what the typical Joe C# dev wants. I've > talked to several C# exclusive shops and interest in F# was very low. > Secondly, I couldn't get this running on Mono on my Linux dev system and F# > clearly isn't the Mono team's priority. On Microsoft forums, most people > said to just use OCaml if you don't want to set up a Windows VM. Ocaml is > on my todo list, along with deeper forays into Haskell, but if F# is just a > .NET flavor of Ocaml, I can just stick with the latter. > > "Maybe the Java community really needs some "the platform is burning" memo > to wake up, stop their self-congratulatory circle-jerk..." > > In my observations, even Java developers hate Java :) Or are at best luke > warm about it. The last problem in the Java community is over-confidence :) > There are several people in this Java forum who constantly talk about how > terrible Java is. I don't see anything close to that type of self-loathing > over on C# forums and I don't think that's due to product quality. > > "Isn't it quite ironic that people claim that Java is the more "academic" > ecosystem, when – as soon as some technical points are brought up – someone > immediately attacks with the same, sore, old > business-pov/popularity/from-authority response?" > > That's not ironic at all. I use Python a lot because of all the great > libraries and the community built up around it. I don't even think Python > the language itself is terribly special. It's the same with Java. You have > made some technical points against Java, several of which I agree with, but > I still like the libraries, community, etc. I don't care about the TIOBE > index or that kind of mass market. > > BTW, I really like Java as a tool for some use cases, but I don't think > I'm irrational about it. I use a lot of Python (numpy/scipy type stuff) and > JavaScript for web stuff. I'm also trying to invest more learning energy on > science/engineering knowledge rather than programming languages. I'd rather > understand some new machine learning or data processing papers or > engineering skills rather than learn a new programming language feature. > However, the latter is more fun and entertaining. It's like a break from > the hard stuff. > > > On Tuesday, October 2, 2012 3:11:19 PM UTC-5, Simon Ochsenreither wrote: >> >> *I first typed my response to your comments, but it looks that it became >> more of a rant about the current state of the Java ecosystem. So nothing >> against you, clay, your response just caused me to vent my deep frustration >> about the willfull ignorance, the anti-intellectualism, and the denial of >> reality which has spread through some parts of the Java ecosystem.* >> >> -- > You received this message because you are subscribed to the Google Groups > "Java Posse" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/javaposse/-/NVYbE2hxl30J. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > -- Kevin Wright mail: [email protected] gtalk / msn : [email protected] quora: http://www.quora.com/Kevin-Wright google+: http://gplus.to/thecoda <[email protected]> twitter: @thecoda vibe / skype: kev.lee.wright steam: kev_lee_wright "My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger" ~ Dijkstra -- You received this message because you are subscribed to the Google Groups "Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
