RSS

Tag Archives: Java 8

Devoxx Antwerp 2013 reminiscence

Episode 20

Let’s get back in time. Devoxx 2013 in Antwerp was actually my first big IT conference. Since there was no direct flights, I drove there with two friends a bit over 1k km, which wasn’t so bad considering it was mostly German Autobahn and we had a nice car which itself had only 1k km of mileage (mileage given in km, doesn’t it sound funny?) when we started. It was nice little adventure.

How is Devoxx different than Jax? Well, it’s muuuch bigger. There was like 7 to 10 times more people. The conference took place in a second largest cinema complex in Europe, meaning that talks were delivered on big screens with excellent audio. There were 10 halls, two with capacity over 800 people. Exhibiting companies were like: Google, Oracle, Red Hat, Microsoft and that kind of league. There were chief architects of stuff. They were gadgets like chess robots, machinery out of Lego Technics bricks and all the stuff geeks like.

chess

There was even a game where you could see entire audience on the big screen, and there were virtual fruits (seen on the screen superimposed over the camera image) thrown at them. If the fruit happens to hit your location, you had to slash it with arm movement to get points. People were divided in two teams, two halves of the audience, and more hits equalled winning entire game.

Jax had better food on the other hand ;)

Similarly to posts on Jax, I will quickly present talks I’ve watched. Main part of Devoxx was one day longer than Jax, and I since it was almost a year, I don’t remember everything exactly, so there will be a selection.

lambda

Lambda: A peek Under the Hood by Brian Goetz.

I made a reference to this talk already in The Peak of the Mountain. Very technical details of JVM internals, not for everyone and perhaps not so useful in everyday development, but very interesting for me. And the speaker is the chief Java Language architect.

The Crazyflie Nano Quadcopter by Crazyflie team.

One of the cool ones. Story of developing tiny quadcopter both from hardware and software point of view with all the ups and downs.

The Modular Java Platform and Project Jigsaw by Mark Reinhold.

Java is big and tangled, but there are efforts to untangle the platform and make it more efficient especially on tiny devices with very limited resources . Nice to see a talk by Java platform chief architect regardless of the topic.

Shaping the future of web development by Lars Bak.

Keynote by Google and official release of Dart 1.0 with ambitious dream, “ultimately to replace JavaScript as the lingua franca of web development on the open web platform”. Thumbs up. Most important thing for me is static type system. Writing anything bigger than 500 Lines of code in JS was always pain in the ass. It’s been 19 wonderful years, thank you very much, time for something better.

Java 8 Language Capabilities – What’s in it for you? by Venkat Subramaniam.

At the time that was the first presentation about lambdas for me. Very dynamic yet easy to follow and technically very well done.

Introduction to Google Glass by Alain Regnier.

Well, what can you say besides that Google Glass is an awesome technology. Still in prototype phase, and with a lot of improvements along the way. Alain presents how to connect to the device from your PC, how to control it with voice or head motion and what you can do with it. Possibilities seem to be endless.

glass

Taming Drones: How Java Controls the Uprising Drone Force by Timon Veenstra and Eva Veenstra-Kazakov

Another cool talk about quadcopters. You can buy one for $300, attach Raspberry Pi for $30, some sensors, do some programming and voilà, you have an autonomous drone which can fly over the field, do some photos and recharge itself when needed. At the end, you can use data to tell the farmer where he should apply more irrigation to get the most out of his plants. Countless other things you can do for a few bucks.

parrot

Besides I remember attending Cryptographic operations in the browser by Nick Van den Bleeken, EJB 3.2 and Beyond by David Blevins, Java EE 7: What’s new in the Java EE Platform by Daniel Delabassee, Spring Framework 4.0 – The Next Generation by Sam Branen, Batch Applications or the Java Platform (JSR 352) by Scott Kurz. And there were few others I can’t remember.

lego

Overall, in my opinion Devoxx is much better than Jax. Longer, much more speakers to choose from, much more “cool” stuff outside of Big Data, Enterprise and Java for a very similar ticket price.

beer

And somehow I prefer both Belgian beer and weather over English ;) See you next time.

How-To-Train-Your-Dragon-Toothless-47-Wallpaper-Background-Hd

 
Leave a comment

Posted by on October 26, 2014 in News, Technology

 

Tags: , , , , ,

The Peak of the Mountain

Entry 6, Day 10

The technology stack… We’ve talked a bit about tiered application composition, now let’s take a broader look. Software is basically composed of layers. That simplifies things. You have an operating system using hardware directly. Then, there is the Java runtime providing abstraction between Java bytecode and actual program execution. Then, if we are in the JEE realm, we have a server.

The kind of server depends on you needs. If you like EJBs, you need an application server (Weblogic, Glassfish or whatever). If you prefersomething lighter, you can go with web container (like Tomcat). Finally to help you serve static content like Java Script (which is static in terms of being executed on client machine, not ours), there are http servers like Apache. You can combine all of them – use application for EJB layer, web container for web layer and http for static. There might be, of course, many more servers in the application ecosystem, namely proxies, firewalls, load balancers (or it can be dedicated hardware, and usually is), but this is more of the infrastructure domain, not application.

Then there is some kind of framework providing abstraction over JEE api or just complementing it. Think Spring.

And, at the peek of the mountain, there is Java language. The language shapes architecture of your system, ties things together and allows you to play with stuff. I’ll go with Java 8 because well… cutting edge, you recall, do you?

Actually Java 8 is quite cool. Everyone says that’s because finally we have lambda expressions, but there is more. There is, for example, internal iteration.

Internal iteration, instead of imperatively iterate over collection, allows you to declare iteration and let the runtime do the rest. Why it is important, you may ask? Because if you iterate imperatively you do that either in sequential way, or you have to play with threads, think about number of available cores and do other tedious and error prone stuff. If you let the runtime iterate, on the other hand, it may perform e.g. a new forEach operation concurrently, using all available cores, and this is transparent for you. It makes things simple and fast.  Also, a new Stram api allow you to perform map, filter, reduce, and other operations with performance improved by doing what really must be done lazily. I haven’t yet explored all new features of Java 8, but things look promising.

<scary JVM internal stuff>

By the way, lambdas aren’t just syntactic sugar for inner classes as many people think. In fact, lambdas implementation in virtual machine uses additional layer of abstraction. Lambda is actually a recipe, not an imperative piece of bytecode. It’s true bytecode is generated on runtime, not compile time, using fifth invocation mode, invokedynamic, introduced in Java SE7 to support dynamic JVM languages (Groovy, Jython etc.). Lambda call site is created using so called “language logic” or “bootstrap method” that was to be provided by specific dynamic JVM language to help dispatch calls. In Java language lambdas execution, such logic is called Lambda Metafactory.

As a result of several nifty VM tricks, lambdas are much faster than inner classes, especially on multicore systems, and have a potential to be even faster in further versions of Java. If you are into this stuff, check out a cool presentation by Brian Goetz, the Java language architect.

</scary JVM internal stuff>

So, I’m going to use Java 8. And few other runtime technologies, which I will discuss in the next post.

top of the mountain

 
1 Comment

Posted by on August 11, 2014 in BookSentry, Technology

 

Tags: