5 ms·
You beat me to this comment. Ceylon brings nothing new to the table that would make me jump the Scala ship. What's the point of having Nullables if we're still
by jaxytee 13y ago
You beat me to this comment. Ceylon brings nothing new to the table that would make me jump the Scala ship.
What's the point of having Nullables if we're still forced to do glorified if(*.isNull) ... else ... checks? I'd much rather use Scala's Option type that has Map and GetOrElse already baked in.
Also, the tooling around Scala is starting to mature. The Kotlins and Ceylons of the world are way behind Scala in this regard as well.
- frowaway001 13y agoAnd it's not like one is stuck with Option either. I think the ability to choose which abstraction is the best for a specific use case (Option, Either, Validation, Future, etc.) is the major benefit over languages which just bake the handling into the language. Sure, those languages could just ship with additional classes which did that, but the problem is that they wouldn't be able to use the syntax sugar which is built-in for the special case of nulls as well as other language constructs like Scala's for-comprehensions which work for all types of a certain shape, not a single, built-in special-cased item.
- gavinking 13y agoAgain, nullable types are not "baked into" the language. They are syntax sugar for a union type. Also, Ceylon doesn't need Either, since that is just a workaround for not having union types. Seriously, union and intersection types are _really_ fundamental notions in set/type theory, and having them as basic constructs of the language makes the language _much_ more expressive. I seriously urge you to try it out. You'll love them, I guarantee it.
- frowaway001 13y ago> Again, nullable types are not "baked into" the language. They are syntax sugar for a union type. So I can have my own type standing in for the ? instead of Null? String? // Option[String] ... String? // Validation[String]
- RivieraKid 13y ago"String?" is equivalent to "String|Null". Only the question mark syntax sugar is baked in.
- gavinking 13y ago> What's the point of having Nullables if we're still forced to do glorified if(*.isNull) ... else ... checks? I'd much rather use Scala's Option type that has Map and GetOrElse already baked in. Sorry, but Option is just not better. One advantage of using a union type is that if I have a List<String?>, I just have a List<String|Null> (which maps to a plain List<String> at the JVM level) not a whole list of wrapper objects in a List<Option<String>>. And of course Ceylon has sufficient syntax sugar so that you can write things like: print(nameOrNull else "Gavin); You definitely don't have to do an "if (exists...)" every time you encounter a null value. > Also, the tooling around Scala is starting to mature. The Kotlins and Ceylons of the world are way behind Scala in this regard as well. WDYM?! I strongly beg to differ. Have you seriously tried out Ceylon's IDE? Or are you just speculating?
- frowaway001 13y ago> I strongly beg to differ. Have you seriously tried out Ceylon's IDE? Or are you just speculating? He was probably just reading your own mailing list. Why speculate, if he can get the state of tooling right from the core developers? :-)
- gavinking 13y agoHeh, we'll have to post more commercials about how great we are, instead of always being so intensely self-critical ;-)
- lukaseder 13y agoI would agree to that. Given the excellent IDE support that is provided from the first release on, you have some killer platform there, quality-wise.