Illegal Argument


Join Mark, Greg, and Peter for some more absurd type level rants, whilst we weren’t exactly planning on diving once again into a big argument around types and functional programming, somehow we fell afoul of one almost immediately even before we got around to introducing the episode.

The argument starts with an argument over whether one can do “functional programming” in Java, and the difference between “functional programming” and “a functional programming language”. In this argument Greg claims that memory allocated for a class instance constitutes the state of a class — even if the class structure holds no state, and that ‘functions’ don’t allocate memory when defined.

The main discussion for the evening relates to an Ars Technica article about how much information you should pass in a function: a rich object structure or individual arguments.

During the discussion, Mark suggested that simply using String as the type of the argument is probably a bad design as you may want to restrict the context of the arguments, such as using a specific Password type, this ensued with an argument over deep type hierarchies (do I smell a theme here?) to which Mark countered this by (badly) describing a way of using parametric typing (and phantom typing) to improve the contract of passwords in the API.

Unfortunately the discussion got sidetracked with factories and PK7 implementations being tightly woven into the which probably detracted from any useful discussion.

Escaping away from type theory, Peter brings us back to the real worldwith a discussion on Web Fragments and JBoss Hell…

Misc:

Direct download: Illegal_Argument_-_Episode_118.mp3
Category:podcasts -- posted at: 11:26 AM

Direct download: Illegal_Argument_Episode_117.mp3
Category:podcasts -- posted at: 11:39 AM

  • Garbage Collection
  • Language/Compiler design
  • Function Types
    • A discussion on whether a functions signature is a type, or not.

During this discussion we talked about the implicit currying of haskell functions and how this could lead to run-time errors rather than compile errors, however whilst I (Mark) knew what I was talking about, I missed a fundamental part of the equation - function types include the return type, so a partially applied function that doesn’t fit a high-order function is a compile time error.

So given two functions:

someHof :: (String -> String) -> String
take3StringsReturningString :: String -> String -> String -> String

The first function someHof takes a function String -> String and returns a String, if we partially apply take3StringsReturningString "test" the resulting function is String -> String -> String which doesn’t match the required syntax of someHof so wouldn’t even compile.

Direct download: Illegal_Argument_Episode_116.mp3
Category:podcasts -- posted at: 7:20 AM

Illegal Argument - Episode 115

Direct download: Illegal_Argument_Episode_115.mp3
Category:podcasts -- posted at: 8:25 AM

Direct download: Illegal_Argument_-_Episode_114.mp3
Category:podcasts -- posted at: 2:37 AM

A discussion of dynamic lanugages with guest Manix Cook.

Direct download: Illegal_Argument_-_Episode_113.mp3
Category:general -- posted at: 12:03 PM

Direct download: 112_Illegal_Argument_-_Episode_112.mp3
Category:podcasts -- posted at: 9:02 AM

Join Mark and Greg for a discussion on code reviews, gerrit, and the recent language releases over the last few months.

 

Direct download: 111_Illegal_Argument_-_Episode_111.mp3
Category:podcasts -- posted at: 6:11 AM

Join Mark, Greg, and Peter for the first recording of the year where we discuss some of the recent Scala rants by Paul Phillips, along with build things...

Direct download: 110_Illegal_Argument_-_Episode_110.mp3
Category:podcasts -- posted at: 9:16 AM

A semi "solo" cast where both Greg and Mark actually agree with other other, and stretch out a discussion way beyond its limit...  a fun chat tho...

Direct download: 109_Illegal_Argument_-_Episode_109.mp3
Category:podcasts -- posted at: 10:58 AM