If "everything you need to do" is just that part which can be specified
within any Turing-Complete language, then you can achieve exactly the same
thing with a sufficiently large room full of people, no computer required.

If your definition also includes concerns such as maintainability,
testability, security, performance, time to market, etc.  Then the entire
reason for switching would be because your current language doesn't do
"everything" that you need from it.

It all comes down to a cost/benefit equation; yet everyone has their own way
of evaluating such quantities, so there's no objective measure available
here.  Worse still, how can you evaluate the benefit of something when you
have no real experience of it?  In this case, it's all to easy for "change"
to be perceived as a risk, and therefore a cost.  While the benefits are
unknown, and so are seen as having no value.

and we've already seen where that logic leads, just consider some of the
criticism that was levelled at Lombok when first announced:

- not universally supported by IDEs
- it hacks the compiler
- it's just not "Java", making everything explicit is part of the language
- it could break too easily against a new JDK
- risk of annotation-hell and composability problems
- etc.

The true benefit in saving yourself a metric tonne of meaningless code was
brushed over by many objectors, yet I can guarantee that people out there
will now be saving themselves a lot of effort by being able to read stuff
back quickly, not having to debug equality methods, and generally improving
their lives when it comes to code maintenance.


LambdaJ fared no better:

- painfully slow due to reflection
- it's not proper OO, use the visitor pattern!
- etc.

But Java is now getting native lambda support, at some point, so I guess
that the closures debate is coming to a conclusion.


The history of programming is littered with other such examples of ideas
that were derided in their time (remember Java, with the new-fangled garbage
collection?), but are now accepted as the Right Way to do things.

Maybe a given language or library really is "everything you need", but it
also evolved from predecessors that made the same claim, so statistics tell
us that it's most likely going to be superceeded.  Java's not the end of the
line, nor Haskell, Clojure, List, C# or F#  Scala's certainly not the last
word either, nor is *any other* language we currently have available.


So does language X give you everything you need right now?  Absolutely
not... but it still might give you more than language Y, and it may even be
the best that's currently available for your particular problem.  But for
the language that is *ultimately* the best for you?  Only evolution can give
that answer...

(unless your main design criterion is to minimize the amount of code you
write or fix, in which case you're probably better off sticking to the
status quo)



On 3 October 2010 22:37, B Smith-Mannschott <[email protected]> wrote:

>
>
> On Sun, Oct 3, 2010 at 22:01, Ricky Clarkson <[email protected]>wrote:
>
>> I think the attitude is more that you can do everything you need to in
>> the current language, so why would you want to switch?
>>
>
> Yea, probably so. Though this is pretty vague. It's no wonder opinions
> differ so widely:
>
> - "can do" -> yes, but how natural or awkward is it?
> - "everything" -> everything-everything, or mostly-everything, or
> everything-i-care-about-right-now?
> - "to switch" -> what's the cost in effort/time/energy of acquiring the new
> skills?
> - what other benefits might said new skills bring down the line?
>
> Think of it as an optimization problem. :-)
>
> VBA, is Turing complete, so I could just write everything as macros in
> Excel, but I choose not to.
>
> // Ben
>
>
>>
>> On Sun, Oct 3, 2010 at 6:08 PM, Kevin Wright <[email protected]>
>> wrote:
>> > None of this is intended to denigrate any of the languages mentioned, of
>> > course.  And believe-it-or not I had no specific individuals in mind
>> either.
>> > But I am, and shall remain, convinced that computer science has learned
>> a
>> > trick or two since BASIC, or COBOL, or any of the others were created.
>>  Some
>> > of these advances are just too painful to retrofit to a language that
>> quite
>> > correctly places a high premium on backwards compatibility.
>> > The forces acting here are powerful, and impossible to reconcile.  Which
>> > means that as a language matures, new concepts become ever harder to
>> adopt.
>> >  Historically, such change has instead been managed by the creation of
>> new
>> > languages, for which backward compatibility is no longer an issue.
>> > I'll repeat... This is in no manner detrimental to earlier languages,
>> they
>> > form an essential foundation to those that came later.  But is it truly
>> > possible to embrace e.g. Pascal in preference to its immediate
>> predecessor
>> > (Algol), which was in turn written to avoid some of the known flaws in
>> > Fortran - and yet simultaneously believe that Pascal is the pinnacle,
>> that
>> > past languages were mere coincidence, and that Pascal could never
>> possibly
>> > be improved upon?
>> > It seems a strangely contradictory attitude to take in a profession that
>> is
>> > otherwise making bold steps to embrace change through power of agile
>> > methodologies
>> >
>> >
>> > On 3 October 2010 12:54, Kevin Wright <[email protected]> wrote:
>> >>
>> >> Absolutely.  All of my experience is that developers willing to step
>> >> outside of their box, and to learn new languages and ideas are better
>> for
>> >> it.
>> >> Not only does the learning experience expose you to more examples of
>> >> quality code, but you also end up with a larger "mental toolbox" of
>> >> approaches to learn from.  I've already given JodaTime as an example of
>> >> this, google collections is another, you can find many more if you shop
>> >> around.
>> >> Nowadays, we're even starting to see some category theory trickle back
>> >> into
>> >> Java:
>> http://apocalisp.wordpress.com/2009/08/21/structural-pattern-matching-in-java/
>>  All
>> >> of this cross-fertilization is a Very Good Thing(tm).
>> >> BASIC has its share of dogmatic and obstinate followers, unwilling to
>> >> accept change.  As does COBOL, Pascal, Fortran, C#, etc. And yes, Java
>> does
>> >> too.
>> >> Scala, F#, Haskell, Clojure... not so much.  These languages all still
>> >> have very active communities, looking to explore the realms of what is
>> >> possible and definitely not set in their ways - a description that I
>> imagine
>> >> any good developer would like to have applied to themselves.
>> >> It's only natural, then, that a language actively seeking to push the
>> >> state of the art will also attract like-minded developers.  But does
>> this
>> >> mean that it's therefore unsuitable for anyone else?  Of course not!
>>  But
>> >> there will always be some for whom their doctrine is a great comfort,
>> and
>> >> these people *will* find it distressing if they should ever have to
>> move to
>> >> a different language.
>> >>
>> >>
>> >> On 3 October 2010 01:53, Liam Knox <[email protected]> wrote:
>> >>>
>> >>> I agree though age of this exposure and the individuals mind set are
>> >>> paramount.  Some people seem to be brain washed easily with other
>> ideas,
>> >>> Religion for example, and others have been able to refute them quite
>> easily
>> >>> based on alternative evidence regardless of the initial exposure time.
>> >>>  There are other fundamental individual differences, for example life
>> time
>> >>> learners and those who seem to become very limited, very early.  This
>> is not
>> >>> unique to technology by any means.  I have seen both types of
>> developer and
>> >>> I personally can not attribute this purely to languages they initially
>> >>> learned.  Indeed many of them were brought up on something more
>> structured
>> >>> such as C or Pascal or Modula II.  However they appear to be equally
>> adapt
>> >>> in using any languages and building complete crap or great systems
>> with it.
>> >>>
>> >>> On Sun, Oct 3, 2010 at 8:48 AM, Kevin Wright <
>> [email protected]>
>> >>> wrote:
>> >>>>
>> >>>> Long-term lack of exposure to significant programming paradigms has
>> got
>> >>>> to impact your skills, how could it be otherwise?
>> >>>> I've witnessed the pain of others in transitioning from procedural to
>> >>>> object-oriented methodologies, it isn't pretty!
>> >>>> I've also seen OO abused when treated as the only paradigm in town.
>> >>>>  It's the old story, "when all you have is a hammer..."
>> >>>> I highly recommend the fantastic "Execution in the Kingdom of Nouns"
>> >>>> article for more on the subject:
>> >>>>
>> >>>>
>> http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
>> >>>> Closer to home, it's impossible that anyone would create the
>> universally
>> >>>> hated Java Date/Time if they had first been exposed to functional
>> >>>> programming and the correct use of immutable objects (ideas that
>> JodaTime
>> >>>> clearly embraced)
>> >>>>
>> >>>> So yes, BASIC can harm your skills, at least if you become
>> >>>> institutionalised within the language.
>> >>>> But it's not really BASIC that's at fault here, it's the concept if
>> >>>> being locked into a particular (restricted) way of doing things, and
>> then
>> >>>> struggling to break free of the self-imposed prison that such an
>> approach
>> >>>> can create.
>> >>>>
>> >>>>
>> >>>> On 3 October 2010 00:24, Liam Knox <[email protected]> wrote:
>> >>>>>
>> >>>>> I think its pretty irrelevant if you started on BASIC or any other
>> >>>>> language for that matter and how that has impacted your current
>> skills.
>> >>>>>  Someone who feels they have been technically crippled permanently
>> from
>> >>>>> exposure to BASIC would likely be not very be technical anyway.
>> >>>>>
>> >>>>> On Sun, Oct 3, 2010 at 12:33 AM, Russel Winder <
>> [email protected]>
>> >>>>> wrote:
>> >>>>>>
>> >>>>>> On Sat, 2010-10-02 at 07:36 -0700, Cédric Beust ♔ wrote:
>> >>>>>> [ . . . ]
>> >>>>>> > Basic is definitely not receiving enough credit, in my opinion.
>> >>>>>> > Actually, it's being unjustly vilified. Who was it again who said
>> >>>>>> > that
>> >>>>>> > anyone who started programming with Basic was irrecoverably
>> corrupt
>> >>>>>> > and would never become a good programmer?
>> >>>>>>
>> >>>>>> Dijkstra, who is both the source of some great things that have
>> >>>>>> benefited programming and software development, and things that
>> have
>> >>>>>> acted as barriers holding back software development for decades.
>> >>>>>>
>> >>>>>>        "It is practically impossible to teach good programming to
>> >>>>>>        students that have had a prior exposure to BASIC: as
>> potential
>> >>>>>>        programmers they are mentally mutilated beyond hope of
>> >>>>>>        regeneration."
>> >>>>>>
>> >>>>>>        "I think of the company advertising 'Thought Processors' or
>> the
>> >>>>>>        college pretending that learning BASIC suffices or at least
>> >>>>>>        helps, whereas the teaching of BASIC should be rated as a
>> >>>>>>        criminal offence: it mutilates the mind beyond recovery."
>> >>>>>>
>> >>>>>> > I bet that a lot of people on this list started programming with
>> >>>>>> > Basic
>> >>>>>> > (myself included), and I think we turned out alright :-)
>> >>>>>>
>> >>>>>> Hummm... people who started with Basic and yet have become good
>> >>>>>> programmers in a number of languages must have great powers of
>> >>>>>> recovery
>> >>>>>> and regeneration.  This must mean they are either vampires or
>> trolls
>> >>>>>> ;-)
>> >>>>>>
>> >>>>>> --
>> >>>>>> Russel.
>> >>>>>>
>> >>>>>>
>> =============================================================================
>> >>>>>> Dr Russel Winder      t: +44 20 7585 2200   voip:
>> >>>>>> sip:[email protected] <sip%[email protected]>
>> >>>>>> 41 Buckmaster Road    m: +44 7770 465 077   xmpp:
>> [email protected]
>> >>>>>> London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
>> >>>>>
>> >>>>> --
>> >>>>> You received this message because you are subscribed to the Google
>> >>>>> Groups "The Java Posse" group.
>> >>>>> To post to this group, send email to [email protected].
>> >>>>> To unsubscribe from this group, send email to
>> >>>>> [email protected]<javaposse%[email protected]>
>> .
>> >>>>> For more options, visit this group at
>> >>>>> http://groups.google.com/group/javaposse?hl=en.
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Kevin Wright
>> >>>>
>> >>>> mail / gtalk / msn : [email protected]
>> >>>> pulse / skype: kev.lee.wright
>> >>>> twitter: @thecoda
>> >>>>
>> >>>> --
>> >>>> You received this message because you are subscribed to the Google
>> >>>> Groups "The Java Posse" group.
>> >>>> To post to this group, send email to [email protected].
>> >>>> To unsubscribe from this group, send email to
>> >>>> [email protected]<javaposse%[email protected]>
>> .
>> >>>> For more options, visit this group at
>> >>>> http://groups.google.com/group/javaposse?hl=en.
>> >>>
>> >>> --
>> >>> You received this message because you are subscribed to the Google
>> Groups
>> >>> "The Java Posse" group.
>> >>> To post to this group, send email to [email protected].
>> >>> To unsubscribe from this group, send email to
>> >>> [email protected]<javaposse%[email protected]>
>> .
>> >>> For more options, visit this group at
>> >>> http://groups.google.com/group/javaposse?hl=en.
>> >>
>> >>
>> >>
>> >> --
>> >> Kevin Wright
>> >>
>> >> mail / gtalk / msn : [email protected]
>> >> pulse / skype: kev.lee.wright
>> >> twitter: @thecoda
>> >>
>> >
>> >
>> >
>> > --
>> > Kevin Wright
>> >
>> > mail / gtalk / msn : [email protected]
>> > pulse / skype: kev.lee.wright
>> > twitter: @thecoda
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "The Java Posse" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected]<javaposse%[email protected]>
>> .
>> > For more options, visit this group at
>> > http://groups.google.com/group/javaposse?hl=en.
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "The Java Posse" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<javaposse%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/javaposse?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<javaposse%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/javaposse?hl=en.
>



-- 
Kevin Wright

mail / gtalk / msn : [email protected]
pulse / skype: kev.lee.wright
twitter: @thecoda

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
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