Computer Controlled Cutting Electronics Production 3D Scanning and Printing Electronics Design Computer-Controlled Machining Embedded Programming Molding and Casting Input Devices Output Devices Networking and Communication Interface and Application Programming Mechanical & Machine Design

Group Assignment: Interface and Application Programming

For this weeks group assignment we compared different tools for creating graphical user interfaces.

C# Windows Forms

Using Microsofts Visual Studio we can build great looking interfaces using the included GUI builder. The interface can easily be edited in a WYSIWYG editor, only having to connect the underlying business logic to the events of the GUI components. On the downside Visual Studio is expensive, resource intensive and proprietary

Python Tkinter

TKinter is a GUI library for python, acting as an object oriented layer on top of Tcl/Tk. It uses a concept of relative automatic placement, defined inside of the application. To move GUI components around one has to edit the code directly. Using direct placement is discouraged, instead relative positions are given. Tkinter is relativly small, easy to install and free.

Java Swing

Swing is a GUI toolkit for Java. It can be used in combination with the Eclipse GUI builder to work with a combination of code and graphical editing. It does not have the nicest look and needs a Java runtime environment, but it's free and much more lightweight then it's predecessor AWT.


Electron is a Framwork for running web-applications as standalone GUI applications. In the background it's using the Chromium engine to render the application. This can be considered quite horrible and wasteful and is not feasible for less powerful computers. On the other hand it allows to write complete desktop applications in JavaScript, leveraging web development debugging techniques.


Ncurses is a C library that can be used to render text based user interfaces in a terminal. As it's some rather old piece of C software it has a steeper learning curve than the other examples, but it's also quite lightweight and will easily run even on systems with very low performance. As it's still running only in a terminal it can not display images apart from unicode symbols.