Languages Flashcards

1
Q

3 worst defects:

Tell me the 3 worst defects of your preferred language.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Functional Programming:

Why is there a rising interest in Functional Programming?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Closures:

What is a closure, and what is its usefulness? What’s in common between closures and classes?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Generics:

What are generics useful for?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

High-Order Functions:

What are higher-order functions? What are they useful for? Write one, in your preferred language.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Loops and Recursion:

Write a loop, then transform it into a recursive function, using only immutable structures (i.e. avoid using variables). Discuss.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Functions as First-Class Citizens:

What does it mean when a language treats functions as first-class citizens?

Why is it important that in a language functions are first-class citizens?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Anonymous Functions:

Show me an example where an anonymous function can be useful.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Static and Dynamic typing:

There are a lot of different types of systems. Let’s talk about static and dynamic type systems and about strong and weak ones. You surely have an opinion and a preference about this topic. Would you like to share them, and discuss why and when would you promote one particular type of system for developing an enterprise software?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Namespaces:

What are namespaces useful for? Invent an alternative.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Language Interoperability:

Talk about interoperability between Java and C# (in the alternative, choose 2 other arbitrary languages)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hate of Java:

Why do many software engineers not like Java?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Good and Bad Languages:

What makes a good language good and a bad language bad?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Referential Transparency:

Write two functions, one referentially transparent and the other one referentially opaque. Discuss.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Stack and Heap:

What is a stack and what is a heap? What’s a stack overflow?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Pattern Matching:

Some languages, especially the ones that promote a functional approach, allow a technique called pattern matching. Do you know it? How is pattern matching different from switch clauses?

A
17
Q

Exceptions:

Why do some languages have no exceptions by design? What are the pros and cons?

A
18
Q

Variant and Contravariant Inheritance:

If Cat is an Animal, is TakeCare a TakeCare?

A
19
Q

Constructors and Interfaces;

In Java, C#, and many other languages, why are constructors not part of the interface?

A
20
Q

Node.js:

In the last few years, there has been a lot of hype around Node.js. What’s your opinion on using a language that was initially conceived to run in the browser in the backend?

A
21
Q

Java and time-traveling:

Pretend you have a time machine and pretend that you have the opportunity to go to a particular point in time during Java’s (or C#, Python, Go or whatever) history, and talk with some of the JDK architects. What would you try to convince them of? Removing checked exceptions? Adding unsigned primitives? Adding multiple-inheritance?

A