September 21, 2014

SOA has Roots in Agile and Functional Programming

SOA it`s about software architecture so its about an overall solutions for a business.  Thats what the 'A' stands for. Behind this we got Service Orientation as the main paradigm of doing some, its a way of thinking and it has principles like OOP, FP and Agile.

SOA got popular around 2k years when business was moving to more complex functionality and more and more data. Them it came several buzzwords and vendor-like things, but soa was never about technology was always about principles and a specific way to think, see and build things, the service orientation. To capture this view a group of awesome people created the soa manifesto.

September 20, 2014

Streams, Map, Reduce and Filter on Java 8

For me this is one the most cool things java 8 got in sense of functional programming.

This allow todo real functional programming with great benefit for legacy code, not only because we got modern constructs but also because you can reduce a lot the lines of code.

The things i dont like in java 8 is that we still need some kinda of structure / definition thats a little bit heavy or not that natural like it is in scala or clojure but thats is something i guess we can live with it.  The other thing is the fact that immutability is not forced as much as we see in other languages the reasons are kinda of obvious it because java needs to respect they backward compatibility rules, whats great because my code can keep ruining into java 8 without any change or a i can embrace this "new" ideas and functional concepts and start taking benefits from it.

Whisky Engineers, please!

Whiskey is great booze. Besides that it has a property called maturity, so basically in this concept as old it get as better ir gets. So you have 8, 12, 18, 21 etc..  This is well recognized and people value that.

Software development is more see as shit cheap Brazilian wine, you dont need better than 2 years old and actually if you let ir go older than that it got rotten and start getting worse instead of better.

In Brazil Y career are very popular and basically like in all parts of the globe everybody wants to be a manager.  Whats the problem with that, well for me none but its create some effects. In this life good things came with time, dedication and learning you dont great an awesome whisky in 2 years you need a least 12.

Tell me how many developers you know that ave +15 years of experience in the field? It`s sad, as you start getting some level of maturity you are totally pushed by the system and need stop coding and spot being technically. Because people tend see code is not a great activity why? it`s not because its code its because is operational and people tend to think need need move tactical and strategical inside a company as a measure of progress, i think this is bullshit.


September 15, 2014

Functions, Method Reference and Predicates on Java 8

Back to some cool stuff around java 8 and functional programming ideas arriving on the JVM with java lets see some other cool stuff around Lambda.

You can define your functions with a java.util.function.Function interface that allow you to store lambdas in "objects" and receive and pass it trough methods, so this allow you do high order functions.

So lets go down to the code and see some samples around this. There are some samples i coded here with streams, i will cover with more details on other posts.

September 14, 2014

Consumers and Suppliers on Java 8

I worked with Scala since 2011. Its awesome, its clear to me java 8 copies several ideias from scala but thats fine, i think java 8 is not scala but is cool and its something we can take benefit as jvm users no matter if is coding on java or scala or groovy or jython or jruby.

Java 8 finally bring some functional programming ideias into the JVM. Java 8 its hybrid part OO part functional. Java does functional programming using the constructs and the metaphor around the JVM so they sicked to the current design flow, what it make sense on the jvm design philosophy. (They copy some ideias from Scala, sure).

Right the idea of this posts is talk a little bit on the @FunctionalInterface annotation and some Consumer and Supplier java.util.function.* functions, thats enable us do functional programming in java. Functional programming is java 8 required structure you cannot just start coding things like you do in clojrue or even scala.

Some stuff on the JDK is already ported to @FunctionalInterface and lambdas but not everything and talking about your legacy code? it works, i love backward compatibility in java its the best feature ever for me and the eco-system off course.