I support the sentiment expressed in your email. +1

Type systems are nice, just don't force them upon anyone. Keep the C++ at bay.

--
Please do not email me anything that you are not comfortable also sharing with 
the NSA.

On Oct 6, 2013, at 7:16 AM, Chris Zheng <z...@caudate.me> wrote:

> Thanks Mike for your reminder to be pragmatic. It is definitely the way to 
> go. Clojure's an incredible language for this.
> 
> This is going to be a longish post as I should better explain my position. It 
> is just a brief sketch of the problem but I think that we should be thinking 
> about it more as a fun exercise rather than a way to troll the 
> haskell/scala/ml mailing lists.
> 
> I'm not the type of person to get overly academic but I still want to have 
> `faith` in the tools that I'm using. In Indian traditions of philosophy, the 
> term `shraddah` is translated as `faith` but it literally means `that which 
> binds you` or `that which is unwavering`. Logical foundations of practices 
> and beliefs are debated by practitioners and scholars alike. To debate and 
> win against those in opposition, one has to have a good reason to believe in 
> their practice. In other words, academics is a VERY powerful tool for faith.
> 
> Because of the vast amounts of academic work around types, we now have a 
> `type` priesthood and an increasingly mass of `type converts` who are very 
> inflammatory against anything non-typed languages. The cult of haskell will 
> always look down on the cult of lisp/javascript/python/ruby, laugh and say 
> `you guys suck because you don`t have A, B, C which are features of type 
> inference`.
> 
> Now with the `cult of clojure`, we can say YES WE DO (Typed Clojure)… but not 
> only that, we should also be able to say: 
> 
> "Because we have optional typing, here are a bunch of problems that we can 
> solve very easy because X, Y and Z are not restricted by type inference."
> 
> Now The the debate actually moves forward, so that we ask ourselves whether 
> type-inference is suitable for solving a particular class of problems rather 
> than putting ourselves into opposite camps.
> 
> I have to come back to Godel's work as it is (quoting the lecturer) `The most 
> profound result to have come out of logic for the last 2000 years, ever since 
> the time of Aristotle`. What Godel did, was to write a hack that crashed a 
> what was thought to be an uncrashable system.
> 
> Principia Mathematica (PM) was a huge book which described how one can of 
> about using a subset of mathematics to reason without running into Russell`s 
> Paradox (which is the mathematical equivalent of saying `this statement is 
> false`). It was found that ANY system that referred back to oneself had the 
> potential to have this problem and so all of this circular referencing had to 
> be eliminated. The reason why the book was so thick was because most of the 
> book was devoted to teaching people how to write mathematics without using 
> circular reference. It was dense.
> 
> Godel constructed an equivalent system of calculation to that of PM and 
> showed that anytime the `+` operator was in the system, then it was possible 
> to get the system to talk about itself. Therefore, the phrase `This statement 
> is unprovable using our system` will result in a paradox in a system that was 
> thought the be free of them. Thus, Godel used the logic presented in the 
> framework itself to cause its own downfall.
> 
> This result put mathematics in its place, not as the single source of truth 
> as Russell and Whitehead, the authors of PM had wanted, but as an incredibly 
> tool despite its inconsistencies. It also eliminated the need for future 
> mathematicians to waste their time in order to build a complete system of 
> mathematics - Godel had proved beyond a shadow of a doubt that this was an 
> impossible task.
> 
> I see history repeating itself with the offspring of PM (type theory). Like 
> PM, It is brilliant and to be honest, it is too abstract for me. However, it 
> is my understanding that a lot of the leading research is repeating that of 
> PM but with an emphasis on computation. To avoid Russell`s paradox, types are 
> always hierarchical, never circular. To express circular referencing of types 
> in a none circular way requires a lot of time of a lot of smart people. 
> 
> There is therefore a lot of pomp and ceremony in order to create a `correct` 
> and `complete` system of programming I don't think any of the researchers 
> claim this but it is sure marketed that way. 
> 
> I believe that we have to put type theory in its proper place as a tool for 
> programmers and not as the saviour for programming (that mantle belongs to 
> lisp of course =p ) For example:
>  - one area that is difficult using types is to define multiple hierarchies 
> over objects - like properies of can-fly, can-swim, can-run over birds, 
> mammals and reptiles.
>  - Another area is with partial data. That is, when does a rose not become a 
> rose? when it looses its colour? fragrance? shape?. For example… can {:colour 
> :red}  be considered a rose, even though a rose may be red?
> 
> 
> 
> 
> 
> 
> On 06/10/2013, at 6:02 PM, Mikera <mike.r.anderson...@gmail.com> wrote:
> 
>> I suspect you are going to have zero success "proving" the superiority of 
>> dynamic languages (in an academic proof sense). For a start, people are even 
>> going to disagree about the precise definition of "better". What matters 
>> more: Runtime performance? Flexibility with respect to changing 
>> requirements? Ease of learning? Minimisation of typing? Ease of language 
>> implementation? Etc..... Any such "proof" based on your own definition of 
>> "better" isn't likely to convince others who hold different views.
>> 
>> My suggestion: just don't worry about it, be pragmatic and use whatever you 
>> find helps you to build useful software. Ultimately, that is the main 
>> measure of success for a practical general purpose programming language. 
>> 
>> In particular, I suggest ignoring anyone who launches a "barrage of abuse". 
>> Language trolls probably aren't going to give you a sensible conversation in 
>> any case.
>> 
>> On Sunday, 6 October 2013 11:35:20 UTC+8, zcaudate wrote:
>> I'm a little bit miffed over this current craze of `types` and `correctness` 
>> of programs. It smells to me of the whole `object` craze of the last two 
>> decades. I agree that types (like objects) have their uses, especially in 
>> very well defined problems, but they have got me in trouble over and over 
>> again when I am working in an area where the goal is unclear and 
>> requirements are constantly changing. 
>> 
>> BTW... This is no means a criticism of all the type system work that is 
>> going on in the clojure community. I am a huge fan of Ambrose's Typed 
>> Clojure project because it gives me the option of using types... not shoving 
>> it down my throat. I like the freedom to choose.
>> 
>> My experience of programming in clojure has freed me from thinking about 
>> types and hierarchies and this article rings so true: 
>> http://steve.yegge.googlepages.com/is-weak-typing-strong-enough.
>> 
>> However, everywhere I look, there are smug type-weenies telling me that my 
>> dynamically typed program is bad because it cannot be `proven correct` and 
>> not `checked by the compiler`. This question on SO really makes me angry.... 
>> http://stackoverflow.com/questions/42934/what-do-people-find-so-appealing-about-dynamic-languages....
>>  because no one is defending dynamic languages on there. The reason is very 
>> simple..... because we don`t have a theory to back us up!
>> 
>> I do want to put up an counter argument against this barrage of abuse 
>> against dynamic languages. And I want to put some academic weight behind 
>> this. The only counter I could come up with was to use Godel's 
>> incompleteness theorem. For those that don't know... here is an introduction 
>> to the man and his theory. http://www.youtube.com/watch?v=i2KP1vWkQ6Y. 
>> Godel's theorem, invalidated Principia Mathematica as a complete system of 
>> description. Principia Mathematica btw....  effectively led to Type Theory.
>> 
>> According to http://en.wikipedia.org/wiki/Type_theory. "The types of type 
>> theory were invented by Bertrand Russell in response to his discovery that 
>> Gottlob Frege's version of naive set theory was afflicted with Russell's 
>> paradox. This theory of types features prominently in Whitehead and 
>> Russell's Principia Mathematica. It avoids Russell's paradox by first 
>> creating a hierarchy of types, then assigning each mathematical (and 
>> possibly other) entity to a type. Objects of a given type are built 
>> exclusively from objects of preceding types (those lower in the hierarchy), 
>> thus preventing loops."
>> 
>> I'm hoping to collect a few more `proofs` from the clojure community... for 
>> example... if there is a paper on "why are type systems so bad at 
>> classifying animals"... then please forward it on. 
>> 
>> -- 
>> -- 
>> 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 a topic in the 
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/clojure/0I7u5yn01qU/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 
> -- 
> -- 
> 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/groups/opt_out.

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to