How to go about 'proving' why dynamically typed languages are better

2013-10-06 Thread Brad Bowman

 zcaudate z...@caudate.me Oct 05 08:35PM -0700

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.


Joe Armstrong and Simon Peyton Jones discuss Erlang and Haskell
http://www.infoq.com/interviews/armstrong-peyton-jones-erlang-haskell

This interview covers some of the strong-types vs flexible development
(apparent) dichotomy, but in a playful, open and non-dogmatic way. (catmatic?)

Simon Peyton Jones is one of the Haskell leaders, yet admits to
being envious of type-free generics.  Joe Armstrong of Erlang fame
also sees the benefit to thinking in and annotating types.
These two are both leaders of typed or dynamic cults but have
a pleasant friendly and frank conversation about the issues.
(Erlang's Dialyzer sounds somewhat like core.typed)

A sample:

SPJ: So, I've told you what I most envy about Erlang. What do you most envy 
about Haskell?


JA: All the types. I mean they're very nice. I wish we had them. On the other 
hand, wouldn't you love to have all these generic turn-to-binary, these sort 
of things? How can you live without them?


SPJ: I have a little bit of residual envy about generics.

JA: You just take anything and compare it to the serializer and then send it?

SPJ: That's sinfully easy, and shouldn't be allowed.


So if these two can agree that there's strengths and weaknesses in both
approaches, that settles it for me.  It's a matter of knowing your
trade-offs and choosing your tools appropriately.

My suspicion is that type affinity is related to some trait of personality,
and so trying to prove superiority is a likely to work as proving you
are right in any other clash of personalities.

Brad

--
--
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.


Re: What people want from Clojure error messages

2013-01-24 Thread brad bowman
On Friday, January 25, 2013 6:27:48 AM UTC+11, Michael Klishin wrote:
[..] 

 Because poor error messages primarily trip newcomers to the language,
 I am a bit surprised to see this issue discussed on the closed
 mailing list said beginners cannot join [quickly or at all].

 So, if you have something specific to say on the topic, say it here.


As a Clojure beginner with no Java experience, I find the error messages to 
often
be very Java-centric, usually needing my best-guess interpretation into the
Clojure in front of me (nil and NullPointer being the only specific I can 
recall right now).
I'll collect any more I come across, especially since I'm sure I can 
generate weirder,
why would you even type that? code than people who have already learned 
Clojure.
It looks like the Java-ness was touched on in the clojure-dev discussion 
also.

When Perl, after 15 or so years, finally included the variable name in 
uninitialized
warnings it was truly a blessed day.  Perl also has a use diagnositics 
pragma that
nicely decrypts and decorates error messages:
  perl -Mdiagnostics -Mstrict -E 'my $x; print $x'
This opt-in feature is newbie-friendly without burdening more experienced 
users.

Brad

-- 
-- 
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




Re: A tutorial for how to setup your clojure development environment for: Emacs, Leiningen and Linux.

2012-06-22 Thread brad bowman
On Thursday, June 21, 2012 12:58:19 PM UTC+10, John Gabriele wrote:

 On Jun 18, 10:23 pm, Chris Zheng zcaud...@gmail.com wrote: 
  {snip} 
  So basically, if a 'lead clojure evangelist' can either 'officially' or 
  'unofficially' recommend ONE emacs setup, along with a bunch of 
  videos/tutorials that demonstrate how to code and how fast it is to 
 design 
  and code using the repl. Then that be enough to get people at least 
  interested. 

 People are very opinionated about their editor/IDE. I think the Getting 
 +Started docs are good --- they separate: 

   * if you want just Emacs plus the repl, here you go (clojure-mode 
 readme) 
   * if you want Emacs + inferior-lisp, do this (this doc needs work) 
   * if you want Emacs + swank/slime, do this (swank-clojure readme) 

 and of course also info on Eclipse, Clooj, and other editors/ide's as 
 well. 


I'm right at the start of this process, completely unfamiliar with Clojure,
Leiningen, Emacs, Java and all of the projects with cute names.
I don't even know what I want.

I've cut and pasted various git-clone and lein commands, but have no idea
about the bigger picture.  I'm happy to dawdle along on my own, but if my
current (and hopefully temporary) ignorance can provide feedback on a
start-up guide then let me know.

At present I'm often wondering what is this thing? why do I want it?.
Slime for example.  I don't especially want answers here, but something like
a glossary for the clojure ecosystem would be handy (not that I've looked 
hard).

Another document that might useful is a platform Rosetta stone
matching clojure tools and libraries to those that fill a similar role in 
other
languages (Java and Ruby for starters).  This is more of a nice to have.

Thanks,

Brad

-- 
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