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.

Reply via email to