Back to 07-129 homepage


Dr Giselle – Programming Languages







Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?

Storing hundreds of pages of punch cards was incredibly tedious.

Punch cards were a low-level, manual method of input. This was really error-prone, time-consuming, and limited to basic operations. As computers evolved, the need for more complex operations, faster development, and higher-level problem solving grew.

This tells us that the primary purpose of programming languages was to develop standardized, efficient, and scalable ways to compute and process code.

There are hundreds of different programming languages out there. Why do you think we need so many?

We need many because they do different things.

Programming languages are often built to support a specific domain. For instance, after C was developed, Apple created ObjC. ObjC's primary purpose was to improve the C language and make it support OOP.

There's also programming languages who's primary purpose is to test the bounds of computing Take BRAINF**K, a programming language that uses 8 characters to make up the entirety of its syntax: [].><+-.

What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.

Type checking in Swift drives me crazy.

Swift is very well known for being way too picky with it's types. Mutable and immutable variables must be declared, and could already be superseded by the type. And I haven't even mentioned the null-safety in Swift. My swift code eventually becomes a massive blend of "!" "?" mixed in with variables and functions. Point is, Swift tries to way too much and sometimes, that just doesn't work.

There's a really simple fix, switch to objC. :)

If you were going to create a new programming language, how would you start? What do you need to define?

I've always really wanted to be able to draw code kinda like Piet.

In my early days doing scratch, I'd draw out every function I wanted. I'd start with a board and then draw out the loops and variables. Implementing this into actual code would probably require some type of interpreter/compiler to be able to understand images and process them to some degree.

I'd really love to work on this...