Donnerstag, April 25, 2024
Diary

Whitespace, zu Ehre des Unsichtbaren

Whitespace code als PNG-Bild
Schematische Darstellung von Whitespace code (wikimedia commons)
Schematische Darstellung von Whitespace code (wikimedia commons)

Eine der wichtigsten und gefährlichsten Instrumente politischer Rhetorik ist das simple Verschweigen von gewissen Inhalten. Lange Reden hören sich an, als würden sie von etwas handeln, ohne dass dabei wirklich ein Standpunkt vertreten oder ein definitiver Willen bekundet würde. Leider fällt das nur selten auf, denn auch die meisten Journalisten scheinen eher vom Gespräch mit der „wichtigen“ Person beeindruckt, als dass sie den leeren Stellen nachspüren.

Ein ähnlicher Gedanke dürfte wohl den zwei Softwareentwickler Edwin Brady und Chris Morris von der Durham University Computing Society durch den Kopf gegangen sein. Im Jahr 2003 veröffentlichten sie eine Programmiersprache, deren Code nur aus Leerzeichen, Tabulatoren und Zeilenumbrüchen besteht. Mit der Sprache Whitespace (zu gut Deutsch „Leerstellen“) wollten sie einen Gegenentwurf zu den meisten anderen modernen Programmiersprachen bieten, da diese in der Regel alle Leerstellen im Code ignorieren, als wären sie nicht existent.

Whitespace ignoriert alle Zeichen, die NICHT Leerzeichen, Tab oder Zeilenumbruch sind. Brady und Morris verhelfen dadurch nicht nur den Whitespaces zur verdienten Geltung, sie beschreiben auch die speziellen Möglichkeiten, die eine solche Sprache bietet:

  • Programmcode kann praktisch an jeder Stelle kommentiert werden
  • Ein Programm kann in einem Programm einer anderen Sprache versteckt werden
  • Beim Ausdrucken von langen Quellcodes wird massenhaft Tinte gespart

Whitespace hat sich bislang als Programmiersprache nicht wirklich durchgesetzen können. Trotzdem weist das Konzept augenscheinlich darauf hin, dass das was nicht zu sehen ist, oft das wichtigste ist.

Programmbeispiel: Zähle von 1 bis 10 und zeige die Zahl an

(Der Code kann markiert werden)

   	

   	    		
 
 	
 	   	 	 
	
     	
	    
    	 		
	  	
	  	   	 	

 
 	    		

   	   	 	
 





   		    	 		  	   		  	  
	   
	

   			 			 			  	  		 	  	 			 	   		  	 	
 
 			 
 
	  			 			 			  	  		 	  	 			 	   		  	 	 	 					 		  	 	 		 			  		  	  
	
     	
	   
 
 			 			 			  	  		 	  	 			 	   		  	 	

   			 			 			  	  		 	  	 			 	   		  	 	 	 					 		  	 	 		 			  		  	  
 

 


	

   			  	  		  	 	 		    	 		  	  
 
  
 	
	 			 
    	 	 
	  	
	  			  	  		  	 	 		    	 		  	   	 					 		  	 	 		 			  		  	  
 

   	
	   
 
 			  	  		  	 	 		    	 		  	  

   			  	  		  	 	 		    	 		  	   	 					 		  	 	 		 			  		  	  
 

   	
	       
		 
	

   		 			  		  	 	 			 			 		 		   		 	  	 		 			  		  	 	
   	 	 
   		 	
	
  	
  
	

Quellen / Weiterführende Links