
Iodine: A full superset of Java with enhancements - dwarfland
http://blogs.remobjects.com/2017/08/31/iodine-a-better-java-language/
======
hadrien01
> Let's face it: Nobody loves working in Android Studio, Eclipse, or NetBeans
> – the IDEs are bloated, clunky and unintuitive.

Uh... I don't agree for IntelliJ/Android Studio, and I'm sure some people love
to work with NetBeans and Eclipse.

~~~
dpatriarche
I love Eclipse for working in Java, and I love IntelliJ for working in Kotlin.

My impression is that people who don't like IDEs haven't put the effort into
figuring out how to use them effectively -- modern IDEs have incredible power
to increase productivity, but you have to learn how, and you have to make some
accommodations in how you work.

I say this from experience: I started my career coding C/C++ in Emacs and I
didn't get the fuss with IDEs. Then 10 years ago I started working in Java in
Eclipse and I realized what I had been missing. But in order to realize the
full benefit of the IDE I had to adjust to how the IDE wants to work, e.g.
spend time configuring the automatic code formatter, and let go of some of my
formatting quirks that the automatic formatter couldn't handle.

~~~
fiddlerwoaroof
My general experience is that Java needs an IDE because the language forces a
bunch of boilerplate and a file/directory structure that is very difficult to
navigate without a bunch of tooling. However, in other languages, the gap
between the IDE experience and the well-configured vim/emacs experience is
much narrower.

~~~
darren0
I programmed Java for 15 years in mostly eclipse. The past 3 years I've been
doing go in vim. Just recently I switched to Gogland for go, which is a full
blown IDE. It's been life-changingly good. I forgot just how nice it is to
have proper tools that just work. So even in a "simple" language like go, an
IDE can make a huge difference if you care to learn it.

~~~
fiddlerwoaroof
I've had mostly the opposite experience: I've used vim and emacs/evil-mode for
10 years or so now and now, since my day-job involves lots of pair
programming, I've had to use tooling that other people are comfortable with
(e.g. Atom/VSCode/Intellij) and, the only places I find a clear win over my
old tools are places where I rely on Intellij's features (auto-implementation
of interfaces and other boilerplaty issues with Java). When I've worked in
Javascript/PHP/etc., I've never found the overhead of an IDE to be worth it.

Also, I haven't written much go, but my general impression is that the
language trends on the verbose side because of the lack of things like
generics and it's error-handling strategy, so I'm not too surprised that it's
more pleasant to use an IDE for go than it is to produce it manually.

Also, most of my side-projects are in Common Lisp and, I've yet to find a
"mainstream" programming environment that's more pleasant to work with than my
SLIME/emacs setup for writing CL.

~~~
omaranto
Unless I misunderstood you, this does not sound like the opposite experience,
but the same experience. You say that (for Java) you found the IDE, IntelliJ,
better than the editors vim, Emacs, Atom, VSCode.

~~~
fiddlerwoaroof
No I was saying that I found that certain kinds of languages (verbose,
boilerplate-y languages like Java) benefit from an IDE to automate the
boilerplate away while more concise languages (like Common Lisp or Haskell)
benefit very little from having an actual IDE vs. a simple text editor.

------
arkadiytehgraet
I don't get it: there is already a widely accepted 'better' Java called
Kotlin, that features much more than this: way better integration with IDEs,
way better integration with existing Java codebases, better everything... Yet
somehow we should start using NEW IDE with NEW language supported by
completely unknown company with zero guarantees about its support. I just
don't get it.

~~~
badpenny
I don't know what it is about programmers that we seem to love reinventing the
wheel.

~~~
watwut
It is usually fun exercise that has little certainty (you know what to do and
even how if you bother to study) in it, but is still intellectually
satisfying. Usually great learning experience. Once in a while, project that
wins over others (requires a lot of bullshitting on conferences tho).

------
carussell
Marc: the two links to Fire and Water in your post link back to the post's own
URL, rather than to [Fire] and [Water].

Fire.
[http://www.elementscompiler.com/elements/fire/](http://www.elementscompiler.com/elements/fire/)

Water.
[http://www.elementscompiler.com/elements/water/](http://www.elementscompiler.com/elements/water/)

~~~
dwarfland
fixed, thanx.

------
kuschku
So, a JVM language that’s not much more than just a C# clone, but with no IDE
or compiler support for Linux?

This sounds like it’s not going to be successful soon. In the long term, if
you want to compete with Java, you’ll need good integration with existing
IDEs, and with existing JVM languages.

~~~
sorokod
A JVM language that is a super set of Java. Meaning that java sources are
valid iodine sources. Some may find this attractive.

~~~
kuschku
Yes, but kotlin can already translate Java to Kotlin, and provides 90% of this
– with far better IDE and editing support. Forking Kotlin seems like an easier
solution.

Especially because of the IDE and compiler support for this, which means it
can only reasonably be developed on Windows, and then you might as well use
C#.

------
tjalfi
What problem does Iodine fix[0]?

Here is my guess at an answer.

Iodine: our Java implementation should include features from newer languages

[0] [http://paulgraham.com/fix.html](http://paulgraham.com/fix.html)

------
jnordwick
Fyi: not java but a java derived language with similar aims (and initial
language features) to kotlin (and pascal).

~~~
brad0
So a JVM language? I'm asking because the site won't load for me.

~~~
Nullabillity
The opposite, it seems. They got rid of the good parts (the JVM and the
industry's best IDE ecosystem), kept the bad (the Java language), added their
own lockin-flavoured herbs and spices, and now they have the gall to charge
$800/seat for the mess. What a joke.

~~~
dwarfland
"The opposite, it seems. They got rid of the good parts (the JVM and the
industry's best IDE ecosystem), kept the bad (the Java language), added their
own lockin-flavoured herbs and spices"

no, that's just entirely false.

~~~
Nullabillity
So it'll be compatible with Eclipse and IntelliJ, still be compatible with any
compliant Java compiler, and still fix Java's syntax warts?

Good luck with that.

------
kkarimi
Reminds me of the groovy/grails project and their attempt to make a better
Java..

~~~
imtringued
Groovy is also almost a superset of java. They removed a few syntactical
contstructs which make it incompatible but most of them are trivial to
tranform to groovy.

~~~
vorg
> almost a superset of java. They removed a few syntactical contstructs

Unfortunately "almost" doesn't cut it with programming languages. And they
changed, not "removed", syntax. Because Apache Groovy has those (many, not
"few") incompatibilities with Java (e.g. meaning of == , public visibility as
default, closures instead of lambdas, etc), it might as well be a different
language.

------
pents90
Not sure how everybody else feels about it, but I find that optional typing is
the enemy of readable code.

~~~
djur
It doesn't look like this has optional typing (like Dart or Groovy) but local
type inference (like Kotlin or C++).

------
moomin
Someone should just do C# for Java and be done with it...

~~~
SureshG
Yeah it's called Kotlin, better than C# IMO.

~~~
eropple
Kotlin is cool but it's not C#. The project that's most "C# for the JVM" is
called Stab and it's widely rumored that it was (as its an anonymous project)
a precursor to Kotlin on the side.

~~~
dwarfland
RemObjects C# is exactly that. C# language, compiles for JVM (and Cocoa and
.NET and native Windows/Linux/Android NDK, as well).

~~~
eropple
Projects by no-name companies too insecure to open-source their stack but also
too shameless not to flog it every chance they get are not worth even
considering. Programming languages that aren't fully and permissively open
aren't worth a bucket of spit. And I don't provide my business to the latter,
either.

Especially when superior options exist, because "C# on the JVM" also _isn 't
even particularly valuable_ when you're a competent programmer who is capable
of learning new things.

------
exabrial
> optional type inference with the var keyword

I would definitely call this a regression, not an enhancement

~~~
dwarfland
how so?

