6 ms·
Agree. 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 th
by frowaway001 13y ago
Agree. 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)
- pron 13y agoI don't think I would call Scala's adoption "massive", but for the sake of this discussion, let's say I agree. Now, Scala has many features; which of them, do you think, are the largest contributors to that adoption? Hindley-Milner? Implicits? Type-safe macros? I'd argue that it's lambdas, traits (both now in Java 8), and reduced boilerplate for Java beans; also, maybe pattern matching. Now, all of those features are in Kotlin, which has a far simpler (though less expressive, even though that hasn't been proven to be a major problem) type system and much, much smoother integration with Java.
- frowaway001 13y ago> Hindley-Milner? If you spent a few minutes actually using Scala instead of trying to bash and hate it in every thread, you'd know that Scala doesn't use HM. Scala killer feature is the assurance that developers can express the things they want, unlike Java and C# where the compiler starts acting like an angry child as soon as I want to do anything slightly more elaborate. That won't be changing anytime soon. > a far simpler (though less expressive, even though that hasn't been proven to be a major problem) type system The lack of typeclasses is a non-major problem? I would say it is an absolute dealbreaker. Anyway, in what sense it is "far simpler"? Most of the complexity comes from dealing with Java's broken ideas. If Kotlin wants interop, it can't ignore that.
- 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.