This is Clojure- we can have both, at the same time! clojure.core.typed --- Joseph Smith j...@uwcreations.com @solussd
> On Oct 8, 2013, at 5:36 PM, Kendall Shaw <ks...@kendallshaw.com> wrote: > > Some things that I see most of the time when I read debates about dynamic vs > static are: > > 1. Statically defined types don't solve everything, so they are not > useful. > > Some help is better than no help even if the help doesn't solve all of your > problems. > > Yes, you should wash your hands before dinner, even though we are all going > to die in the end anyway. > > 2. I like static typing as long as it is optional > > In the case where the point of using statically defined types is to have a > compiler catch problems instead of you needing to predict their occurrence > then static typing would have to be non-optional. > > 3. You don't need the compiler to warn you about types, because you can write > tests. > > A difficult problem is one that occurs on a rare occasion in some place that > you would not have thought to check. So, you can't expect to be able to catch > them with tests. If the problem is one that would have been flagged as a > compile-time error, then in that case it would have been useful to have been > using static typing. > > I am still unsure. It seems likely that the usefulness of statically defined > types would depend upon the application. When using statically defined types > makes development slower to an extent that outways the benefit, then it is > bad. If faster initial development as a result of dynamic typing ultimately > ends up taking more time because of problems that would have been caught by a > compiler, then it is bad. If statically defined typing makes you not discover > things you would have because of the overhead of dealing with the static > typing, then that is bad. > > Kendall > > >> On 10/05/2013 08:35 PM, 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 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. > > > -- > ThisIsHardToRead, asIsThis. This_is_easier, unless_it_is_underlined. > This.is.easy. This-is-easy-too. Almost as easy to read as this. > -- > -- > 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. -- -- 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.