Live data from Hacker News

Why you might want to choose Ceylon

ceylon-lang.org

61–70 of 148 posts

Re: Why you might want to choose Ceylon

#61

I hope they'll redo some of the documentation with this upcoming release. Every time I read it, I am amazed by how comprehensive it is but still manages to miss some very important points. Like the fact that on the main page, the link to the online editor is not under the "Try it out" section. The explore action from that section is also misleading. Or a clean hello world, with a real project structure documented Or…

Would you please open an issue here with the things you would like changed:

https://github.com/ceylon/ceylon-lang.org/issues

Thanks.

Re: Why you might want to choose Ceylon

#63

Earlier quoted context omitted.

Well, if you read the linked article, a number of things are mentioned, including: - union and intersection types - an elegant and powerful representation of tuple and function types - reified generics - the cleanest solution to the problem of null - awesome modularity - a language module [that] completely abstracts the underlying runtime, and offers a set of elegant APIs that vastly improve on those available native…

Not the best place to mention this, but I never understood why, at least when talking with the functional oriented people, the union types are not explained as providing first level support for the Option, Either and the Try monads.

Yes, it's one good way to think about how they fit into the whole ecosystem of the language. Thanks.

Re: Why you might want to choose Ceylon

#64
post #57

Earlier quoted context omitted.

I didn't say that Ceylon has a problem interoperating with Java's unreified generics, just that reified generics on a shared platform have their own issues. The level of interoperability, though, is radically different from Kotlin's. And yes, I have never tried Ceylon because its stated design goals -- while great -- are not what I'm looking for. If I got the design goals and philosophy wrong I'll happily give it a t…

Now you're just lying. You said: "The problem with reified generics isn't their efficiency, but that they don't play nice with other generic types on the platform (which is the vast majority)." And the context of the comment was quite clearly Ceylon interoperating with Java as anyone can verify. I have a friendly request for you: please don't comment about Ceylon on any more hackernews or reddit threads. It's great t…

Happily, as long as you don't misrepresent the difference between the languages.

Re: Why you might want to choose Ceylon

#65
post #64

Earlier quoted context omitted.

Now you're just lying. You said: "The problem with reified generics isn't their efficiency, but that they don't play nice with other generic types on the platform (which is the vast majority)." And the context of the comment was quite clearly Ceylon interoperating with Java as anyone can verify. I have a friendly request for you: please don't comment about Ceylon on any more hackernews or reddit threads. It's great t…

Happily, as long as you don't misrepresent the difference between the languages.

Thank you, I appreciate it.

Re: Why you might want to choose Ceylon

#66
post #14

I guess for me I don't need nor want JVM + JavaScript VM interoperability. My gut says this limits what can be done. I would rather have just one or the other. Maybe others feel differently.

This language looks pretty cool, but I do agree with your gut. The FAQ says: "Note that not all Ceylon modules are available for both platforms. A module might be cross-platform, it might by JVM-only, or it might be JavaScript-only. Of course, ceylon.language is completely cross-platform." Having some modules for JVM and some are for JavaScript-only would make things a little bit more confusing than if the language p…

Well where there is a big difference between the underlying capabilities of the platform, differences are unavoidable.

I mean, examples of things that are cross-platform in Ceylon: collections, localization, promises, regexes, HTML construction, logging, testing, dates/times.

Examples of things that are platform specific: I/O, database access, filesystem access, distributed transactions, the HTTP server.

That's pretty reasonable and natural, isn't it?

Re: Why you might want to choose Ceylon

#67
post #32

Earlier quoted context omitted.

A language without higher-kinded types or type-classes cannot be the language that " Scala should be ". And these aren't things that can be easily added later. And I don't think it will ever happen. And don't get me wrong, but software is about trust and I do not trust somebody like Gavin King for delivering a good language after Hibernate :) > Shapeless implicit macros to use tuples generically What can you do in Ce…

Scalajs is reasonably good, but it is retrofitted; it's a javascript backend for a language that wasn't specifically designed for a javascript backent. Ceylon was designed to compile to javascript. I haven't used either so I can't comment as to whether it actually makes a difference.

One place where it makes quite a big difference is in the standard library. In scala the standard library is very often just a thin shim on top of the JVM equivalent... which means that scala.js needs to shim the JVM library. It's not a huge deal in that most everyday things pretty much work out of the box, but if you're using a lot of time/date manipulation (via Joda-Time or the JDK8 java.time package) you'll have to use something else on the JS side.

Re: Why you might want to choose Ceylon

#68
post #32

Earlier quoted context omitted.

Scalajs is reasonably good, but it is retrofitted; it's a javascript backend for a language that wasn't specifically designed for a javascript backent. Ceylon was designed to compile to javascript. I haven't used either so I can't comment as to whether it actually makes a difference.

One place where it makes quite a big difference is in the standard library. In scala the standard library is very often just a thin shim on top of the JVM equivalent... which means that scala.js needs to shim the JVM library. It's not a huge deal in that most everyday things pretty much work out of the box, but if you're using a lot of time/date manipulation (via Joda-Time or the JDK8 java.time package) you'll have t…

So, that's a good example: ceylon.time is implemented in pure Ceylon, and is totally cross-platform.

Re: Why you might want to choose Ceylon

#69

Earlier quoted context omitted.

This language looks pretty cool, but I do agree with your gut. The FAQ says: "Note that not all Ceylon modules are available for both platforms. A module might be cross-platform, it might by JVM-only, or it might be JavaScript-only. Of course, ceylon.language is completely cross-platform." Having some modules for JVM and some are for JavaScript-only would make things a little bit more confusing than if the language p…

Well where there is a big difference between the underlying capabilities of the platform, differences are unavoidable. I mean, examples of things that are cross-platform in Ceylon: collections, localization, promises, regexes, HTML construction, logging, testing, dates/times. Examples of things that are platform specific: I/O, database access, filesystem access, distributed transactions, the HTTP server. That's prett…

The date/time cross-platformness is a big deal for business-type applications, at the very least. You tend to transfer/use a lot of dates/timestamps/what-have-you in that type of application. (This is a constant source of pain for me in scala.js.)

Re: Why you might want to choose Ceylon

#70

Earlier quoted context omitted.

Well where there is a big difference between the underlying capabilities of the platform, differences are unavoidable. I mean, examples of things that are cross-platform in Ceylon: collections, localization, promises, regexes, HTML construction, logging, testing, dates/times. Examples of things that are platform specific: I/O, database access, filesystem access, distributed transactions, the HTTP server. That's prett…

The date/time cross-platformness is a big deal for business-type applications, at the very least. You tend to transfer/use a lot of dates/timestamps/what-have-you in that type of application. (This is a constant source of pain for me in scala.js.)

ceylon.locale is also shaping up to be really useful. Localization in JS is just terrible.
Post reply on HN