In little less than a week, a new edition of Coursera’s course, Principles of Reactive Programming from Martin Odersky, Erik Meijer and Roland Kuhn, is launching.
This course is a follow-up of Principles of Functional Programming in Scala, which I took in its first edition and which I enjoyed a lot. I’ve regretted missing out first edition of this second course for a long time (more than a year, in fact), so if you want to learn about this magnificent frameworks of the Scala world, don’t miss this chance!
Purpose of this post is to provide a glimpse of the new features included in Java 8 that shift this language towards a more Functional Programming paradigm. But before, let’s define what we understand for Functional Programming (FP). Functional programming key characteristics include:
Higher Order Functions Pure Functions and Immutability Tail Call Recursion Higher Order Functions for a FP language means that functions are considered first class citizens, allowing the programmer to use them as any other value the language defines, for example, a Function value:
As March 11th, Pivotal dropped its financial sponsorship for Groovy, and despite of not really endangering it, as Groovy is an already well established language with a great community backing it, it raised many concerns, as the required boost a platform like this deserves was missing until now. Furthermore, its creator and project leader until lately, Guillaume Laforge, also recently stepped back in order to focus in Restlet.
Also the recent release of Java 8, with the introduction of lambdas into the Java language has increased the interest and traction of Java, making a lot of people question if there were still room for other JVM languages, even more being so closed to Java.
It’s been a little more than a year since Java 8 was released (2014/03/18) and you might think that it’s a little too late for a What’s new in post. In fact latest public update available is 8u40, so let’s review not only what was initially included in Java 8, but what else has changed during this first year, up to release 8u40.
Lots of changes were included in the initial Java 8 release, being probably the most notable of them, in my opinion (feel free to disagree, looking forward to discussions):
Welcome to jvmGeek! This new blog aims to talk and discuss about the JVM ecosystem, with news and articles discussing about Java – the language -, and also about other JVM languages such as Scala, Kotlin or Clojure.
But it won’t deal only about programming languages, but also about tools and libraries. You’ll find news, tutorials, code examples and more general articles, among other.
From time to time I will also try to gather events and news related to one particular matter and post them as a flash post that will help you keep up to date with this effervescent platform.
Every single working day I spend between 2 and 2.5 hours in a train. And I feel pretty lucky about this, mostly because is one single train, no need to pay attention for switch overs or other kind of public transports, and that allows me to invest that time in whatever task I want: podcasts, videos, blogging or even programming. And that’s what I want this post to focus in, because there are plenty of posts that explain how to use a Chromebook for day-to-day tasks (even being offline) but not that many that talk about programming in node.
Watching Movies and TV Shows from online streaming sources is a pain, as you depend on the availability of the your ISP network and current status of the stream provider. Furthermore, you don’t always have an internet connection available when you want to spend some time in front of the TV. So downloading it it’s a much better way to go in order to avoid this issues (giving that you have to anticipate a little bit to get downloads finished).
During last year, I had the chance to work as CTO of a startup, working mainly within MEAN stack. I was happy, the technology I was working with was in a great hype and its community grew bigger and bigger with lots of projects popping up everywhere.
But life is continuously changing, and I started to work in a new company within Java/JEE technologies. I was back to my first days as a professional computer engineer.
Function composition is one the key features (among others) of functional programming. Programming languages that offer higher order functions as a feature can potentially use function composition. But, still, programmers need to be aware of some key concepts to successfully apply this pattern in our code.
Function composition, as defined on Wikipedia, is an act or mechanism to combine simple functions to build more complicated ones. In other words, we can define new functions, equivalent to the result of chaining a set of given functions, so the input of function i is the output (or result) of function i-1.
I have problems remembering people’s names. Really, I’m not good at it. And that’s no exception with computer technology. That’s why I’ve written this post, to try to improve and persist those names in my head. Let’s see who is who in nowadays computer science.
Methodologies <div> <strong>Kent Beck</strong> (<a href="http://en.wikipedia.org/wiki/Kent_Beck">wikipedia</a>, <a href="https://twitter.com/KentBeck">twitter</a>) – XP, Agile, TDD </div> </td> <td width="50%"> <a href="http://martinfowler.com/"><img class="alignleft" src="/assets/2014/05/martin_fowler.png" alt="martin_fowler" width="100" height="85" /></a><strong><a href="http://martinfowler.