Best explanation for languages without null

I think the succinct summary of why null is undesirable is that meaningless states should not be representable. Suppose I’m modeling a door. It can be in one of three states: open, shut but unlocked, and shut and locked. Now I could model it along the lines of class Door private bool isShut private bool … Read more

Function overloading by return type?

Contrary to what others are saying, overloading by return type is possible and is done by some modern languages. The usual objection is that in code like int func(); string func(); int main() { func(); } you can’t tell which func() is being called. This can be resolved in a few ways: Have a predictable … Read more

Compiled vs. Interpreted Languages

A compiled language is one where the program, once compiled, is expressed in the instructions of the target machine. For example, an addition “+” operation in your source code could be translated directly to the “ADD” instruction in machine code. An interpreted language is one where the instructions are not directly executed by the target … Read more

Why functional languages? [closed]

Functional languages use a different paradigm than imperative and object-oriented languages. They use side-effect-free functions as a basic building block in the language. This enables lots of things and makes a lot of things more difficult (or in most cases different from what people are used to). One of the biggest advantages with functional programming … Read more

Scripting Language vs Programming Language [closed]

Scripting languages are programming languages that don’t require an explicit compilation step. For example, in the normal case, you have to compile a C program before you can run it. But in the normal case, you don’t have to compile a JavaScript program before you run it. So JavaScript is sometimes called a “scripting” language. … Read more

What are five things you hate about your favorite language? [closed]

Wow, I’m surprised that SQL hasn’t made it up here yet. Guess that means nobody loves it 🙂 Inconsistent syntax across implementations Subtle code differences can have massive performance ramifications for seemingly obscure reasons Poor support for text manipulation Easy cost of entry but steep learning curve towards mastering the language Minimal standardization across the … Read more