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.
