Linked by vodoomoth on Fri 24th Sep 2010 22:56 UTC
Java Oracle has made some decisions about Java: in order to release JDK 7 in the middle of next year, they have decided to change priorities and specifically, postpone three features: Jigsaw, Lambda and Coin.
Thread beginning with comment 442649
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: No thanks to Java
by KermitTheFragger on Sat 25th Sep 2010 11:03 UTC in reply to "No thanks to Java"
KermitTheFragger
Member since:
2008-06-12


C# is more like a staticly typed Python. Java is like C++ with a garbage collector.


Well as you can see here: http://en.wikipedia.org/wiki/C_Sharp_(programming_language). Python isn't among the list of languages that influenced C#.

That might have something todo with the fact that Microsoft started working on .Net AFTER the lawsuit from Sun. This lawsuit ended in Microsoft not being allowed to use Java anymore (ie. stop trying to hijack Java with its J++ 'implementation'). When all the dust settled Microsoft paid Sun something like 1.6 billion Dollar iirc for all infrigement, non compliance, etc.

.Net 1.0 was basically a Java clone. It was only AFTER 1.0 that Microsoft came with innovation.

So how anyone can say .Net is more like language X then Java is beyond me.

Reply Parent Score: 2

RE[2]: No thanks to Java
by katelin on Sat 25th Sep 2010 11:47 in reply to "RE: No thanks to Java"
katelin Member since:
2008-10-06

He didn't say that C# 1.0 was more like Python than Java 1.6, he was saying that more recent versions of C# (like 4.0) are a lot more like Python than Java is.

And it's true.

C# 4.0 has a lot of dynamic features that really help in writing a lot of code that Java just doesn't have (but is slowly copying from C# now that Java's dominance is being threatened).

Reply Parent Score: 1

RE[3]: No thanks to Java
by KermitTheFragger on Sat 25th Sep 2010 12:36 in reply to "RE[2]: No thanks to Java"
KermitTheFragger Member since:
2008-06-12

He didn't say that C# 1.0 was more like Python than Java 1.6, he was saying that more recent versions of C# (like 4.0) are a lot more like Python than Java is.


As far as I can see the poster says nothing about any version.

For the point I'm trying to get across version numbers are irrelevant; What I'm saying is that since .Net was largely based on Java it will always be closer to Java then any other language since Microsoft has to maintain backward compatibility, it can't change that.

I'm not talking about a higher level features which got added later like closures. Which on the surface make the language/platform appear like language X or Y. I'm talking about the platform as a whole; VM, garbage collection, etc.

Reply Parent Score: 1

RE[3]: No thanks to Java
by _txf_ on Sat 25th Sep 2010 15:01 in reply to "RE[2]: No thanks to Java"
_txf_ Member since:
2008-03-17

What are these dynamic features that c# 4 has?

Reply Parent Score: 2

RE[2]: No thanks to Java
by nt_jerkface on Sat 25th Sep 2010 16:35 in reply to "RE: No thanks to Java"
nt_jerkface Member since:
2009-08-26

This lawsuit ended in Microsoft not being allowed to use Java anymore (ie. stop trying to hijack Java with its J++ 'implementation').


What is rarely mentioned is that Java looked and ran like garbage in Windows.

Developers hated how Java looked in Windows thanks to the VM and non-native controls.

Java was really sunk on the desktop thanks to Sun's arrogance. I remember seeing a thread where a developer complained that clients did not like how Java fonts looked in Windows and a Sun rep told him to suggest an OS change. Java would have died on the desktop even if .net was never created. Developers hated how Sun ignored their needs, some alternative framework would have been created out of necessity.

Reply Parent Score: 4

RE[3]: No thanks to Java
by sorpigal on Mon 27th Sep 2010 12:20 in reply to "RE[2]: No thanks to Java"
sorpigal Member since:
2005-11-02

Developers hated how Java looked in Windows thanks to the VM and non-native controls.

And developers, and users, still hate how non-native controls look on any platform. Java as a desktop app language has always been hindered by the "Java is ugly" problem, meaning non-native controls look and act out of place. The primary improvement of .net over Java on Windows is that .net programs *look* and *act* native, which means they are native.

I admire that Sun wanted to strictly enforce portability, and thus required No External Dependencies Whatsoever, but this is a case where they took this ideal to a detrimental extreme. You can be portable and still adapt to the local system! As long as the code will run on both systems it really doesn't matter that it takes advantage of native integration on one and not another, or due to that integration looks and acts a little differently. Take firefox as an example: it's cross-platform *and* tries to look native, and largely succeeds. It may take a lot of platform specific code but the results are worth it (and Java could have chucked that code in a library where most developers would never have to care).

Reply Parent Score: 3

RE[2]: No thanks to Java
by tbcpp on Sun 26th Sep 2010 13:27 in reply to "RE: No thanks to Java"
tbcpp Member since:
2006-02-06

No, I'm not saying it's based on Python. But in it's current incarnation (.Net 4). C# supports lambdas, dynamic variables, and even includes a SQL like DSL (LINQ). C# is an imperative language with declarative features. In that sense it is like Python. For instance, C#, Python and Ruby all allow you to do something like this:

var array1 = array1.Filter(x => x.Size > 20);

Doing that in Java/C++ would take about 5 lines of code to create a temporary array, filter the data, and then output the results, and it still wouldn't be clear what was happening. With C# the result is clean, elegant and only 1 line of code.

Reply Parent Score: 2

RE[3]: No thanks to Java
by moondevil on Mon 27th Sep 2010 06:44 in reply to "RE[2]: No thanks to Java"
moondevil Member since:
2005-07-08

... With C# the result is clean, elegant and only 1 line of code.


With the added benefit of running only on Windows.

You need to update your C++ knowledge as well.

auto array1 = array1.Filter([] (auto x){ return x.Size > 20});

Reply Parent Score: 4