[1]: Conversion (word formation), https://en.wikipedia.org/wiki/Conversion_(word_formation)
89 karma · joined April 12, 2015
[1]: Conversion (word formation), https://en.wikipedia.org/wiki/Conversion_(word_formation)
[1]: https://azure.microsoft.com/en-ca/services/container-instanc...
[1]: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor
To answer your specific question, however, if you're doing Android development it's worth it :) otherwise, it's up to you/your specific situation.
[1]: https://kotlinlang.org/docs/reference/type-safe-builders.htm...
Beyond that, it's nothing that you couldn't cobble together without the standard Guava + Commons + Lombok + Quasar/EASync etc. libraries and plugins that you'd use on every project written in Java, as well as that terseness you mentioned that makes people excited (see Kotlin data classes [1] vs Lombok data classes [2], if/try returns values and destructuring [5], coroutine support for lightweight threading and generators [6], null safety w/o optionals and smart casting, etc. [7]).
In my opinion, it's hard to know what value those features provide without actually trying them out yourself. If you want to be certain that you're not missing something, I'd suggest writing up a little script to try out some of its features.
edit: Just noticed the other responses on this thread. It's also very useful for starting fights with Scala developers, apparently.
[1]: https://kotlinlang.org/docs/reference/data-classes.html
[2]: https://projectlombok.org/features/Data
[3]: https://kotlinlang.org/docs/tutorials/javascript/kotlin-to-j...
[4]: https://kotlinlang.org/docs/reference/native-overview.html
[5]: https://kotlinlang.org/docs/reference/control-flow.html
[1]: http://swaywm.org/
[2]: https://en.wikipedia.org/wiki/Wayland_(display_server_protoc...
[3]: https://en.wikipedia.org/wiki/Compositing_window_manager
[1]: http://science.sciencemag.org/content/early/2017/10/26/scien...
"COMPATIBILITY
MacBook Google Chromebook Pixel MacBook Pro (2016) Dell XPS 13”
So those devices work and everything else is a bonus, I guess.
[1]: https://webcache.googleusercontent.com/search?q=cache:wP7nTG...
[1]: https://www.flickr.com/photos/calliope/5094055919/in/gallery...
[2]: https://upload.wikimedia.org/wikipedia/commons/8/8f/United_S...
edit: Phrasing
[1]: https://play.google.com/store/apps/details?id=com.opera.mini...
I don't have an intuitive grasp of the formal definition of monads, but some examples of things that I _think_ are monads (in Java ... sorry :/ it's all I work with these days):
* jOOQ [1]: you use it to build up a sequence of SQL statements with a pleasant chaining API, then execute the whole shebang * Promise/future chaining: you build up a sequence of promises that should apply in-order, then defer their execution until later (unless you use a language that performs a transformation at compile time which effectively does this for you). * Streams/optional mapping: you build up a sequence of functions that should apply in-order to every element in a potentially empty sequence (optional: a sequence of 0 or 1). * The builder pattern: you build up a sequence of property values, then (potentially) construct the entire object.
That doesn't sit well with me, at least. I'd want the top ML developers looking at TensorFlow, and the best language implementers doing the same for cpython, not the latter trying desperately to improve code they have no expertise in. From that perspective, what matters is community: is there a knowledgable community supporting codebase 'x', where x could be the stdlib or some third party library. Some other commenters in this thread proposed better library curation/discovery tools in place of a formal commitment of long term support by the core team, which seems ideal! Using such an approach, you rely on the language for the core-language bits, and on third parties for the third-party bits, which seems on the surface to be healthier than arbitrarily choosing the only constant group (core language devs) as your supporters of everything.
I'll go out on a limb and say 'a quirky historical device'.