Live data from Hacker News

Red Hat's top secret Java Killer/Successor: The Ceylon Project

blog.talawah.net

31–40 of 89 posts

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#31
post #23

What I never understood was why backwards compatability was not overcome by simply changing the file suffix. A second fixed up version (something like Ceylon) could be mixed in with old Java code. Just change the suffix to .java2 to signify a class using the new language spec. In my opinion basic type inference, name parameters, better support for immutability* and multiline strings represent the majority of the defi…

Backwards compatibility was never a technical problem, the JVM can support heterogeneous programs written in multiple languages out of the box. As long as it all compiles down to class files everything can interoperate seamlessly.

Strong-typed alternatives to Java have existed for ages, such as Nice, KSL, and Scala, so if you want you can take your pick in mix it in with Java code right now.

As far as I understand it Sun just didn't want to fork the Java language.

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#32
post #9

The article says it draws inspiration from younger languages, and mentions Python as an example. This is false, Python is four years older than Java.

I'm not a python programmer, but I still get the impression that python in younger in spirit than java :-)

That's true, at some point you grow up and use Java :3

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#33
post #17

Is it 'easy to read' as in let sum x y = x + y Or 'easy to read' as in public final class Summer { public static T Sum (T x, T y) { return x.add(y); } } Because I don't think that dreck in the bottom is 'readable', it's like giving construction workers a Fischer Price My First Hammer and expecting them to be able to build a house with it. If you're going to make a language like Java at least let programmers take the…

For comparison, I came up with this in C#

  Func sum = (x, y) => x + y;
I had to specify the type explicitly, could not use 'var' type inference; the error is "Cannot assign lambda expression to an implicitly typed local variable". This is because the lambda could mean more than one kind of thing (delegate, expression tree, Func). Yeah, it's c# baggage.

Of course, once the type is known, you could do

  var sum2 = sum;

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#34
so sad.

first of all, nothing about java is good. nothing. can anyone on HN name one single app they use daily that is programmed in java? anyone? no! how is it that a language designed from the beginning to be cross platform doesn't have a single mainstream cross platform desktop app? they even couldn't get it to be a platform for web browser plugins, how pathetic is that! and even when it does run as a web browser plugin my computer has a seizure, hard disk starts humming, mouse pointer starts spinning, browser becomes unresponsive...

java does exist out there though. ironically enough in controlled server-side environments for in-house "business" web applications. that one really boggles me, i'd rather have my face ripped off than write a web app in java. no, seriously.

let java and the jvm just die, it's bad, it's all bad. the jvm was a bad idea, it sounds good in theory but C/C++/Python apps are 1000x more widespread than java apps. isn't distributability the entire POINT of the jvm?? why is it that java sucks at actually "running everywhere"? keep the intermediate language private to your language implementation, it serves no actual benefit anywhere else and you know what else? a "CLR" isn't actually an interesting problem. it's just a bad abstraction, like everything else in java.

anyway, here you have this guy, gavin king, making all these empty hype-y hand-wavy claims that java was the first language to perfectly combine static typing, readable syntax, and lexical scoping (did you run out of bullet points?) to serve as a host language for large team development and "large-scale deployments of multi-user applications." give me a break, man. if i ran my team or deployed my app with java as our host language my job would be 10-100 times more difficult and i would probably be 10e6 more unhappy in my actual life.

then this guy knocks on the lambda calculus. i should have stopped reading right then and there, obviously he must be a moron. what's next, REs got you down? if you think the lambda calculus is only used by "theoretical" computer scientists you should not be coding and you should definitely not be attempting to write a new language. you're ruining the children, the entire practice of programming by poisoning our culture with this misinterpretation of the lambda calculus. for a dude who keeps wanking over "automatic memory-management" you'd think he'd have some respect for LISP.

did you catch the three bloated slides of "Why we're frustrated?" lol come on, come on now. stop lying to yourself. you hate java, why are you trying to replace it with someone so much more complicated and senseless? how do you expect "business" programmers to understand this:

  Html hello {
      Head head { title = “Squares”; }
      Body body {
          Div { 
              cssClass = “greeting”;
              “Hello” name “!” 
          }        
      }
  }
this is actually supposed to be a series of class instantiations. the fact that "This looks like a typesafe declarative language (for example XML) with built-in templating. But it’s actually written in a general-purpose language" is actually a bad thing. don't even attempt to get the json fans on your side.

look if you're a psycho and want to program like a psycho why don't you just write a small runtime and a compiler that compiles your code to C (or java since you like the jvm so much) and be done with it. that's it, a weekend hack project. with all the tools that exist today for generating compilers, that's how it should be. let it evolve as you actually use the language. i presume you are writing this psycho language for an actual project you're working on right?

after 50 years of high level language implementations the world doesn't have any more room for a programming language for no end. C, Scheme, Haskell, Python, Javascript are good enough. it's time to make stuff happen. it's time to create good AI, it's time to engineer robots, it's not time to add lots of senseless syntax to java and call that a two-year project.

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#35
It looks like this project is being headed up by Gavin King (of Hibernate fame). At the risk of being negative:

When it comes to community support, I've found Hibernate to be one of the most frustrating open source projects to work with. It was comical how often I'd search the forums, find a person with the exact same question that I had, and see that Gavin or another project member had replied "you shouldn't want to do that" instead of actually answering the question.

Also, a couple of my projects were bit pretty hard when they removed a documented feature (it was in the manual!) in a point release (3.2.2 to 3.2.3, I believe), where the only workaround ended up requiring a significant refactor of our code base. The official response (ticket HHH-2667):

> I dont know how many times i need to close cases with almost the same exact description.

> This was never supported syntax, and was never supposed to work. It was simply a regression that it happened to work (somewhat) in certain releases.

So, even if Ceylon had considerable advantages over Mirah or Scala (which doesn't seem to be the case), I'd probably avoid it for the above reasons alone.

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#36
post #17

Is it 'easy to read' as in let sum x y = x + y Or 'easy to read' as in public final class Summer { public static T Sum (T x, T y) { return x.add(y); } } Because I don't think that dreck in the bottom is 'readable', it's like giving construction workers a Fischer Price My First Hammer and expecting them to be able to build a house with it. If you're going to make a language like Java at least let programmers take the…

I would say some people don't want to get it. There are plenty of toy languages and interactive calculators such as logo and which allow simple definitions of functions similar to the 'ideal' given. However noone would suggest writing complex software using logo.

I'm not going to defend every last aspect of Java, but in practice verbosity and readability are not it's biggest issues. In practice Java is pretty maintainable and quick to write.

To address this strawman directly. The first and last line of the 'dreck' are the namespace, which is missing in the top function. I think it is entirely fair to omit namespace and access modifiers. Probably there needs to be or some such (ignoring a number of issues with the approach here), but then this could be put in the class declaration at the top for reuse in more than one function. Which would leave

static T Sum(T x, T y) { return x.add(y); }

Which is what it is ...

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#37

I find it entertaining that Java's apparent successor will be, in many ways, a copy-cat of modern C#. It wasn't long ago that C# was created in Java's image. If this language is not continually enhanced, then it will fall behind. Java has always had trouble with this because of committees and fear of actually saying "no" (real deprecation). I swear "it'll be in Java 7" has nearly become a tag-line this year.

Back-compatibility is what enables old, useful, expensive applications to keep running. It is what made Microsoft so much money, and Intel so much money. It is the reason why Java is so universally adopted.

At the same time, back-compatibility is frightfully horrific. I really feel for the x86 engineers, for one thing.

And it's no protection against a true disruption - I was going to say "such as webapps and mobile", yet Java is strong on both (server-side and smart-phone). So it must be doing something right. I think it's that its depth of libraries (and tools and coders) means that you can fulfill any particular need more quickly than any other way - which is the application of programming languages. The depth of libraries is directly supported by back-compatibility (the old ones still work).

And, in this sense, it just keeps getting better and better.

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#38
post #15

People, please learn from mistakes of the past. Using less-than and greater-than as template parameters was a horrible idea by Stroustroup, but was copied by Java and C#. Although C# and Java do not suffer from the craziness that is C++, by virtue of requiring a class name, e.g. template void myclass() { ... code ...}; ... myclass 4>(); /* myclass ? or syntax error? */ is unique to C++ - but still, all lexing/parsing…

I'm afraid is too ingrained at this point to turn around, but seriously; is it such a problem? In C# a template can show up in a class like:

public class Foo { ...

a method like:

public void EatAFoo(...

and usage like:

var f = new Foo();

someObj.EatAFoo(...

I don't see how any of these cases could be confused with a greater than or less than operator. Could you expand on where the problem comes in?

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#39
post #28

I find it entertaining that Java's apparent successor will be, in many ways, a copy-cat of modern C#. It wasn't long ago that C# was created in Java's image. If this language is not continually enhanced, then it will fall behind. Java has always had trouble with this because of committees and fear of actually saying "no" (real deprecation). I swear "it'll be in Java 7" has nearly become a tag-line this year.

The Java people have always been very reluctant to add new features because they wanted to keep the language clean and simple, a design choice that personally I think is superior to 'rich' grammars like that of C++, Python, and C#. How many people really know and use 100% of the C++ syntax these days? Many companies actively enforce a strict subset of the language, and who even cares about C++0x? In my humble opinion…

>because they wanted to keep the language clean and simple

If this is the goal, I'm afraid they went of course before getting out of the bay. Clean and simple is how I would describe Smalltalk, not Java. And Smalltalk a lot more concise (note: not terse).

Re: Red Hat's top secret Java Killer/Successor: The Ceylon Project

#40
post #36
post #17

Is it 'easy to read' as in let sum x y = x + y Or 'easy to read' as in public final class Summer { public static T Sum (T x, T y) { return x.add(y); } } Because I don't think that dreck in the bottom is 'readable', it's like giving construction workers a Fischer Price My First Hammer and expecting them to be able to build a house with it. If you're going to make a language like Java at least let programmers take the…

I would say some people don't want to get it. There are plenty of toy languages and interactive calculators such as logo and which allow simple definitions of functions similar to the 'ideal' given. However noone would suggest writing complex software using logo. I'm not going to defend every last aspect of Java, but in practice verbosity and readability are not it's biggest issues. In practice Java is pretty maintai…

>but in practice verbosity and readability are not it's biggest issues.

Right. It's biggest issue is inconsistency. Int or int? Equals or ==? Why can class String overload the + operator but I can't? On and on. But Java is very verbose. It's not a big issue in practice because we have IDEs that write most of the endless boilerplate for us.

Post reply on HN