I am wondering if there are technical reasons that make Stab an unsuitable alter
ID: 639567 • Letter: I
Question
I am wondering if there are technical reasons that make Stab an unsuitable alternative to Java.
Stab borrows heavily from C#, bringing many C# features to the JVM:
Less verbosity
type inference (implicit typing)
properties and indexers
null coalescing operator
'using' and 'as' shortcuts
delegates
lambda expressions
anonymous types
generators (iterator blocks/yield return)
non-checked exceptions
initializers
partial classes and methods
extension methods
a form of LINQ
other stuff
Many of the above features seem like things that people are clamouring for in Java. Stab seems like a way of getting these features today while not falling very far from the Java tree.
I am surprised that Stab has not been more popular with C# developers that also have to write and maintain code on the JVM. Stab is not 100% the same as C# but it is pretty close and I would think that C# developers would prefer coding in Stab to coding in Java.
I am surprised that Stab has not seen greater adoption with Java programmers. It has a syntax that is very similar and incremental to Java, uses the plain vanilla JDK, and generates libraries that interact very naturally with Java on the JVM.
Scala is an obvious alternative as well and has an even greater feature set. I can see why you would choose Scala. In my opinion, Scala is a bigger jump conceptually, syntax-wise, and even in terms of libraries for both Java and C# programmers. Even in a world with Scala as a choice, I am surprised that Stab has not seen more traction.
It seems like there could be a few reasons:
People are just not aware of it
Java folks do not like the 'Microsoft' influence
These features are not as compelling as I imagine compared to vanilla Java
There are technical issues with using Stab in the real world
The last option seems most suitable for discussion here. So, what are the technical reasons that keep Stab from being a popular choice when developing on the JVM?
I think this may be the first question here about Stab. Ceylon already has questions and nobody has even seen it yet.
Explanation / Answer
The success of languages is only partly related to its technical superiority.
A critical factor when choosing a language is the number of other people already using the language. There are several reasons to this.
Rumor: If it works well for thousands of other people it is probably to you too.
Jobs/employments: There is a large job market for the large languages. As a C# or Java developer you have lots of jobs in your vicinity to choose from. As a company you can easily find more developers to your project if you use a mainstream language. Can you tell me where I can grab a handful of stab developers when I need to ramp up my project?
Help: There are currently 114,443 questions about Java on StackOverflow and 20.9k people following the Java tag. Stab has one question and 0 followers. If you get stuck, which language will maximize your chances of getting help fast and cheap?
Industry support: As a C# or Java developer you have a clear future path, you can expect the language and surrounding libraries to evolve to be able to handle future programming styles.
Components: Both Java and C# has a large eco-system built around the languages. Large build in libraries and third party controls and libraries.
Point 5 might not be valid to stab at, but most of the other points are.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.