Languages Flashcards
3 worst defects:
Tell me the 3 worst defects of your preferred language.
Functional Programming:
Why is there a rising interest in Functional Programming?
Closures:
What is a closure, and what is its usefulness? What’s in common between closures and classes?
Generics:
What are generics useful for?
High-Order Functions:
What are higher-order functions? What are they useful for? Write one, in your preferred language.
Loops and Recursion:
Write a loop, then transform it into a recursive function, using only immutable structures (i.e. avoid using variables). Discuss.
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?
Anonymous Functions:
Show me an example where an anonymous function can be useful.
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?
Namespaces:
What are namespaces useful for? Invent an alternative.
Language Interoperability:
Talk about interoperability between Java and C# (in the alternative, choose 2 other arbitrary languages)
Hate of Java:
Why do many software engineers not like Java?
Good and Bad Languages:
What makes a good language good and a bad language bad?
Referential Transparency:
Write two functions, one referentially transparent and the other one referentially opaque. Discuss.
Stack and Heap:
What is a stack and what is a heap? What’s a stack overflow?
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?
Exceptions:
Why do some languages have no exceptions by design? What are the pros and cons?
Variant and Contravariant Inheritance:
If Cat is an Animal, is TakeCare a TakeCare?
Constructors and Interfaces;
In Java, C#, and many other languages, why are constructors not part of the interface?
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?
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?