Skip to main content

Scala

I'm a Java guy - I've dabbled around in other languages but generally speaking my default language of choice for a project comes back to Java. It's been that way for a while, and quite honestly it's because out of the languages that I've looked at it seems the best "general" one out there. It's extremely versatile, can do an awful lot in the right hands and despite the various myths, well written Java code is really rather speedy these days. More recently though, there's been a lot of talk about Scala - it's been around for a decade or so but it seems it's only recently it's gained a lot of attention.

Every so often something comes along that looks great from an academic perspective, but for various reasons (usually because the industry has made its mind up already) it's not adopted - left to rot and subsequently forgotten about. Then again, every so often something comes along that looks awful from an academic perspective but somehow (usually due to a large corporation investing stupid amounts of money into it) it gains a foothold and we all have to put up with it because that's just the way things are done.

If Scala does end up squarely falling into one of these categories, it'll be the first. From an academic perspective it really does look very good indeed, with much better language level support for the functional side of things that Java looks to bolt on in the 7th (or 8th!) revision of its language. It's harder to pick up in places, yes, but because of its nature it will be. You have to get into the functional mindset to appreciate or use a functional language, just as you have to get in the OO mindset to appreciate and use an OO language such as Java.

The problem? Well, it's entirely on the practical side. A new language means people learning it from scratch, getting into a new mindset, an inevitable short term decrease in productivity whilst people get accustomed to working with it - none of which are good things for a business. And for the majority of people Java is still doing absolutely fine, especially with it's java.util.concurrent libraries. There's no desperate need to switch.

It's hard to say whether it will take off, but over the next few weeks I hope to look at it on a more practical level, playing around with a few demos and seeing if there's anywhere I can sensibly use it to integrate into existing Java code. We'll see what happens!

Comments

Popular posts from this blog

The comprehensive (and free) DVD / Blu-ray ripping Guide!

Note: If you've read this guide already (or when you've read it) then going through all of it each time you want to rip something can be a bit of a pain, especially when you just need your memory jogging on one particular section. Because of that, I've put together a quick "cheat sheet" here  which acts as a handy reference just to jog your memory on each key step. I've seen a few guides around on ripping DVDs, but fewer for Blu-rays, and many miss what I believe are important steps (such as ensuring the correct foreign language subtitles are preserved!) While ripping your entire DVD collection would have seemed insane due to storage requirements even a few years ago, these days it can make perfect sense. This guide doesn't show you a one click approach that does all the work for you, it's much more of a manual process. But the benefits of putting a bit more effort in really do pay off - you get to use entirely free tools with no demo versions, it...

Dropbox Java API

This code will no longer work! It uses the old v1 API, which has been turned off. See here for working code with the latest v2 API. As well as being useful as general cloud storage, dropbox also has an API that lets you access its contents programmatically. It's a straightforward REST API with a number of language specific libraries to make the going a bit easier. Java is included on the list of SDKs, but at present only Android is included on the list of tutorials. This can be somewhat frustrating because simple examples using Java are lacking. Fortunately, the process was described by Josh here . So I've taken it and implemented it in Java, and it seems to work. It's a very basic example that authenticates with dropbox then uploads a file called "testing.txt" containing "hello world." Of course, more functionality is available than this, but this is the hard part (at least I found working this bit out the hard part.) Once you've got your Dro...

Using VLCJ for video reliably with out of process players

This post is really a follow on to the last, so if you want a bit of background give that a read through. In it I basically talk about the various options I came to when trying to implement video support in Java, and how I felt the best way to go was using out of process players and VLCJ. Before I get to the code, a warning - while this isn't stupidly hard, it's definitely not for beginners. If you're competent with Java in general you shouldn't have any trouble following - but this is not a cut / paste / forget the advanced stuff job! Eventually and depending on interest I may look into packaging it up into an easy to use library and distributing, but that day is not today! Secondly, this code is literally cut straight out of Quelea and at the moment is: Largely uncommented From an unreleased version Not the best quality May contain Quelea specific bits that don't apply Eventually, it'll all be refactored into beautiful OO-like niceness. But in terms of the con...