4 ms·
They're pretty honest by saying that the point of Kotlin is to drive IntelliJ IDEA sales (I did buy my licence 70% off during their doomsday special). However
by martinced 14y ago
They're pretty honest by saying that the point of Kotlin is to drive IntelliJ IDEA sales (I did buy my licence 70% off during their doomsday special).
However it's a bit weird: they're creating a language that, basically, "needs" an IDE, so they can sell that IDE. I don't doubt they did put a lot of stuff in their language at which IDEA was good (e.g. @NotNull / @Nullable which IDEA was able to check in real-time on partial ASTs etc. which apparently made it into Kotlin right from the start).
I'm sure there's going to be quite some "refactor xxx to use pattern yyy", making IDEA "great" to work on Kotlin.
But are these really the features we want? A language that is "flawed" by design so that we can be sure we need an IDE to develop in it?
I'm still using IDEA and still doing some Java programming.
But I'm more and more investing time in Clojure / Emacs and, honestly, there's more pleasure to develop with these than with IDEA / Java. I don't know why IDEA / Kotlin would be any better.
To me it seems that, from the start, it's a language arguing for its own limitation.
P.S: what about concurrency? does it offer lock-free concurrency? Because there's no way I'm moving back to using explicit 'synchronized' keywords and having fun with deadlocks...
- pron 14y agoI wouldn't say that it needs an IDE; it certainly does not need it any more than Java, C, C++ or Scala for that matter. But, it can certainly benefit from an IDE, and I don't think that such a language is flawed or even "flawed" by design. It's simply different. I, too, am a fan of Clojure, but I'm also a fan of Java, and Kotlin is probably the language best called "a better Java". Both kinds of languages have their place. And as for concurrency -- I'm not sure, but I suspect that it follows the Java/C++/Scala model rather than adopt an opinionated vision of concurrency like Clojure and Erlang do. But if you'd ever need to write a new concurrent data structure for use by your Clojure app, you'll be able to do that with Kotlin rather than Java.
- vorg 14y ago> A language that is "flawed" by design so that we can be sure we need an IDE to develop in it All languages are flawed by design. Assembly language is flawed so we need a higher level language like C, with easier to read syntax. C/C++ is flawed by requiring us to manage heap memory so we need a managed language like Java/C#. These and Kotlin are flawed because we need some visual help like name lookups and pattern refactorings.
- mistercow 14y ago"Flawed by design" doesn't mean "the design is flawed". It means "it is designed to be flawed".
- reeses 14y agoYou can write Smalltalk and Lisp outside of an IDE but you really wouldn't want to do so. You end up missing much of the power of the systems. Think of the IDE as part of your exocortex. Leverage it for the junk you don't need so you can switch levels of abstraction as you desire.