Content in the Coding Category
How you actually build your software will affect your delivery effectiveness. Ensuring that your software is built with Continuous Delivery in mind will smooth downstream processes like Automated Acceptance Tests, Adhoc Environment creation, and Production releases (because Production is just another environment).
Gang of Four (GOF) design patterns were quite centered on OOP languages. Now that we have dynamic and functional languages on the JVM, there are quite a few other patterns that come in handy with these capabilities. This presentation explores patterns that enable us to make better use of closures and the functional style of programming.
The Java platform has supported concurrent programming since its early days. However, the standard means of multithreading and synchronization have been difficult to master. This talk explores how with the help of GPars, Groovy’s library for concurrent programming, concepts like fork/join, map/reduce, actors, and dataflow can make our concurrent tasks simpler and less error-prone.
iOS has fundamentally changed the way we use mobile devices and has spurred a revolution, and the iPhone was the first successful phone in years to ship without Java support. Thanks to new open source projects, it is now possible to build native iOS applications by using the Java programming language and visual tools and to sell the resulting applications via the iTunes Store. Learn more in this session.
Elixir is a programming language for the Erlang VM. Elixir provides a first class macro mechanism, supports polymorphism via protocols (similar to Clojure’s) and many other features while keeping the functional aspects of Erlang used to build distributed, fault-tolerant applications.
Nemerle is one of the very few languages that can be extended by developers. Nemerle macros allow extending language syntax and automate routine operations that developers face every day and cannot solve by using traditional techniques to achieve reusability. Also, we will discuss DSL oriented and language oriented programming.
Learn new developments for Scala: better tools, full reflection, runtime compilation, and dynamic types. The presentation covers the user’s point of view as well as the system architecture, which shows how Scala’s component model achieves 100% reuse of core code between compiler and reflection library without compromising safety.
There are literally hundreds of programming languages but Java, C & C++ cover over 90% of all the code written on the servers in the investment banking world. It’s true to say that there’s virtually nothing you can’t do in these languages but it doesn’t stop enthusiastic “alternative language groupies” telling us there’s a better way and that we should all change what we’re doing: Ruby, Clojure, Scala, Haskell, Erlang to name just a few.
In object-oriented programming, there is a well-known anti-pattern called ‘Fear of Adding Classes’. It describes the fear of solving a problem by adding another class because of the (often wrongfully) perceived added complexity. With systems moving towards a distributed nature through the usage of external services, a similar pattern can be seen: the fear of adding dedicated components, mostly independent processes to the system, because of the fear of added management overhead through doing so.