DEV Community

Martin Häusler profile picture

Martin Häusler

Primarily a Software Engineer who feels at home on the JVM. OOP enthusiast, testing addict and Software Architect.

Location Austria, Europe Joined Joined on  github website

Education

PhD in Computer Science

All 164 comments

The Future of Coding is 'No Code'

Code (as in "formal text") is just a representation, a means ...

Mom, I programmed my first HELLO WORLD🌟

Delphi 6, around 2004.

Understanding Dependency Injection by writing a DI Container - from scratch! (Part 3)

Hi! Sorry for the late response, somehow your "@" mention did...

GitHub Copilot: My experience after one week usage

There are some non-technical issues with copilot as well. For...

Reasons why Django is the best web framework

The features of the frameworks don't matter when the language...

Is your Kotlin compiler slow? Here's a potential fix

Glad to help out! It's ridiculous in many ways. It's so hidde...

8 underrated git commands every programmer should know (not the usual pull, push, add, commit)

git clean -xdf is a great "sh*t hit the fan" command. It eras...

5 super under-rated free tools/resources I use almost every day. (As a Frontend developer)

Regex101 is amazing, my go-to address whenever the regex eval...

Use Google like a pro

That's true. I just didn't realize that when it happened the ...

Use Google like a pro

Keep in mind that the - for exclusion can really bite you whe...

Can Dark Mode Save Battery Life and Human Civilzation?

Well, dark mode and energy savings... I just don't see it to ...

Linux, the right choice?

Maybe I was just unlucky, who knows. It's interesting that th...

Linux, the right choice?

Yep, indeed the terrible experience with my WiFi drivers was ...

Linux, the right choice?

Linux as a system has a very clean concept and is really powe...

Programming is Ruining My Life - What I'm Doing About It

Programming is tough, on many levels. A couple of things I do...

Golang through the eyes of a Java developer - pros and cons

Go is a really weird one. I was excited at first, because I'm...

From Java 8 to Java 15 in Ten Minutes

No problem. I really wish they did it in the way you've descr...

From Java 8 to Java 15 in Ten Minutes

"Instanceof without the cast" unfortunately doesn't work the ...

Is your Kotlin compiler slow? Here's a potential fix

Important note: if you want to build with IntelliJ (via its i...

Everybody hates CSRF

Sometimes I'm not sure what's worse - a CSRF attack or the co...

The Unix world needs to get its shit together.

We have several remote workers in our team at work. For the d...

How to improve Java Unit Testing Skills to a more advanced level?

There are some principles when writing tests in general. They...

Is C still a high level language?

From the assembler's perspective, C is high level. From the p...

Postman vs Insomnia: which API testing tool do you use?

Insomnia all the way. Performance is quite good, I handle bul...

Why I (still) love Vaadin

It was all GWT back when I used it. I didn't even know that t...

10 Intellij Idea's plugins I'm using

I personally can't live without Grep Console. This little plu...

Why I (still) love Vaadin

I used Vaadin 7.x on a medium-sized project once back in the ...

Immutable Data Structures

Thanks! I'm not familiar with the apple world at all, but fro...

Dependency Injection : The what and whys

Nice post! It personally took me a long while to really gra...

Kotlin - The Good, the Bad and the Ugly

Sorry for the delayed answer - busy times. Kotlin enforces...

Kotlin - The Good, the Bad and the Ugly

We use groovy at my company too - but not for application d...

Misconceptions of Serverless: 5 Things You Thought AWS Lambda Did… But It Doesn’t.

"Serverless" - the term itself is a misnomer because it imp...

You're Better Than Your Impostor Syndrome

I have a PhD in computer science and work as a senior devel...

Understanding Dependency Injection by writing a DI Container - from scratch! (Part 3)

Thanks, glad you enjoyed it!

Is there such a thing as READY for a first job?

There's no such thing as "being ready" for anything in soft...

Is Software Engineering moving towards a Codeless world?

No, programmers will never become obsolete. This isn't the...

How Blazor Is Going to Change Web Development

I don't know... not really convinced here. All of this soun...

Should You Learn Redux?

I would recommend every developer to take a close look at r...

Why I stopped using Coroutines in Kotlin

Nevertheless, recursively loading the same key seems like ...

Why I stopped using Coroutines in Kotlin

How would the guava developers ever go about "fixing" this?...

Why I stopped using Coroutines in Kotlin

For instance, I'm using guava caches a lot. Basically you p...

My first impressions of Rust

Rust has very interesting concepts (e.g. ownership), but co...

What is the biggest mistake new developers make when learning CSS?

When it comes to CSS, in my experience, less is more. When ...

SQLite is Not a Server

I'm using SQLite for a web application. I store primarily c...

An ode to the CSS owl selector

Thanks for the in-depth answer! The bare minimum that you...

An ode to the CSS owl selector

For me the biggest step forward (which was terribly long ov...

An ode to the CSS owl selector

Is complexity a good thing though? I personally would refra...

Versioning in APIs

An interesting take on the problem. As a server-side develo...

HTML can do that?

Nice, I like the lightweight approach. However, there are c...

Simulating millions of particles to create the Sun

Looking good! As a further suggestion, you might want to tr...

Why I stopped using Coroutines in Kotlin

I've updated the blog post. Unfortunately this topic is qui...

Why I stopped using Coroutines in Kotlin

That's not a real argument. If it were, all of us would sti...

Those sneaky NullPointerExceptions!

I've come to realize that there's only one way to truly eli...

Hugo Probably Isn't For You

I’ve begun to realize that there’s an advantage to a langu...

Hugo Probably Isn't For You

Oh damn, that sounds like a lot of pain for something that ...

My First Year of University

Being a developer/software engineer is so much more than b...

Learning to Create Video Games

Nice article. Unity has a lot going for it, but as you expe...

What was THAT moment you understood you wanted to become a dev?

6 years old, holding a GameBoy in my hands. The choice was ...

What are you "old enough to remember" in software development?

In Delphi 6, "file" was a keyword XD (The IDE was amazing a...

What should I know to be a software architect?

No worries. My point was only that nobody should start thei...

What should I know to be a software architect?

I once heard a quote about being a software architect (sadl...

War Stories: The elusive Service

Oh, I knew about all-open, so now there's another one speci...

War Stories: The elusive Service

Thanks for the pointer. I know about this plugin, but I'm n...

Code Editor Wars

Microsoft and open-source is an old topic. Their strategy i...

Report about updating a Java project from JDK 8 to JDK 11

Did the module system get in your way during the migration?...

When you want to learn C in 2019

C has an utterly needless amount of pitfalls. You hit the n...

Java Enterprise 101

Thanks. The architecture proposed here does have its issues...

Java Data Structures

A nice summary! One small comment: a ConcurrentModificatio...

CSS grid intro for WPF/XAML developers

Nice explanation! Grid layouts are a godsend for serious ...

Daily Coding Problem #1

Hold your horses. We went from a discussion with somebody w...

Daily Coding Problem #1

If all values deliver the same hash code then I'd argue tha...

Daily Coding Problem #1

No, I understand hash tables perfectly fine. Every bucket i...

Daily Coding Problem #1

That's only partially true. If we asume: a proper hash fu...

Experimenting with brain-computer interfaces in JavaScript

Very interesting... just imagine: coding without having to ...

Keynote Highlights of CodeOne - The Future of Java is at Present

Well, all improvements to the JVM and the platform as a who...

A Case Against Switches

You're barking up the wrong tree here. In day-to-day JavaSc...

TypeScript before JavaScript?

Don't worry - you can't go wrong with TypeScript. You'll le...

The Evolution of Assertions in Java Tests

Nice one, I didn't know about Strikt before. Definitly look...

Why is React a library and not a (simple) framework?

I think we've heard all the arguments by now. Let me ask a q...

Kotlin - The Good, the Bad and the Ugly

First of all, thanks for all the input! "Semicolons are o...

Kotlin - The Good, the Bad and the Ugly

You should abstract your code away from the structure of t...

Kotlin - The Good, the Bad and the Ugly

This may depend on your domain. If you want to use data cla...

Kotlin - The Good, the Bad and the Ugly

I think we have to differentiate between source code genera...

Kotlin - The Good, the Bad and the Ugly

Thanks for sharing your experience. This way of formatting ...

Kotlin - The Good, the Bad and the Ugly

The kotlin drawbacks are not drawbacks if you want to use ...

Kotlin - The Good, the Bad and the Ugly

I'm experiencing similar things on the server side. As I wr...

Kotlin - The Good, the Bad and the Ugly

But Kotlin is a programming language on its own and not a ...

Kotlin - The Good, the Bad and the Ugly

Sorry, I've got no experiences with android so far. But con...

Why JavaScript is an OOP Language (Even Though It Doesn't Have Classes)

JS is object-oriented, yes. But it isn't class-oriented. Th...

Welcome Thread - v16

Hi, welcome to this community. If you need help/advice with...

I love to document my code. Am I doing it wrong?

Commenting code isn't "wrong" per se but (the following app...

3 Common Mistakes that Python Newbies Make

I'm not a Python programmer, but in general I find return s...

How would you define high quality code?

This is the one and only true metric for good code quality....

How I (re)learned OOP is not a silver bullet

Well, that's the JavaScript way of understanding OOP. Excep...

How I (re)learned OOP is not a silver bullet

You do have some points. Writing a webapp server in Spring ...

Moore's Law and Programming languages

First of all, yes, current CPU aarchitectures won't get muc...

Why do you like jsx?

As far as I know, JSX compiles to only one function, the h ...

11 Painful Git Interview Questions You Will Cry On

Sure, why not having a civilized conversation by starting off...

11 Painful Git Interview Questions You Will Cry On

Oh I've got a very clear answer when to use rebase: n-e-v-e-r...

🔥 VSCode Grid Editor Layout Is Here!

Can you also use this feature for re-arranging things like ...

Java Enterprise 101: Building a REST Server with Spring Boot

JEE is technically another stack, yes. But the basuc patter...

Why it is not possible to extend a final class in Java?

First of all, a final class can make sense. Imagine what wo...

OOP Overkill

Yes, I agree with this. It's important to strike a balance ...

OOP Overkill

Oh I see, I didn't get that part - sorry. I would say it r...

10 JavaScript array methods you should know

... and every programmer ever since (who did not start out ...

OOP Overkill

I really don't get why the concept of a class upsets so many ...

10 JavaScript array methods you should know

Does anybody else think that Array#includes(...) is a failu...

Debugging with Git

I'll keep that in mind, thanks!

Debugging with Git

I sometimes wish that there was a way to do this bisection ...

ORM vs. SQL?

I use Hibernate as my weapon of choice here. With Spring Da...

I don't need types

The thing I simply don't get is how people, in posession of...

JavaScript, What Are You?

Dude, stop splitting hairs here. For all means and purposes...

... Or how I learned to stop worrying and love the magic

Spring Boot is really awesome. Once you understand how it w...

JavaScript, What Are You?

Javascript is not concurrent. It's single threaded. Concept...

Java Enterprise 101: Building a REST Server with Spring Boot

Ok then it is very likely the JAVA_HOME environment variabl...

Java Enterprise 101: Building a REST Server with Spring Boot

So usually this error means that gradle cannot find your Ja...

Fixing relational DB mistakes: wrong keys

When I see something like this, I get a very strong inner u...

Can We Stop Pretending Planning Software Development Can Be “Certain”?

Yes, thank goodness we have architectural patterns and othe...

Can We Stop Pretending Planning Software Development Can Be “Certain”?

It's not just about estimating. I wish people would recogni...

Java Enterprise 101

The next article I have planned is a follow up on this one ...

Java Enterprise 101

Thanks for the response. I think this discussion is importa...

Java Enterprise 101

Glad you like it, Flo! So maybe I wasn't very clear in tha...

Java Enterprise 101

Okay, thanks! I've heard about the play framework - mostly ...

Java Enterprise 101

Feel free to suggest alternatives then :) I'm not aware of ...

Java Enterprise 101

As already stated in the text, it is a defensive choice. Wi...

Hello XML, My Old Friend; I've Come To Encode You Again.

By "standard" I simply mean what the language supports on i...

Hello XML, My Old Friend; I've Come To Encode You Again.

Nice article. Just as an addendum, JSON does have shortcomi...

Tooling - the orphan child of web development?

Jetbrains products are very good, I'm not going to argue ab...

Tooling - the orphan child of web development?

Well maybe because you will actually own the hammer afterwa...

Tooling - the orphan child of web development?

My thoughts exactly. Projects tend to never stay small thes...

Tooling - the orphan child of web development?

Agreed. I am aware that VIM, Emacs and so on can be very po...

Tooling - the orphan child of web development?

If you look closely, it also says that WebStorm is not an o...

Java 10 — migration story

Did the module system introduced in Java 9 get in your way?...

Elegant patterns in modern JavaScript: RORO

These kinds of API usage issues can be avoided by using flo...

So you're stuck

A very good article. I find myself doing very similar steps...

10 JavaScript concepts you need to know for interviews

Unfortunately yes, even with the nicer syntax it's still pl...

Getting Started with Algolia

So... you are effectively outsourcing your site search to a...

My journey in code

You're welcome. May you do well on your journey!

My journey in code

First of all: congratulations for making it this far. Most ...

Excerpts from ‘The Clean Coder'

All three of "Uncle Bob" Martin's books (Code, Coder & ...

Accessing Nested Objects in JavaScript

It's a GOOD thing that you get this error from JS! It tells...

Three Stages of My Relationship with React

I primarily work as a Backend Developer, but I touch some U...

Developer Differences: Makers vs Menders

I am both, in certain aspects. Greenfield is always great. ...

Master your IDE

I just want to use the best tool for the job, that's all. A...

Master your IDE

I am currently torn between Eclipse JDT and IntelliJ IDEA. ...

Please Reinvent The Wheel

I could not agree more with this article. The attitude of "...

Should function arguments be reassignable or mutable?

Function parameters should never be re-assignable from with...

Why React Needs Redux

Hi! About the connect function: I fully agree that no harm...

Modernizing Java - A language feature wish list (Part 1)

The second part of the series is now online: dev.to/martinh...

Why React Needs Redux

I fully agree with the problem analysis in your post. I am ...

The Problem With High Test Coverage

Risk-based testing is essentially the same idea. Consider w...

What Elm and Rust Teach us About the Future

Thanks for the article, really interesting food for thought...

Modernizing Java - A language feature wish list (Part 1)

Thanks for reading! I'm glad you enjoyed it. The next part ...

Modernizing Java - A language feature wish list (Part 1)

First of all, Java is fine as-is. We are talking mostly abo...

Modernizing Java - A language feature wish list (Part 1)

Of course, it's almost impossible today to be a Java develo...

Modernizing Java - A language feature wish list (Part 1)

Thanks for the response! I agree that some of the features ...

On the subtleties of OOP

First of all, thanks for the elaborate comment! I totally ...

loading...