Dev Blog

A blog about stuff I find interesting as a developer


Why we are surrounded by objects (for now)...

Everything is an object

Why we are surrounded by objects (for now)...

In this first week of self study for the Java Certification the material has focussed on some basic tools and practices to map the world our us in the Unified Modelling Language. This is a very perspective to think about as you start getting really philosophical really quick. In Object Oriented Programming every Object is instantiated or constructed from a Class. This Class is like the essential idea of an Object. Sounds pretty vague at first but anyone who has had a 101 in Philosophy in high school will quickly recognise Plato's cave. Take for instance the chair you are sitting on right now. You know it's a chair because it has four legs and a flat bit you can sit on, maybe it even has upholstery but it doesn't have to. It Could also be a chair if it had one leg or 10, as long as you could sit on it it would be a chair. This idea of kind of pealing away the Attributes from an Object until you get to a Class is what I've been getting to grips with this week. An important key for this process (and your sanity) is to keep a keen eye on the system you are trying to model so you don't start tying to exhaustively trying to Model every single Attribute of the world around us in a system. An interesting thing I have also come across lately online is a sense of cynicism on the future of Object Oriented Programming and how it's going to be replaced by Functional Programming. Having just started the study these aren't exactly the headlines that cause you to jump up and down clapping, but after having read in to it a bit I got quite excited. Functional programming seems to complement Object Oriented in that it can offer better concurrency and multi threading when dealing with heavy data processing. This has lead to a myriad of languages springing up to offer a sound basis for these concepts. Some like Scala build on Java other like Haskell take a fully functional approach. Obviously nothing is going to replace anything, there are just more and more techniques and tools being developed to solve different challenges. As a student I'm obviously eager to learn and in the future I will surely turn my attention to FP but for now it's fine to focus on the paradigm that has lead the last 30 years of computer programming and rests at the core of pretty much every electronic device in the world today. One thing is for sure; I've still got a little ways to go until I master OOP to such a degree that I need the benefits of FP for multi-threading my heavy data processing 🤓

2018-10-27 07:42:37


Java Dev: Day One

An exciting challenge and a great place to start a blog

So last Thursday the time had finally come to start a new challenge and take the train to Utrecht for the introduction session of the Java Certified Developer course of the Open University. After months of weighing the pro's and con's of committing to a study that would require 1,5 years, significant study hours and a tidy sum of money, the moment was finally there to see if it was all going to be worthwhile. I'm glad to say it definitely is. There is of course quite little to say about a whole course just based on the first session, but as the instructor sketched his fields of interest (encryption, privacy and eHealth amongst others) and laid out the structure, I knew this was going to be a really cool challenge. After the first session I decided to start a blog on my experiences to keep track of all the things I learn from UML modelling to advanced object oriented programming - through data structures and algorithms - to the app lab with colleagues who specialise in everything from network architecture on trains to banking apps. So in short this blog is the first instalment of a series in which I will try to some up and condense the interesting stuff I learn along the way to becoming a certified Java developer. In doing so I will try to give some insights into the why's and how's of Java and how the new knowledge fits in with the skills I have already built up while focussing mainly on the front-end and JavaScript. For one (and if you got this far I'm guessing you already knew this) but Java and JavaScript are not the same thing. That doesn't mean they don't share similarities, ECMAScript 2015 introduced a form of Class into JavaScript, but in essence the languages a constructed very differently. One thing is for sure: Java is way more verbose as everything is statically typed. This make the code seem more daunting to a novice developer (me). I'm still getting used to the thicker syntax but I do see the advantages and even necessity for enterprise stacks. In dynamically typed languages like JavaScript and Python you let the interpreter figure out what kind of variable you a declaring. I can imagine this becoming increasingly confusing when a return function gives back a 0 or undefined the JavaScript interpreter inferring this as a False. Anyway, for now we are still on getting to grips with the concepts of class, object, encapsulation and inheritance so no need to worry about all that just yet. Thanks for reading this - I'm back to the books 🤓

2018-10-21 19:20:34

An exciting challenge and a great place to start a blog