Compiler as a Service: Why TypeScript 2.5 Biggest Feature is a Refactoring

Posted on Leave a commentPosted in Concepts of programming languages, TypeScript

TypeScript 2.5 is there! That’s the headline of the tweet sending me to the TypeScript 2.5 announcment. To my surprise, the article described a new refactoring of Visual Studio Code. Did they choose the wrong title? Is this article really about TypeScript, or is it about an IDE? As it turns out, refactoring is baked […]

HTML5: Optional HTML Tags

Posted on Leave a commentPosted in Concepts of programming languages, web design

The other day Marco Rinck tweeted something that’s very confusing, almost disturbing. Google’s HTML style guide suggests to omit optional HTML tags. Taking in mind that the page rank of your website is influenced (among other things) by whether your page has a clear layout and a good coding quality, following these guidelines is almost […]

NewsFlash: Lukas Eder’s JAX Talk And Turing Complete SQL

Posted on Leave a commentPosted in Concepts of programming languages

Did you know SQL is Turing complete? Obviously, it’s not. It’s a purely declarative language. It’s designed with a single purpose in mind: dealing with relational databases. Surprisingly, modern SQL is Turing complete, indeed. This stunning claim has been proven by David Fetter. He’s also written an example that really blew my hat off. It’s […]

TypeScript and ES2016 Decorators vs. Java Annotations

Posted on 1 CommentPosted in Angular2, Concepts of programming languages, ECMAScript, Java 8, TypeScript

Consider this TypeScript snippet. It’s a very simple Angular2 component. It looks almost like a Java class, doesn’t it? In particular, the @Component looks like a Java annotation. In fact, it plays the some role as a Java annotation. It tells the Angular2 framework that this class is not an ordinary POJO, but something special. […]

Adding Type Inference to Java: Good or Evil?

Posted on 3 CommentsPosted in Concepts of programming languages, developer productivity

My previous post raved about the simplicity type inference is going to bring to Java. I love the idea. Java is such a verbose, ceremonious language. Little wonder so many developers prefer dynamically typed languages, which seem to be so much simpler to use until you write a huge enterprise application. Java’s proposed type inference […]

Newflash: Are Java 8 Lambdas Closures?

Posted on 1 CommentPosted in Concepts of programming languages

Bruce Eckel has published some interesting thoughts about closures and lambda expressions in Java 8. He claims that Java’s lambdas are essentially closures because the original definition of closures stems from functional programming languages, and pure functional languages don’t know variables. Hence, Java’s restriction that lambdas can only access effectively final variables of the surrounding […]

Getting Started with TypeScript

Posted on 2 CommentsPosted in Concepts of programming languages, Javascript, TypeScript

The other day I showed a TypeScript program to our architect. He doesn’t like JavaScript, but when he saw my TypeScript program, he was pleasantly surprised. TypeScript looks pretty familiar to Java programmers, making it a good language to get started with client-side programming. Plus, the core feature of TypeScript is types, making development much […]

Continuous Query Language – Processing Data in Real Time

Posted on Leave a commentPosted in Concepts of programming languages, database

The other day I learned about Odysseus, a framework to process data in real time. Truth to tell, I know little about the topic, but I consider it interesting enought to share it with you. Most of you are familiar with relational databases, SQL, O-R-mappers, transactions, the ACID principle and things like this. Working with […]

Non-Object-Oriented Java

Posted on 3 CommentsPosted in Concepts of programming languages

Hardly ever have I seen code reuse in business-related code. That’s a puzzling observation, given that Java programmers are expected to write object-oriented programs for many reasons, code reuse being an important reason. My puzzlement even grew when I started to analyze my former company’s SAP programs. They aren’t object oriented. Quite the contrary, the […]

Type Erasure Revisited

Posted on 3 CommentsPosted in Concepts of programming languages, Java 8

You can’t beat type erasure, they say. Information about generic Java data types is lost during compilation, and there’s no way to get it back. While that’s absolutely true, Mahmoud Ben Hassine and I found a tiny loophole which allowed us to improve Mahmoud’s jPopulator framework tremendously. Under certain circumstances, it’s possible to find about […]