Articles in category: English
Premise
Java is an old programming language. Version 1.0 was released in 1996 by Sun Microsystems and even though it has evolved and grown a lot over the past twenty years it is still carrying on some bad design choices such as null (ask Tony Hoare), primitive types or lack of a proper function type. With the last version of the language (Java 8) Java tried to address some of these problems introducing concepts such as Optional
or lambda expression. Although these additions clearly represent a step forward for the language I still have the feeling that they are just patches applied to mitigate problems and not to solve them at their very source. For example Optional
could be used to reduce NPE (Null Pointer Exception) but it is clearly not designed for this purpose and lambda expressions, implemented in Java 8 with SAM types, still force you to write an interface only to define a function.
If we think about computing in the Cloud Era, our mind is immediately drawn towards virtual machines and containers. Therefore, for example, when building a production environment with both approaches we think about the need of patching the operating system and/or upgrading the container. At the end of 2014 Amazon Web Services (AWS) announced a new service called “Lambda”, that allows us to focus on business logic and not on infrastructure.
The enemies of programming
As many of you will agree with me, sleep deprivation is the enemy of programming.
Maybe we fear only one thing more than that: being interrupted.
While writing code we have to think really hard, we use complex abstractions, we go through long business workflows and so on… fatigue and interruptions are the main enemies of those in this line of work.
Almost like a nice tradition, we went to the PHP Day conference this year as well; this time too it was held in Verona, on May 13th and 14th.
We participated and attended numerous talks and, as last year, we wanted to write a light summary; this won’t be a full “review”, but our intent instead is to highlight what captured our interest most, or what we found more valuable for our everyday work.
HTTP is the protocol that powers the Web. It was originally designed in 1996 for transferring and manipulating simple text-based documents (mainly hypertext resources).
Nowadays it’s been adopted for many different purposes. It’s used for: multimedia content transfer, rich real-time session-based web applications, API messages dispatch, Internet of Things and much more.
For this reason, the HTTP specifications are continuously updated, by adding new features and improving performance.
In May 2015, the latest version 2.0 was standardized with RFC 7540.
This introduced major differences on how the low-level protocol works.
From the application perspective, very little has changed: requests, responses, resources, headers and HTTP methods are still there.
New features have been added such as the possibility to push resources to the client.