Kotlin 1.0 Released 121
Qbertino writes: Kotlin, one of the challengers to Java's VM, has been released in version 1. Kotlin is object-oriented, statically typed and comes with professional IDE support by Jetbrains — which is no big surprise, since it's the Jetbrains employees who developed the programming language that saw the light of day four years ago. Kotlin is already in real-world use and development will be moving into fleshing out the Kotlin feature set without breaking backwards compatibility. These features include planned support for JavaScript — which sounds interesting considering JS has gained quite some traction recently. Kotlin is FOSS and is released under the Apache license.
challenger to JVM, or language that runs on it? (Score:1)
According to its webpage, this is a JVM-based language.
Re: (Score:2, Informative)
Jython is a non-starter because it is stuck on Python 2.5 compatibility.
JRuby, Scala and Clojure are still growing.
Just because you are ignorant of them it doesn't mean they are dead.
Re: (Score:2)
I believe that you excessively denigrate Java. But Oracle sure hasn't helped it much.
I expect that JRuby will only be successful until Ruby manages to successfully implement a reasonable parallel execution of threads.
Perhaps you are right about Scala and Clojure, but I don't know. I have my doubts about any VM that insists that the character type is 16 bits. 32 I could understand, and 8 I could understand, but 16 seems a historical relic that only made sense on machines with 16 bit registers.
Re: (Score:2)
JRuby is Ruby implemented in Java. It uses Java threads. The difference between Java threads and JRuby threads is that you don't typically create an entire class for the thread to run it. You just create it and run it wherever.
It is the same syntax and usage as Ruby threads, but behind the scenes it is a Java thread that runs it.
Ruby still uses green threads, but it does support fork() on operating systems that support it, and that has zero bearing on JRuby.
Or am I missing a deeper point?
Yeah, I agree, the
Re: (Score:2)
Ruby's current threads cannot do concurrent operations. There's a "global interpreter lock", though I'm not sure that's the terminology they use. This is *the* JRuby advantage. And every program that implements things via Java underneath uses 16-bit characters for it's characters. And this *does* affect the strings.
When Java was designed CPUs had 16 bit registers, so a 16 bit character seemed to make sense. But they baked that definition into the language spec, which was a mistake. They've had plenty
Re: (Score:2)
java is doing just fine.
it's doing so fine that people are all the time trying to invent new stuff to write java.
Re: (Score:2)
Jython is up to 2.7 http://www.jython.org/ [jython.org]
Re: (Score:2)
How to get 30% of corporate Java users in one move (Score:3, Interesting)
Provide an actual working installer, instead of that Sun invented piece of misnamed, misplaced piece of camel dung instlaler. First you have the magicalliy renumbering component versions, then the "you have to formally sign a user agreement" to instlal it, then for RHEL and CentOS and Fedora and SuSE users you get misnamed "rpm.bin" piece of sticky doggy mess that violates the File System Hierarchy and whose RPM package name does not match the name of the RPM file.
There are reasons some of us gave up on using anything from Sun, and it's sad to see Oracle continued the same stupid practices. If these Java variant exert the slightest care in packaging, they can pick up a few clients right there.
Re: (Score:2)
Huh?
In OpenSuse using the binary from Oracle gives no issues. It installs in usr/bin/java and unlike Windows, I never need to change JAVA_HOME because there are softlinks in usr/java/latest to the most recent java version, so I never have to futz with update_alternatives unless I need an older version, which I never do.
I am not sure what weird thing you are doing to get the behavior you describe but that is not the case with any version of opensuse I have ever used and I have used every version from 9.x to
Re: (Score:2)
I've been using Sun/Oracle Java on (open)SUSE since SuSE 9.something times. Never ran into any of the issues you describe. 'which java' always gives me '/usr/bin/java', and the provided symlinks to /$latest/ take care of the versioning issues.
Re: (Score:1)
Java is about the easiest versioned software you can deploy with configuration management tools like Puppet.. unzip -d /anywhere/jdk_anyversion jdk_anyversion.zip
Optionally make a symlink to a default version.
Zip it up once, extract anywhere you want, as many versions as you need, totally location independent. Rinse and repeat for any OS.
Try deploying multiple versions of the Perl runtime, on multiple OS. See how far RPM and FHS takes you.
So (Score:2)
does it run Java? ... Why not either invent a language or a VM?
The Java VM can run a couple dozen languages, including Javascript, Ruby, Python
Inventing a language is stupid if you don't take advantage of existing libraries -- in particular for Java.
Re:So (Score:5, Informative)
So of course I had not read the link. It is not a VM as TFS claims, but just a language within the Java VM, therefore an alternative to Groovy, JRuby, Scala. In particular it is different because it is statically typed but more compressed/expressive.
Re: (Score:3)
You want to know what's stupid? If you go to the main web page the only description of the code you get is a sample "Hello, World" application, and the link that claimed to lead me to more examples instead lead to an advertisement for a book on the language.
If you won't let me look at it... Why do you expect me to buy a pig in a poke.
JVM challenger OR Java challenger on the JVM? (Score:4, Insightful)
Which is it? The summary makes it sound like Kotlin has its own VM (JVM compatible I'd assume) to compete with Oracle's JVM. The web page makes it sound like Kotlin is just a language that compiles to the JVM's bytecode. Which is it? Or is it a both?
Re: (Score:2)
It's neither. It is 100% Java compatible says their page, so ... just another language for the JVM I guess.
Re: (Score:1)
Not a VM (Score:5, Informative)
Re: (Score:2)
Thanks for RTFAing for me. I was confused based on the summary.
Re: (Score:2)
Duh, it was posted by timmay. So that means it will usually be full of grammar/spelling errors and/or just be plain misleading and wrong.
Re: (Score:2)
Re: (Score:2)
Kotlin is yet another language to be run in the JVM.
Only on Slashdot you have to read the user comments to actually understand what the fuck the summary was about. And it only took one simple sentence.
Re: (Score:2)
Its syntax is Java like in its lack of expressiveness and verbosity. What is the point when Scala, Clojure and JRuby are all more expressive and much more mature?
Good summary, AC. Which is why I'm quoting it and putting my name to the sentiment ;-) Kotlin seems to be slightly less verbose than straight Java, but not more semantically expressive in any meaningful way. I'd call it a worthless experiment doomed to failure because it simply does not offer enough to make it worthwhile.
Re: (Score:2)
Re: (Score:2)
concision != clarity. This is a common misperception.
That's a good point in this context. What little I remember of Kotlin specifics, I'd say that its concision comes from reduction in useless boilerplate, and therefore contributes to clarity. But only very mildly. In order to be worth anything, a JVM language needs to be substantially different than Java, not mildly improved here and there...
This JVM stuff is BS (Score:4, Insightful)
All the new JVM based languages that are popping up are just syntactic sugar on top of Java. The real concepts can't be shaken, as the JVM is pretty much limited in what it can do and what it can't.
Telling from the examples [kotlinlang.org], Kotlin seems to be a good example: Yet another poor copy of Java with some "obsolete" things like the semicolon removed (why is there so much hate for it?), and you write "fun" instead of "function". So what. I don't think this makes me more productive than Java. Its just for all the people who keep preaching "java is shit" because they've heard it somewhere and now they want to use a "much better" language.
If Kotlin suits, Java is fine for the job as well, and most likely its even better.
Re: (Score:1)
But Java is shit, and anything that compiles to JVM bytecode is going to have in indelible odor to it.
What I don't understand is: in today's landscape, why we can't use C++ and C++ style derivatives for compiled code (cross compiled to many platforms), and then for interpreted needs use javascript, python, or whatever floats your boat on top? You can call the C objective, sharp, or what you like, but compiled object oriented code will be just that, and garbage collected, interpreted, "script" will be what
Re:This JVM stuff is BS (Score:4, Insightful)
C# is Microsoft's copy of Java. Its garbage collected and runs in a VM. Just like java. They even had a language called J# for a while (guess what its a copy of), but abandoned the project.
Java and C# and the like fill a nice niche. Nobody really wants to touch javascript, its more a mess than a language (C++ is a mess too, with std having been very limited in the past, before C++11, and thus every major codebase using their own NIH containers and stuff, but javascript is much much worse). And python has this issue with obligatory indentation.
Re: (Score:2)
> And python has this issue with obligatory indentation.
For Python fans, indentation is a feature, not an issue. Either you like it or you don't. I like it myself.
Re: (Score:2)
I think everyone learns quickly to pay attention to indentation settings in Python. I make sure that mine converts tabs to spaces and that tabs are always visible so that there is no trip up when editing code from other people. I use autoformat a lot in languages like Java but don't in Python. So I never ran into that problem. Since one does frequent runs with Python code, my editor just saves whenever I hit run. So I never needed a separate timed (if that is what you meant) autosave.
Re: (Score:2)
> Indentation weakens the language.
The goal of a syntax is to, first and foremost, promote human readability. Python philosophy is to discourage clever code. Many, like myself, find consistent indentation and low character noise to be more readable. If you don't, that's fine. It is a preference. If you like complete flexibility, go with Lisp (or Hy in Python), since its minimal syntax gives maximal power of expression - we all should, if it was all about power. But we don't. I prefer reading Python than
Re: (Score:2)
Nobody really wants to touch javascript, its more a mess than a language
Not wanting to use it and having millions of people who use it anyway are two different things. And the countless JavaScript libraries that are available (jQuery, etc), plus the rise of things like Node.js, would appear to disprove your point.
Re: (Score:3)
> And to tie it all together, the .Net Runtime is a natural evolution of VBRUNxx.DLL
The .Net runtime was a complete break from VBRUNxx.DLL. Most VB6 users felt as much and many refused to move for a long time.
C# did have a strong Delphi influence since Anders Hejlsberg is/was the architect of both.
Re: (Score:2)
The JVM is king in the server room and will likely be that way for a very long time.
I hate Java the language, it is a verbose pile of feces and it provides very little type-safety for all that verbosity compared to Scala. Ocaml or Haskell. The fact that Scala and JRuby exists makes working in the JVM environment very nice, although I prefer Erlang in a server environment for most things since its concurrency is better than anything the JVM can offer.
I am not sure Kotlin offers any advantages over Scala but
Re: (Score:2)
I am not sure Kotlin offers any advantages over Scala...
Bwahahaha oh lord. If you want to waste some time look into Kotlin. It is nothing even remotely close to Scala. It is some small unimportant changes to Java with no real advantaged, whereas Scala is a truly impressive effort and semantically much richer language. Comparing Kotlin to Scala would be like comparing a Yugo to a Model X.
Re: (Score:2)
That is good to know, thanks
Re: (Score:2)
Hardly. You have an odd fantasy.
The hard core, bureaucratic Java devs that I know hate the addition of lambdas and proper closure support. I kind of agree with them, the lambda implementation is massively complex, a pure testament to the suck that is Java.
Auto-completion is not a feature of any language. It is a feature of IDE's. I am not shocked you don't know the difference between a language and an IDE, it is a common trait among Java "devs".
Java is the only language I know that requires an IDE to be at
Re: (Score:2)
Er, no, you have it the wrong way. Java = sh*t. JVM = excellent, but I am thinking things running on JavaScript/V8 is better nowadays.
Languages have different features (Score:2)
why we can't use C++ and C++ style derivatives for compiled code (cross compiled to many platforms), and then for interpreted needs use javascript, python, or whatever floats your boat on top?
There's some interesting languages out there with other features. Haskell comes to mind, as a pure functional language. It's not just pretty syntax, but a different way of thought that provides some features and power that C++/Java style imperative languages can't match. They're so different that you need different compilers really. You can't always write a Haskell program and "translate" it to C++, certainly not without re-architecting. Of course, there may be things an object oriented style is better suit
Re: (Score:2)
I wrote a compiler for Haskell-like lazy FP a long time ago (in 1989!) and I can assure you the compiler technologyfor lazy functional programming languages and the tech for imperative or OO languages are about the same as cats are from dogs. Or tather, as far as cats are from bacteria.
Functional languages work on an entirely different theoretical basis, never mind implementation
Re: (Score:2)
Functional languages work on an entirely different theoretical basis, never mind implementation
Depends on the implementation. Bottom line they use the same machine, calls, stacks heap etc. And keep in mind, plenty of languages are hybrid in our days, as Scala or if you want C++ show.
Re: (Score:2)
Safe pointers have been available in C++ libraries for ~10 years now.
Re: (Score:1)
The semicolon thing really bothers me.
We can learn to finish sentences with a full-stop in primary school, but apparently fully-grown adults can't cope with using a statement terminator when programming.
I don't mind languages that use a statement _separator_ rather than terminator - but that's not what these languages do. By making the statement terminator optional - but still a terminator, not a separator, they've made carriage-return a statement terminator too. Which means that suddenly white-space matt
Re: (Score:2)
I don't know Kotlin but not using ; in a language like Ruby is no worse in regards to multiline expressions(there are no statements in ruby) over java.
some_method(a,b,
c)
or if you like:
some_method a,b,
c
No whitespace issues or ambiguity.
Compared that to Java:
someMethod(int a, int b,
int c);
Is the semi-colon really that meaningful?
Using a semi-colon or anything to denote the end of a statement or expression is largely redundant. It is weird that programmers get hung up on non-issues like this.
Re: (Score:2)
Are you making the code as ugly as you can? It's a mistake to think that leaving out useful visual cues like parentheses and semicolons is "no worse" or that these markers are redundant. They may be to a compiler but not to a human. (Not most humans anyway.)
Re: (Score:2)
They are as simple as it can be, you must really love java if you are looking for complexity in a method call and calling it ugly if it isn't complex. The semi-colon in the Java example offers no more clarity than omitting it. Even the one Ruby example with no parenthesis is very clear and concise.
The fact that a comma at the end of the first line is all the visual clue one needs to know that it continues on the next line, whether it is a person or a compiler.
The only time they are really needed is when put
Re: (Score:2)
Re:This JVM stuff is BS (Score:5, Informative)
Re: (Score:2)
as the JVM is pretty much limited in what it can do and what it can't. ...
That is incorrect. The only limit the VM exposes is true multiple inheritance. But even that can be tricked
Regarding Kotlin, I did not really like it either. In case you want more power full languages then there are Scala and Extent on the "static type" front and Groovy on the "dynamic type" front, or Closure if you can stand Lisp.
Pure old school Java I find rather cumbersome ... to much visual noise, but most projects till use it.
Re: (Score:2)
And tail recursion. JVM does not like that.
Re: (Score:2)
The older java compilers did not use it.
However the VM supports it as Scala e.g. shows: also, important imho, it is not called tail recursion, every machine with a branch or sub routine call supports it. It is called tail recursionoptimization as in optimizing away a sub routine call by a simple jump/branch.
Re: (Score:2)
Not true. Clojure is dynamically typed, Frege has the same type system as Haskell and is pure functional. Ioke is prototype based. Jython is source compatible with other python implementations Python. These are not just syntactic sugar.
The JVM is becoming less limited with each release
Re: (Score:2)
Red Hat managed to spend five years on Ceylon, a JVM language almost nobody wants to use.
Great to see a sane alternative gaining traction.
Everyone knows they should have named it Cylon - the Cylons had a plan for universal domination. Ceylon was deprecated for Sri Lanka [bbc.com].
But no, Kotlan is not a sane alternative and it's not gaining traction.
Re: (Score:2)
But no, Kotlan is not a sane alternative and it's not gaining traction.
Kotlin [jetbrains.com] is though.
Re: (Score:2)
Re: (Score:2)
There's not need to be condescending and patronizing. I did read the chart. Just didn't realize that by 'gaining traction you meant 'adoption rate', and that you were an expert despite the incorrect spelling of 'Kotlin'. I'm not sure what the adoption rate is, however, we've adopted Kotlin a few months back, and the experience has been a pleasant one. I place a high level of trust in Jetbrains, and have been a fan of their products for years.
As someone just learning Java via OpenXava (Score:2)
Wrong: it runs on the JVM (Score:2)
Re: (Score:1)
Re: (Score:2)
I'm more into numerical modeling and such, and I agree IDE's need a lot of resources, but what's wrong with an IDE checking your variable consistency, object exposure, and having a debugger that makes it easy to see your values without writing print files?
Re: (Score:1)
> Problem is, most people need code completion, etc. to hold their hand. If c programmers needed that level of support, they'd be told to go back to school and really learn the language.
You are either missing the point of introspection or are like the mighty caveman telling people they don't need a roof. Both kinds of ignorance are controlled for in the market and by genetics. SMH
Re: (Score:2)
Re: (Score:2)
Professional developers often need to work with multiple languages. No developer needs to completely learn every language before using it; that would be very counter-productive and much of that knowledge would likely be lost in a couple of weeks. If I was supervising a developer that insisted on completely learning a new language before starting to use it at all, I'd tell them to take a hike.
And that doesn't even mention frameworks and third party libraries. I've been developing primarily in C# for 14 ye
Re: (Score:2)
You would expect a developer to become more proficient as time goes on (unless you're jumping from one language fad of the week to another, which is poor planning, and the supervisor should be fired, along with whoever hired them). Training wheel IDEs mitigate against developing said proficiency.
Re: (Score:2)
I wrote an extension for my company's bug tracker, Redmine. None of us knew Ruby, but we needed to write an extension for it. I got up to speed but I didn't need to learn the entire language, and didn't need to work with it for quite a long time after the work was completed. There was no need for me or anyone else in the company to "become more proficient as time goes on". And it wasn't some fad as you suggest. It was a legitimate professional need.
Re: Java, utter bloat to sink your boat (Score:1)
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
Don't need it, it makes things faster and mistakes less likely. I know a variable is called height in a class called Rectangle, but why would I not have it basically type out int height = rectangle.height by me typing int height = rec, hitting enter then hitting enter again? That's just one feature, it has hundreds or thousands of small things that make developing faster. Why would you drive a car when you could just walk? Why would you drink water out of a tap when you could just go to a river? The answer
Re: (Score:2)
Do you develop using notepad, or do you use some sort of syntax hilighting and macro-enabled editor that you refuse to refer to as an IDE for some illogical reason?
Re: (Score:2)
Re: (Score:2)
gedit, gmake, and bash, with a few perl scripts to take care of versioning. That's not an ide. And no, I don't use macros or syntax highlighting.
Ah the memories of the 1990s, and flame wars in comp.lang.perl over whether syntax highlighting editors were evil or not. Who knew it would come around again?
Your whole argument is an example of Anecdotal Fallacy [wikipedia.org]; "using a personal experience or an isolated example instead of sound reasoning or compelling evidence". Your setup presumably suits your personal purposes, but asserting that everybody who doesn't do it your way is stupid, wrong and unprofessional is fundamentally flawed. And makes you look fool
Re: (Score:2)
Re: (Score:2)
I was pointing out the FACT that it's easy to do Java development without a bloated hand-holding IDE.
...the FACT that it's easy to do small-scale Java development without an IDE
FTFY
You keep using the terms "bloated" and "hand-holding" without providing any evidence; just your own personal opinion.
Judging from your own choice of tooling ("gedit, gmake, and bash, with a few perl scripts to take care of versioning") you've never worked on a significant development project, or in a serious development team.
gmake for build? Really? Never heard of Maven, or Gradle, or other modern build tools? They not only buil
Re: (Score:2)
Funny how the original developers of Java didn't need a bloated Java IDE to develop it ... or is Java "small-scale"?
As for the rest, to each their own. I never said that my way was the best way for everyone, so go dunk your head in a bucket of water and cool off a bit.
A file-based version control system should allow you to rebuild any or all versions in one shot. Makes it easy to keep everything backed up on other media without installing and configuring other software, and sharing with others. KISS beats
Re: (Score:2)
Funny how the original developers of Java didn't need a bloated Java IDE to develop it ... or is Java "small-scale"?
As for the rest, to each their own. I never said that my way was the best way for everyone, so go dunk your head in a bucket of water and cool off a bit.
A file-based version control system should allow you to rebuild any or all versions in one shot. Makes it easy to keep everything backed up on other media without installing and configuring other software, and sharing with others. KISS beats complex any day. Having policies of who can modify what is also important - "you touch this, I KILL YOU" - so that takes care of teams. Being able to build, or branch off, any specific version at any time takes care of the rest.
"Modern professions software development" "using industry-standard best practices" has failed in too many ways to even begin to count. Or haven't you noticed that, instead of shipping completed products on floppies or cds, they now "ship and patch and patch and patch and patch and patch and ..." because of the mindset of "we can patch it later so who gives a crap." The so-called "gold masters" are a lie.
I'm tempted to mod this as "Funny". It's certainly the most hilarious thing I've read today.
FWIW I haven't shipped software on physical media in years. That's what "continuous deployment" means; a continuous rolling cycle of automated build, test, and live deployment - sometimes daily. And the "test" part matters, because most paying customers do "give a crap" about the software working correctly.
As for the rest of it, it just confirms what I said in my last post.
Good luck in your programming career. Yo
Re: (Score:2)
Re:Java, utter bloat to sink your boat (Score:5, Insightful)
If c programmers needed that level of support, they'd be told to go back to school and really learn the language.
Code completion is rather useful for libraries. It has obviously nothing to do with "language".
And I rather have my method calls autocompleted, especially when I also autocomplete arguments, than having the compiler give me 25 errors per file I worked on the last hour because I have a typo every where.
There are plenty of reasons why people use auto completion ... "not knowing the language" is very likely the least one.
Re: (Score:2)
Please tell my you are joking. When in Eclipse the Java is incrementally recompiled WHILE YOU ARE TYPING. It is not FAST, it is INSTANTANEOUS.
Re: (Score:1)
Re: (Score:2)
The best XML IDE on the planet is written in Java [oxygenxml.com].
(And, no, I don't work for them; I've just been using their product on a daily basis for nearly ten years.)
Re: (Score:2, Troll)
The best XML IDE on the planet is written in Java [oxygenxml.com].
(And, no, I don't work for them; I've just been using their product on a daily basis for nearly ten years.)
That's kind of like saying "The best dog poop comes from $WHO_GIVES_A_SHIT." :-) xml was a big mistake we will always be paying for.