you mean Java with the 'billion dollar mistake' known as null? The
Java which has just completed changed its Date and Time API _for the
better_? Or maybe you are referring to JavaScript with its insane
scoping rules? Maybe Ruby with its ridiculously wide scoping rules?
And I am pretty sure Java has and will continue to use the deprecated
tag more than once.

NEW languages are exciting precisely (or at least mainly) because they
offer the opportunity to do things better, to evolve and learn from
the past - legacy debt is by definition only legacy. I am not sure you
are really suggesting that continuing to pay for a mistake _for ever_
is better than paying the cost of change once?

Taking your argument literally we are only going to continue to see
languages emerge to excitement only to then crumble under previous
design decisions. People make mistakes, new realities emerge, why on
earth would you want to prevent the opportunity to upgrade?

Unless I am mistaken any? was only introduced in the Clojure 9 alpha
so comparing this to the stability of the Java APIs (which are in some
parts horrendous to work with, purely because of legacy) is a bit of a
straw man.

I entirely agree with your upgraded definition of 'good', I am not
sure I buy the size of the constraint you mention (changing an API
introduced whilst in alpha).

Don't get me wrong, I am no Rich Hickey or Brian Goetz, and I highly
rate Clojure and the design decisions behind it. Watching a number of
Rich Hickey videos was like a breath of fresh air with a bunch of
"yes, that is the nagging feeling I haven't managed to articulate"
light bulb moments, but everybody makes mistakes.

I can see this getting a bit out of hand, I wrote some inflammatory
stuff which you are responding to in absolute terms. I am pretty sure
that were this discussion next to the magical water cooler we would be
much more on the same page as I can't believe you mean what you typed
:-).

Peace.

On 8 November 2016 at 14:39, Alex Miller <a...@puredanger.com> wrote:
> On Tuesday, November 8, 2016 at 2:28:54 AM UTC-6, Colin Yates wrote:
>>
>> The ship has indeed sailed. However, it is exactly these moments when
>> software starts to degrade - there are many examples of crufty
>> software crippled by legacy decisions.
>
>
> I completely disagree with this idea, particularly in the realm of
> programming languages. Java did not become one of the most popular languages
> ever by redoing and breaking things every release. The stability of the Java
> APIs is an essential ingredient in their success. Clojure leans far, far in
> this direction. I'll refer you to Brian Goetz's Conj keynote a couple years
> ago:
>
> https://www.youtube.com/watch?v=2y5Pv4yN0b0
>
>>
>> I would much rather have ruthless application of 'good' engineering,
>> deprecating where necessary than continue to pay the cost of a poor
>> decision with every new person.
>
>
> In my opinion, 'good' engineering involves making progress while working
> within your constraints.
>
>>
>> Just remember that every 'yeah, it has
>> always worked like that' or 'yeah, I know, just accept it' a puppy
>> riding on the back of a unicorn led by an angel dies.
>>
>> Optimise for the current users or optimise for the new user? Almost
>> always optimising for the new user is the right decision.
>
>
> Rich has done talks about his perspective on this.
>
> https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/DesignCompositionPerformance.md
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to