9 ms·
Kotlin M7
- thescrewdriver 13y agoLooks decent, but I find it difficult to get excited about. Perhaps I'm not the target audience since I'm very comfortable with Scala (and love what Jetbrains is doing with the Scala IntelliJ plugin).
- frowaway001 13y agoAgree. I'm always amazed by people who say "Kotlin is great because it doesn't try to do more than fix a few warts of Java!", ... did these people ever leave their Java bubble? The world is moving on at a frightening speed when it comes to language design currently, largely thanks to Idris. The idea that some people think "hey, let's pick this language from 1995 and change it slightly" is going to cut it ... that's just mind-boggling.
- TeMPOraL 13y agoA cynic would say that the world keeps moving on at a frightening speed towards rediscovering lessons from languages from 1960s.
- klibertp 13y agoNothing cynical in it, it's just how things are. We're spinning in circles with frightening speed indeed, it's the linear speed we're lacking...
- nirvdrum 13y agoI think it's more people are excited about Kotlin because it gives you some of the best parts of Scala without the long tail of confusing stuff. Sure, it's not revolutionary, but if the base level for everyone is ratcheted up a notch or two, it makes the next move even easier.
- thescrewdriver 13y agoIt feels like a trial version of Scala with some of the juiciest features missing until you upgrade.
- pron 13y agoI find it completely reasonable, and the right course of action. All those new ideas in language design, are exactly that: new and unproven (like the Hindley-Milner type system, which, while quite old already, has not been proven to be a major strength, and it is certainly complicated, esp. its undecipherable error messages). "Languages from 1995" (I don't know why you picked that specific year; some very successful languages are much, much older) have been used to build really good software, while "new" languages (Heskell, 1990; OCaml, 1996; Scala, 2003) have not proven to completely change software quality in a way just justifies their arguably less intuitive (if only culturally) designs. Where are all the bug-free Haskell operating systems, drivers and embedded controllers? Where are the OCaml scalable severs? Where are all the Scala complex enterprise apps? I'm not saying there isn't any really good software written in those languages, but not nearly enough to prove a significant qualitative advantage. On the other hand, when Java came out in 1995, it took maybe 5 years for pretty much the entire software world to adopt it, and it wasn't just marketing: its advantages were palpable and immediately apparent. I think (though I'm not sure), that C and later C++'s adoption was about as fast. If 25 year old languages like Haskell, and even 10 year-old languages like Scala, haven't shown such an immediate and enthusiastic widespread adoption, maybe their advantages aren't that extreme. Instead of those languages' designers sitting mind-boggled, maybe they should think long and hard about what it is that they're solving exactly and how important it really is. I think the problems tackled by more "modern" languages are either not important enough, or their solution is far from optimal. For example, it is quite possible that a good type system could help produce good software faster (though it isn't certain either), but that this type system is Hindley-Milner seems unlikely at this point. Pluggable type systems (like the ones recently introduced to that 1995 language, and, I believe, also supported by Kotlin) might actually be a better way to go forward. I also think that some more important advances in programming languages have come not from PL researchers, but from developers (Java, Erlang, Clojure).
- oblio 13y agoHe picked 1995 because of, obviously, Java. He was talking about Java :)
- lmm 13y ago> when Java came out in 1995, it took maybe 5 years for pretty much the entire software world to adopt it, and it wasn't just marketing: its advantages were palpable and immediately apparent. If 25 year old languages like Haskell, and even 10 year-old languages like Scala, haven't shown such an immediate and enthusiastic widespread adoption, maybe their advantages aren't that extreme. Any number of companies are still using C++, which itself took decades to reach the level of popularity that it did; Java is the exception rather than the rule in that regard. (And if we're just comparing popularity, I don't know how it is in your corner of the industry, but Scala growth has been massive over the last few years where I've been looking - and that's not based on Sun's marketing millions, but on word of mouth from people who're using it and finding that it helps them write better programs)
- mushishi 13y agoWell, it's not all about the language. For me, and others, who are aware and have dwelved in advanced languages (such as Scala, Haskell, Lisp family), Java is often our choice for even hobby projects. It's not that we cannot see other languages's benefits. It's that in our opinion it's the best choice all things considered (how efficiently one can write readable/refactorable code being one of the most important things). Kotlin seems to be one very good alternative in the future.
- jfb 13y agoI think of it not as a stand-alone language, but rather as a strong statement of position in the Java-the-language arguments about future direction. It's a way for the Jetbrains people to influence the way the language will evolve.
- netcraft 13y agoI'm really rooting for kotlin - it seems like a good runner up to scala without the poor compile times. Looking forward to a 1.0 release
- mercurial 13y agoI think it's massively less ambitious, which is a good point in its favour.
- jes5199 13y agoIt might be the least ambitious new language of the last ten years!
- Avshalom 13y agoI think that trophy is won pretty handily by Go.
- tomp 13y agoI wanted to say Go as well, but compared to any other possibly-mainstream languages, Go is very innovative - it has fibres/goroutines, channels, and structural typing/lack of class-based inheritance!
- effn 13y agoThe bar for what counts as "innovation" in mainstream languages is strikingly low.
- thescrewdriver 13y agoAll of which are available in other languages...
- Avshalom 13y agoIn addition to the fact that none of it's features are particularly novel lets remember that Go's founding ambition was "compile faster than C++"
- hamidpalo 13y agoMy biggest hope for Google IO '14 is the announcement of Kotlin as the Android language. Yes, you can already use Kotlin for Android actually but it's not well-supported and the community is small. The benefit for Google and developers would be clear -- no more Java and Oracle shenanigans. Google already has a solid relationship with JetBrains due to the fact that Android Studio is just IntelliJ CE. They could hammer out details about who owns it, what the future looks like, etc. The transition would be easy since Kotlin already plays well with Java. JetBrains would have a massive win as well since it would drive sales of IntelliJ like no other.
- pjmlp 13y agoOr Dart. That is the only way I see Dart getting any real traction on the IT world at large. But I agree with you given the move to Android Studio, Kotlin would be a possible candidate as well.
- munificent 13y agoI spent a few minutes searching GitHub for the number of repos in different languages. The query I came up with is: https://github.com/search?q=stars%3A0..10000&type=Repositories&ref=advsearch&l=<lang> Where <lang> is replaced with the language you're curious about. Here's a few: Kotlin 200 Dart 2,836 Erlang 9,087 Groovy 11,515 Go 24,603 Scala 25,846 While we've still got lots of catching up to do, I think Dart is doing pretty well given its youth. (I would include TypeScript in the above but unfortunately the language detection for it is broken so it reports a bunch of Qt C++ projects as TypeScript).
- deleted 13y ago[deleted]
- pjmlp 13y agoWhat most companies around the world use has very little to do with Github top languages. I never get this trend to use Github to measure anything.
- 13y ago
- peeters 13y agoThe inlining feature is great, if for no other reason than shooting down stuck-in-the-past devs that say "yeah but all those function calls are so expensive".
- protomyth 13y agoSadly, some devs are stuck with stuck-in-the-past compilers and still have to deal with this crap. It reminds me a bit of new devs who end up on Sybase database project and expect that "modern optimizers" always pick the right indexes.
- pcwalton 13y agoIn my experience, at least for static languages, inline annotations are very useful in the hands of a skilled programmer; the compiler's inline heuristics are always static guesses at dynamic properties and as a result they fall down from time to time. (The JVM may be able to do better here though—it has the ability to inline functions at runtime via a recompile if they discover that they're being called a lot.)
- midas007 13y agoKotlin homepage: http://kotlin.jetbrains.org/ http://kotlin.jetbrains.org/
- midas007 13y agoDoes anyone know of a specific production use-case where coding for eager evaluation (Idris, OCaml) is more straightforward and predictable when lazy evaluation could be cheaper on computing resources (Haskell)? When does lazy evaluation become too nondetermistic or painful that eager becomes more reliable? (Scala could probably go in either bucket.)
- mercurial 13y agoWell, I'd say most of the time... Where I find laziness (or "laziness implemented via iterators") worthwhile is when working with collections. But I much prefer the bits that care about such thing to explicitly return an iterator, the bits which don't to be able to operate either on iterators or concrete collections, and me to have a better idea of how much space and time will be consumed.
- neilellis 13y agoI've written a fair bit in Kotlin of late and I've got to say it's a great and pragmatic language. The writers have done a fantastic job - please don't underestimate how hard it is to write a language never mind a very good one. I would recommend all Java developers to give it a try, especially if you use Intellij. I'd like to counter the childlike moaning about Java being old and creaky and dated - JavaScript has been around since 1995 and was pretty much a laughing stock 10 years. Things change. Clothes go in and out of fashion - so it seems do languages. JavaScript has changed minimally since 1995 - but the changes that we've seen have been important. If V8 hadn't been written I'm not sure JavaScript would have had this resurgence. I also wouldn't advise anyone to assume big changes are needed to make Java more modern. The right small changes are enough (e.g. objects to C, or lambdas to Java) - I suggest that Kotlin (and very possibly Ceylon) have made the right small changes. Right, off to write some COBOL Server Pages now ...
- Flow 13y agoI fail to see what it offers over Ceylon. http://ceylon-lang.org http://ceylon-lang.org For the past two years I feel that Kotlin has gotten more hype than work put in it.
- pron 13y agoI think the main difference is that Kotlin fully embraces the current Java ecosystem, and makes integration with it seamless, while Ceylon rejects it and seeks to replace it with something new. Personally, I prefer Kotlin's gradual approach to Ceylon's revolutionary one.
- pjmlp 13y agoIt is done by JetBrains, a company with good experience doing amazing developer tools. Their WebStorm IDE is partially done in Kotlin. Android Studio is based on InteliJ and also supports Kotlin. Ceylon is a me too JVM language from RedHat without eco-system around it.
- programminggeek 13y agoKotlin for a lot of reasons is the most interesting language to me right now. Go doesn't have immutability and doesn't seem to care so much about functional programming. It's great, but not what I want. Scala seems like a big language that tries to do a lot of things and thus it has a very slow compiler and a slow turnaround time for changes. What Kotlin seems to be getting right so far is the useful side of functional programming features, IDE support, and a reasonably fast compiler. Compiler speed is something that Kotlin actually cares about, which last time I played with Scala, it was still dog slow to compile or even wait for it to decide to compile after you make a change. Developer experience is very important to me and for the kind of software I want to build and the way I want to build it, Kotlin looks very promising.
- thescrewdriver 13y agoI've been using Scala for years now, and have never really found compile times to be an issue. I spend most of my time writing the code and thinking about it. Compiling a few times an hour takes a few seconds each time. Most Scala tools these days use incremental compilation. My IDE (IntelliJ) underlines errors using a background thread, so by the time I hit compile I already know where the issues are. It doesn't feel very different to compiling Java code (which Kotlin is aiming to match the compile times of). If you want to optimize for only the compile dimension then Go and Pascal have very fast compilers. Python removes the need for compiling completely if that's really important to you (much faster than waiting for javac).
- virtualwhys 13y agoSorry to disappoint, Scala incremental builds + sub projects = rapid dev, usually @1 second recompile, or a few seconds if several sources need recompilation. These days the only area where the "Scala is slow" mantra holds any water is with full builds, there, yes, cup of coffee time if you've got a large project ;-) I think Kotlin will be squeezed from both ends (Java 8 and Scala) for uptake; that is, whenever the 1.0 stable release comes out -- sometime in 2015, right? If so, around that time Scala 2.12 will have been released and Java 8 will have seen more & more adoption. Will be fun to find out regardless, lots happening in JVM land these days.
- 13y ago
- puppetmaster3 13y agoKotlin, lets bring back the good old times. It's a step back, lets me explain: Like Scala, it's strongly(stringly) typed, needs IOC to get to work. Modern langs used like node.js, rails, django, go, grovy are all dynamic.
- puppetmaster3 13y agoYou downvote that? that's rich.