On Wednesday, July 18, 2012 12:50:19 PM UTC+2, Carl Jokl wrote:
>
> It is frustrating. Enough of these disappointments and setbacks would make 
> me tempted to want to work with something else sometimes yet the problem 
> remains that the alternatives still have issues.


Fast-moving alternatives are 'small' communities: They have a small number 
of developers that use it, and those developers all fall in the fanboy camp 
in that they WANT to be there, they made the choice to steer away from the 
mainstream, and they chose this language because they really like it, not 
because 'it's what I learned in college / it's what my first job was about 
/ it's the one that shows up most in job ads / isn't that what you just 
start with?'.

These people are willing to adapt, and they will shrug off some personal 
inconvenience to them if it evolves the platform (partly because they are 
willing to 'suffer' for 'their' language, and partly because they are aware 
of the language's evolution, they want it to evolve, and they can see how 
this personal inconvenience may pay off at some point).

These languages also tend to not have many, if any, legacy projects written 
in them anywhere in the world, so the personal inconvenience that breaking 
changes introduce is kept to a minimum, in addition to the fact that the 
user base is more willing to deal with them. The amount of whining if you 
break backwards compatibility between i.e. scala and i.e. java is a vast 
ocean.

Contrast this to large communities, where absolutely none of this is true. 
There's a gigantic legacy backlog, there are many many users who do not 
feel particularly attached to the language and are thus going to get 
annoyed when personal inconvenience is introduced, no matter how small and 
no matter how healthy for the platform. There are also more people who want 
development for their tiny little slice of the pie and are not willing to 
take a hit and accept and even cheer on work done in areas they personally 
don't need or care about but which seem like they are right for the 
language.

This brings us to a dilemma. A fork in the road. Which fork do you take?

* Join camp awesome and new. However, you KNOW that this camp is DOOMED to 
turn into the very thing you are turning away from: Either your language 
becomes popular and sinks down into the mud you just ran away from, or it 
stays obscure and at some point the developers and most of the community 
will lose interest, meaning you've just turned to a language that is a 
complete dead end. You'll be switching language and platform every 5 years 
or so, most likely, and there is disappointment pretty much every single 
time. This sounds painful, and like a lot of work.

* Stay with camp old and slow. While you have to live with all the 
aforementioned issues, you do get an established language, which means it's 
easy to hire / get hired based on this skillset, there are a metric 
bajillion libraries out there, example code is easy to find, third parties 
are likely keeping in mind the fact that you and a large number of other 
yous exist, (i.e. websites will probably have an API library for you if 
they have API libraries at all), etc.

I'm picking door number 2 here, and will do so every time.  I'll switch the 
moment a language is created that can make a reasoned argument that they 
can handle becoming popular without becoming a backwards compatibility 
quagmire. "I have balls" / "We'll just fork" does not cut it (proof: 
Python3). If I'm not forced to put "Version 1.0" or what not at the top of 
every source file in this hypothetical language you've probably already 
lost me. Unfortunately nobody seems to give a crud about this dilemma :(

But, I _WILL_ cheer on any attempt to try and create a best of both worlds 
scenario for an existing language. Unfortunately for me, jigsaw was a step 
towards allowing java to deal better with the old stuff by at the very 
least introducing both a way to more easily use third party libraries 
(letting you move away from old stuff you didn't like by using new 
libraries with better design), and introducing versioning as a concept at 
the very least in not just any old third party library but in core java 
components as well.

Well, the good news is that it's just delayed and not dead.

>
>

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/javaposse/-/veGMCmfAZ4AJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to